EECS 1022 3.0 - Section A
Programming for Mobile Computing
Fall 2020
Department of Electrical
Engineering & Computer Science,
York University
The course materials and course announcements for EECS 1022 - Section A will be posted on the York Moodle website
The first lecture will be on Friday, September 11, 2020. All course lectures will be online see the course page on Moodle for the Zoom meeting ID information.
There is no lab on Friday, September 11, 2020, 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 September 18, 2020.
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.
Instructor
Dr. Mufleh Al-Shatnawi
Email: mufleh "at" eecs.yorku.ca
Online Lectures
Fridays from 14:30 to 16:30.
The first lecture will be on Friday, September 11, 2020. All course lectures will be online see the course page on Moodle for the Zoom meeting ID information.
Labs
- Lab 1: Friday from 10:30 to 13:30.
- Lab 2: Friday from 10:30 to 13:30.
- Lab 3: Friday from 10:30 to 13:30.
- Lab 4: Wednesday from 12:30 to 15:30.
- Lab 5: Wednesday from 12:30 to 15:30.
Instructor Office Hours
by appointments
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 (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 18, 2020 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 Sections 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% |
Quizzes (4 @ 2.5% each) |
10% |
Test 1 |
20% |
Test 2 |
20% |
Final Exam | 30% |
Total | 100% |
All Quizzes, Tests and Final exam are held online using course Moodle, and all will be submitted electronically.
There are 5 labs in the course. There will be no shifting of grade weights for labs.
Tentative Schedule
Note: All course lectures will be online see the course page on Moodle for the Zoom meeting ID information.
Lecture will be every Fridays from 14:30 to 16:30, and the first lecture will be on Friday, September 11, 2020.
WEEK OF |
LECTURE |
IMPORTANT NOTES |
Monday, September 07 |
Chapter 0 |
No Labs (But do the App D0 on your own) |
Monday, September 14 |
Topics from Chapter 1 and 2 |
Prepare D1 App |
Monday, September 21 |
Topics from Chapter 1 and 2 |
Get D1 App Checked and start working on D2 App |
Monday, September 28 |
Topics from Chapter 1 and 2 |
Quiz1, Get D2 App Checked |
Monday, October 5 |
Topics from Chapter 3 |
Test1, Thursday October 8, 2020 and start working on D3 App |
Monday, October 12 |
Fall Reading Week |
No Classes, University open (Oct. 10 - 16) |
Monday, October 19 |
Topics from Chapter 3 and 4 |
Prepare D3 App |
Monday, October 26 |
Chapter 4 |
Quiz 2, Get D3 App Checked and start working on D4 App |
Monday, November 2 |
Topics from Chapter 4 |
Prepare D4 App |
Monday, November 9 |
Topics from Chapter 4 and 5 |
Quiz3, Get D4 App Checked and start working on D5 App |
Monday, November 16 |
Topics from Chapter 5 |
Test2, Thursday November 19 |
Monday, November 23 |
Topics from Chapter 5 |
Prepare D5 App |
Monday, November 30 |
Course Review |
Quiz4, Get D5 App Checked |
Labs
-
Labs start on the week of September 14, 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). 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 September 15, 2019.
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 source 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 can use Echo360 Universal Capture. Login and complete your Echo360 registration. Then, download and use Echo360 Universal Capture to create an offline demo video. The Echo360 will provide you with URL that can be used to view your demo video. Include this URL where the video can be viewed in the identification information at the top of your code. Do not upload the video file itself on Moodle;
Or, you can 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.
-
Recall for 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 lab apps must be checked by the TA and files must be uploaded using the course Moodle by these deadlines:
- App D1 by September 25,
- App D2 by October 2,
- App D3 by October 30,
- App D4 by November 13,
- App D5 by December 4.
Lecture Slides
The course lecture slides will be posted on the Course Moodle website or Check the link Echo360 Lecture Materials and Videos
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.
-
If you miss a test1 or test2 (not the final exam) due to illness, or any other properly documented reason. You have to upload a justification document in PDF format including any supporting documentation within a week of the missed test. You will upload your document to assignment called missedTest1 or missedTest2 using Course Moodle site within one week of the missed test. 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. Otherwise, the decision will be posted as feedback to your uploaded document.
Once a student begins writing a test or other assessment, the weight of that assessment will not be shifted for any reason. Thus, if a student is feeling ill, the student should not attend the test and seek the advice of a physician within twenty-four (24) hours.
-
If at the deadline one of your lab assignment apps is not complete, there is an extension with a penalty of 25% for each day that the submission is late. After 4 days the submission will be closed.
- 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.
Please read
the Deferred Standing/Extension of Deferred Standing Information Sheet
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.
-
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 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.
Students shall note the following:
-
Zoom Student Account
Follow the instructions posted on this link to login to the ZOOM meeting using your Passport York credentials.
- The Online lectures will be recorded and then these recorded lectures will be posted on Echo360.
Technology requirements and FAQs for Moodle can be found
here.
Resources