Content
Schedule and due dates
- The schedule and due dates will be updated as we progress through
the semester:
- Please check back regularly for changes.
Topical outline
- Slides will usually be posted before class.
- The outline will be filled in with slides, readings, code, and
assignments as the semester moves forward
- The topic schedule may change slightly as the semester
progresses.
- mycode.tar.gz is a zip-like archive file.
- In Linux/Unix/Mac
- Just click on it in your file browser of choice, and it should open
an “archive manager” which can unzip it
- At the command line, you can unpack it by executing in the directory
with the file:
$tar -xf mycode.tar.gz
- In Windows
- you can open it with http://7-zip.org/
- Inspiration, introduction
- Slides: Content/00-Inspiration.html
- Review syllabus
- Review Canvas
- How to review C++ (below)
- Meet your neighbor and exchange contact information
- C++ review
- Reading: ../ProgrammingCpp/Content.html
- Slides: Content/01_Cpp_review.pdf
- Programming assignment 0:
- To prepare for submitting pa00, read the material from section of
the Syllabus titled “Submitting your
assignments”.
- log into https://git-classes.mst.edu and complete the activity in
the repository you will find there.
- You can either use your own computer or CLC computers (where
VirtualBox is already installed on the Windows machines).
- Pointers
- Pointer basics, arrays
- Pointers and functions, arrays of pointers, pointers to
classes
- Dynamic memory, dynamic arrays, memory leaks, classes with
pointer members, constructors and destructors
- Inheritance and polymorphism
- Basic inheritance
- Polymorphism
- Exception handling
- Ch1 ADT, big picture on Data Structures
- Ch2 Mathematical preliminaries and recursion
- Basics of recursion
- Recursion(int day){return Recursion(day+=1);}
- Backtracking
- Ch3 Algorithm analysis
- Asymptotic analysis and Big O
- Analysis and complexity
- Ch4
- ADT list and array list
- (an aside) Modern C++ std:: iterators, containers,
algorithms , std::vector
- Reading:
- Read well:
- http://www.learncpp.com/cpp-tutorial/4-8-the-auto-keyword/
- http://www.learncpp.com/cpp-tutorial/6-12a-for-each-loops/
- http://www.learncpp.com/cpp-tutorial/16-1-the-standard-template-library-stl/
- https://en.cppreference.com/w/cpp/container/vector
- Skim
- http://en.cppreference.com/w/cpp/iterator
- http://www.cplusplus.com/reference/iterator/
- http://en.cppreference.com/w/cpp/container
- http://www.cplusplus.com/reference/stl/
- http://en.cppreference.com/w/cpp/algorithm
- http://www.cplusplus.com/reference/algorithm/
- http://www.learncpp.com/cpp-tutorial/15-1-intro-to-smart-pointers-move-semantics/
- Slides: Content/08b_Modern_Cpp_STL.pdf
- Code: Content/08b_Modern_Cpp_STL.tar.gz
- Linked list
- Doubly linked list, free-lists
- Stack
- Queue
- Associative array, dictionary, map (sub-optimally in a list
form)
- Ch5 and Ch6
- General trees, binary trees, traversals
- Binary search tree
- Heaps
- Applications of heaps
- Ch7
- Internal sorts
- Bin sort, Radix sort
- Ch8, File processing: caching and external sort (optional
topic)
- Ch9, Search
- Basic search
- Hash tables
- Ch11, Graph theory
- ADT graph
- Graph implementations
- Traversals: Depth-first search,
Breadth-first search
- Topological sort, Shortest path
- MST
- Wrap-up, review
- Ch10, Indexing, B-trees (optional topic, likely
skip)