CS 2020 Intermediate Programming

CS 2020 : Intermediate Programming

Semester Hours:   3.0
Contact Hours: 3
Coordinator:   Ronald Conway
Text:   Intermediate Programming with zyBooks & zyLabs
Author(s):    VAHID & LYSECKY
Year:   2022

SPECIFIC COURSE INFORMATION

Catalog Description:

Introduction to object-oriented programming techniques. Constructors, destructors, operator overloading. Inheritance and polymorphism. Elementary data structures including linked lists. Dynamic storage allocation concepts. Prerequisite: Corequisite of MATH 1260 or MATH 1280 or MATH 1300 (Precalculus) or higher and grade of C or better in CS 2010. Approved for distance education.

Course type: REQUIRED    

SPECIFIC COURSE GOALS

  • I can understand and can implement search and sorting algorithms.
  • I can implement programs using arrays and linked lists.
  • I can use dynamic memory techniques in implementing programming design.
  • I can use fundamental object-oriented programming techniques, including encapsulation, inheritance, polymorphism, and virtual functions.

COMPUTER SCIENCE STUDENT OUTCOMES ADDRESSED BY THIS COURSE

  • CS 1 Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions
  • CS 2 Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline
  • CS 6 Apply computer science theory and software development fundamentals to produce computing-based solutions

SOFTWARE ENGINEERING STUDENT OUTCOMES ADDRESSED BY THIS COURSE

  • SE 1 An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics

LIST OF TOPICS COVERED

  • Struct and Classes (2 weeks = 14%)
    • Grouping data: struct
    • Structs and functions
    • Objects: Introduction
      • ADTs
      • Preconditions, Postconditions, and Class Invariants
    • Using a class
    • Mutators, accessors, and private helpers
    • Separate files for classes
  • More Classes (new, delete) (2.5 week = 18%)
    • Initialization and constructors
    • Classes and vectors/classes
    • Unit testing (classes)
    • Constructor overloading
    • Operator overloading
  • Pointer (2 weeks = 14%)
    • Pointer basics
    • Pointer to Arrays
    • Pointer Arithmetic
    • Operators: new, delete, and ->
    • Memory regions: Heap/Stack
  • Vectors/Dynamic arrays (2 weeks = 14%)
    • Iterating through vectors
    • Multiple vectors
    • Vector resize
    • Vector push_back
  • Linked Lists (2.5 weeks = 18%)
    • A first linked list
    • Memory leaks
    • Destructors
    • Rule of three
  • Introduction to inheritance and polymorphism (2 weeks = 14%)
    • Derived classes
    • Access by members of derived classes
    • Overriding member functions
    • Polymorphism and virtual member functions
    • Abstract classes
    • Is-a versus has-a relationships
    • UML
  • Recursion (direct/linear & binary) (1 week = 7%)
    • Recursive functions
    • Recursive algorithm: Search
    • Creating a recursive function
    • Stack overflow
  • Function templates (.5 weeks = 5%)
    • Function templates
    • Class templates

COMPUTER SECURITY TOPICS

Faculty who recently offered CS 2020 have discussed and identified a list of topics related to computer security in this course. Below is a list for instructors to incorporate. (*) indicates topics that are mandatory.

Security Topic Description Textbook Reference¹ Estimated Class Hours

*Bounds Checking

Pointer manipulations, vector access – index and pointers

Module 10 Module 13

<1

*Principle of Least Privilege

Default private struct – default public; other access modifiers. Class access modifiers

Module 11

<1

*Obfuscation

Obscures intended meaning; for example, operator overloading

Module 12

<1

*Access Control

Inheritance, polymorphism, lack of security with friendship

Module 15

1

  ¹zyBooks: CS2020: Intermediate Programming.

Updated: 12/02/2025 03:02PM