Logo       COMP 2601 A Winter 2018

COMP 2601 Mobile Applications


Lectures/Tutorials Monday,Wednesday 9:30-11:30 Canal Building room 2202

-same as lectures

Instructor Louis Nel

Calendar Description:

Development of applications for mobile environments taking advantage of gesture-based input and using location and presence services. Topics include introduction to low-level network services and mobile platforms, description of architectural patterns, principles of mobile development and interaction styles for network service usage.

Prerequisite(s): COMP 1601.

Lecture/lab four hours a week.

Course Description:

The course covers the principles involved in the design and implementation of mobile applications typically on the Android platform (Java) and IOS platform (Swift). The course will focus on the application frameworks, typical patterns, network interaction and data storage and exchange.


The follow are the topics we covered in the last offering and will be adjusted and updated as the course proceeds.

  • Multi-threaded application development on Android and IOS
  • Platform agnostic data representations: XML and JSON
  • Platform agnostic network protocols and databases (SQLite)
  • Use UI widgets.
  • App state: representation, accessing and updating
  • App communication mechanisms and patterns: services
  • Typical programming patterns and decoupling: e.g.Reactor pattern
  • Gestures


This course will be taught as a lab style course where there will be short lecture introductions followed by lab exercises during each scheduled lecture time. Lab exercises will relate to the homework assignments.

This is a "bring your own device" course where students are REQUIRED to come with a (laptop) computer capable of running the course software (typically a Macbook).

Android-based exercises will require an up-to-date Android Studio IDE and Java 1.8 JDK (which runs on all platforms: Windows, Mac, Linux). IOS based exercises will require Apple's XCode IDE and use the Swift programming language. This will require a Mac with latest OS (High Sierra). All the development software is available free of charge. (Android is open source, iOS is proprietory but Apple makes its development tools available free of charge.

Both environments implement simulators for running apps, and they've gotten better in recent years, you will enjoy things more if you do some testing on a real device (android phone/tablet, iphone/ipad).

Textbook and Notes:

The resources section of the course website will list recommended texts for various topics. These texts are not mandatory but references will be made to their contents. The recommended books are available in electronic form. We suggest you get the recommended texts if you don't find online resources sufficient.

Online resources will be posted in the resources section of the course web site and in the individual lecture schedule/topics section. It is expected that the resources will be updated and modified as the course progresses. Students will be expected to contribute to the list of helpful resources.

Course Material Copyright Notice:

We remind you that lectures and course materials, including power point presentations, outlines, code examples, and similar materials, are protected by copyright. The professor is typically the exclusive owner of copyright and intellectual property of the course materials unless otherwise noted. You may take notes and make copies of course materials for your own private (educational) use. You may not and may not allow others to reproduce or distribute lecture notes and course materials publicly for commercial purposes without my express written consent.

About sample code:
We often post sample code on the course web site to accompany lecture content or to use as a starting point for exercises and assignments. Often the sample code is intentionally taken from a recommended text, or online source, so that you can be referred to that source for further explanation. Because of this you need to respect the copyright of those sources as explained below.

You are free to use whatever sample code we post on the course web site as the starting point for your own work intended for submission as course assignments. Assignment submission uploaded to culearn are considered private and not published to the world at large. You may NOT however publish the sample code to the world at large. For example, using sample code from a copyrighted source in a public GITHub repository IS a copyright violation. If you are going to post any code to a public repository like GITHub make sure it is all your own work. GitHub as become a defacto repository used in much software development, however its free accounts do not allow private repositories at this time. Therefore anything placed in a free account is published to the world at large and should NEVER contain content that could represent a copyright violation.


Class lectures/tutorials are compulsory. There will be weekly programming exercises to be completed and demonstrated in class and count for a large part of you course mark. You must ensure you demonstrate your work to the TA or Prof. before you leave the session to get credit for your work.


We will be using electronic submission of assignments using the new CULearn system culearn. Electronic submission enforces strict deadlines. Only assignments submitted through culearn will be accepted for marking. No assignments will be accepted late or directly by email or in other forms. TA's are instructed not to accept assignments directly.

Teaching Assistants:

Since the TA's will be there at every lecture/tutorial they will not hold other office hours. Some assignments might require demos to the TA's which will be scheduled as needed.

Marking Scheme:

deliverable value comment
Class Tutorial Exercises 30%

We will drop the worst 4 tutorial exercises (about 80% will count).

Your results of the in class excerise must be demonstrated to the TA or Prof. before the end of the lecture section.

