powered by
Center for Curriculum and Transfer Articulation
Data Structures and Algorithms (Java)
Course: CSC210AB

First Term: 2018 Fall
Lec + Lab   4.0 Credit(s)   4.0 Period(s)   4.0 Load  
Subject Type: Occupational
Load Formula: T - Lab Load


Description: Static and dynamic data structures and associated applications; recursive and iterative sorting and searching algorithms; introduction to object oriented design and programming techniques; software engineering methods including design models and implementation/testing strategies; professional responsibilities; Java language.



MCCCD Official Course Competencies
1. Write computer programs utilizing current software engineering techniques. (I)
2. Describe how and why the basic object oriented principles of object classes, data abstraction, inheritance and polymorphism are used in the software engineering process. (II)
3. Write Java applications that use objects and classes, methods, interfaces, object inheritance and exceptions. (II, III)
4. Write Java programs that read/write to both file streams and random-access streams. (II, III)
5. Write Java programs that handle exceptions.(III)
6. Specify, design and implement maintainable programs in Java that include multiple pieces that work together to solve a single problem. (I, II, III)
7. Design and write program modules that are used and reused with multiple projects, and describe the techniques and power of reuseability in the software engineering process. (I, II, III)
8. Write Java programs that use the native vector and hash table data structures.(IV)
9. Given a set of requirements, design and implement a solution in Java using data structures and algorithms that match the given requirements. (V, VI)
10. Compare and analyze algorithms for searching and sorting. (VI)
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. Software Engineering
   A. Description and justification
   B. Use of case tools
   C. Government regulations
   D. Corporate and individual responsibilities
II. Design Models
   A. Function model
   B. Object oriented model
      1. Classes
      2. Inheritance
      3. Polymorphism
      4. Data abstraction
      5. Interfaces
   C. Comparison of design models
III. Java Language Features and Basic Packages
   A. Primitive types, operators, statements
   B. Strings, classes, objects, methods, fields
   C. Privacy, scope
   D. Arrays, static methods and objects
   E. Extending classes, inheritance
   F. Interfaces, abstract classes and methods
   G. Object class hierarchies, polymorphism
   H. File and stream input/output, binary files
   I. Exception handling
IV. Advanced Java Packages
   A. Wrapper classes
   B. Collections
   C. Vector
   D. BitSet
   E. Hash table
   F. Enumerations
   G. Threads
V. Data Structures
   A. Arrays
      1. Vectors
      2. Multi-dimensional arrays
   B. Linked lists
      1. Single
      2. Double
      3. Circular
      4. Non-circular
   C. Stacks
   D. Queues
   E. Binary trees
   F. Hash table
VI. Algorithms
   A. Searching
      1. Linear methods
      2. Binary search
      3. Using binary trees (recursive and iterative methods)
   B. Sorting
      1. Linear methods
      2. Binary insertion sort
      3. Quick sort
   C. Comparison of algorithms
   D. Complexity of algorithms-0 notation
 
MCCCD Governing Board Approval Date: 5/25/1999

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.