Fall 2020

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, 4:00 PM - 5:20 PM using Zoom (find the link for upcoming and past lectures in Canvas).

Office Hours

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

Schedule

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 and Intents

Week 6: Activity Lifecycle + Guest Speaker

Week 7: Permissions + Networking/APIs

Week 8: Remote databases: Firebase (NO LECTURE)

Week 9: Additional topics in Android

Week 10: Panel Discussion

Assignments

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

Communication

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

Prerequisites

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.

Grading

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.