CMSC 436, Fall2023
Programming Handheld Systems
This course will teach fundamental programming principles with a
focus on the mobile environment and the Android Platform. The course
emphasizes practical application of numerous academic concepts.
Students should already have a familiarity with an object oriented
programming language, and studied basic algorithms and data
Course projects will be written in Kotlin for the Android platform
using the Android SDK.
This course follows all applicable University regulations and
policies. See the University's website on Course Related
Policies for definitive statements. Please note that many
long-term policies are changing due to the COVID-19 pandemic.
Major Scheduled Grading Events:
- Final project presentations, midterm exam, and final exam.
Minor Scheduled Grading Events:
- Each week's lectures typically have an assciated quiz and
laboratory assignment. These are graded.
Tentative Course Topic List
The topics for the class will cover the basic Android platform followed by advanced Android services and classes. We will call out general concepts and approaches that apply to other mobile platforms througout our discussion. Here is the tentative topic list:
- Handheld devices, their applications and usage patterns
- The Android Development Environment
- Application Fundamentals
- The Activity Class
- The Intent Class
- The Fragment Class
- User Interface classes
- Data Management
- Lifecycle-Aware Components
- The Broadcast Receiver Class
- Threads, Handlers, and Coroutines
- Multi-touch and Gestures
- The ContentProvider Class
- The Service Class
For most of the topics in this class, you will learn by doing. So
this class will place a substantial emphasis on short and long
term programming assignments. The
expected work and grading breakdown is shown below. We reserve the
right to take into account circumstances other than the ones indicated
below in calculating the grade (e.g., class participation, project
participation appearance at office hours, etc.).
each week's work is weighted equally
- Weekly assignments may be done collaboratively.
- Weekly assignments are due at 11:59pm on their due date.
- Assignments may be turned in late up until 9am the next morning. Late
submissions receive a 0.8 multiplier. We will grade your latest
submission. If you submit both on time and late, only the late
submission will be graded (and it will receive
the 0.8 multiplier). NOTE: Read this carefully. It is
generally NOT in your interest to submit late. So start
- Submit early and often. The solution submitted last before the
deadline is the one that will be graded.
- You must demonstrate a good faith attempt to complete each
programming project and submit it by that project's late due date. The determination
of what constitues a good faith attempt is subjctive, but typically requires at a minimum
that you write some of the code needed to complete the project. If you fail to meet
this requirement, the instructor may fail you for the entire course.
- Your success on this course's exams will depend on understanding
gained through the programming assignments. Do not let anyone spoon-feed
you the way to solve the programming projects, because this will leave
you unprepared for the exams.
Any regrades for project or exams must be requested within one week
of the date that your initial grade was given to you.
The University of Maryland, College Park has a nationally recognized
Code of Academic Integrity, administered by the Student Honor Council.
This Code sets standards for academic integrity at Maryland for all
undergraduate and graduate students. As a student you are responsible
for upholding these standards for this course. It is very important
for you to be aware of the consequences of cheating, fabrication,
facilitation, and plagiarism. For more information on the Code of
Academic Integrity, see the Academic Integrity and Student Conduct Codes website for
Here are some highlights of this Code as it applies to this course:
- The standard penalty for any academic dishonesty,
including facilitating academic dishonesty, is to receive a grade of
XF in the course. This grade denotes failure due to academic dishonesty.
- Logging onto another student's account, for any reason, is
- Attempting to falsely represent the correctness of your program, or to
delay other members of the class from completing a programming assignment,
is academic dishonesty
- We expect you to follow all guidelines for responsible machine
- The instructor is the information owner for all
CSIC accounts in this class, and all files in those accounts
may be inspected by him at any time, and may be used by him as
he sees fit to support educational ends.
Policies and Responsible Conduct
Cell phones. As a courtesy
to your fellow
pagers and cell phones must be off or on vibrate during class. Having cell phones or pages ring during
class repeatedly can result in points being deducted from a student's
Office Hours and
E-mail. Questions concerning the content of the course or
project should, as a general rule, be directed to
the class discussion
forum. This allows questions to be answered by whoever is
monitoring the forum, and the answer can benefit all students.
The instructors (Dr. Porter and the TAs) are happy to answer
questions during office hours and on the discussion forum.
However, office hours and email are not intended as a
replacement for attending lectures and recitations. As a result,
instructors will only respond to questions, whether during office
hours or on the newsgroup, from those students who regularly attend
class. Instructors may not respond to electronic questions
instantly. However, the instructors will
try to respond to email by the next regularly scheduled office hour
after it is sent. If a student cannot make it to scheduled
office hours, he or she is encouraged to make an appointment by e-mail
or after class.
Any student who needs to be excused for an absence from a single
lecture, recitation, or lab due to a medically necessitated absence
The self-documentation may not be used for the Major Scheduled Grading
Events as defined below and it may only be used for only 1 class
meeting during the semester. Any student who needs to be excused for
a prolonged absence (2 or more consecutive class meetings), or for a
Major Scheduled Grading Event, must provide written documentation of
the illness from the Health Center or from an outside health care
provider. This documentation must verify dates of treatment and
indicate the time frame that the student was unable to meet academic
responsibilities. In addition, it must contain the name and phone
number of the medical service provider to be used if verification is
needed. No diagnostic information will ever be requested. The Major
Scheduled Grading Events for this course include:
- Make a reasonable attempt to inform the instructor of his/her illness prior to the class.
- Upon returning to the class, present their instructor with a
self-signed note attesting to the date of their illness. Each note
must contain an acknowledgment by the student that the information
provided is true and correct. Providing false information to
University officials is prohibited under Part 9(i) of the Code of
Student Conduct (V-1.00(B) University of Maryland Code of Student
Conduct) and may result in disciplinary action.
- Midterm Assessment
- Final Assessment
Disabilities. Any student eligible for and requesting
reasonable academic accommodations due to a disability must provide
the instructor with a letter of accommodation from the Office of
Disability Support services (DSS) within the first two weeks of the
Course Evaluations. I
take your feedback seriously. At the end of the semester you will be
able to fill out a course evaluation at www.courseevalum.umd.edu.
However, while this feedback may benefit future students it doesn't
help you. So if you have a question, concern, suggestion, etc. let
me know now, while I still have a chance to address it.