CS 4301.002 Fundamentals of Mobile App Development

Instructor: John Cole Tuesday/Thursday from 4:00 to 5:15
Office and Hours  Room: ECSS 2.412

Teaching Assistant: Nima Shahbazi

Last update: 12/9/2018
Syllabus is on Coursebook Schedule (Subject to change)
Textbook: There is no official textbook, but I will be working from Professional Android , fourth edition, by Reto Meier and Ian Lake, published by Wrox Press.  I strongly recommended getting the eBook, and you can get the sample code online.  Last I checked, it wasn't available through the UTD library yet.  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.  An excellent book on UI design is Hands-On Android UI Development by Jason Morris.  It discusses Material Design in a very practical way.
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.  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 enter directly into your grade.

Get Google's Android Developer Studio here.

Exam Rules

YouTube video explaining Constraint Layout
Link to CodeLabs for Google Developers.  Lots of good tutorials.
Programming Tips -- Any code here is free for you to use.


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