Course Info

Course Info

Description

This section expands on the the official course description from Kuali.

ℹ️

CS 346 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.

Units: 0.5

Prerequisites

This course is restricted to Computer Science students. Although it is a third-year course, it is suitable for students in 2B or later terms.

You must have successfully completed CS 246 Object-Oriented Programming prior to taking this course. From that course, you should be able to:

  • Design, code and debug small C++ programs using standard tools. e.g. GCC and GDB.
  • Write effective unit tests for these programs. e.g. checking for a range of invalid conditions.
  • Demonstrate programming proficiency in C++, which includes:

Course Progression

CS 346 is desiged to be a direct successor to CS 246, and an informal lead-up to CS 446. It is also one of the courses that can be applied towards the Software Engineering specialization.

Course progression

Learning Objectives

This course includes a mix of lectures, demos and project activities. The course project is a significant element of the course.

Software development team

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

  • Work effectively as a member of a software development team.
  • Use an iterative process to manage the design, development and testing of software projects.
  • Design and develop different styles of application software in Kotlin, with appropriate architectural choices.
  • Include online and offline capabilities in your application, leveraging local and remote storage.
  • Design services that can provide remote capabilities to your application.
  • Produce automated tests as an essential part of the development process.
  • Apply debugging and profiling techniques as required during development.

Required Resources

All required course materials, including lecture slides, are freely available on the course website. You do not need to purchase anything to take this course.

You will require access to a computer to work on the course project. It’s recommended that you confirm that your computer is capable of running our tech stack early in the term.

We use the following online websites.

  • Piazza 🔗: Forum software. Used for course announcements, and you can ask questions.
  • Learn 🔗: Used for quizzes, and project submissions. Grades are also recorded here.
  • GitLab 🔗: CS 346 public repository, with sample code and templates.
ℹ️
We use Piazza for course announcements, so please sign-up. I recommend turning on email notifications so you don’t miss important announcements!