Published using Google Docs
CS 410/510 Top: The Joy of Coding with Java and Android
Updated automatically every 5 minutes

CS 410P/510 Top: The Joy of Coding with Java and Android

Credit Hours:

4/3

Course Coordinator:

David Whitlock and Mark Jones

Course Description:

Exploration of contemporary software development principles and practices with an emphasis on building practical and professional coding skills.  Topics include code reuse, object orientation, navigating a rich API library, test-driven development, source code management, pair and group programming, code refactoring, distributed programming with REST, and small device application development with Android.  The Java programming language is used, but experience with Java is not required.

Prerequisites:

CS 314 Elements of Software Engineering

Goals:

Gain experience with practical, real-world aspects of software development and validation by working individually and with others to build and evolve software, culminating in an Android application.

Upon the successful completion of this class, students will be able to:

  1. Navigate and use standard APIs and other code they did not write
  2. Author unit and integration tests to automatically validate software functionality
  3. Describe when/how to apply individual, pair, and group programming
  4. Improve the cleanliness of code by refactoring
  5. Leverage source code control and automated builds for continuous integration
  6. Develop a straightforward Android application

Textbooks:

References:

References on the web.

Major Topics:

Laboratory Exercises:

Develop a multi-phase project that evolves from a simple command line application, through a distributed REST client/server, to an Android app.

Oral and Written Communications:

Beyond individual project work, students work in pairs and groups on simple “kata” exercises to explore programming concepts and gain practical experience working with others.  In addition to quizzes and exams, students submit concise design documentation for their projects.

Social and Ethical Issues:

Topics related to social and ethical issues are not explicitly covered in the course.  However, debriefs after pair/group programming activities often cover issues related to equal access, power dynamics, and effective communication.

Theoretical Content:

Object oriented design, test design, and code design accounts for about 25% of the course’s content.

Problem Analysis:

Between programming assignments and in-class coding activities, students analyze about one problem a week.

Solution Design:

Building working software that is validated by automated tests is a primary component of this class.

CAC Category Credits

Core

Advanced

Data Structures

0.1

Algorithms

0.1

Software Design

1.2

2.0

Computer Architecture

Programming Languages

0.6