Untitled document
At the conclusion of this course, the student should be able to:
1. Write programs that use each of the following data structures: arrays, records, strings, linked
lists, stacks, queues, and hash tables.
2. Implement, test, and debug simple recursive functions and procedures.
3. Evaluate tradeoffs in lifetime management (reference counting vs. garbage collection).
4. Explain how abstraction mechanisms support the creation of reusable software components.
5. Design, implement, test, and debug simple programs in an object-oriented programming
language.
6. Compare and contrast object-oriented analysis and design with structured analysis and design.
Untitled document
I. Programming Fundamentals
A. Primitive types
B. Arrays
C. Records
D. Strings and string processing
E. Data representation in memory
F. Static, stack, and heap allocation
G. Runtime storage management
H. Pointers and references
I. Linked structures
J. Implementation strategies for stacks, queues, and hash tables
K. Implementation strategies for trees
L. Strategies for choosing the right data structure
II. Recursion
A. The concept of recursion
B. Recursive mathematical functions
C. Simple recursive procedures
D. Divide-and-conquer strategies
E. Recursive backtracking
F. Implementation of recursion
III. Declarations and Types
A. The conception of types as a set of values together with a set of operations
B. Declaration models (binding, visibility, scope, and lifetime)
C. Overview of type-checking
D. Garbage collection
IV. Abstraction Mechanisms
A. Procedures, functions, and iterators as abstraction mechanisms
B. Parameterization mechanisms (reference vs. value)
C. Activation records and storage management
D. Type parameters and parameterized types - templates or generics
E. Modules in programming languages
V. Object-Oriented Programming
A. Object-oriented design
B. Encapsulation and information-hiding
C. Separation of behavior and implementation
D. Classes and subclasses
E. Inheritance (overriding, dynamic dispatch)
F. Polymorphism (subtype polymorphism vs. inheritance)
G. Class hierarchies
H. Collection classes and iteration protocols
I. Internal representations of objects and method tables
VI. Software Design
A. Fundamental design concepts and principles
B. Design strategy
All topics are covered in both the lecture and lab parts of the course.
Untitled document
Starting Out with C++ From Control Structures through Objects. 8th ed. Gaddis, Tony. Pearson. 2014
Student Preparation |
Matric Assessment Required: | E | Requires English Assessment |
Prerequisites-generate description: | A | Auto-Generated Text |
Advisories-generate description: | A | Auto-Generated Text |
Prereq-provisional: | N | NO |
Prereq/coreq-registration check: | Y | Prerequisite Rules Exist |
Requires instructor signature: | N | Instructor's Signature Not Required |
| | |
BASIC INFORMATION, HOURS/UNITS & REPEATABILITY |
Method of instruction: | 02 | Lecture |
| 04 | Laboratory |
| 71 | Internet-Based, Simultaneous Interaction |
| 72 | Internet-Based, Delayed Interaction |
Area department: | CS | Computer Studies |
Division: | 72 | Arts & Humanities |
Special topic course: | N | Not a Special Topic Course |
Program Status: | 1 | Major Applicable Course |
Repeatability: | 00 | Two Repeats if Grade was D, F, NC, or NP |
Repeat group id: | | |
| | |
SCHEDULING |
Audit allowed: | Y | Auditable |
Open entry/exit: | N | Not Open Entry/Open Exit |
Credit by Exam: | N | Credit by examination not allowed |
Budget code: Program: | 0000 | Unrestricted |
Budget code: Activity: | 0701 | Computer & Information Science |
| | |
OTHER CODES |
Disciplines: | Computer Science |
Basic Skills: | N | Not a Basic Skills Course |
Level below transfer: | Y | Not Applicable |
CVU/CVC status: | Y | Distance Ed, Not CVU/CVC Developed |
Distance Ed Approved: | Y | Exclusively online or other technology based instruction |
Emergency Distance Ed Approved: | N | |
Credit for Prior Learning: | N | Agency Exam |
| N | CBE |
| N | Industry Credentials |
| N | Portfolio |
Non-credit category: | Y | Not Applicable, Credit Course |
Classification: | Y | Liberal Arts and Sciences Courses |
SAM classification: | E | Non-Occupational |
TOP code: | 0706.00 | Computer Science (Transfer) |
Work-based learning: | N | Does Not Include Work-Based Learning |
DSPS course: | N | NO |
In-service: | N | Not an in-Service Course |
Lab Tier: | 23 | Credit Lab - Tier 3 |