Maricopa Community Colleges  CSC210   19966-19985 
Official Course Description:   MCCCD Approval:  02/27/96  
CSC210      19966-19985 L+L 3 Credit(s) 5 Period(s)
Data Structures and Algorithms
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; C/C++ languages. Prerequisites: CSC200.
 
Go to Competencies    Go to Outline
 
MCCCD Official Course Competencies:
 
CSC210   19966-19985 Data Structures and Algorithms
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 C programs using functions, structures, dynamic allocation and reallocation capabilities, text and binary files, and pointers. (II, III)
4. Write C++ programs using objects and classes (base and derived), methods, friend functions, and overloaded operators. (II, III)
5. Specify, design and implement maintainable programs in C/C++ that include multiple 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 reuseability in the software engineering process. (I, II, III)
7. Given a set of requirements, design and implement a solution in C/C++ 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:
 
CSC210   19966-19985 Data Structures and Algorithms
    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
          C. Comparison of design models
        III. Language Features
            A. C Language functions
              1. Basic features including arrays and functions
              2. Structures and unions
              3. I/O and files
              4. Pointers
              5. Dynamic memory allocation and reallocation
            B. C++ extensions
              1. Classes, objects, methods
              2. Derived classes, inheritance
              3. Operators, friend functions, operator overloading
              4. Virtual functions, polymorphism
              5. Templates
          IV. Data Structures
              A. Arrays and strings
              B. Linked lists
                1. Single
                2. Double
                3. Circular
                4. Non-circular
              C. Stacks
              D. Queues
              E. Binary trees
            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
            Go to Description    Go to top of Competencies    Go to top of Outline