Active Outline

General Information


Course ID (CB01A and CB01B)
CISD022B
Course Title (CB02)
Intermediate Programming Methodologies in C++
Effective Term
Fall 2023
Course Description
This course is taught as a systematic approach to the design, construction, and management of computer programs, emphasizing design, programming style, documentation, testing, and debugging techniques. Key concepts in Object-oriented programming to be covered are (a) Strings, (b) Multidimensional arrays, (c) Pointers and their use in arrays, parameters, and dynamic allocation, (d) Structures and Classes with operator overloading, (e) Inheritance and Polymorphism, (f) Templates, (g) Exceptions and (h) Introduction to Linked lists. Software engineering and computer science students are the targeted groups.
Course Family
Not Applicable

Course Justification


This course is a major preparation requirement in the discipline of computer science for at least one CSU or UC. This course belongs on the Systems Programming A.A. degree. This course teaches object-oriented constructs and is the second course in a sequence that is compliant with the standards of the Association for Computing Machinery.

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
C-IDArea(s)StatusDetails
COMPComputer ScienceApproved(CIS D022B or CIS D022BH) & (CIS D022C or CIS D22CH) required for C-ID COMP 132

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)


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

Corequisite(s)


Advisory(ies)


Elementary algebra or equivalent (or higher), or appropriate placement beyond elementary algebra

Limitation(s) on Enrollment


(Not open to students with credit in the Honors Program related course.)

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

Collaborative projects

Other: Laboratory discussion sessions

Other: Laboratory experiences which involve students in designing, coding, and testing and debugging efficient C++ programs.

Assignments


  1. Reading: Required readings from text.
  2. Programs: 6-10 programming homework assignments, which include design as well as coding and employ sequential text files for the input and output of information; at least two should be about 500 lines of code, including standard documentation, covering the Lab Topics specified in the Lab Outlines below.

Methods of Evaluation


  1. Successful completion of programming assignments with output evaluated on correctness, use of structured design principles, documentation, programming style, efficiency, and testing methods.
  2. One or more examinations requiring some programming demonstrating ability to develop an algorithm and/or write code using specific programming constructs. Code is evaluated on correctness.
  3. In-class lab problems, group collaborative problems, exam questions and/or online assignments or tutorials demonstrating the ability to read and analyze code through debugging and/or writing snippets of code. The code will involve arrays and/or structures and/or linked lists and/or classes and subclasses.
  4. A final examination requiring some programming demonstrating ability to develop an algorithm and write code. The code will involve arrays and/or structures and/or linked lists and/or classes and subclasses. Code is evaluated on correctness.

Essential Student Materials/Essential College Facilities


Essential Student Materials
  • None.
Essential College Facilities
  • Access to a computer laboratory with a C++ compiler

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
Gaddis, TonyStarting Out With C++ from Control Structures through ObjectsPearson2021/10th EditionISBN-13: 9780135928295
Savitch, WalterProblem Solving with C++Pearson2018/10th EditionISBN-13: 9780134522425
Deitel, H.M. & Deitel, P.J.C++: How to Program (paper)Deitel & Associates, Inc.2017/10th ed.ISBN-13: 9780134448237 ISBN-10: 0134448235
zybooksCIS 22B: Intermediate Programming Methodologies in C++zybooks2022979-8-203-97133-3

Examples of Supporting Texts and References


AuthorTitlePublisher
Ellis, Margaret & Stroustrup, Bjarne, The Annotated C++ Reference Manual, Addison Wesley, 1990.

Learning Outcomes and Objectives


Course Objectives

  • Create programs which demonstrate knowledge of manipulating data in arrays of one or more dimensions.
  • Create programs which demonstrate knowledge of memory management functions and pointer arithmetic to manipulate data in one-dimensional arrays.
  • Use C-Strings and C++ String class for Input/ Output and manipulation of strings. Create and use other functions to manipulate strings.
  • Create programs which use structures.
  • Use Object-oriented programming concepts to design applications and computer programs.
  • Define and use the basic linked list operations: Traverse, Search, Insert, Delete. Design, code, and test programs using linked lists.
  • Demonstrate ability to read, analyze, and/or write code with templates.
  • Demonstrate ability to read, analyze, and/or write code with exceptions.

