CMSC 436, Spring 2022

Programming Handheld Systems

Time TTh 9:30-10:45
Name Office E-mail Office Hours
Adam Porter 5212 IRB by appt.
Sriram Balasubramanian AVW 4166 (by appt.) Th. 3:30--5:30pm Zoom link
Paaras Bhandari AVW 4166 (by appt.) MF 2--3pm Zoom link
Andrej Rasevic
Sai Yerramreddy AVW 4166 (by appt.) M 10--12pm Zoom link
Yixuan Ren AVW 4166 (by appt.) MF 3--4pm Zoom link



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.

This course is intended to be a project-based course. The introductory weeks focus on essentials needed to work on these projects. Students will complete multiple weekly assignments and one final team project. Each student will work with a team to design and implement an application for the final project. Designing applications for a mobile device presents unique challenges. User interface, mobile-specific technologies, and the importance of performance require special consideration. The Android SDK has it's own interesting aspects to learn: the multi-touch model, accelerometer, important APIs will receive attention. Students will learn important development concepts applicable to any environment as well as Android specific APIs.

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 Kotlin using the Android SDK. Some smartphone and tablet devices will be available for student use at various times during the course.

I will make PDF copies of the lecture slides and some in-class assignments available on the Lectures page of the website. There is no assigned textbook.

I strongly encourage students to participate in class discussions on the class Discussion Forum.

Class Links

Web Accessibility