CMSC 436, Fall 2020

Programming Handheld Systems

Time TTh 11:00-12:15
Name Office E-mail Office Hours
Adam Porter 5212 IRB by appt.
Anvitha Bhat 1266 IRB Thursday 2PM - 4PM Zoom link
Andrej Rasevic 1266 IRB Friday 4PM - 6PM Zoom link
Matthew Hou 1266 IRB Monday, Wednesday 1PM -2PM Zoom Link
Shoumit Karnik 1266 IRB Tuesday, Thursday 1PM - 2PM Zoom Link
Luan Tran 1266 IRB Monday, Wednesday 2PM - 3PM Zoom Link
Kumar Gaurav 1266 IRB Monday, Wednesday 3PM - 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