CSLOs

  • Create algorithms, code, document, debug, and test intermediate level C++ programs.

  • Read, analyze and explain intermediate level C++ programs and their efficiency.

  • Design solutions for intermediate level problems using appropriate design methodology incorporating intermediate programming constructs including structures and objects.

Outline


  1. Create programs which demonstrate knowledge of manipulating data in arrays of one or more dimensions.
    1. One-dimensional Arrays
      1. Binary Search
      2. Insertion Sort
    2. Two-dimensional Arrays
      1. Declaration
      2. Initialization
      3. Access of individual elements
      4. Use with functions
    3. Arrays of more than two dimensions
      1. Declaration
      2. Initialization
      3. Access of individual elements
  2. Create programs which demonstrate knowledge of memory management functions and pointer arithmetic to manipulate data in one-dimensional arrays.
    1. Pointer arithmetic and one-dimensional array
      1. Adding/subtracting an integer constant to/from pointer
      2. Subtracting two pointers
    2. Uses
      1. Array parameters
      2. Efficient manipulation of data in one-dimensional arrays
      3. Arrays of pointers
      4. Dynamic allocation (new operator, delete operator)
  3. Use C-Strings and C++ String class for Input/ Output and manipulation of strings. Create and use other functions to manipulate strings.
    1. C-Strings
      1. Character testing and case conversion functions
      2. Software engineering: C-Strings stored as arrays
      3. Using pointers to pass C-Strings
    2. String Class
      1. I/O with string objects
      2. Sorting with String Objects
      3. String class member functions.
  4. Create programs which use structures.
    1. Software engineering: abstract data types
    2. Declare a structure
    3. Access fields in structures
    4. Pointers to structures
    5. Nested structures
    6. Structures and functions
      1. Structures as parameters passed by value
      2. Structures as parameters passed by address
      3. Return a structure from a function
      4. Arrays of structures
  5. Use Object-oriented programming concepts to design applications and computer programs.
    1. Object-oriented design
      1. Encapsulation and information-hiding
      2. Separation of behavior and implementation
      3. Unified Modeling Language (UML)
    2. Classes and subclasses
      1. Constructors
      2. Fields
      3. Methods to alter Object behavior
      4. Inheritance
      5. Use of overloaded functions
      6. Class hierarchies
      7. Polymorphism and virtual functions
      8. Redefining vs. overriding functions
      9. Garbage collection
      10. Internal representations of objects and method tables
  6. Define and use the basic linked list operations: Traverse, Search, Insert, Delete. Design, code, and test programs using linked lists.
    1. Traversal
    2. Search
    3. Insertion
    4. Deletion
    5. Dynamic Allocation
  7. Demonstrate ability to read, analyze, and/or write code with templates.
    1. Function templates
    2. Class templates
  8. Demonstrate ability to read, analyze, and/or write code with exceptions.
    1. Exceptions and exception handling
    2. Multiple and generic handlers
    3. Exceptions stack

Lab Topics


  1. Write and/or debug code implementing pointers to pointers.
  2. Write and/or debug code implementing the binary search algorithm to search a one-dimensional array.
  3. Write and/or debug code implementing sorting a one-dimensional array using insertion/selection sort.
  4. Write and/or debug code implementing two-dimensional arrays.
  5. Write and/or debug code implementing pointer arithmetic and one-dimensional arrays with pointer arithmetic.
  6. Write and/or debug code implementing array of pointers.
  7. Write and/or debug code implementing strings.
  8. Write and/or debug code implementing structures.
  9. Write and/or debug code implementing linked lists with dynamic memory allocation.
  10. Design classes and subclasses
  11. Write and/or debug code implementing function and class templates.
  12. Write and/or debug code implementing exception handling.
Back to Top