|Instructor: John Cole
||Section 001: Tuesday/Thursday from 11:30AM to 12:45 PM|
|Office and Hours||Room: ECSN 2.112|
|Last update: 11/11/2018|
|Syllabus is on Coursebook||Schedule|
|Textbook: There is no textbook. This course will
be taught from papers which you will be expected to read, and from
PowerPoint slides. A very good book on Android design is
Android UI Development, by Jason Morris. Another
secondary text is Evil by Design by Chris Nodder. A good book for cognitive
psychology is Human-Computer Interaction by Dix, Finlay, Abowd, and
Beale, although some of their material on dialogs and measurement is pretty
dated. We will be using material from all of these sources as well as
others, and some original material.|
Good books on Android programming are: Professional Android by Reto Meier and Ian Lake. Android Programming: The Big Nerd Ranch Guide by Phillips, Stewart, and Marsicano is more up to date but does not discuss sensors. Both include extensive sample code.
Here is the link to the UTD online library copy of the Big Nerd Ranch 3rd Ed. Android Programming book: http://proquest.safaribooksonline.com/book/programming/android/9780134706061. You can also go to the library site and search for books on Android.
|This graduate course is intended to provide an in-depth
understanding of the intricacies of user interface design and the user
experience, with a special
orientation toward mobile devices. Topics include cognitive models,
interaction models, screen design for various kinds of user input,
evaluation of user interfaces, design of
on-screen controls, input from sources other than the keyboard such as speech and touch, and
the use of mobile device sensors. On the output side, we will cover various
forms of user feedback, including display of information, sound, and haptic
feedback. You will be expected to be highly competent in the Java
programming language. A knowledge of C# is also very helpful, since
some assignments will be done in that language. There is a link to
Microsoft's tutorial on my main page. A good understanding of multithreading
is also useful.|
This course is different from most of your other computer science courses. I know that it is important to understand data structures, algorithm analysis, object-oriented design, program efficiency, database design, and so on. Without those things you would not be a computer scientist. But consider that the most efficient algorithms, the most elegant internal design, are not worth much if the program containing them is difficult to use. You would not buy someone an expensive present, then wrap it in a trash bag, would you? At the same time, go for the minimal design needed to accomplish the task. For example, color can be distracting. Having too many fonts, or providing too much configurability, can be confusing. So go for minimalist design when possible. Such as this Web page, which is simple HTML.
Caution: If you are considering this class only to learn Android or mobile apps, look elsewhere, such as one of the Outreach workshops. This course covers topics in cognitive psychology and design principles and is not an exhaustive course in Android programming. We will not cover such topics as SQLite and other "back-end" Android APIs. We will discuss Android sensors, drawing, and the touchscreen. As one student remarked anonymously in all caps, "Do not treat this course as an elective." And indeed, if you are in the Interactive Systems track, this course is very much core, and I teach it that way. This is not an "easy" course. Grading is tough and picky, but the course will prepare you well. You will be expected to read the the material before each class.
Course Topics in Detail