Back to Modules
CS203

Collaborative Software Development

1 CreditsBoth

Description

This course exposes students to web and micro services development, software design issues, agile processes and project management techniques. The focus is to allow students to experience agile software development and project management by working in a team to develop a web based application.

Requisites

Prerequisites: CS102 - Pre-req

Co-requisites: None

Anti-requisites: CS203/IS212 - Mutually Exclusive

Attributes

Department: SCIS

Course Level: Undergraduate

Tracks: N/A

Areas: Advanced Business Technology Major Business Options Econ Major Rel/Econ Options IS Depth Electives IT Solution Development Core Social Sciences/PLE Major-related

Learning Outcomes

1. Demonstrate an understanding of requirement specification: a. Explain the concepts of a requirement b. Describe software requirements with user stories c. Estimate user stories 2. Demonstrate an understanding of agile methodologies a. Use an iterative, incremental development approach in the group project b. Practice pair programming and code review during project time c. Explain the key differences in concepts such as adaptive vs. predictive, agile vs. waterfall, code vs. documentation 3. Demonstrate an understanding of app development and deployment a. Develop a HTTP based application b. Implement code for business logic and HTTP request handling c. Implement basic interaction with a persistent database d. Design and implement basic application security e. Deploy the services into production 4. Demonstrate an understanding of software testing a. Explain testing fundamentals: unit testing, integration testing, usability testing, etc. b. Design unit tests and integration tests c. Implement automatic testing for the group project d. Understand and practice continuous integration e. Demonstrate an understanding of secure and defensive programming practices 6. Use a distributed version control system such as git to facilitate group collaboration

Graduate Learning Outcomes

Disciplinary Knowledge, Interdisciplinary Knowledge, Critical thinking & problem solving, Self-directed learning, Resilience

Competencies

Solution Architecture, Systems Design, Agile Software Development, Applications Development, Infrastructure Deployment