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.
Prerequisite
CSC-115 with a grade C or better
For more detailed course information view the
Course Outline
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
4Semester(s) Course Will Be Offered
Fall, Spring, Summer
Prerequisites
CSC-115 with a grade C or better
Course Learning Outcomes
- Identify and implement elementary data structures for the manipulation of data
- Develop more complex algorithms for solving problems using an object-oriented approach
- Identify and implement object classes from existing object-oriented collection libraries.
- Design, develop and implement new object classes to solve complex problems.
Topic Outline
- Multidimensional Arrays
- Processing Two-Dimensional Arrays
- Passing Two-Dimensional Arrays to Methods
- Objects and Classes
- Defining Classes and Objects
- Designing Classes and Creating Objects
- Constructing Objects Using Constructors
- Accessing Objects via Reference Variables
- Class Libraries and Reusable Code
- Data Field Encapsulation
- Passing Objects to Methods
- Immutable Objects and Classes
- Object-Oriented Thinking
- Class Abstraction and Encapsulation
- Thinking in Objects
- Class Relationships
- Inheritance
- Superclasses
- Subclasses
- Overriding vs. Overloading Methods
- Polymorphism
- Dynamic Binding
- Exception Handling
- Exception Types
- Rethrowing Exceptions
- Chained Exceptions
- Defining Custom Exception Classes
- File Input and Output
- Abstract Classes and Interfaces
- Java GUI Programming
- Panes, UI Controls, and Shapes
- Layout Panes
- GUI Classes
- Design and Develop GUI programs
- Event-Driven Programming
- Event-driven programming
- Events, Event Sources, and Event Classes
- Handler Classes
- Event Listeners
- GUI Application Development
- Animation Classes
- Text I/O
- Text I/O verses Binary I/O