Your exercise will be given a mark of 0,1 or 2 as follows.

0 for no show or no progress.
1 mark for some progress during the exercise period.
2 marks for completion or significant progress.

A student who gets a 1 can upgrade their mark by showing the completed exercise at the start of the following class.

Assignments 30%

4 (or possibly 5) assignments equally weighted
All assignments count towards you final mark.

Midterm 10% In class (date TBA). (If your final exam mark is better than the midterm mark, the midterm mark will be replaced by the final exam mark)
Final Exam 30% Formally scheduled exam during exam period


Missed assignments will score 0 unless it is for a medical, or similar, reasons and is accompanied by official medical documentation. You will be excused from an assignment for medical reasons if accompanied by proper documentation. There are no assignment extensions. Documentation my be presented within two weeks of the assignment due date if you want to be excused. You don't have to present medical documenation for missed tutorials but the missed ones will count as one of the "worst four" that get ignored.

IMPORTANT: If you wish to appeal an assignment or midterm mark you must make the appeal within two weeks of the assignment mark being posted in culearn. After this we will not be obliged to entertain appeals or change marks.

Collaboration is encouraged but cheating, or copying, is not allowed. You may work together and consult but any work you hand in must be your own and judged to be unique. Any two assignments judged to be too similar will both receive a grade of 0, and will be handled as a formal academic offence -see calendar for details.

Course Web Page:

As well as being announced in class, all important information, such as course news, assignments, TA hours, instructor office hours, will be available on the course web page at http://www.scs.carleton.ca/~ldnel/2601winter2018. The course website is password protected. If you are registered in the course you can find your userid/password by logging into your culearn account. It is your responsibility to check this web page frequently for new information and announcements. Paper copies of outlines and assignments will not be provided.


Student Academic Integrity Policy

Every student should be familiar with the Carleton University student academic integrity policy. A student found in violation of academic integrity standards may be awarded penalties which range from a reprimand to receiving a grade of F in the course or even being expelled from the program or University. Some examples of offences are: plagiarism and unauthorized co-operation or collaboration. Information on this policy may be found in the Undergraduate Calendar, Section 14, Page 59.


As defined by Senate, "plagiarism is presenting, whether intentional or not, the ideas, expression of ideas or work of others as one's own". Such reported offences will be reviewed by the office of the Dean of Science.

Unauthorized Co-operation or Collaboration

Senate policy states that "to ensure fairness and equity in assessment of term work, students shall not co-operate or collaborate in the completion of an academic assignment, in whole or in part, when the instructor has indicated that the assignment is to be completed on an individual basis". Please refer to the course outline statement or the instructor concerning this issue.

Academic Accommodation

You may need special arrangements to meet your academic obligations during the term because of disability, pregnancy or religious obligations. Please review the course outline promptly and write to your instructor concerning any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. It takes time to review and consider each request individually, and to arrange for accommodations where appropriate. Please make sure you respect these timelines particularly for in-class tests, midterms and final exams, as well as any change in due dates for papers. You can visit the Equity Services website to view the policies and to obtain more detailed information on academic accommodation at http://carleton.ca/equity/accommodation

Students with Disabilities Requiring Academic Accommodations Register with the Paul Menton Centre for Students with Disabilities (PMC) for a formal evaluation of disability-related needs. Documented disabilities could include but are not limited to mobility/physical impairments, specific Learning Disabilities (LD), psychiatric/psychological disabilities, sensory disabilities, Attention Deficit Hyperactivity Disorder (ADHD), and chronic medical conditions. Registered PMC students are required to contact the PMC, 613-520-6608, every term to ensure that I receive your Letter of Accommodation, no later than two weeks before the first assignment is due or the first in-class test/midterm requiring accommodations. If you only require accommodations for your formally scheduled exam(s) in this course, please submit your request for accommodations to PMC by the deadlines published on the PMC website: http://www2.carleton.ca/pmc/new-and-current-students/dates-and-deadlines/

Religious Obligation

Write to your instructor concerning any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details visit the Equity Services website http://www.carleton.ca/equity/accommodation/student_guide.htm

Pregnancy Obligation

Write to your instructor concerning any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details visit the Equity Services website http://www.carleton.ca/equity/accommodation/student_guide.htm

Medical Certificate

The following is a link to the official medical certificate accepted by Carleton University for the deferral of final examinations or assignments in undergraduate courses. To access the form, please go to http://www2.carleton.ca/registrar/forms/