EECS 1022 3.0
Programming for Mobile Computing
Summer 2019
Department of Electrical
Engineering & Computer Science,
York University
For course announcements, see the course page on Moodle!
The first lecture will be on May 2. There is no lab on April 30, 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 5.
Chapter 0 of the textbook is available for download on the
book web site.
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
- Primitive types
- Classes and objects
- Control structures
- Collections
Mobile Computing
- User interface elements and XML
- Layouts and Themes
- Activities and Intents
- Event Handlers
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:
- Understand software development within an object-oriented framework using a modern programming language and tool set.
- Use a set of computing skills such as reasoning about algorithms, tracing programs, test-driven development, and diagnosing faults.
- Explain and apply fundamental constructs in event-driven programs, including variables and expressions, control structures (conditionals/loops), and API usage.
- Write simple programs using a given software infrastructure, API, and tool chain.
- Gain exposure to a comprehensive mobile computing framework.
- Gain exposure to user interface design.
Instructor
Prof. Yves Lespérance
Office: LAS 3052A
Tel: 736-2100 ext. 70146
Email: lesperan "at" cse.yorku.ca
Lectures
Thursday from 16:30 to 18:30 in LAS C.
Labs
- Lab 1: Tuesday from 18:00 to 21:00 in WSC 106 (WSC is William Small Centre).
- Lab 2: Tuesday from 18:00 to 21:00 in WSC 108.
- Lab 3: Tuesday from 14:30 to 17:30 in WSC 106.
- Lab 4: Tuesday from 14:30 to 17:30 in WSC 108.
- Lab 5: Wednesday from 14:30 to 17:30 in WSC 108.
Instructor Office Hours
Tuesday 13:00 to 14:00 and Thursday from 15:00 to 16:00, in LAS 3052A.
Textbook
Roumani, H.,
Introduction to Computer Science with Android,
CompuScope Consulting, 2019, ISBN: 978-1-7751254-0-2.
book web site.
The textbook is required. It is available on Amazon (order it
early to avoid delays) and at the York bookstore (while quantities
last) and is on reserve in Steacie Library.
This textbook contains the requirement 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 (Chapter 0-Doing) and to read
Chapter 0-Learning on your own by May 5 at the latest.
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 |
30% |
Test 2 |
30% |
Test 3 | 20% |
Total | 100% |
Tentative Schedule
WEEK OF |
LECTURE |
LAB |
April 29 |
Chapter 0 |
No lab (but do the App D0 on your own) |
May 6 |
Chapter 1 |
The D1 App |
May 13 |
Chapter 2 |
The D2 App |
May 20 |
Chapter 2 |
The D2 App |
May 27 |
Chapter 3 |
Test 1 |
June 3 |
Chapter 3 |
The D3 App |
June 10 |
No Lecture |
No Lab |
June 17 |
Chapter 4 |
The D4 App |
June 24 |
Chapter 4 |
The D4 App |
July 1 |
Chapter 5 |
Test 2 |
July 8 |
Chapter 5 |
The D5 App |
July 15 |
Chapter 5 |
The D5 App |
July 22 |
No Lecture |
Test 3 |
Labs
-
All lab sections start on May 7.
-
You must attend the lab section in which you are officially enrolled (so do not enroll in a section that conflicts with your schedule). Neither the professor nor the TA can make lab transfers or facilitate switching lab sections. Such a switch may only be done through the Registrar's Enrollment Module (REM).
-
All lab sections are held in the William Small Centre (WSC) in Rooms 106 and 108. Check your enrollment to determine the time and venue of the lab section in which you are enrolled.
-
Lab work is to be completed in teams of two with the pair working together and receiving the same mark. Both partners must be enrolled in the same lab section.
There are 5 lab apps in total (D1 through D5) and you find them in the Doing Chapters 1 though 5 of the textbook. See below to find out the date in which each app is due.
-
It is expected that you try to complete the development of the app of the week on your own before going to your lab session. To that end, use the hints in the book; collaborate with your partner; and post questions on the Moodle forum.
-
When your app is fully tested, upload its three source files (the activity and model java files plus the layout xml file) plus any resources (such as strings.xml) to the WebSubmit site. Note that the sizes of these files are in the few KB range so that total upload will be less than 100KB.
Both partners in the team must do this.
-
In your lab session, re-create the project on a lab workstation. This means you start fresh and re-implement the project from scratch. You can peek at the source files that you may have uploaded to the course cloud, or copy and paste parts of them, but do not copy entire files or directories. This is because your home machine may have a different version of the Android SDK, or a different project configuration, from the lab machine, which means copying files or entire folders won't work.
-
Next, deploy the app on a Departmental tablet and show it to the TA (you cannot use your own Android device). The TA will check your app and give you (and your partner) a mark (out of 4).
-
If you got stuck and couldn't complete the app before your lab session then that's OK: the lab session is intended primarily as a learning environment. Go to your lab session and the TA will be happy to help.
-
The lab apps must be checked by the TA and files must be uploaded using WebSubmit by these deadlines:
- App D1 by May 13,
- App D2 by May 20,
- App D3 by June 18,
- App D4 by June 25,
- App D5 by July 15.
Lecture Slides
- Lecture slides for Lecture 1, May 2, 2019.
Required readings: Chapter 0 of the textbook, both the Doing and Learning parts.
- Lecture slides for Lecture 2, May 9, 2019.
Required readings: Chapter 1 of the textbook, both the Doing and
Learning parts.
- Lecture slides for Lecture 3, May 16, 2019.
Required readings: Chapter 2 of the textbook, both the Doing and
Learning parts.
- Lecture slides for Lecture 4, May 23, 2019.
(explanations of the examples on slides 25 and 26 are
here).
Required readings: Chapter 2 of the textbook,
both the Doing and Learning parts.
-
Lecture slides for Lecture 5, May 30, 2019.
Required readings: Chapter 3 of the textbook,
both the Doing and Learning parts.
-
Lecture slides for Lecture 6, June 6, 2019
(solutions to the exercises on the last slide are
here).
Required readings: Chapter 3 of the textbook,
both the Doing and Learning parts.
-
Lecture slides for Lecture 7, June 20, 2019:
part 1 on Strings,
part 2 on Exception Handling,
(solutions to the exercises on the 5th slide are
here.
Required readings: Chapter 4 of the textbook,
both the Doing and Learning parts.
-
Lecture slides for Lecture 8, June 27, 2019:
part 1 on Regular Expressions (slides 6 to 9)
(solutions to the exercises on the 9th slide are
here),
part 2 on Other Control Structures (while, switch, etc.).
You may also find the
Java
Tutorial on Strings and the
Java Tutorial on Regular Expressions useful.
Required readings: Chapter 4 of the textbook,
both the Doing and Learning parts.
-
Lecture slides for Lecture 9, July 4, 2019.
The examples:
SumDiv7_Array.java,
and
SumDiv7_Col.java.
Required readings: Chapter 5 of the textbook,
both the Doing and Learning parts.
-
Lecture slides for Lecture 10, July 11, 2019.
The example:
WordSmith.java
Required readings: Chapter 5 of the textbook,
both the Doing and Learning parts.
-
Lecture slides for Lecture 11, July 18, 2019.
The example:
WordSmith.java.
The graph of functions commonly used in the analysis of algorithms is
here.
Required readings: Chapter 5 of the textbook,
both the Doing and Learning parts.
Policies
-
Information about the course will be posted here and
announcements will appear the course's Moodle
site. You are responsible for checking these regularly, especially the
Course Announcements!
-
You can post questions to the course forum. Don't post solutions to lab questions!
-
When emailing the instructor, put EECS1022 in the Subject line, and include your Passport York ID in the message.
Academic Honesty
During tests and exams, students are expected to do their own
work. Looking at someone else's work during the test, talking during
the test, using aids not permitted (such as a phone) during the test,
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
-
You will need to have access to a computer with the Android
Studio IDE installed.
-
One option is to download this free IDE and install it on your home
computer (see Chapter 0-Doing of the textbook).
-
Another option is to install the EECS VBox (see link in the
Resources section below) as it has the IDE already installed. This option has the advantage that its environment is identical to that of the lab, so transfering projects would be a bit easier. It has the disadvantage that you have to deploy your app on a real Android device rather than an emulator (which is fine if you have an Android phone or tablet).
-
On campus, you can borrow a laptop from the Prism lab. These loaner laptops have the IDE already installed (same environment as the lab workstations).
-
You will also need an Android tablet to deploy your app. A tablet
will be given to each pair of students at the beginning of the lab
session.
-
You can also deploy your app on your own Android device but the TA will only mark it on the Departmental tablets.
Resources