Skip to content
douglascraigschmidt edited this page Aug 17, 2017 · 7 revisions
  1. What are the course objectives?

    Upon completing this course, students should be able to:

    • Recognize the inherent and accidental complexities involved with developing concurrent and parallel software in Java running on the Android platform.

    • Understand how pattern-oriented software architecture and framework techniques can and cannot help to alleviate these complexities.

    • Be fluent in the use of Java 8 object-oriented and functional programming mechanisms, particularly as they pertain to concurrent and parallel programs.

    • Apply patterns and frameworks to develop reusable and resilient concurrent and parallel applications and services using the Java programming language and Android middleware.

    • Know where to find additional sources of information on how to program mobile applications and services on Android handheld systems.

  2. What are your assumptions about--and expectations for--students taking CS 892?

    This material is intended for self-motivated students who

    • Know Java, Android Studio, and Git (or can learn them quickly on their own)
    • Want to understand both the concepts and practice of developing mobile software applications and services
    • Are curious about how the Java and Android software stacks are designed and implemented
    • Are willing/able to carefully read/follow the instructions in the course assignments and announcements.
  3. Can students take this course if they have little/no prior experience programming Java in Android Studio?

    This course assumes that students are comfortable programming in Java and Android. If you don't have any Java or Android programming experience you should watch the material available at the Android App Development Coursera specialization website.

  4. *What happens if we don't submit our code for instructor review by the deadline?

    Not having your code available for instructor review adds extra work for the course staff. Therefore, if you don't submit your code by the deadline you will receive 0 for the assignment.

  5. How does the graduate material differ from the undergraduate material?

    Students taking this course for graduate credit have additional work on each assignment, quiz, and final exam. This additional work will be clearly indicated.

  6. Who is eligible to enroll in this class and access the material?

    Anyone is welcome to view the programming assignments and lecture material. However, only Vanderbilt students can enroll in this class and access the other material at the course website. Much of this material is available in my LiveLessons tutorial videos.

  7. When will the screencasts of the class lectures be available? The screencasts will typically be posted by the morning after the class lecture is given. There are typically two lectures a week (Monday and Wednesday), but the lectures aren't always published as screencasts, depending on what is covered that day. In particular, the answers to quizzes and programming assignments aren't posted as screencasts.

  8. What information (if any) is needed at the top of the programming assignment submissions?

    It is not necessary to include comments at the top of your source code files with your name, email, honor code statement, assignment name, date, etc. since

    • We're using GitLab, so the course staff know whose code we're reviewing
    • The Vanderbilt Honor Code applies to everything we do in CS 892, as per discussions in the first class.
  9. How should student GitLab accounts be created and structured?

    Each student should create a single GitLab account and submit the ID to the Google Survey sent via email. The GitLab repository should be structured like the assignment folder here, i.e., there should be a separate directory for each assignment. Failure to follow this structure will prevent the course staff from grading programming assignment submissions.

  10. What is the process for initial submissions and resubmissions of programming assignments?

    Please see the instructions here.

  11. Where is the source code described in this course?

    We've created a GitHub repository for the CS 892 assignments and examples, which you can access here. You can either install/use GitHub to access each folder in the repository (recommended) or you can download it in a single zip file (not recommended). You can browse all the Java 8 source code here and you can browse all the Android source code online here.

  12. How can we enroll for free sessions of the Android App Development MOOC Specialization?

    If you go to the individual MOOCs at

    you can enroll in them without being asked to pay and simply "audit" the courses. In contrast, if you go here you will be asked to pay and receive a verified certificate for the courses, which you probably don't want to do ;-)

Clone this wiki locally