powered by
Center for Curriculum and Transfer Articulation
Principles of Computer Science (Java)
Course: CSC200AA

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


Description: Introduction to computer science. Issues and concepts throughout the field, including software development, data organization, machine architecture, algorithmic machines, and ethics in computing. Programming in Java



MCCCD Official Course Competencies
1. Use current software engineering techniques to design a computer program that contains multiple object classes.(I)
2. Explain the steps necessary to develop major pieces of software. (I)
3. Describe an operating system and its use. (I)
4. Develop computer programs that use objects, methods, class level fields and streams.(II)
5. Develop computer programs that implement interfaces and call static methods. (II, III)
6. Develop and implement programs that make use of diverse operators. (III)
7. Develop computer programs that use classes and interfaces from a large class library. (I, II, III)
8. Describe the different kinds of memory in an executable process. (III)
9. Explain why the limitations of algorithmic machines require techniques developed in artificial intelligence. (IV)
10. Present arguments for and against an ethical issue related to computing. (V)
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 Development
   A. Design
      1. Functional
      2. Data-driven
      3. Pseudo code
      4. Application Programming Interface(API) specifications B. Programming environment
      1. Interactive Development Environments (IDEs)
      2. Compilers
      3. Interpreters
      4. Debuggers
      5. Profilers
      6. Libraries
      7. Packages
      8. Class Hierarchies
   C. Programming languages
      1. Control structures
      2. Objects and classes
      3. Data manipulation
   D. System software
      1. Operating systems
      2. Shells
      3. Windowing systems
      4. File systems
   E. Software engineering
      1. Software life cycle
      2. Useful tools
   F. Programming
II. Data Organization
   A. Data structures
      1. Primitive types
      2. Classes and objects
      3. Object methods and fields
      4. Wrapper classes
      5. Strings
      6. Arrays
      7. Interfaces
   B. File structures
      1. File streams
      2. Random access streams
   C. Databases
III. Machine Architecture
   A. Data storage
      1. Free store
      2. Stack
      3. Static
      4. Garbage collection
   B. Data manipulation
      1. Reads and writes
      2. Operators and expressions
IV. Potential of Algorithmic Machines
   A. Artificial intelligence
   B. Theory of computation
V. Ethics in Computing
   A. Privacy
   B. Intellectual property
 
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.