CS 415: Introduction to Computer Science I

(Coordinator: Mark Bochert)

Catalog description

Theory and practice of computer science. Algorithm development and analysis; data abstraction techniques; elementary data structures; dynamic memory manipulation; debugging; and program design issues. Computer systems and applications. Intended for CS majors.


  • Software development and programming languages (Department outcomes 1 and 4):
    • Discuss and identify the concepts of encapsulation, abstraction, inheritance, and polymorphism
    • Design, implement, test, and debug programs involving basic computation, simple I/O, standard conditional and iterative structures, plus the definition of instance variables and functions/methods within the context of multiple classes involving some class hierarchy.
    • Identify and use good programming style.
    • Develop simple event-driven programs that respond to user events and exception conditions raised during execution.
    • Analyze and explain the behavior of simple programs and fragments of larger programs.
    • Choose appropriate conditional and iteration constructs for a given programming task and apply them properly.
    • Apply the techniques of structured (functional) decomposition to break a program in to smaller pieces, demonstrating appropriate use of method overloading and overriding.
    • Describe how the class mechanism supports encapsulation and information hiding, and the nature of the relationship between a class and an object of that class
  • Data structures (Department outcome 2):
    • Write programs that make use of arrays and lists.


  • Weekly programming assignments (50%)
  • Semi-weekly labs, weekly recitations (20%)
  • Weekly written quizzes and 2 written exams (15%)
  • Weekly programming quizzes and 2 programming exams (15%)


This course meets 6 hours per week, 2 hours in lecture, 3 hour in a computer lab, and 1 hour of group work in recitation. CS 415 and CS 416 are a sequence – the topics listed below are normally taught within CS 415, although the actual distribution of some of the topics between the two courses varies somewhat from year to year.

  • Introduction/background
  • Models
  • Classes and objects
  • Methods
  • Inheritance, interfaces, polymorphism
  • Expressions and conditionals
  • Loops
  • Strings
  • Exceptions and exception handling
  • Arrays and wrappers
  • Algorithm Development


Sanders and van Dam, Introduction to Object-Oriented Programming in Java: A Graphical Approach.