This course is restricted to Computer Science students. 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.
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 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.
There are no required textbooks for this course. This website is the primary source for reading material, recorded videos and other supporting materials. For those that want to pursue topics in greater detail, there are additional resources listed in each chapter.
You will need administrative access to a computer to work on the project. This system should be capable of running the toolchain described here. You will not be able to use lab machines for this course, since you do not have administrative rights on those machines.
Please check your system requirements early in the course, and ask the instructor if you have any concerns.
|Title / Name||Notes / Comments||Required|
|Computer/laptop||Windows, Linux or macOS with at least 8GB of RAM.||Yes|
|Slides and lecture videos||Will be made available on course website.||Yes|
|Supporting slides/videos||Will be made available on course website or via links to external resources.||Yes|