Include a brief summary of the course topics and requirements, the general format of the course, and the methods of evaluation. == Skills and knowledge students should have prior to beginning the course: == * Unordered List Item == Course Topics: == C programming language (pointers; dynamic storage), recursion (recursive definitions / functions), algorithm analysis (big-O definition and basic properties; pseudocode; big-O best / average / worst case time complexity; polynomial / exponential algorithms), abstract data types (main operations, with preconditions, postconditions, and axioms), lists (sequential and linked representations; sorted lists; traversal, simple / binary search, insertion, removal), stacks and queues (sequential and linked representations; push and pop / enqueue and dequeue), trees (recursive definition; m-ary trees, binary trees and balanced binary trees, heaps; m-way search trees, binary search trees and self-balancing binary search trees; representations; preorder / postorder / inorder / breadth-first / depth-first traversal, search, insertion, removal), tables (a few possible representations, e.g., sorted array, self-balancing binary search tree; hash tables / functions, load factor, division method, linear probing, double hashing, chaining; traversal, search, insertion, removal), priority queues (a few possible representations, e.g., sorted array, heap, self-balancing binary search tree; priority queue sorting algorithms and how they compare with quicksort) == Course Format: == * Lecture format:instructor-led * Online materials location and format: (for Fall 15 offering) www.socs.uoguelph.ca/~matsakis/courses/ * Lab or tutorial format and expectations:student-centered == Method of evaluation (Fall 15 offering): == * Number of Assignments: 4 * Number of Graded Labs: 0 (optional use of clickers) * Number of Quizzes: 0 (optional use of clickers) * Formal Midterm? YES * Course project? NO * Final Exam? YES * Group work? NO * mostly programming assignments? YES * Written documents? YES