McGill University
School of Computer Science
Course Outline

Introduction to Computer Science with Algorithms
308-250

Instructor Information

 Instructor Joseph Vybihal Office McConnell 323, MF 4-5 PM Class MWF 13:00-14:30 PM Web Site http://www.cs.mcgill.ca/~cs250

Course Description

This course will introduce you to many of the basic concepts in computer science. The most fundamental idea being the algorithm. Since you already have experience in programming, we will focus our attention on how to design and program algorithms that are correct and efficient. Measuring techniques exist that will be incorporated in our search for the perfect algorithm. Programming is a vital skill, and becoming good at it is a major component of this course. We will divide our time between studying existing algorithms that have been created well, and developing techniques and habits that encourage us to design good code. We will also discuss what "good" means in relation to programming. In the end you will be able to use Java to create correct and efficient code. You will have learned new and useful algorithms and data structures that are commonly used in science, engineering and business. This knowledge will be portable across languages and machines. This, then, is the ultimate goal of good software and engineering techniques.

Tentative Schedule

 WEEK TOPIC CHAPTERS WORK 1 Part One: Introduction Algorithms, Coding and Good Code CH 1 2 Running Time Analysis Part Two: Basics of Java CH 1 and Notes See 202 web site Ass #1 Given 3 Java I/O, Iteration, Arrays and Procedures Notes 4 Classes, Objects, ADTs Notes Ass #2 Given 5 Part Three: Recursion Thinking Recursively CH 8 6 Review and Midterm Exam Tutorial #1 Midterm Exam 7 Part Four: Advanced Data Structures and Algorithms Collection Classes & An Applet Primer CH 3 & CH 4 Ass #3 Given 8 Linked Lists & Java Iterators CH 4 & CH 5 9 Stacks, Queues and Trees CH 6, CH 7, CH 9 Ass #4 Given 10 Heaps & B-Trees CH 9 & CH 10 11 Searching and Sorting CH 11 & CH 12 Ass #5 Given 12 Inheritance and Graphs CH 13 & CH 14 13 Misc. Topics (if time permits) Notes Ass #6 Given 14 Review and Final Exam Tutorial #2 Final Exam

Textbook

Data Structures & Other Objects Using Java. By: Michael Main. Addison Wesley. ISBN 0-201-35744-5.

Note that this will only be a reference book. Class notes will be the primary source of information for this course.

Course Evaluation

 Assignments 30 % Six assignments each weighted 5 % Midterm 20% TBA - probably week of February 5th. Final Exam 50 % TBA

Tutorials = 2 sessions (1-Midterm, and 2-Final)