| Week | Topics | Resource links |
| Sept 1-5 | Notes:
1. No lecture Sept. 1st (VIU closed) and no labs this week 2. Be sure to attend the first lecture or contact the instructor to avoid being dropped as a "no show". | |
| Course mechanics, administrivia | outline, lab exercises, lab quizzes, technotes | |
| How to succeed in 159 | youtube, getting help, studying | |
| Intro to the software development process | youtube, slides | |
| Intro to languages, syntax, semantics | youtube, slides | |
| Intro to the edit/compile/execute cycle
(and command lines vs IDEs) |
youtube, slides | |
| Sept 8-12 | Notes: labs start this week (sessions in room 102) | |
| Intro to C++ syntax/layout | youtube, slides | |
| Constants, variables, data types, and computation | youtube, slides | |
| Output/input with cout/cin | youtube slides | |
| Documentation, style, and standards | youtube, slides, standards | |
| Sept 15-19 | Libraries, using functions and parameters | youtube slides |
| Function/library examples | youtube | |
| Creating our own functions | youtube slides | |
| Sept 22-26 | Introductory program design and implementation | youtube |
| Modularity, structured and top down design | youtube slides | |
| Pass-by-reference parameters | youtube slides | |
| Sept 29-Oct 3 | If/else, switch, bool | youtube slides |
| Error checking input (scanf, cin) | youtube slides | |
| intro to recursion | youtube slides | |
| Oct 6-10 | dave sick Monday, ...continuing with recursion wednesday ... | |
| Oct 13-17 | Notes:
1. VIU closed Monday Oct 14th for Thanksgiving 2. All of VIU's Monday lectures/labs are moved to Tuesday this week | |
| loops: while, do while, for, scope | youtube, slides, shapes code example | |
| Intro to scopes (local/global) | youtube slides | |
| break, continue, nested loops, errors | youtube slides | |
| Oct 20-24 | parameter default values, function overloading | youtube, slides |
| intro to arrays | youtube slides | |
| arrays as parameters | youtube slides | |
| Oct 27-31 | null terminated character arrays, cstring library | youtube, slides |
| strings revisited | youtube, slides | |
| conversion to/from text arrays | youtube, slides | |
| Nov 3-7 | using AI in CSCI courses | slides |
| searching (linear/binary) and sorting(bubblesort) | youtube slides | |
| Nov 10-14 | Study week, no labs or lectures | |
| Nov 17-21 | intro to structs | youtube, slides |
| more about structs and arrays | youtube , slides, sample code | |
| intro to testing | youtube slides | |
| Nov 24-28 | intro to pointers and their applications | youtube, slides |
| dynamic memory allocation (new, delete), and pointer bugs | youtube, slides | |
| pointers to structs, dynamic data structures | youtube, slides, pointers to structs for times | |
| Dec 1-5 | linked list implementation using structs | youtube, slides |
| Course wrap-up, exam overview (material, question styles, format) | ||
| Dec 8-18 | Official final exam period | Final exam in the gym, date/time tba |
| Extra topics (time permitting) | ||
| intro to information hiding and abstract data types (ADTs) | youtube, slides | |
| intro to classes and object oriented programming | youtube, slides | |
| intro to C++ style file I/O | youtube, slides | |
| Intro to debugging, debuggers, and code tracing | youtube slides | |
| more on debuggers and debugging | youtube, slides | |
| the gdb debugger | youtube, slides | |
| intro to git and make | youtube slides | |
| intro to compilation, linking, and loading | youtube, slides | |
| intro to namespaces | youtube, slides | |
| random number generators | youtube slides, a pi approximator | |
| command line arguments (argc, argv) | youtube, slides | |
| two dimensional arrays | youtube, slides | |