Software Systems
This course introduces students to fundamental software development skills and concepts such as version control, scripting, testing, packaging, data processing, and networking. Students will practice applying these techniques by building a full stack application, where they will also explore programming paradigms such as functional programming, object-oriented programming, declarative programming, and event-based programming. After this course, students will be prepared to develop non-trivial software systems using modern software development practices. Learning Outcomes Upon successful completion of this course, students will be able to: 1. Utilize commands to navigate filesystems, manipulate files, manage processes, and explore system resources. 2. Compose scripts to process and manipulate data, to automate tasks, and to communicate across the Internet. 3. Verify the correctness of programs via unit and functional testing. 4. Install and take advantage of third party libraries in addition to creating custom software packages. 5. Design a software system using software architectural patterns. 6. Build a full stack application (ie. backend, database, frontend) that employs multiple programming paradigms. 7. Deploy applications to a cloud service for public access.
Sources
- Course catalogue ↗2026-2027