Introduction to Object-Oriented Programming

COM S 227

Offered during Fall and Spring Semesters each year.

  1. Credits and contact hours: 4 credits, 5 contact hours
  2. Instructor's or course coordinator's name: Steve Kautz/ Sayantani Ghosh, Don Stull
  3. Text book, title, author, and yearBig Java, 6th edition by Cay Horstmann or Java Concepts (Early Objects), 7th/8th edition by Cay Horstmann
  4. Other supplemental materials: None

Specific Course Information

  1. Brief description of the content of the course: Computer programming using objects as the mechanism for modularity, abstraction, and code reuse. Instance variables, methods, and encapsulation. Review of control structures for conditionals and iteration. Developing algorithms on strings, arrays, and lists. Recursion, searching, and sorting. Text parsing and file I/O. Interfaces, inheritance, polymorphism, and abstract classes. Exception handling. Tools for unit testing and debugging. Emphasis on a disciplined approach to specification, code development, and testing. Course intended for Com S majors. Credit may not be applied toward graduation for both Com S 207 and 227.
  2. Prerequisites or co-requisites: Credit or enrollment in MATH 143 or higher; recommended: a previous high school or college course in programming or equivalent experience.
  3. Required, elective, or selected elective? Required

Specific goals for the course

  1. Specific outcomes of instruction: At the end of COM S 227 the students should be able to:
  • Write, debug, and document well-structured Java applications of up to 500 lines (2)
  • Implement Java classes from specifications (1)
  • Effectively create and use objects from predefined class libraries
  • Understand the behavior of primitive data types, object references, and arrays
  • Use decision and iteration control structures to implement algorithms
  • Write simple recursive algorithms
  • Use interfaces, inheritance, and polymorphism as programming techniques
  • Use exceptions

Brief list of topics to be covered

  • Managing files; using an integrated development environment
  • Objects, classes, methods, fields, and constructors
  • Primitive types and references
  • Arithmetic expressions, String operations
  • Overview of the software engineering process
  • Unit testing with the JUnit framework
  • Conditional statements and Boolean expressions
  • Iteration
  • Basic console and text file I/O
  • One-and two-dimensional arrays
  • Using a symbolic debugger
  • Designing with interfaces
  • Inheritance, polymorphism, abstract classes
  • Exceptions and exception handling
  • Recursion
  • Searching and sorting