CSC-190 CS2: Object-oriented Software Development

CS2: Object-Oriented Software Development covers algorithm development and object-oriented design and development for large-scale software and graphical user interfaces (GUIs). This course is the second in a series of three required programming courses for a traditional computer science degree. Topics to be covered include objects and classes, procedural vs. object-oriented programming, reference data types, class libraries, class design, class abstraction and encapsulation, inheritance and polymorphism, exception handling, abstract classes, graphical user interfaces (GUIs), and event-driven programming.

Credits

4

Prerequisite

CSC-115 with a grade C or better

Lecture Contact Hours

4

Lab Contact Hours

1

Other Contact Hours

0

Department

  • Computer Science

Grading Scheme

  • Letter

SUNY Gen Ed Credit

  • No

Semesters Course Will Be Offered

  • Fall
  • Spring
  • Summer

Course Learning Outcomes

  1. Identify and implement elementary data structures for the manipulation of data
  2. Develop more complex algorithms for solving problems using an object-oriented approach
  3. Identify and implement object classes from existing object-oriented collection libraries.
  4. Design, develop and implement new object classes to solve complex problems.
View Course Outline

CSC 190: CS2: Object-oriented Software Development

Department

Computer Science

Course Description

CS2: Object-Oriented Software Development covers algorithm development and object-oriented design and development for large-scale software and graphical user interfaces (GUIs). This course is the second in a series of three required programming courses for a traditional computer science degree. Topics to be covered include objects and classes, procedural vs. object-oriented programming, reference data types, class libraries, class design, class abstraction and encapsulation, inheritance and polymorphism, exception handling, abstract classes, graphical user interfaces (GUIs), and event-driven programming.

Credit Hours

4

Contact Hours

Lecture4
Lab1
Other0

Grading Scheme

Letter

Semester(s) Course Will Be Offered

Fall, Spring, Summer

Prerequisites

CSC-115 with a grade C or better

Course Learning Outcomes

  1. Identify and implement elementary data structures for the manipulation of data
  2. Develop more complex algorithms for solving problems using an object-oriented approach
  3. Identify and implement object classes from existing object-oriented collection libraries.
  4. Design, develop and implement new object classes to solve complex problems.

Topic Outline

  1. Multidimensional Arrays
    1. Processing Two-Dimensional Arrays
    2. Passing Two-Dimensional Arrays to Methods
  2. Objects and Classes
    1. Defining Classes and Objects
    2. Designing Classes and Creating Objects
    3. Constructing Objects Using Constructors
    4. Accessing Objects via Reference Variables
    5. Class Libraries and Reusable Code
    6. Data Field Encapsulation
    7. Passing Objects to Methods
    8. Immutable Objects and Classes
  3. Object-Oriented Thinking
    1. Class Abstraction and Encapsulation
    2. Thinking in Objects
    3. Class Relationships
    4. Inheritance
      1. Superclasses
      2. Subclasses
    5. Overriding vs. Overloading Methods
    6. Polymorphism
    7. Dynamic Binding
  4. Exception Handling
    1. Exception Types
    2. Rethrowing Exceptions
    3. Chained Exceptions
    4. Defining Custom Exception Classes
    5. File Input and Output
  5. Abstract Classes and Interfaces
  6. Java GUI Programming
    1. Panes, UI Controls, and Shapes
    2. Layout Panes
    3. GUI Classes
    4. Design and Develop GUI programs
  7. Event-Driven Programming
    1. Event-driven programming
      1. Events, Event Sources, and Event Classes
    2. Handler Classes
    3. Event Listeners
    4. GUI Application Development
    5. Animation Classes
  8. Text I/O
    1. Text I/O verses Binary I/O