EECS 1022 3.0 Section A
Programming for Mobile Computing
Summer 2020

Department of Electrical Engineering & Computer Science,
York University

For course announcements and other information, see the course page on Moodle!

The first lecture will be on May 13; see the course page on Moodle for the Zoom meeting ID information.

Labs will only start on the week of May 18, but you are expected to obtain the textbook (see below) and do the D0 app described in Chapter 0 "Doing" of the textbook on your own by May 18. Chapter 0 of the textbook is available for download on the book website.

Course Description

This course provides a first exposure to object-oriented programming and enhances student understanding of key computing skills such as reasoning about algorithms, designing user interfaces, and working with software tools. It uses problem-based approach to expose the underlying concepts and an experiential laboratory to implement them. A mature mobile software infrastructure (such as Java and the Android programming environment) is used to expose and provide context to the underlying ideas. Laboratory exercises expose students to a range of real-world problems with a view of motivating computational thinking and grounding the material covered in lectures.

Object-Oriented Programming

Mobile Computing

Prerequisites: EECS 1012 3.0
Course Credit Exclusions: EECS 1021 3.0, EECS 1020 3.0, CSE 1020 3.0, ITEC 1620 3.0

Learning Outcomes

By the end of the course, the students will be able to:

General Information

Instructor: Prof. Yves Lespérance
Instructor office: LAS 3052A
Instructor email: lesperan "at" eecs.yorku.ca
Lectures: Wednesday from 18:30 to 20:30
Office hours: Wednesday and Thursday from 16:30 to 17:30.
Labs:

Textbook

Roumani, H., Introduction to Computer Science with Android, Second Edition with the CS Trail, CompuScope Consulting, 2020, ISBN: 978-1-7751254-1-9.
book website.

The textbook is required. It is available on Amazon.ca (follow the link on the book website to order) and from the York University Bookstore (order early to avoid delays). The first edition is on reserve in Steacie Library.

This textbook contains the requirements of the lab apps (D1 through D5) and guides you through their development in its "Doing" chapters.

You are expected to do the Zero App in Chapter 0-Doing and to read Chapter 0-Learning on your own by May 18 at the latest. Chapter 0 is available for download on the book website.

Note that there have been recent changes in Chapter 0 of the Second Edition to use JUnit testing early instead of PSVM testing (which is no longer supported by the latest version of Android Studio). These changes are in Sectiions L0.2.b and L0.2.d. Make sure your version of the textbook contains the new version of Chapter 0, which can be downloaded from the book website.

There is a series of video clips on the textbook website (the "Walkthrough") that walks you through the entire app development process and applies this process to develop the D1 app. It is highly recommended that you watch these clips during the first week of the term.

Evaluation Scheme

Labs Apps D1-D5 (5 @ 4% each)      20%
Test 1      20%
Test 2      25%
Final Exam      35%
Total 100%

Tentative Schedule

WEEK OF LECTURE LAB
May 11 Chapter 0 No Labs (but do the App D0 on your own)
May 18 Chapter 1 Prepare D1 App
May 25 Chapter 2 Get D1 App Checked
June 1 Chapter 2 Do Practice Test 1 & Prepare D2 App
June 8 Test 1 & Chapter 3 Get D2 App Checked
June 15 Chapter 3 Prepare D3 App
June 22 No Lecture No Lab
June 29 No Lecture Get D3 App Checked
July 6 Chapter 4 Prepare D4 App
July 13 Chapter 4 Get D4 App Checked
July 20 Chapter 5 Prepare D5 App
Juy 27 Test 2 & Chapter 5 Prepare D5 App
August 3 Chapter 5 Get D5 App Checked
August 10 Chapter 5 & Review No Labs

Labs

Policies

Academic Honesty

During tests and exams, students are expected to work individually, and only access permitted resources. Communicating with others during the test, using aids that are not permitted, and impersonation are all examples of academically dishonest behaviour.

Student are expected to read the Senate Policy on Academic Honesty. See also the EECS Department Academic Honesty Guidelines.

Programming Environment

EECS Remote Lab

The EECS Remote Lab service allows you to connect to EECS lab workstations from within your web browser. The workstation's desktop is displayed within the browser window and you can run any software available on the workstation as if you were there.

If you don't already have one, you will need to generate an EECS account before using remotelab by visiting: https://webapp.eecs.yorku.ca/activ8. It takes about 40 minutes for the EECS account to get created, and then you can login to remotelab. You must be enrolled in EECS 1022 for this to work (if you just enrolled in the course, it will take one day for the enrollment data to be uploaded to EECS systems).

Once you have an EECS account, you can use the remotelab service. Go to https://remotelab.eecs.yorku.ca, login, and select Linux Remote Desktop (EDU), and then any of the WSC workstations listed. You will be logged in as "user" and can work as if in the lab.

This uses Apache Guacamole; see this link for documentation. To cut-and-paste between your desktop and the remote desktop, open the Guacamole menu by pressing Ctrl+Alt+Shift and paste into the clipboard there.

To run Android Studio on the lab workstation, select it under development apps. There are two predefined projects there that you can run. Also preinstalled are two virtual devices that you can run apps on, a Nexus 9 API 29 tablet and a Pixel 3a XL API 29 phone.

Notice on the Platforms Used

Several platforms will be used in this course (e.g., Moodle, Zoom, Echo360, etc.) through which students will interact with the course materials, the course director / TA, as well as with one another. Please review the syllabus to determine how the class meets (in whole or in part), and how office hours and presentations will be conducted.

Students shall note the following:

Technology requirements and FAQs for Moodle can be found here.

Resources