Instructors: | Martin Robillard and Mohamed Smaoui |
---|---|
Time and place: | Mondays, Wednesdays, Fridays, 9:35-10:25, ADAMS AUD |
Office hours: | See on myCourses |
(3 credits; 3 hours) An introduction to the design of computer algorithms, including basic data structures, analysis of algorithms, establishing correctness of programs and program testing. Overview of topics in Computer Science.
Required Textbook: Allen B. Downey, Think Java - How to Think Like a Computer Scientist, version 5.1.2.
Complementary: Frank M. Carrano and Timothu M. Henry. Data Structures and Abstractions with Java, 4th Edition, Pearson.
Official Academic Integrity Statement McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offenses under the Code of Student Conduct and Disciplinary Procedures (see www.mcgill.ca/students/srr for more information). Note that we reserve the right to run plagiarism detection software on all software submitted as assignments.
Language Policy In accord with McGill University’s Charter of Students’ Rights, students in this course have the right to submit in English or in French any written work that is to be graded.
The following is a basic breakdown of topics for each week. The detailed schedule is available on mycourses.
Week | Lecture Topics |
---|---|
1 | Introduction to algorithms. Basics of programming |
2 | Basics of programming: loops, conditionals, arrays and strings |
3 | Recursion; Debugging |
4 | Proofs by induction; Running time of algorithms |
5 | Big O notation; Analysis of algorithms |
6 | Introduction to object-oriented programming |
7 | Abstract data types: stacks, queues, trees |
8 | Review and midterm exam |
9 | Object-oriented programming |
10 | Abstract data types: heaps, hashtables, graphs |
11 | Topics in computer science: graph algorithms, search engines, cryptography |
12 | Topics in computer science: Bioinformatics, web applications, privacy and the Internet |
13 | Review |