powered by
Center for Curriculum and Transfer Articulation
Object Oriented Programming and Data Structures
Course: CSC205AB

First Term: 2018 Fall
Lec + Lab   4 Credit(s)   4 Period(s)   4 Load  
Subject Type: Academic
Load Formula: T Lab Load


Description: Covers Object-Oriented design and programming; elementary data structures; arrays; lists; stacks; queues; binary trees; recursion; searching and sorting algorithms.



MCCCD Official Course Competencies

1. Describe how modern Software Engineering techniques are used in program development. (I)
2. Implement programs that use Object-Oriented Programming techniques: classes, aggregate classes, inheritance, interfaces, abstract classes, and polymorphism. (II)
3. Write applications that handle run-time errors by using Exception Handling techniques. (II, III)
4. Write programs using basic data structures such as arrays, ArrayLists, and Vectors. (II, IV)
5. Implement linked lists, stacks, and queues using Object- Oriented techniques. (II, IV)
6. Implement Binary Search Trees and use recursive methods as part of the implementation. (II, IV, V)
7. Analyze and compare the efficiency of different searching and sorting algorithms, including algorithms that are implemented recursively. (V)
8. Write applications that read and write text and Object files. (II, VI)
9. Discuss social and ethical issues related to Computer Science. (VII)
10. Implement a simple Graphical User Interface as part of an application. (VIII)
MCCCD Official Course Competencies must be coordinated with the content outline so that each major point in the outline serves one or more competencies. MCCCD faculty retains authority in determining the pedagogical approach, methodology, content sequencing, and assessment metrics for student work. Please see individual course syllabi for additional information, including specific course requirements.
 
MCCCD Official Course Outline
I. Applying Modern Software Engineering Principles
   A. Software Life Cycle Model
   B. Pre- and post-conditions of an algorithm
   C. Generating test cases
   D. Design UML (Unified Modeling Language) diagrams and use them to implement Object Oriented Programs
II. Using Object Oriented Programming constructs
   A. Classes and subclasses
   B. Aggregate classes
   C. Inheritance
   D. Polymorphism
   E. Interfaces and abstract classes
III. Applying Exception Handling techniques
   A. Signal existence of runtime error
   B. Handle runtime error without program termination
IV. Introducing Data Structures
   A. Arrays
   B. Simple data structures such as ArrayLists/Vectors
   C. Linked Lists
   D. Stacks
   E. Queues
   F. Binary Trees
V. Understanding algorithms
   A. Recursion
   B. Searching
   C. Sorting
   D. Efficiency of Algorithms using BigO notation
VI. Using Input/Output mechanisms
   A. Console Input/Output
   B. Reading and Writing text files
   C. Serialization
VII. Understanding other issues related to Computer Science 0A. Social and/or ethical issues
VIII. Using Graphical User Interfaces
   A. Implementation using existing classes
 
MCCCD Governing Board Approval Date:  12/13/2011

All information published is subject to change without notice. Every effort has been made to ensure the accuracy of information presented, but based on the dynamic nature of the curricular process, course and program information is subject to change in order to reflect the most current information available.