The course will be built around the Google Android platform and will consist of three "phases" in which we will explore the application layer, the virtual machine layer, and the operating system layer, as described below.
In the first phase, we will learn about Android programming and some of the features of the mobile computing platform (e.g., using networking, location services, data persistence, etc.). We will use an Android emulator, as opposed to the actual hardware. This part of the course covers good software engineering and software design practices, and introduces the Android API.
In the second phase, we will investigate the underlying Java virtual machine (named Dalvik) that is part of the Android platform. By understanding how the virtual machine works, we will then be able to make changes to both applications and to Dalvik, using compiler techniques like loop optimizations, data flow optimizations, instruction reordering, etc.
In the final phase, we will consider the underlying operating system (a simplified version of Linux) and hardware. We will learn about synchronization issues, process scheduling, etc. We intend to use applications running on Android devices, so that students can consider physical issues such as energy drain, memory usage, etc.
TR 4:30-6:00 (Towne 311)
Back to Top
- The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie, often referred to as "K&R"
A variety of online material can be found under the Resources section.
Back to Top
- Group project (50% of grade)
- Students will work in groups of 3-4 to develop an Android application and deploy it on a physical device.
- Details are described here.
- These are mostly programming assignments that must be completed on your own.
- There will be occassional assignments that you will do in the lab during class time. You may work with one other student on these assignments.
- Late homework submissions will be subject to a 10% grade deduction per day. Homeworks will not be accepted more than one week late, so that solutions may be posted.
Credit for work will be recorded only as reported by the TA in the Gradebook on Blackboard. It is your responsibility to make sure that your work has been properly recorded in the Gradebook.
Make sure you call any problems with missing records to your TA's attention immediately; the grade entries on the Blackbaord will be considered permanent after one week subsequent to their posting. Similarly, make sure you address problems with grading – either on your homework or on an exam – immediately following the return of your work.
Our TA will be responsible for adjudicating these problems – the instructor will only be involved as a possible court of last appeal in case there is some truly difficult decision to make (i.e., in most cases, I will not be willing to second guess the TA ’s decisions). To submit a request to the TA for a review of a credit assignment on an exam or problem set you must submit an email to the TA , stating the nature of the problem and the remedy you desire. You must submit this adjustment request within one week of the return of the material in question. I have instructed the TA not to consider any requests for grade adjustments that are submitted later than this one week grace period.
Back to Top
You are expected to submit your own for homework assignments. If you are caught with work submitted that is completely copied from some other source, or that has been prepared by somebody other than you, you will face severe discipline by the university.
Homework assignments are to be completed individually unless explicitly stated. You may talk to fellow classmates regarding the assignment and share ideas on BlackBoard, but keep in mind what is appropriate and inappropriate about your collaboration:
- Person A doesn't understand what exactly the problem is asking, e.g. writing actual C code vs. pseudocode. He/She discusses this with Person B to arrive at one or the other.
- Person A does not understand a particular concept. Person B explains the concept using an example, other than one asked on the homework.
- A attempts half the problem, and B attempts the other half. A and B copy the solutions to half the assignment that the other person wrote.
- Together, A and B work out each homework problem on chalk/white board; then they separately copy down their work and turn it in.
- Person A completed a programming assignment and just before turning it in, he deleted his program - oh no!!!. In desperation, he/she asks Person B if he can turn in a copy of his/her program.
Note: When in doubt always ask the Instructor or TA first, to avoid any potential collabration that can lead to academic dishonesty.
Back to Top
You will turn-in all programming assignments using Blackboard. Follow the steps below.
- Log into Blackboard
- Open your course (CIS 542).
- In the main menu on the left-hand side, click "Assignments".
- Click on the assignment for which you want to submit your homework.
- In Section #2, "Assignment Materials", leave the "Submission" (the text area at the top) blank, as your submission will consist of files that you will upload.
- Below the textbox, next to the label "Attach File", click the "Browse for Local File" button. After you choose the file, you should see it listed next to the label "Attached files" (i.e., it should be uploaded automatically when you select it). Unless otherwise noted, your submission should consist of a single .zip or .tar file.
- After uploading all files, click the "Submit" button.
You may submit multiple times, but only the last submission will be graded.
Submissions after the deadline are subject to a 10% per day penalty, up to seven days, after which the submission will not be accepted.
Back to Top