Introduction
Course Description
From the course calendar:
CS 346 LAB,LEC,TST 0.50
Application Development
Introduction to full-stack application design and development. Students will work in project teams to design and build complete, working applications and services using standard tools. Topics include best-practices in design, development, testing, and deployment.
Prereq: CS 246; Computer Science students only
Course Requirements
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.
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 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.
Required Resources
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. None of these are required reading unless specifically indicated.
You will need access to a computer to work on the project, which should be capable of running the toolchain described here. 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 |