CPS 410 - Software Engineering
CPS 410 covers the fundamentals of good software practices. This course focuses on the human aspects of software development. Students go through the entire software process lifecycle (requirements elicitation, design, implementation, testing, maintenance) and experience what it is like working in a team on an industry-strength project.
Projects this semester:
Human-in-the-Loop Drone Obstacle Course
3D FPS Battle Royale Game
2D Platformer RPG Game
A Cloud-Native App for Museum Scheduling
Unsupervised Machine Learning: A GTA V Self Driving Car
An Improved Pathfinding AI for Minecraft
A DJango-Enabled Tutor Finding Website
Law Website for Michigan Lawyers
Changes this semester:
This class is being offered in a HyFlex format
I am co-teaching this class with Dr. Patrick Kinnicutt
Lecture Slides:
Week 1 - Introduction
Week 2 - Agile
Week 3 - Agile - Continued
Scrum Board Simulation
Week 4 - Agile - Continued
Daily Standup
Example of a bad daily standup
New Venture Competition
Kick-Off Slides
Week 5 - Software Estimation
Week 6 - Estimation (Cont.) & Kanban
Planning Poker
Week 7 - Kanban
Week 8 - Midterm Prep
Discussions - Team 4 / 2
Week 9 - Midterm & Review
Midterm Results
Discussions - Team 5 / 7
Week 10 - Invited Speaker
Invited Speaker: Laura Fernau (Scrum Master at Insulet)
Discussions - Team 3 / 8
Week 11 - TDD
Discussions - Team 6
Week 12 - Software Architectures & Patents
Architecture vs Design Patterns Discussion
Software Patents
Week 13 - Team Presentations
Team Meetings (M)
Team Demo (W) - 1 & 6
Team Demo (F) - 7 & 4
Week 14 - Team Presentations
Team Demo (M) - 3 & 8
Team Demo (W) - 5 & 2
Week 15 - Final
Assignments:
Assignment 1 (due Aug 28)
Project Part 1 (due October 5th)
Project Part 2 (due October 19th)
Project Part 3 (due November 6th)
Project Part 4 (due November 18th)
Handouts
Midterm
Final
Number of students: 30