NCIT 212 - Object Oriented Programming II

This course continues the presentation of Object Oriented Programming (OOP) that was introduced in Object Oriented Programming I. It covers techniques, methods, and tools for systematic development, and maintenance of software systems using intermediate level algorithms and data structures. The bulk of this course is spent practicing program design as new elements are added to the student's knowledge of an OOP language. Good programming practices are emphasized throughout, including top-down design, object decomposition, modularization, code reuse, testing and debugging techniques, and creating useful documentation.

 

Credits: 3

 

Hours: 45 (Lecture Hours: 45)

 

Total Weeks: 16

 

Prerequisites:

NCIT 210 Object Oriented Programming I and Math 11

 

Non-Course Prerequisites:

None

 

Co-Requisites:

None

 

Course Content:
- Review of NCIT 210 final exam
- Review: Algorithm development
- Review: Alternative data representations: Conway's Game of Life; Fraction class
- Searching in linear lists. Unordered lists: exhaustive search. Ordered lists: linear search, binary search, interpolative search
- Algorithm analysis: theoretical, empirical
- Creating testing frameworks for: Correctness; Performance
- Object persistence. Sorting objects in the filesystem
- The MVC pattern. Case study: One model, two viewers; one for the terminal and one for the web.
- CRUD operations
- Event-driven programming
- Beyond print statements: Using a debugger
- Sorting. Straight sorting: selection, insertion, exchange. Better algorithms: Shell sort, quicksort.
- Algorithmic complexity
- Recursion. Recursive quicksort
- Representing a binary tree in a list
- Sorting: Heap sort
- Recursion: Creating, drawing and solving mazes.
- Object Oriented(OO) analysis and algorithm development: Pitcher problems
- HTTP and CGI: Quoteserver
- Introduction to OO Patterns

 

 

Learning Outcomes:
Upon successful completion of this course, students will be able to:
- Produce an object-oriented (OO) analysis and design for a small problem
- Apply the principles of class inheritance, composition, and association to construct hierarchies of new classes
- Utilize the components and constructs necessary to implement an OO program in efficient, reusable, extensible code
- Utilize an OO programming environment to build applications
- Produce clearly written and well-documented code
- Evaluate programs through the careful application of appropriate testing techniques to assess their reliability and correctness
- Document the analysis, design, implementation and testing of a program constructed using OO principles

 

 

Grading System: Letters

 

Passing Grade: C (60%)

 

Percentage of Individual Work: 100

 

Text Books:
Textbooks are subject to change. Please contact the bookstore at your local campus for current book lists.