| Week | Topics | Resource links |
| Sept 7-11 | Notes:
1. No lecture Sept. 7th (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 14-18 | 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 21-25 | Libraries, using functions and parameters | youtube slides |
| Function/library examples | youtube | |
| Creating our own functions | youtube slides | |
| Sept 28-O2 | Introductory program design and implementation | youtube |
| Modularity, structured and top down design | youtube slides | |
| Pass-by-reference parameters | youtube slides | |
| Oct 5-9 | If/else, switch, bool | youtube slides |
| Error checking input (scanf, cin) | youtube slides | |
| intro to recursion | youtube slides | |
| Oct 12-16 | loops: while, do while, for, scope | youtube, slides, shapes code example |
| Intro to scopes (local/global) | youtube slides | |
| Lab session tools and tips: intro to git and make | youtube slides | |
| Oct 19-23 | Notes:
1. VIU closed Monday Oct 14th for Thanksgiving 2. All of VIU's Monday lectures/labs are moved to Tuesday this week 3. Lab sessions will include review/prep for next week's midterm | |
| break, continue, nested loops, errors | youtube slides | |
| parameter default values, function overloading | youtube, slides | |
| random number generators | youtube slides, a pi approximator | |
| Oct 26-30 | Midterm in lecture Monday Oct 26 | |
| intro to arrays | youtube slides | |
| arrays as parameters | youtube slides | |
| Nov 2-6 | null terminated character arrays, cstring library | youtube, slides |
| strings revisited | youtube, slides | |
| conversion to/from text arrays | youtube, slides | |
| two dimensional arrays | youtube, slides | |
| Lab tools and tips: Intro to debugging, debuggers, and code tracing | youtube slides | |
| Lab tools and tips: more on debuggers and debugging | youtube, slides | |
| Lab tools and tips: the gdb debugger | youtube, slides | |
| Nov 9-13 | Study week, no labs or lectures | |
| Nov 16-20 | searching (linear/binary) and sorting(bubblesort) | youtube slides |
| using AI in CSCI courses | slides | |
| Nov 23-27 | intro to structs | youtube, slides |
| more about structs and arrays | youtube , slides, sample code | |
| Nov 30-D4 | 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 | |
| Lab tools and tips: intro to testing | youtube slides | |
| Dec 7-11 | linked list implementation using structs | youtube, slides |
| intro to information hiding and abstract data types (ADTs) | youtube, slides | |
| Course wrap-up, exam overview (material, question styles, format) | ||
| Extra topics (time permitting) | ||
| intro to classes and object oriented programming | youtube, slides | |
| intro to C++ style file I/O | youtube, slides | |
| intro to compilation, linking, and loading | youtube, slides | |
| intro to namespaces | youtube, slides | |
| command line arguments (argc, argv) | youtube, slides | |