Maricopa Community Colleges  CSC101   19936-19966 
Official Course Description: MCCCD Approval: 03/23/93
CSC101 19936-19966 L+L 3 Credit(s) 4 Period(s)
Introduction to Computer Science/ Pascal II
Computer systems concepts, advanced programming techniques using Pascal, file systems concepts and applications, development of large reliable programming systems, team programming. Professional responsibility. Prerequisites: Grade of "C" or better in CSC100, or equivalent, or permission of Math Department Chairperson.
Go to Competencies    Go to Outline
 
MCCCD Official Course Competencies:
 
CSC101   19936-19966 Introduction to Computer Science/ Pascal II
1. Code fluently in a well-constructed fashion using Pascal. (I)
2. Develop appropriate algorithms and data structures to solve problems. (II, III)
3. Select and use well-known algorithms and data structures. (II, III)
4. Control input/output of terminal and files. (IV)
5. Design and implement computer-based solutions to problems in several application areas.
6. Identify major hardware and software components of a computer system, their relationship to one another, and the roles of these components within the system. (IV)
7. Describe the professional and ethical responsibilities of the computing professional and the impact of computing on society. (VII)
Go to Description    Go to top of Competencies
 
MCCCD Official Course Outline:
 
CSC101   19936-19966 Introduction to Computer Science/ Pascal II
    I. Programming methodology using Pascal
        A. Specification
          1. Problem definition and requirements
          2. Functional specifications for programs
        B. Design
          1. Modularization
          2. Top-down versus bottom-up methodologies
          3. Stepwise refinement of modules and data structures
        C. Coding
          1. Structure
          2. Style
          2. Clarity of expression
        D. Program correctness
          1. Testing
            a. Relation to design and coding
            b. Test data generation
            c. Top-down versus bottom-up testing of modules
          2. Verification
            a. Assertions and invariants
            b. Reasoning about programs
          3. Debugging
        E. Documentation procedures
      II. Data types and structures
          A. Review of primitive data types
          B. Linear data structures
            1. Review of arrays
            2. Sets
            3. Strings
            4. Linked lists
            5. Stacks
            6. Queues
          C. Tree structures
            1. Terminology
              a. Nodes
            1. Root
            2. Leaf
            3. Parent
            4. Child
            5. Sibling
              b. Branches and subtrees
              c. Ordered and unordered trees
            2. Binary trees
          D. Representation of data structures
            1. Sequential representation of linear structures
            2. Pointers and linked data structures
        III. Algorithms
            A. Classes of algorithms
              1. Sequential
              2. Iterative or enumerative
              3. Recursive
            B. Numerical algorithms
              1. Approximations
              2. Numerical accuracy
                a. Round-off effects
                b. Precision of approximations
              3. Statistical algorithms
            C. Manipulation of data structures
              1. String processing
              2. Insertion and deletion in linear structures
              3. Tree traversals
          IV. File concepts
              A. Organization
                1. Sequential
                2. Random
              B. File input/output
            V. Applications of computing
                A. Text processing
                B. Simulation and modeling
                  1. Continuous simulation of physical processes
                  2. Discrete simulation of probabilistic events
                C. Data analysis
                  1. Statistical packages
                  2. Graphic display of data
                D. Data management
                  1. Information storage and retrieval
                  2. Typical business systems
                E. System software
                  1. File management routines
                  2. Syntax analysis routines
                    a. Command scanners
                    b. Evaluation of arithmetic expressions
              VI. Computer systems
                  A. Major hardware components
                  B. System software
                    1. Language processors
                    2. Operating systems
                  C. System configuration
                    1. Microprocessor systems
                    2. Time-sharing and batch processing systems
                    3. Networks
                VII. Professional responsibilities
                    A. Role of the computing profession in society
                      1. Social consequences of software errors
                      2. Legal consequences of software errors
                    B. Ethics
                      1. Whistleblowing
                      2. Knowing one's own limitations
                      3. Concern for privacy
                Go to Description    Go to top of Competencies    Go to top of Outline