EECS 1022 3.0 Sections M, N, and O
Programming for Mobile Computing
Winter 2020
Department of Electrical
Engineering & Computer Science,
York University
For course announcements and other information, see the course page on
Moodle!
Classes start January 6. Labs will only start on January 13, 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 January 12.
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.
Section M Information
Instructor: Dr. Andriy Pavlovych
Instructor office: LAS 2015
Instructor email: andriyp "at" eecs.yorku.ca
Lectures: Mondays from 14:30 to 16:30 in VH A.
Office hours: Mondays from 10:00 to 12:00.
Labs:
- Lab 1: Tuesday from 10:00 to 13:00 in WSC 106.
- Lab 2: Tuesday from 10:00 to 13:00 in WSC 108.
- Lab 3: Tuesday from 10:00 to 13:00 in WSC 105.
- Lab 4: Wednesday from 11:00 to 14:00 in WSC 106.
- Lab 5: Wednesday from 11:00 to 14:00 in WSC 108.
- Lab 6: Cancelled.
- Lab 7: Tuesday from 17:00 to 20:00 in WSC 108.
Section N Information
Instructor: Prof. Yves Lespérance
Instructor office: LAS 3052A
Instructor email: lesperan "at" eecs.yorku.ca
Lectures: Tuesdays from 14:30 to 16:30 in VC 135.
Office hours: Tuesdays from 17:00 to 18:00 and Thursdays 13:30
to 14:30.
Labs:
- Lab 1: Friday from 10:30 to 13:30 in WSC 106.
- Lab 2: Friday from 10:30 to 13:30 in WSC 108.
- Lab 3: Friday from 10:30 to 13:30 in WSC 105.
- Lab 4: Monday from 11:00 to 14:00 in WSC 106.
- Lab 5: Monday from 11:00 to 14:00 in WSC 108.
Section O Information
Instructor: Dr. Mufleh Al-Shatnawi
Instructor email: mufleh "at" eecs.yorku.ca
Lectures: Mondays from 10:30 to 12:30 in VH A.
Office hours: TBA.
Labs:
- Lab 1: Wednesday from 14:30 to 17:30 in WSC 106.
- Lab 2: Wednesday from 14:30 to 17:30 in WSC 108.
- Lab 3: Wednesday from 14:30 to 17:30 in WSC 105.
- Lab 4: Thursday from 16:30 to 19:30 in WSC 106.
- Lab 5: Thursday from 16:30 to 19:30 in WSC 108.
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 D0 App (in Chapter 0-Doing) and to read
Chapter 0-Learning on your own by January 125 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 |
25% |
Test 2 |
25% |
Final Exam | 30% |
Total | 100% |
Tentative Schedule
WEEK OF |
LECTURE |
LAB |
January 6 |
Chapter 0 |
No Labs (but do the App D0 on your own) |
January 13 |
Chapter 1 |
Prepare D1 App |
January 20 |
Chapter 2 |
Get D1 App Checked & Prepare D2 App |
January 27 |
Chapter 2 |
Do Practice Test 1 & Get D2 App Checked |
February 3 |
Chapter 3 |
Test 1 |
February 10 |
Chapter 3 |
Prepare D3 App |
February 17 |
No Lecture |
No Lab |
February 24 |
Chapter 4 |
Get D3 App Checked |
March 2 |
Chapter 4 |
Prepare D4 App |
March 9 |
Chapter 5 |
Get D4 App Checked |
March 16 |
Chapter 5 |
Test 2 |
March 23 |
Chapter 5 |
Prepare D5 App |
March 30 |
Review |
Get D5 App Checked |
Labs
-
All lab sections start on January 13.
-
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
105, 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.
-
To get full marks, the lab apps must be checked by the TA and files
must be uploaded using WebSubmit; the deadlines for doing
this are as follows:
- App D1 checked in your lab during the week of January 20 and
uploaded by January 25,
- App D2 checked in your lab during the week of January 27 and
uploaded by February 1,
- App D3 checked in your lab during the week of February 24 and
uploaded by February 29,
- App D4 checked in your lab during the week of March 9 and
uploaded by March 14,
- App D5 checked in your lab during the week of March 30 and
uploaded by April 4.
Policies
- Announcements and information about the course will be posted on
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.
-
Missed test: If you miss a test (not
the final exam) due to illness, you must obtain a filled out
Attending Physicial's Statement form and upload it the WebSubmit site for
your section under assignment
missedTestN as appropriate within one week of the
missed test. If you were not ill but have some other valid
justification for missing a test, follow the same procedure and
upload a justification document in PDF format including any
supporting documentation within a week.
If your explanation for missing the test is approved, the weight of
the missed test will be moved onto the final exam and other test.
Our decision will be posted in a file decision.txt in the
same WebSubmit directory within one week of the deadline.
- Missed lab assignment submission deadline: If you miss the
deadline for getting one of your lab assignment apps checked or
uploaded due to illness, follow the same procedure as for missed
tests, uploading your Attending Physicial's Statement under the
missedLabDn assignment using WebSubmit within one week of the
missed lab deadline. Then, take a copy of
your Attending Physician's Statement to your next lab meeting, show it
to the TA, and ask the TA to check your lab app as usual.
You must also upload your app
source files under the missedLabDn assignment using
WebSubmit.
- Missed final exam: Students who miss the final exam and
want to take a makeup final exam must
properly complete a
Deferred Standing Agreement form and submit it
together with your supporting documentation to the EECS Department
Undergraduate Office (LAS 1012M) within one week of the originally
scheduled exam.
- Reappraisal requests: If you believe that there has been
an error in the assessment of one of your tests, you may submit a
reappraisal request within one week of the feedback being posted. To
do this, fill out this reappraisal request form and
then use WebSubmit to upload it (either as a text or PDF file), using
the reappraisalTestN assignment as appropriate. It is
essential that you explain clearly on the form why you think the work
has been marked incorrectly. After
the request has been processed, our response will be posted in a file
response.txt in the same WebSubmit directory as the
reappraisal request. Such reappraisal requests will be processed
within four weeks after being uploaded. (Lab app assessments are not
normally reappraised. If you have an issue about a lab assessment and
cannot resolve it with the TA, email the instructor.)
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 own
computer. See Chapter 0-Doing of the textbook and this document on different versions of Android Studio for information in how to do this. Note that default downloaded version is different from the one installed in the lab, and this is discussed in the document.
-
As discussed in the document on different versions of Android Studio, another option is to install the EECS VBox (follow the link in the
document, which also appears in the Resources section below) as it has the lab version of the Android Studio 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