Instructor Information

Tom Smith

Course Information

Course Description

This course enables students without a background in software development to become proficient programmers who are prepared for a follow-on course in data structures. The Java language will be used to introduce foundations of structured, procedural, and object-oriented programming. Topics include input/output, data types, operators, program control flow structures, arrays, strings, and methods. Students will also be introduced to classes, objects, inheritance, polymorphism, exception handling, processing streams and files, collections, wrappers, and generics, and graphical user interfaces. Students will complete several programming assignments and projects to develop their problem-solving skills and to gain experience in detecting and correcting software errors. Prerequisite(s): One year of college mathematics. Course Note(s): Not for graduate credit. A programming methodology course is needed for admission to the Computer Science, Cybersecurity, Data Science, or Information Systems Engineering program. Students who lack this prerequisite can fulfill admission requirements by completing this course with a grade of B– or better.

Course Goal

To master fundamental object oriented software development techniques with a focus on the Java programming language.

Course Objectives

  • Understand basic software development concepts and techniques
  • Understand object oriented programming concepts and techniques
  • Successfully apply these concepts and techniques to develop Java applications.

When This Course is Typically Offered

Fall semester.


  • Introduction, Getting started
  • Programs, data, variables & calculations
  • Control structures
  • Arrays and strings
  • Packages, Definng classes and interfaces
  • Extending classes and interfaces
  • Exceptions, number format, program interactions
  • Files, streams
  • Reading and writing files
  • Collections, generics
  • Graphical user interfaces

Student Assessment Criteria

Homework (5 assignments) 60%
Midterm 20%
Final 20%

Assignment grading:
  + Implementation (50%)
      - Clear – readily understandable, documentation (coding conventions, javadoc)
      - Correct – design and development (compiles 25%)
      - Appropriate – achieves implementation requirements
   + Execution (runs 25%)
      - Usable – appropriate and effective (achieves execution requirements)
      - Robust – exception handling (no crashing)
   + Support(20%)
      - Flexible – easily extended, retrofitted, modified
      - Maintainable – easily fixed
   + Innovation (5%)

Text: Bruce Ecke's Thinking In Java - free at


Textbook information for this course is available online through the MBS Direct Virtual Bookstore.

Course Notes

There are notes for this course.

Term Specific Course Website

(Last Modified: 08/16/2017 07:58:45 AM)