Maricopa Community Colleges  CSC210JA   19986-20002 
Official Course Description:   MCCCD Approval:  06/22/99  
CSC210JA     19986-20002 LEC 4 Credit(s) 4 Period(s)
Data Structures And Algorithms (JAVA)
Static and dynamic data structures and associated applications; recursive and iterative sorting and searching algorithms; object oriented design and programming techniques; software engineering methods including design models and implementation/testing strategies; professional responsibilities; Java language. Prerequisites: CSC200
 
Go to Competencies    Go to Outline
 
MCCCD Official Course Competencies:
 
CSC210JA   19986-20002 Data Structures And Algorithms (JAVA)
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 use the native Vector and HashTable data structures, plus read/write to both file streams and random-access streams. (II, III)
5. Specify, design and implement maintainable programs in Java that include many pieces that work together to solve a single problem. (I, II, III)
6. Design and write program modules that are used and reused with multiple projects, and describe the techniques and power of reusability in the software engineering process. (I, II, III)
7. Given a set of requirements, design and implement a solution in Java using data structures and algorithms that match the given requirements. (IV, V)
8. Compare and analyze algorithms for searching and sorting. (V)
Go to Description    Go to top of Competencies
 
MCCCD Official Course Outline:
 
CSC210JA   19986-20002 Data Structures And Algorithms (JAVA)
    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. Language Features
            A. Java Language
              1. Primitive types, operators, statements
              2. Strings, classes, objects, methods, fields
              3. Privacy, scope
              4. Arrays, static methods and objects
              5. Extending classes, inheritance
              6. Interfaces, abstract classes and methods
              7. Object class hierarchies, polymorphism
              8. Exceptions
            B. Java packages
              1. Wrapper classes
              2. Vector, BitSet, HashTable and Enumerations
              3. File and stream input/output
              4. Threads
          IV. 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
            V. 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
                  1. O notation
            Go to Description    Go to top of Competencies    Go to top of Outline