Fall 2021

Rahul Pandey (rkpandey@cs.stanford.edu)

[Syllabus link] Learn basic, foundational techniques for developing Android mobile applications and apply those toward building a single or multi page, networked Android application.

The goal for this class is to build several Android apps together, empowering you to extend them, create your own apps, and build a portfolio.

Topics include: the Android ecosystem, introduction to Kotlin, UI elements, lists, multiple activities and intents, working with APIs, and cloud storage.

Meeting time and place

Wednesdays, 5:30 PM - 6:30 PM at Hewlett Teaching Center Rm 101

Office Hours

Thursdays, 6-7pm (Zoom link available in Canvas)


Week 1: Introduction to Android

Week 2: Introduction to Kotlin

Week 3: Layouts, UI, and Responding to User Input

Week 4: ImageView + RecyclerView

Week 5: Activities

Week 6: Intents

Week 7: Networking

Week 8: Firebase + other topics in Android

Week 9: Panel discussion


There are 3 Android projects in this class. Each assignment should have a Github repository which includes the README.md template specified for each assignment.

Assignment 1 – Tip Calculator

Assignment 2 – My Maps

Assignment 3 – Yelp Clone

Course Policies


We will primarily use Ed Discussion for course announcements and questions. Unless your question has sensitive information, please use Ed for asking and answering questions so others can benefit.


CS 106B, or an equivalent amount of programming experience, is expected for this class. Experience with Kotlin is not required.

If you have not taken CS 106B, you are still welcome to take this class, but you should expect the assignments to take significantly longer to complete.


You must complete each of the 3 assignments plus any extension to gain credit.

An extension can be anything from changing the background color of the app to introducing a new screen into the app. My goal is for you to do something beyond what is shown in the walkthrough video.

Collaboration Policy

The walkthrough videos will guide you through the majority of each assignment. You may discuss extensions with other students and you may work together to come up with solutions. Each student must write the code for their extension independently.

Late Submissions

Late submissions are not permitted. Since there are only 3 assignments, and we will be doing peer reviews, it's essential that submissions happen on time.

If you have questions about these policies, please ask me.