CMSC 436:

Programming Handheld Systems



Adam Porter

office hour info


TuTh 2:00pm - 3:15pm

CSI 1121

Class Resources

  1. CMCS 436 Forum

Useful Links

  1. Android Developer Center

  2. Getting Started Documents


This course will teach fundamental programming principles with a focus on the mobile environment and the Android Platform. The course will emphasize practical application of numerous academic concepts.

Students should already have a familiarity with Java, an understanding of basic Object Oriented Programming, studied basic algorithms and data structures.  Course projects will be written in Java using the Android SDK.  Some smartphone and tablet devices will be available for student use at various times during the course.

The Flipped Classroom Approach

This course will be taught using a flipped classroom approach. In short, this means that students will be expected to watch lectures and answer questions about those lectures online, prior to class. Classroom time will then be used mainly for active exercises, such as discussing the previously-viewed lecture, taking quizzes, and doing individual and group programming assignments and experiments. See the following link, “7 Things You Should Know About Flipped Classrooms” for more information.

The flipped classroom approach is different from the traditional approach in which students first learned new concepts during in-class lecture, and then practiced those concepts by doing outside-the-classroom projects. In the flipped classroom, instead, students are first taught  concepts outside-the-classroom via online lectures, and then they practice those concepts in-class with the instructor present.

To be successful, students may have to approach this class differently from how they’ve approached other non-flipped classes in the past. Most importantly, students must view the lectures before coming to class and must attend class sessions.

Please think about these requirements carefully, if you plan to take this class.

To incentivize this behavior, I will:

  1. 1)require students to complete and submit a short assignment, effectively showing that they’ve watched the lectures before coming to class. Students who do not submit this assignment by its due date, will not receive credit for attending the class sessions corresponding to those lectures;

  2. 2)take attendance during every class. Students who do not attend the class session, will not receive credit for doing the activities corresponding to that class; and

  3. 3)I will require each student to sign a statement acknowledging that they’ve read and understand this grading policy.

I will make PDF copies of the lecture slides and some in-class assignments available in the “Lectures / Labs” section of the website. There is no assigned book. 

I encourage students to participate in class discussions on the class CMSC 436 Forum.

Getting Started

Here are some resources you can check out if you want to get a head start.

The Android Developers Website has a lot of useful information. In addition, see the videos from the Google I/O conference.


Web Accessibility