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 5 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.
Textbook
Allen B. Downey and Chris Mayfield, Think Java: How to Think Like a Computer Scientist, 2nd Edition, ISBN: 9781491929551
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.