Syllabus

Course Description

From the course calendar:

This course explores knowledge, skills and strategies required to build complex full-stack applications. Using an iterative development methodology, students will work in project teams to design, develop, and test applications and services. Standard development tools and approaches will be used to ensure code quality and performance at every step of the development cycle.

Prereq: CS 246; Computer Science students only

Requirements

You must have completed CS 246 prior to taking this course, and you should be able to:

  • Design, code and debug small C++ programs using standard tools. e.g. GCC on Unix.
  • Write effective unit tests for these programs. e.g. informal I/O tests, unit tests.
  • Demonstrate programming proficiency in C++, which includes: understanding of fundamental OO concepts. e.g. abstraction, encapsulation; knowing how to use classes, objects, method overloading, and single inheritance; polymorphism; understanding how to use assertions, and how to manage exceptions.

Learning Objectives

On successful completion of the course, students will be able to:

  • Work effectively as a member of a software development team.
  • Use an interactive process to manage the design, development and testing of software projects.
  • Design and develop different styles of application software in Kotlin, using the appropriate architectural and design patterns.
  • Design services that can provide remote capabilities to your application.
  • Apply debugging and profiling techniques to address design and performance issues.
  • Produce unit and integration tests as part of the development process.

Textbooks & Resources

There are no required textbooks for this course. The course website is the primary source for required reading material, recorded videos and supporting material.

We will use the following online resources this term:

  • Piazza is used for discussion. You are expected to check Piazza daily since course announcements will be posted here.
  • MS Teams will be used video chat, and the General channel will be used for online lectures.
  • LEARN will be used for quizzes only.

Relation to Other Courses

This course is intended to be an optional intermediate course between CS 246 and CS 446. It is not a prerequisite for anyother course, but you may find the skills and knowledge that you develop here to be useful. Here are some recommended courses that expand on some of the topics introduced in this course.

Related courses