EECS 1022 3.0 - Section A
Programming for Mobile Computing
Fall 2019
Department of Electrical
Engineering & Computer Science,
York University
The course materials for EECS 1022 - Section A will be posted on the York Moodle website
The first lecture will be on Monday, September 9, 2019. There is no lab on Friday, September 6, 2019, 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
Dr. Mufleh Al-Shatnawi
Email: mufleh "at" eecs.yorku.ca
Lectures
Mondays from 14:30 to 16:30 in VC 135.
Labs
- Lab 1: Friday from 10:00 to 13:00 in WSC 106 (WSC is William Small Centre).
- Lab 2: Friday from 10:00 to 13:00 in WSC 108.
- Lab 3: Friday from 10:00 to 13:00 in LAS 1002 (LAS is Lassonde Building).
- Lab 4: Friday from 17:00 to 20:00 in WSC 106.
- Lab 5: Friday from 17:00 to 20:00 in WSC 108.
- Lab 6: Friday from 17:00 to 20:00 in LAS 1002.
Instructor Office Hours
Fridays 10:30am -- 11:30am on Fridays in LAS 1002 or by appointments
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 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 Friday, September 13, 2019 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 |
Monday, September 09 |
Chapter 0 |
Do the App D0 on your own |
Monday, September 16 |
Chapter 1 |
The D1 App |
Monday, September 23 |
Chapter 2 |
The D1 App by Fiday, September 27 and start working on D2 App |
Monday, September 30 |
Chapter 2 and 3 |
The D2 App by Fiday, October 4 and start working on D3 App |
Monday, October 7 |
Chapter 3 |
Lab Test1, Friday October 11 |
Monday, October 14 |
Fall Reading Week |
No Classes, University open (Oct. 12- 18) |
Monday, October 21 |
Chapter 3 and 4 |
The D3 App by Fiday, October 25 and start working on D4 App |
Monday, October 28 |
Chapter 4 |
The D4 App by Friday November 1 and start working on D5 App |
Monday, November 4 |
Chapter 4 |
Lab Test2, Friday November 8 |
Monday, November 11 |
Chapter 5 |
The D5 App |
Monday, November 18 |
Chapter 5 |
The D5 App by Friday November 22 |
Monday, November 25 |
Chapter 5 |
Lab Test3, Friday November 29 |
Labs
-
All lab sections start on Friday September 13, 2019.
-
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).
-
Lab section 1 , 2, 4, and 5 are held in the William Small Centre (WSC) in Rooms 106 and 108. Lab section 3 and 6 are held in the Lassonde Building (LAS) in Room 1002. 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 September 27,
- App D2 by October 4,
- App D3 by October 25,
- App D4 by November 1,
- App D5 by November 22.
Lecture Slides
The course lecture slides will be posted on the York Moodle website
Policies
-
The course 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 (LAS 1006). 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