This course introduces students to human-AI collaboration in software development through the design and implementation of modern web-based systems. Students explore core software engineering topics including software design issues, agile development processes, and project management. In team-based projects, students gain hands-on experience combining human expertise with AI tools for requirements analysis, coding, testing, and deployment.
Learning Objectives
Demonstrate an understanding of requirement specification:
- Explain the concepts of a requirement
- Describe software requirements with user stories
- Estimate user stories
Demonstrate an understanding of agile methodologies
- Use an iterative, incremental development approach in the group project
- Practice pair programming and code review during project time
- Explain the key differences in concepts such as adaptive vs. predictive, agile vs. waterfall, code vs. documentation
Demonstrate an understanding of app development and deployment
- Develop a HTTP based application
- Implement code for business logic and HTTP request handling
- Implement basic interaction with a persistent database
- Design and implement basic application security
- Deploy the services into production
Demonstrate an understanding of software testing
- Explain testing fundamentals: unit testing, integration testing, usability testing, etc.
- Design unit tests and integration tests
- Implement automatic testing for the group project
- Understand and practice
Past Project(s)
School Term
Course Code
CS203
Faculty Course Outlines