Skip to content
Application Development II
GitLabGitHub

Course Outline

Official course outline document for the Fall 2023 offering of Application Development II (420-5A6-AB) at John Abbott College. This document defines the overall learning requirements of this course. The course syllabus, on the other hand, is the real implementation of this specific course in Fall 2023, that is, the specific tasks and expectations that meet the course outline requirements.
Overview
Program Computer Science Technology 420.B0
Course TitleApplication Development II
Course Number420-5A6-AB
Timetable and ClassroomSection 2: M-W 1600-1730; F 1430-1730 (P322)
Ponderation2 hours lecture + 4 hours laboratory + 3 hours homework
Number of Credits3.00
Competency and CodeDevelop native applications without a database 00SR.
PrerequisitesProgramming IV (420-4P6-AB) and Application Development I (420-4A8-AB)
This course is a prerequisite for Application Development III (420-6A6-AB), Stage I (420-6S9-AB) and Stage II (420-6SC-AB)
SemesterFall 2023
TeacherMichael Haaf
OfficePenfield 311
Office HoursTuesdays 11:30AM - 1PM
ContactTeams/MIO/michael.haaf@johnabbott.qc.ca

INTRODUCTION

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 Java or Kotlin.

COURSE OBJECTIVES

Competency 00SR: Develop native applications without a database.

ACHIEVEMENT CONTEXT

  • For different target platforms: tablets, smartphones, desktop computers, etc.
  • For new applications and applications to be modified
  • Based on design documents
  • Using a compiler designed for the target platform, a cross compiler, or an interpreter
  • Using an emulator on the development platform
  • Using images, sounds and videos
  • Using issue tracking and version control procedures

COMPETENCIES

Elements of competency Performance criteria
00SR.1 Analyze the application development project.
  • Accurate analysis of design documents
  • Proper identification of the tasks to be carried out.
00SR.2 Prepare the computer development environment.
  • Proper installation of software and libraries on the development platform
  • Proper configuration of the target platform
  • Proper configuration of the version control system
  • Proper importing of the source code
00SR.3 Generate or program the graphical interface.
  • Appropriate choice and use of graphic elements for display and input
  • Proper integration of images
  • Adaptation of the interface based on the display format and resolution
00SR.4 Program the application logic.
  • Proper programming of interactions between the graphical user interface and the user
  • Proper programming of communications between the peripheral devices and the software functions of the target platform
  • Effective use of execution threads
  • Proper integration of sounds and videos
  • Proper application of internationalization techniques
  • Precise application of secure coding techniques
00SR.5 Control the quality of the application.
  • Precise application of test plans in the emulator and on the target platform
  • Thorough reviews of code and security
  • Relevance of the corrective actions
  • Compliance with issue tracking and version control procedures
  • Compliance with design documents
00SR.6 Participate in the deployment of the application.
  • Appropriate preparation of the application in view of its deployment or installation
  • Proper deployment or installation of the application
00SR.7 Produce the documentation
  • Proper identification of the information to be written up
  • Clear record of the work carried out

EVALUATION PLAN

Objective00SR
Assignments (3-4) 30%X
Quizzes (4-6) 15%X
Project (4-5 milestones) 55%X

COURSE CONTENT


General Learning ObjectiveSpecific Learning Objective
Setup and use the Android development environment.
  1. Choose, install, and configure an Android IDE
  2. Iteratively debug and develop code using automated build porcess and emulator behavior/logs/profile.
Design and implement Android user interfaces.
  1. Create, modify, and manage UI components programmatically (appearance, behavior, and state).
  2. Define dynamic and responsive layouts.
  3. Understand programmatic relation between interface and application architecture.
  4. Understand at a high level the mechanisms for defining user interface components.
  5. Design a custom component.
  6. Add event handling to UI components.
Develop complex application behavior using event-driven programming on Android architecture.
  1. Understand the Android stack and its differences from other target platforms.
  2. Understand and implement event handling/management.
  3. Define essential application behaviors (e.g.: app launch, navigation, data display/entry, component interaction).
  4. Request appropriate app permissions from the user.
  5. Use intents to access Android services
  6. Read and write data to device's filesystem and/or the local database.
  7. Store app preferences.
  8. Incorporate custom features from elements of the Android framework (e.g.:notifications, sensors, GPS, animation, etc.).
Perform asynchronous tasks in an app.
  1. Review the role of threads in computation, apply concepts to Android stack.
  2. Implement background tasks.
  3. Incorporate asyncrhonous tasks in the application design.
Use build automation tools.
  1. Understand the lifecycle of application software: created, maintained, distributed, used, and modified.
  2. Understand the role of build automation tools for application development, and apply them to the creation of an Android application.
  3. Manage internal, external, and 3rd party software dependences.
  4. Create custom build tasks.
