Pre-Requisites
CMPSC 16 is NOT an introductory programming course; rather, it is an intermediate level programming course. Your instructors:
- will not assume any prior knowledge of the C++ programming language.
- will assume that you already have certain programming skills and knowledge in some language (perhaps Java, Python, MATLAB or something else).
The formal pre-requisite for CMPSC 16 (from the official UCSB catalog description) is:
Prerequisite: Mathematics 3A or 2A with a grade of C or better (may be taken concurrently), CS 8 or Engineering 3 with a grade of C or better, or significant prior programming experience
What is needed, in practice, is the following set of skills and knowledge.
|
|
What you should learn in CS16 to be ready for CS24
So, what is it that you need to know by the end of this course? Here's the list of just a few of the things you'll need to know to be ready for CS24 (the next programming course). You'll have the opportunity to learn all of these things (though not necessarily in this order).
- A few of the basic data types of C++, including at least, int, double, char, bool, string
- The basic control structures of C++ (if/else, while, for etc.)
- Defining functions in C++, and passing parameters to functions in three different ways (by value, by pointer, and by reference)
- Scope and lifetime of variables in C++
- The use of “const” with parameters to functions
- Using arrays in C++, and C-strings (null-terminated character arrays)
- How arrays are passed to functions, and the relationship between arrays and pointers
- Defining and working with structs in C++
- Using structs to create singly linked lists where the space for the list nodes is allocated on the heap
- The difference between space allocated on the stack (e.g. local variables) and space allocated on the heap (with the new and delete operators)
- Converting from binary to decimal, octal, and hex, and back again—and how this relates to how C++ programs store various kinds of data in memory.
- The basic principles of recursion, and some idea of when a recursive solution is appropriate.