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
- 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.
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:
- Lab 1: Tuesday from 18:00 to 21:00
- Lab 2: Tuesday from 18:00 to 21:00
- Lab 3: Tuesday from 18:00 to 21:00
- Lab 4: Thursday from 18:00 to 21:00
- Lab 5: Thursday from 18:00 to 21:00
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
-
Labs start on the week of May 18.
-
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). Contact the EECS
Undergraduate Office if you need help with this.
-
All lab sections are held on Zoom. The Zoom meeting ID information
will be posted on Moodle by May 19.
Check your enrollment to determine the section and time of the lab section in which you are enrolled.
-
Lab work may be completed individually or in teams of two (with
the pair working together and receiving the same mark).
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 your lab session. To that end, use the hints in the book; collaborate with your partner; and post questions on the Moodle forum.
-
If you get stuck and can't complete the app before your lab session, that's OK: the lab session is intended primarily as a learning environment. Attend your lab session and the TA will be happy to help.
-
To get full marks, your lab app must be checked by the TA and
its sourse files files must be uploaded on Moodle by the deadline.
-
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 Moodle course site under the
labDn assignment.
Note that the sizes of these files are in the few KB range so that total
upload will be less than 100KB.
At the top of your Java files you must put identification information as follows:
// Student Name: XXX
// This lab was was done [individually OR with partner NAME and PPY]
Both partners in a team must do this.
-
You can get your app checked by the TA by demonstrating it to your TA live
on Zoom during the lab session in the week when the app is due. You
can use a virtual/emulated Android device or a real Android device
when doing this. Instructions to follow for the demo will be
announced on Moodle before each app is due.
-
You can also make a short video demonstration (at most 5
minutes) and your TA will grade "offline" it in the week that follows.
In this case, you must upload your video to a streaming service such as YouTube (or
e.g. Vimeo) and provide the URL where the video can be viewed with
your code by the deadline.
Do not upload the video file itself on Moodle; if you do
this, we won't grade it and you will get 0!
Include the URL where the video can be viewed in the identification
information at the top of your code.
-
Re. uploading videos to YouTube (now owned by Google): YouTube provides a very straightforward mechanism for uploading video. You will require a gmail account to upload video, and all such video will be associated with your account. Browse to www.youtube.com and select Upload. You will then be prompted for the file to upload. Once uploaded, you will be provided with a URL that links to your video. You can annotate and delete videos uploaded to YouTube. I t does take some time to convert videos to the format used by YouTube. The TAs can provide advice on this.
-
A word of caution: Any video you publish to the Internet could be visible to all users of the Internet. It is therefore prudent to ensure that the video that you are uploading is the one you intend to upload, and that you hold the copyright to the material that you post.
-
The deadlines for submitting your apps on Moodle are as follows:
- App D1 by May 29,
- App D2 by June 12,
- App D3 by July 3,
- App D4 by July 17,
- App D5 by August 7.
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 are encouraged to 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 upload a note in PDF format reporting your illness
on the day of the test in Moodle under assignment
Missed Test N within one week of the missed test (at this point
in time, you are not required to provide a filled out
Attending Physicial's Statement form; if this channges, you will
be notified).
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.
- 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 illness reporting note on Moodle under the
Lab DN Late Submission assignment within one week of the
missed lab deadline. You must also upload your app
source files under the assignment in Moodle.
- 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 to the instructor
by email
together with your supporting documentation within one week of the originally
scheduled exam.
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
-
You will need to have access to a computer with the Android
Studio IDE installed.
-
The best 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 login to a WSC lab workstation remotely
through your browser using the EECS remotelab service.
This gives you access to the workstation
desktop in a browser window and you can run any software available
on the workstation, including Android Studio.
See the next section for details on how to do this.
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:
-
Zoom is hosted on servers in the U.S. This includes recordings
done through Zoom.
-
If you have privacy concerns about your data, provide only your first name or a nickname when you join a session.
-
The system is configured in a way that all participants are automatically
notified when a session is being recorded. In other words, a session cannot
be recorded without you knowing about it.
Technology requirements and FAQs for Moodle can be found
here.
Resources