CSE114


Course

CSE114

Title

Computer Science I

Credits

4

Course Coordinator

Rob Kelly

Current Catalog Description

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. Software debugging and testing techniques are emphasized. Includes required laboratory.

Prerequisite

CSE 110 or, for engineering majors, ESG 111 or MEC 111 or 112 or ESE 124 [Effective Fall 2004]

Prerequisites: one of the following: CSE 110, CSE 130, ESE 124, ESG 111, MEC 111, MEC 112

Course Goals
  • Introduce the basic concepts of object-oriented programming, including object classes, encapsulation, inheritance, and polymorphism.
  • Discuss the fundamental data structures of high-level programming languages (e.g., arrays), and how they are used.
  • Through programming assignments, emphasize the importance of sound code structure and systematic software debugging and testing techniques.
Textbook

C. Thomas Wu (Otani), An Introduction to Object-Oriented Programming with Java, 4th Edition McGraw-Hill ISBN#0072946520

Major Topics Covered in Course
  • Introduction to Objects in Java, using predefined objects (e.g. String) [1 week]
  • Review of program control statements: conditionals and loops with an introduction to formal methods (preconditions, post conditions, loop invariant) [1.5 week]
  • Writing more complex classes. [3 weeks]
  • Arrays and the Array List class. [1 week]
  • Inheritance and polymorphism in Java, simple examples, the Java class hierarchy. [1 week]
  • Exceptions and File I/O. [2 weeks]
  • Introduction to graphical user interface components. [2 weeks]
  • Recursive programming, basic examples (factorial, Fibonacci numbers, Towers of Hanoi, etc.) [1 week]
  • Documenting sources of code, effects of software piracy on business and individuals. [0.5 week]
  • Midterm exams & closed-lab coding exam [1 week]
Laboratory Projects
  • Each lab is run in a closed setting, where students must hand in a solution at the end of the lab. Topics (0.5 week each):
  • Unix & Pine ,Simple I/O and String manipulation, Conditional statements and loops, Loops and menus, More loops, Using objects, Defining object classes, Objects and references, Call by reference, Inheritance, More inheritance, Arrays, 2D arrays, Searching and sorting, Vectors, Linked Lists, Exceptions, Textual I/O, Recursion (2 labs), GUIs (1 labs)
Course Webpage

http://www.cs.sunysb.edu/~cse114