“This course introduces the fundamental principles of software engineering. Modern software development techniques and life cycles are emphasized. Topics include requirements analysis and specification, analysis and design, architecture, implementation, testing and quality, configuration management, and project management. Students will be expected to complete a project that employs techniques from the topics studied. This course should be taken before any course requiring a large programming project. Undergraduate credit may not be earned both for this course and for CS 509. Recommended background: CS 2102, CS 2103, or CS 2119.”
CS 3733 was one of the most demanding classes I've taken at WPI, as it involved learning about many software engineering concepts while juggling a large group project. The group project involved creating a full-stack website for todo tasks, utilizing AWS Java lambda functions, an SQLite database, and a HTML/CSS/JavaScript frontend. The project involved using lots of good practices such as entity-bound controller and uml/class diagrams for planning.