syllabus.md

Intro to Android (AND101)

πŸ“š Course Description

Through a series of hands-on labs and projects, this course empowers students to create their own single-screen Android apps. Students learn about designing, building, debugging applications in Android, then work in small teams to finish the course by creating a fully functional app.

Course Goals

At the completion of the course, students are expected to:

  • Create real, usable single-screen Android apps from scratch using real-world technologies: Android Studio, Kotlin, XML, and Gradle
  • Use XML to design custom layouts for apps and customize their appearance
  • Write code in Kotlin to add interactive functionality to apps, including:
    • Buttons, text boxes, calculations, network requests, lists


πŸ™‹ Student Expectations

Prior Knowledge

Students entering the program are expected to be able to:

  • define and implement functions, conditionals, loops, variables, primitive data types, and arrays in at least one programming language

Through the completion of the prework you will also learn how to:

  • set up an Android development environment on your computer, allowing you to edit and run apps
  • brainstorm a design for an Android app, paying attention to required features and technologies

Time Commitment

Students are expected to commit 4-6 hours a week during the duration of the 10-week program.

  • 2 hour synchronous class time
  • 2-4 hrs asynchronous work time on projects


πŸ—οΈ Course Structure

Key Activities

  • Synchronous Class Sessions: Students will meet synchronously once a week with their instructor.
  • Optional Office Hours: Attend office hours led by TAs. This is a time to ask questions about projects or topics in a smaller environment.

Topics Schedule

Topic Key Concepts
Android Studio Android Studio IDE, Gradle, debugging, git
Kotlin Syntax Kotlin programming language syntax and debugging
Layouts & Views Views in Android, Layouts, ViewBinding, RecyclerView
APIs & Networking APIs, parsing JSON responses, CodePath’s AsyncHttpLibrary
Resources & Attributes Resource files, attribute files, theming Android apps
App Lifecycle App lifecycle: onCreate, onDestroy, Shared Preferences

Projects

In this course you will have the opportunity to apply your understanding of the topics discussed in class and incorporate your own creativity through projects and labs.

  • Individual Projects: You will work on a total of 7 projects from weeks 1-7. They should take approximately 2-4 hours to complete and will be submitted at the end of the week.
  • Group Capstone Project: You will work on a group project in teams of 3-8 members. This will be an ongoing project from weeks 8-10.

The table below specifies the percentage weight a given section of the course has on the final grade.

Weight Section Description
50% Assignments Weekly app projects
50% Group Project Milestones Original app project and presentation


πŸš€ Capstone Project

During the last 3 weeks of the course, students will work together to design and create their own app!

Features you will be able to implement includes:

  • Scrolling lists of content
  • Pulling live data from an API (For example, thecatapi.com)
  • Entry boxes and buttons for user to press
  • Basic data saving between sessions

Example Capstone Project:

CodePath PetFinder

GIF of final project

This sample app uses an API to
show the user a list of animals available
for adoption near them!



βš–οΈ Policies