Syllabus
Short Description
Intensive group project involving design, development, and documentation of a web application; client-side and server-side scripting; communication skills emphasized; builds programming maturity.
Course Objectives
The aim of this course is for students to:
- Be competent in the development of dynamic web applications.
- Be competent in the development and formatting of static web content.
- Be competent with writing, organizational, and presentation skills.
- Be competent with analyzing the intended audience for a written document and writing an audience profile.
- Be familiar with making engineering decisions involving tradeoffs.
- Be familiar with the use of SQL to access database content.
- Be familiar with defining the purpose (persuade, inform, etc.) of a written document and select the appropriate rhetorical devices.
- Be familiar with writing several pieces of documentation that have different purposes and to use appropriate organization to tie them together.
- Be familiar with group project organization techniques including conducting group meetings, recording minutes, and tracking project progress.
- Be familiar with using one structured approach to large software design to carry out a large group project.
- Be exposed to the use of application frameworks for the deployment of web applications.
- Be exposed to some basic security vulnerabilities sometimes found in web applications.
- Be exposed to methods for internationalizing web applications.
Prerequisites
2231; and 2321; and 2421 or 3430, or 2451 and ECE 2560.
Textbooks
- Ruby on Rails Tutorial: Learn Web Development with Rails, 7th Edition, (by Michael Hartl, 2022). Available on Safari via the OSU Library portal: book, video.
Team Work
The group projects in this class are designed to model software engineering in a real workplace. These projects are to be done in teams of four or five which are formed during the first week of class.
Each team member must do equal work across the entire set of projects. If a team member is not doing equal work it is the responsibility of the other members to let me know that a problem exists. Most often we can head off problems before it is too late.
If there is evidence that a team member is not providing the same level of effort or does not have the same level of involvement or understanding of the system as the rest of the team, different grades may be assigned. On the other hand, if one person opts to do most of the work, there is no guarantee that he or she will receive a better grade. Indeed, if he or she hindered the experience of others in the group, a lower grade may be assigned to that person.