Active Outline

General Information


Course ID (CB01A and CB01B)
CISD027.
Course Title (CB02)
Programming in C++ for C/Java Programmers
Effective Term
Fall 2023
Course Description
A comprehensive introduction to the C++ programming language and its applications.
Course Family
Not Applicable

Course Justification


This course is transferable to all CSUs and UCs. This course is designed for the student that has learned the programming constructs in Java or C and now desires to apply these in the programming language of C++. This course belongs on the Liberal Arts AA degree.

Foothill Equivalency


Does the course have a Foothill equivalent?
No
Foothill Course ID

Course Philosophy


Formerly Statement


Course Development Options


Basic Skill Status (CB08)
Course is not a basic skills course.
Grade Options
  • Letter Grade
  • Pass/No Pass
Repeat Limit
0

Transferability & Gen. Ed. Options


Transferability
Transferable to both UC and CSU
De Anza GEArea(s)StatusDetails
2G4MDA and 4-yr GE Math AgApproved

Units and Hours


Summary

Minimum Credit Units
4.5
Maximum Credit Units
4.5

Weekly Student Hours

TypeIn ClassOut of Class
Lecture Hours4.08.0
Laboratory Hours1.50.0

Course Student Hours

Course Duration (Weeks)
12.0
Hours per unit divisor
36.0
Course In-Class (Contact) Hours
Lecture
48.0
Laboratory
18.0
Total
66.0
Course Out-of-Class Hours
Lecture
96.0
Laboratory
0.0
NA
0.0
Total
96.0

Prerequisite(s)


Corequisite(s)


Advisory(ies)


ESL D272. and ESL D273., or ESL D472. and ESL D473., or eligibility for EWRT D001A or EWRT D01AH or ESL D005.

CIS D026A or CIS D035A

Limitation(s) on Enrollment


(Students may receive credit for either (CIS D022A and CIS D022B (or CIS D22BH)) or CIS D027.)

Entrance Skill(s)


General Course Statement(s)


Methods of Instruction


Lecture and visual aids

Discussion of assigned reading

Discussion and problem solving performed in class

Quiz and examination review performed in class

Homework and extended projects

Collaborative learning and small group exercises

Laboratory discussion sessions and quizzes that evaluate the proceedings weekly laboratory exercises

Assignments


  1. Reading from text
  2. 5 -7 programming homework assignments

Methods of Evaluation


  1. A midterm that includes one program to be written in C++ assessing ability to write code and the application of topics discussed in reading and lectures. Code evaluated on correctness.
  2. A comprehensive final exam that includes at least one program to be written in C++ assessing ability to write code and the application of topics discussed in reading and lectures. Code evaluated on correctness.
  3. Evaluation of assigned C++ programs for completeness, correctness, and employing the key concepts presented in class lectures and class problem solving.

Essential Student Materials/Essential College Facilities


Essential Student Materials: 
  • None.
Essential College Facilities:
  • Computer having a C++ language compiler

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
Nagler, Eric. "Learning C++ - A Hands-on Approach." 3rd Edition, Brooks/Cole , 2003
Lippman, Stanley B., "C++ Primer", 5th Edition, Addison-Wesley, 2013 (http://www.charleshouserjr.com/Cplus2.pdf)
Savitch, Walter. "Absolute C++", 6th Edition, Pearson, 2016

Examples of Supporting Texts and References


AuthorTitlePublisher
None.

Learning Outcomes and Objectives


Course Objectives

  • Review C/Java language constructs.
  • Create C++ language programs
  • Implement structured programming techniques
  • Evaluate object-oriented programming and C++
  • Analyze C++ program design, standard style conventions, and documentation

CSLOs

  • Create object oriented programs using the C++ language.

Outline


  1. Review C/Java language constructs.
    1. Fundamentals: changes and additions to C
      1. Data types and constants
      2. Identifiers and keywords
      3. Operators and operator precedence rules
      4. Type conversion
      5. Scoping rules
    2. Selection
    3. Loops
    4. Arrays
    5. Functions
      1. Pass by Value
      2. Pass by reference
    6. Structures
  2. Create C++ language programs
    1. Stream I/O
      1. Insertion and extraction operators
      2. ostream and istream classes
      3. Global instances
      4. Output formatting
      5. Input formatting
      6. String class and objects
    2. C++ class definition - fundamentals
      1. Data and function members
      2. Data encapsulation
      3. Declaration vs. definition
      4. Inline member functions
      5. Creating instances
      6. Direct access to members
      7. Indirect access to members
      8. Static data members
      9. Static function members
      10. Name qualifying
    3. Inline declarations
    4. Friend functions and classes
    5. Run-time memory allocation
      1. new and delete keywords
      2. Application: linked lists, arrays
    6. Function handling
      1. Prototyping
      2. const modifier
      3. Default arguments in functions
      4. Argument passing by value
      5. Argument passing by address
      6. Argument passing by reference
    7. Initializing instances
      1. Constructor functions
      2. Destructor function
      3. Base member initialization list
      4. Default contructor
      5. Copy constructor
    8. File input/output
    9. Overloading
      1. Functions
      2. Operators
      3. Type casting
    10. Derived classes
      1. Declaring
      2. Access methods
      3. Duplicate member names
      4. Constructors and destructors
      5. Overloading operator =
      6. Pointers to base and derived classes
      7. Virtual functions
      8. Polymorphism
      9. Abstract classes
      10. Object-oriented programming
      11. Multiple inheritance
  3. Implement structured programming techniques
    1. Top down design
      1. Program structure
      2. Preprocessor directives
    2. Robustness
    3. Readability
    4. Flexibility
  4. Evaluate object-oriented programming and C++
    1. Comparison to procedural programming
    2. Advantages
    3. Disadvantages
  5. Analyze C++ program design, standard style conventions, and documentation
    1. Combining structured and object oriented program designs
    2. C++ standards in documentation, naming convention, coding practices

Lab Topics


  1. Convert a C and/or Java programs with multiple functions, looping, selection, dynamic memory allocation, data structures, and file IO into an equivalent C++ program
  2. Perform standard input / output with the stream IO class; perform file input / output with the fstream class; format output data; format input data; read numeric data and strings; use the string class
  3. Use C++ features for a function: const modifier, default arguments, arguments that are pass by value vs. pass by address vs. pass by reference
  4. Define a class with member data and member functions; use data encapsulation; instantiate objects from a class
  5. Implement more features of a class: static member data, static member function, inline member function, name qualifying
  6. Make a class more robust: constructor, default constructor, copy constructor, base member initialization list, destructor
  7. Make a class easier to use: function overloading, operator overloading, type casting
  8. Relate base and derived classes: access functions from one class to the other, duplicate member names, constructors / destructors / operator= dependencies between the two classes, pointers to base and derived classes
  9. Implement inheritance features: virtual functions, polymorphism, abstract classes
Back to Top