Happy New Year! I hope your winter break has been restful and relaxing!
I’ve gotten a few requests from folks about how to prepare for CS 2341. So I thought I’d provide a list of things to review before class starts:
- C++ Language
- Pass by value vs pass by reference vs pass by pointer
- Pointers and dynamic memory allocation
- How to declare classes and their main methods (constructors, destructors, etc)
- Operator overloading in a class
- Object composition
- Did I mention Pointers?
- How to declare a pointer?
- How to dynamically allocate memory on the heap?
- How to dynamically allocate an array of pointers?
- the & operator and the * operator
- How to separate interface from implementation
- reading and writing files and parsing data
- Conceptual Things
- How to break a problem down into bite-sized chunks.
- The idea that a function should do one thing and it should only do that one thing
- Developing algorithmic solution to basic problems involving a simple 1D array
- make use of control structures like ifs and loops
- example: Find the 2nd smallest value in an array with only 1 loop.
- The conceptual relationship between pointers and arrays.
- How to use a debugger
Perhaps the thing that is the biggest curve ball to students in 2341 is the scope and scale of the programming projects. They will be much larger than you’ve encountered in previous classes. This is intentional. Learning to take a really large project description and break it down into manageable pieces (said another way: how to functionally decompose a problem) is as important of a skill to develop as actually being able to write the code to solve one of those pieces.