CSCI 251: Android App Development (S18)

CSCI 251: Android App Development

General Information

Professor: Simon D. Levy
Meeting: MTWRF 1:30 – 3:30 PM Parmly 405
Office: Parmly 407B
Office Hours: MTWRF 3:30-4:30 and by appointment

Textbook: Phillips, Stewart, Hardy, and Marsicano, Android Programming: The Big Nerd Ranch Guide (3rd edition), Big Nerd Ranch Guides, 2015. Packt Publishing, 2015. This book is available online to W&L students.

Course Objectives

By the end of the course you will be able to

  1. Design, develop, and deploy mobile apps on Android devices
  2. Build remote-sensing devices for the Internet Of Things

Our focus on concrete skills means that you should expect to spend a significant amount of time coding. If you’re not coding a little each day, you’re not going to do well in this course. For this reason, I will try to divide our class time evenly between lecture and hands-on coding exercises.

Although you will not need an Android device (phone, tablet) to complete the course, it is much more fun to work on such a device, instead of relying on the Android emulator. So if you want to do a final project with Android and do not have a device, I will provide one for you.


At this point in your CS career you probably realize that what matters most is the quality of the work (software) you create and the impression you make as a serious student and software professional. Hence:

  1. Three or more unexcused absences will result in a grade of F.
  2. If you are behaving inattentively in class (texting, browsing the web, dozing off, yawning conspicuously), I will ask you to leave.
  3. If your code produces a fatal error in Android Studio (or whatever environment we’re using), you’ll get a zero on the entire assignment.
  4. No late work will be accepted, or make-up quizzes given, without a note from the Dean’s office.

The best way to avoid the “But the program worked when I ran it!” problem is to submit your code early to your sakai dropbox, download it from sakai into an empty folder, and run it yourself.


  • Weekly program assignments (due Friday): 30%
  • Weekly quizzes (Friday): 45%
  • Final project, which you can do in a team: 25%

Most of the programming assignments will come directly from the textbook and will prove straightforward if you read the textbook up to that point. The quizzes will come directly from the online lecture slides.

The grading scale will be 93-100 A; 90-92 A-; 87-89 B+; 83-86 B; 80-82 B-; 77-79 C+; 73-76 C; 70-72 C-; 67-69 D+; 63-66 D; 60-62 D-; below 60 F.

Honor System

The quizzes will be done without books or notes and without assistance from other people. You can discuss your programming assignments with other students in the class, but you should not share code. Talk to me before asking another student for help!


Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Office of the Dean of the College. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the (fall or winter) term and schedule a meeting outside of class time to discuss accommodations. It is the student’s responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking should be arranged with the professor at least a week before the date of the test or exam.

Programming assignments

Programming assignments should be submitted through your dropbox on Sakai. Each assignment is due 11:59 PM on the day posted.

The Macs in the CS Department have Android Studio) installed, but I encourage you to download it onto your laptop or home computer and work on these assignments anywhere you like. Scheme is a simple, elegant language that encourages working on problems in small pieces, so it’s convenient to have Dr. Racket available any time you get inspired to do a little coding. Experience has taught me that the students who do best in this course are the ones who start the assignments early and take advantage of office hours for help.

  1. Assignment 1 (due Friday 26 Apr)
  2. Assignment 2 (due Friday 04 May)
  3. Assignment 3 (due Friday 11 May)

Tentative Schedule






22 April
Week 1
Course Overview

Intro to Android

Exercise: Hello World in Android

The Model-View-Controller Pattern;
Threading / Concurrency
Reading: Chapters 1-2
The Model-View-Controller Pattern;
Threading / Concurrency
Anonymous inner classes in Java

XML Overview

Quiz 1

Assignment 1 due 11:59pm

Optional: Create a github repo

29 April
Week 2
Layouts and Widgets

Chapters 3-5, 7-8

The Android Activity Lifecycle Guest Lecture: Professional App Development
Prof. Gavin Fox
Multiple activities Quiz 2

Assignment 2 due 11:59pm

Final Project Proposals due

06 May
Week 3
Fragments Lists (Chapter 9) Dialogs (Chapter 12) SQLite Databases

Network Programming

Quiz 3

Assignment 3 due 11:59pm

13 May
Week 4
Work on final project Work on final project Work on final project Work on final project Finish final project