CS 4301.003 Fundamentals of Mobile App Development

Instructor: John Cole Tuesday/Thursday from 11:30 to 12:45
Office and Hours  Room: ECSS 2.203

Grader: Ezhil Lakshmanan.  Office hours: Monday and Wednesday between 12:30 PM to 1:45PM in ECSS 2.103B1

Last update: 3/26/2018
Syllabus is on Coursebook Schedule (Subject to change)
Textbook: There is no official textbook, but I will be working from Professional Android 4 Application Development by Reto Meier, published by Wrox Press.  Yes, it is a few versions behind, but it is still valuable.  I strongly recommended getting the eBook, and you can get the sample code online.  Another good book is Android Programming -- The Big Nerd Ranch Guide Third edition, by Bill Phillips, Chris Stewart, and Kristin Marsicano.  This is excellent except for one deficiency: it doesn't talk about Android sensors.  You can get access to the eBook for free from the McDermott Library.
This is a hands-on, practical course in writing mobile applications for Android devices.  You must have your own Android phone or tablet, since the thing that makes mobile devices interesting is the sensors.  The emulator in Android Studio is a poor imitation of a real device.

While there are no formal prerequisites other than Data Structures and Algorithms, you are expected to have a solid working knowledge of Java and object-oriented programming.  Some knowledge of design patterns is also helpful.  We will also discuss mobile app design. If I can get cross-platform development using Xamarin (part of Visual Studio, where you program in C#) to work correctly, we will cover that, but there were problems last time I tried this.

I'll use Android Studio for all examples and in-class demonstrations and write in Java.  I know Android Studio 3 supports Kotlin, but I see no real advantage to using it.  If you have already done some Android programming and you're using Eclipse with ADT, please make the switch to Android Studio.  It's easy and you can import your projects.  Homework you hand in must use Android Studio and Java.

Take a look at Notes for Students for some expectations of those taking my classes.  In particular, I expect you to attend all classes and to pay full attention.  In most classes I ban mobile phones, but you can have yours out on the desk when you're actually programming it.  Otherwise, silence it and put it away.  Yes, we will do in-class exercises.  I will take attendance in every class, although attendance is not mandatory and will not directly enter into your grade.

Get Google's Android Developer Studio here.  Make sure you have Version 3.

Exam Rules

YouTube video explaining Constraint Layout


In-Class Notes.  This will be used for notes made using Notepad, for program fragments, etc.