What students need to know prior to taking CS 311
Core types
- variables
- control flow
- separation of code
Students should know how to write and use a class:
- class definition
- access specifiers
- public
- protected
- private
- multiple constructors
- destructors
- member data
- const & non-const member functions
- static member data
Some things not covered in CS 311 or covered very little:
- OOP & OO design, including
- I/O
Students need to have
- written code, built, and execute significant software packages involving
- classes
- objects
- multiple functions
- multiple code files
Students should know something about designing software themselves:
Students should be able to interface:
- interface with software written by someone else &/or
- implement someone else's design.
Students should have performed
Students know the basics of
- storing and accessing datasets
- in memory
- in files
Here are a few things that I cover in detail, without assuming much prior experience. I'm generally happier if students have seen them before, but that is not absolutely required:
- pointers
- built-in arrays
- dynamic memory allocation
- templates
Some things that I cover in detail, and I think it's fine if students have never seen them before.
- exceptions & exception safety
- RAII & resource management