An introduction to the issues and techniques encountered in the design and construction of software systems. The theory and models of software evolution. Topics include requirements and specications, prototyping, design principles, object-oriented analysis and design, standards, integration, risk analysis, testing, and debugging.
Skills and knowledge students should have prior to beginning the course:
Course Topics:
Group dynamics & entrepreneurship
User stories
Iteration & project planning
Use cases
Requirements
Burndown charts
Planning
Tasks
Prototyping
Class diagrams
Software design & management
Testing & test cases
Sequence diagrams
Lecture format: Reverse classroom, group discussions and activities, short lectures on theory demonstrated through activity
Online materials location and format: Moodle
Lab or tutorial format and expectations: Active lab including involvement with external partners
Method of evaluation:
Number of Assignments: 3 assignments
Number of Graded Labs: 2 lab demos & post-mortems
Number of Quizzes: 5
Formal Midterm? No
Course project? Yes - a semester long group project
Final Exam? No
Group work? Yes
Mostly programming assignments? Final project includes both a written component and a functioning product
Written documents? Yes