Develop a complete Android app.
  1. Develop an Android application over the course of a semester.
  2. Develop and evaluate an app prototype.
  3. Design and implement an app from the propsed idea.
  4. Use version control in development, including branches to develop new features and fix bugs.
  5. Produce code documentation.
  6. Manage automated deployment and distribution of the application.

TENTATIVE SCHEDULE

Week 1Introduction to Kotlin, Compose and Android Development Environment
Week 2Kotlin language; Quiz 1
Week 3Compose components and UI layout
Week 4Basic event handling and user input; Quiz 2
Week 5State management and displaying lists
Week 6Navigation and routing; Quiz 3
Week 7Local storage
Week 8Asynchronous tasks, Coroutines and Flow; Quiz 4
Week 9Authentication; Project
Week 10Advanced (Intents, Permissions, Background tasks, Notifications, Custom features); Quiz 5
Week 11Advanced (Intents, Permissions, Background tasks, Notifications, Custom features); Project
Week 12Quiz 6; Project
Week 13Project
Week 14Project
Week 15Project

SUGGESTED TEXT

TBD

COURSE COSTS

TBD

TEACHING METHODS

This course consists of 90 hours of scheduled lectures and lab work. In addition, each student will be required to do 45 hours of personal study that includes research, personally booked computer time and work at home. Moodle will be used in this course.

DEPARTMENTAL LATE POLICY

All assignments and projects are expected to be submitted by the required due date. A late penalty of up to 10% per day might apply to assignments submitted late up to a maximum number of allowed late days. The exact percentage and the maximum will be indicated on the instructions specific to that assignment. Any work submitted after the maximum number of allowed late days has been reached will not be graded.

DEPARTMENTAL ATTENDANCE POLICY

See Article 4 of the IPESA, Policy-7-IPESA.pdf

Active learning of competencies requires hands on learning with interactive classroom work, which requires no more than 20% absences.

Attendance is compulsory for the following program activities:

  • Stage participation. Competency 016V, 016Y.
  • Stage evaluation meetings. Competency 016Z.
  • In-class group or project integration.

Unexcused absences of more than 20% of any of these activities will result in a grade of 0 for the assessment related to that activity.

COLLEGE POLICIES - IPESA, Institutional Policy on the Evaluation of Student Achievement: Policy-7-IPESA.pdf

Changes to Evaluation Plan in Course Outline (Article 5.3)

Changes require documented unanimous consent from regularly attending students and approval by the department and the program dean

Religious Holidays (Articles 3.2.13 and 4.1.6)

Students who wish to miss classes in order to observe religious holidays must inform their teacher of their intent in writing within the first two weeks of the semester

Student Rights and Responsibilities: (Articles 3.2.18 and 3.3.6)

  • It is the responsibility of students to keep all assessed material returned to them and/or all digital work submitted to the teacher in the event of a grade review. (The deadline for a Grade Review is 4 weeks after the start of the next regular semester.)

  • Students have the right to receive graded evaluations, for regular day division courses, within two weeks after the due date or exam/test date, except in extenuating circumstances. A maximum of three (3) weeks may apply in certain circumstances (e.g. major essays) if approved by the department and stated on the course outline. For evaluations at the end of the semester/course, the results must be given to the student by the grade submission deadline (see current Academic Calendar). For intensive courses (i.e. intersession, abridged courses) and AEC courses, timely feedback must be adjusted accordingly;

Academic Procedure: Academic Integrity, Cheating and Plagiarism (Article 9.1 and 9.2)

Cheating and plagiarism are unacceptable at John Abbott College. They represent infractions against academic integrity. Students are expected to conduct themselves accordingly and must be responsible for all of their actions.

COLLEGE DEFINITION OF CHEATING

Cheating means any dishonest or deceptive practice relative to examinations, tests, quizzes, lab assignments, research papers or other forms of evaluation tasks. Cheating includes, but is not restricted to, making use of or being in possession of unauthorized material or devices and/or obtaining or providing unauthorized assistance in writing examinations, papers or any other evaluation task and submitting the same work in more than one course without the teacher's permission. It is incumbent upon the department through the teacher to ensure students are forewarned about unauthorized material, devices or practices that are not permitted.

COLLEGE DEFINITION OF PLAGIARISM

Plagiarism is a form of cheating. It includes copying or paraphrasing (expressing the ideas of someone else in one's own words), of another person's work or the use of another person's work or ideas without acknowledgement of its source. Plagiarism can be from any source including books, magazines, electronic or photographic media or another student's paper or work.