Course CSE114
Title Computer Science I
Credits 4
Course Coordinator

Rob Kelly


An introduction to procedural and object-oriented programming methodology. Topics include program structure, conditional and iterative programming, procedures, arrays and records, object classes, encapsulation, information hiding, inheritance, polymorphism, file I/O, and exceptions. Includes required laboratory. This course has been designated as a High Demand/Controlled Access (HD/CA) course. Students registering for HD/CA courses for the first time will have priority to do so.

Prerequisite Prerequisites: Level 4 or higher on the math placement exam Advisory Prerequisite: CSE101 or ISE108
Course Outcomes
  • An ability to program in an object oriented language, using concepts such as object classes, encapsulation, inheritance, and polymorphism.
  • An ability to use fundamental data structures such as arrays..
  • An ability to program with sound code structure and use systematic software debugging and testing techniques.


Y. Daniel Liang, Introduction to Java Programming: Brief Version, 10th Edition, Prentice Hall, ISBN: 9780133813470

Major Topics Covered in Course
  • Introduction to Objects in Java, using predefined objects (e.g. String)
  • Review of program control statements: conditionals and loops with an introduction to formal methods (preconditions, post conditions, loop invariant)
  • Writing more complex classes.
  • Arrays and the ArrayList class.
  • Inheritance and polymorphism in Java, simple examples, the Java class hierarchy.
  • Exceptions and File I/O.
  • Introduction to graphical user interface components.
  • Recursive programming, basic examples (factorial, Fibonacci numbers, Towers of Hanoi, etc...)
  • Documenting sources of code, effects of software piracy on business and individuals

Laboratory Projects

Each lab is run in a closed setting, where students must hand in a solution at the end of the lab.

Course Webpage