Introduction to Computer Science (COMP-250)

Winter 2014


Lecture Schedule

Date Topic Materials
Jan. 6
 Introduction. What is an algorithm? How do we express algorithms? What makes a good algorithm? Examples: adding fractions, finding the maximum in an array  Lecture 1 typed notes in pdf, class presentation
 
Jan. 8
 Algorithm examples: Intersection of student lists. Finding a student in a list. Abstraction  Lecture 2 typed notes in opdf, class presentation
 
Jan.10
 More on the intersection of student lists. Binary search. Analysis of running time. Recursive version of binary search  Lecture 3 typed notes in pdf, class presentation
 
Jan.13
 Basics of Java: variables, basic types, casting, loops and conditionals. Introduction to memory organization  Lecture 4 class presentation
 Examples of Java code: Welcome.java, TestVariables.java, TestIf.java, TestWhile.java, TestFor.java
Jan.15
 Java: Arrays. Methods. More on memory management.  Lecture 5 class presentation
 
Jan.17
 Java: Classes, objects, methods. Constructors. Public and private. A class for representing polynomials.  Lecture 6 class presentation
Poly.java andTestPoly.java
Jan.20
 More on methods, parameter passing. Inheritance  Lecture 7 class presentation
 TestPoly.java, PositivePoly.java
Jan.22
 Java: More on inheritance, scope and visibility. Keywords: static, this.  Lecture 8 class presentations
TestCircular.java, Circle.java, Sphere.java, Circular.java
Jan.24
 Interfaces vs inheritance. Comparable. Generic types.  Lecture 9 class presentation
Jan.27
 Big-Oh: Examples, definition, properties.  Lecture 10 typed notes in pdf, class presentation
Jan.29
 Sorting. Selection Sort.  Lecture 11 typed notes in pdf, class presentation, Java code
Jan.31
 Proofs by induction. Proving correctness of recursive algorithms using induction  Lecture 12 typed notes in pdf, class presentation
Feb. 3
 Guest lecture: Inheritance vs interfaces (Prof. Prakash Panangaden)  Lecture 13 notes in pdf
Feb. 5
 Guest lecture: More on recursion (Prof. Prakash Panangaden)  Lecture 14 notes in pdf, Hilbert curve code, Sierpinski code  
Feb. 7
 Guest lecture: MergeSort (Prof. Michael Langer)  Lecture 15 typed notes in pdf, class presentation
Feb.10
 Proving correctness and running time of MergeSort  Lecture 16 typed noted in pdf, class presentation, Java code
Feb.12
 Quicksort: running time analysis  Lecture 17 typed noted in pdf, class presentation
Feb.14
 More on big-oh, counting and induction.  Lecture 18 class presentation
Feb.17
 Abstract Data Types: Lists  Lecture 19 class presentation. A package implementing single linked lists and a test class for this package.
Feb.19
 Abstract Data types: Lists (continued)  Lecture 20 class presentation
Feb.21
 Abstract Data Types: Stacks  Lecture 21 class presentation
 Implementation using arrays, and a simple application for parenthesis balancing
Feb.24
 Guest Lecture: Prof. Mathieu Blanchette. Abstract Data Types: Queues  Lecture 22 class presentation
Feb.26
 More on linear data structures in Java. Using predefined classes.  Lecture 23 class presentation
Feb.28
 Abstract Data Types: Trees. Binary trees  Lecture 24 class presentation
Mar.10
 Binary Search Trees  Lecture 25 class presentation
Mar.12
 In-class midterm exam, covering lectures 1-23  Lecture 26 sample exams folder
Mar.14
 More on binary Search Trees  Lecture 27 class presentation
Mar.17
 Heaps  Lecture 28 typed notes, code for heap data structure, testing class for the heap data structure, class presentation
Mar.19
 Hash tables  Lecture 29 typed notes, code to demonstrate the effect of the hash function on the spread of elements, class presentation
Mar.21
 Programming techniques: dynamic programming, greedy algorithms  Lecture 30 class presentation
Mar.24
 Graphs  Lecture 31 class presentation
Mar.26
 Graph traversal  Lecture 32 class presentation
Mar.28
 Google  Lecture 33 class presentation
Mar.31
 Graph problems. Introduction to computational complexity. P vs NP problems  Lecture 34 class presentation
Apr. 2
 More on NP problems. Introduction to computability  Lecture 35 class presentation
Apr. 4
 Introduction to AI. Game search  Lecture 36 class presentation
Apr. 7
 No class (Election Day)   
Apr. 9
 Machine learning  Lecture 37 class presentation
Apr.11
 Recap of class, final exam preparation  Lecture 38 sample exams folder, some more solved sample problems