Skip to content
Application Development II
GitLabGitHub

Syllabus

Course description outlining goals, expectations, resources, and other important information.
Overview

From the course outline:

This course covers the process of software development, consisting of the proposal, design, implementation, documentation, and deployment of a software project. Students will learn the skills necessary to create a mobile application using the Android framework in Kotlin.

This course continues on Application Development I, with a few twists. Rather than developing in a language and for a platform that we are all familiar with, we will practise learning new programming paradigms in a new language, for the purpose of creating applications that cohere with modern development best practises. We will do this by engaging with open source projects right from the beginning of this course, and learning how they are constructed in order to make similar applications ourselves.

After this course, you should feel more confident approaching developing a new project in ANY programming language, for ANY platform, by employing the best practises for a specific language and target platform to a higher level.

On top of that, you should have your own Android application deployed on GitHub as a testament to what you learned.

Logistics

This is a 3 credit course, with 6 hours of class time per week.

  • Classroom: Penfield 322 (the Mac lab)
  • Class times: Mon 16:00-17:30, Wed 16:00-17:30, Fri 14:30-17:30
  • Office: Penfield 311
  • Office hours: Tues 11:30 - 12:30pm, 1pm - 2:30pm
  • Email: michael DOT haaf AT johnabbott DOT qc DOT ca
  • Course webpage: This website for all content, Moodle for assignment/project/quiz submissions.

Communication

  • MIO - For communicating (non-time-critical)
  • Email - For communicating (time-critical).  Will aim for <24hr response.
  • Moodle - For receiving & submitting exercises/assignments/project and getting marks

Assessment

  • 30% Assignments (Lab time/take home, approximately 1 per 2-3 weeks)
  • 15% Quizzes (In-class, approximately biweekly)
  • 55% Project (Throughout the semeseter, 4 sub-deliverables)

Rough schedule

  • Month 1: Learning to program in Kotlin
    • Assignment 1: A series of Kotlin exercises
    • Project: Form Teams & Deploy an existing application with changes
  • Month 2: Learning to build user interfaces in Jetpack Compose
    • Assignment 2: Jetpack Compose for developing a simple UI application
    • Project: Propose your own application, set up the development/documentation/integration/deployment infrastructure
  • Month 3: Learning to use system architecture for application requirements
    • Assignment 3: TBD
    • Milestone 3: Preliminary demo, solicit feedback/contributions from others in class
  • Month 4: Learning design patterns for improving the quality of your code
    • Assignment 4: TBD
    • Milestone 4: Final project

Throughout the semester, Quizzes will be given in-class to continuously assess everyone’s understanding of the course material so far.

Course material

There are no required textbooks for this course — this website will contain all of the content that you need to complete course deliverables. Additionally, each lecture will contain references to additional resources for exploring each topic in further detail beyond the scope of the course.