|CS 362, Fall 2017
M/W/F 12:50 - 1:50
|Prof. Lisa Torrey
Algorithms are the core of computer science. They are problem-solving strategies, the ideas behind programs, which remain relevant even as programming languages evolve. This is a topic of some importance, because a good algorithm might take a few seconds to solve a problem that otherwise would have taken the lifetime of the universe. In this course, you will learn to:
The main goal of this course is to provide you with a toolbox for approaching a wide range of computational problems that you are likely to encounter. It will be a mix of theory and practice: we will write algorithms in pseudocode and analyze them with logic and mathematics, and we will also implement them in several programming languages.Prerequisite
Math 280 and CS 256. This course assumes that you have a solid mathematical background and some experience with common data structures.Textbook
The Algorithm Design Manual, 2nd Edition by Skiena. I will assign reading regularly from this text and from supplementary online sources. This text may also be useful to you later as a general reference and a resource for job interviews.Office hours
My office hours this semester are 2-4pm Mon/Wed/Fri. If you have other commitments during those times, we can make other arrangements.Accommodations
If your learning or participation in this course may be affected by a disability or any other factor, please talk to me early in the semester so that we can arrange appropriate accommodations. I will do my best to ensure that everyone can learn effectively.Attendance
Being in class will be crucial for your learning in this course. Absences will leave holes in your understanding of course concepts. If you must miss a class, you are expected to work to get caught up before the next class.
Your final grade will be a weighted average of exams (50%), homework (40%), and reading responses (10%). This table shows how averages translate to the 4-point scale. Please note that I do set a high bar for a 4.0 and this course does not have extra credit.Academic integrity
It is important to me that you conduct your work in this course with academic integrity. That means abiding by the specific policies outlined here, as well as the general guidelines in the Student Handbook. It is my responsibility to report violations of these policies to the Dean.Homework
Problem sets will be assigned weekly. Problems may involve writing and analyzing pseudocode, implementing an algorithm in real code, or describing a problem and solution in prose.
There will be three exams, each covering about a third of the course, with written problems based on the homework. Expected dates are October 2, November 3, and December 20.Reading
For each section of assigned reading, you will be asked to submit responses to some questions. The deadline for each response is the start of the first exam after it was assigned.