FYS 102

FYS 102: Algorithmics
Fall, 2005

Professor: Jessen Havill Phone: 587-6582
Office: Olin 208 E-mail: havill@denison.edu
Web site: http://personal.denison.edu/~havill/      Mailbox: Olin 201
Office hours: Please see the schedule outside my office.


As a Denison student, you use and are affected by computers every day, as you type papers and analyze data for classes, check e-mail, IM, surf the web, check out library books, enter your residence hall, eat in the cafeteria, purchase and listen to music, play games, use the ATM, talk on your cell phone, watch TV, take photos, and drive a car.

Most people are now comfortable applying computing technology to these and other tasks, but very few really understand the science behind computing. Computer science is all about algorithms, precise sequences of steps that solve problems. In order to make a computer do something useful, someone must design and implement an efficient algorithm for it to follow.

In this seminar, we will learn about and practice designing, writing and analyzing algorithms, and ultimately investigate the limits of efficient computation. Along the way, we will see that algorithms are not at all unique to computer science but are, in fact, used in many fields such as biology, chemistry, economics, political science, and even art.

Required and Optional Texts

Algorithmics: The Spirit of Computing, Third Edition by David Harel with Yishai Feldman
The Pattern on the Stone by W. Daniel Hillis
Learning Python by Mark Lutz and David Ascher (optional)

Web Resources

I will maintain a class web page containing reading assignments, homework assignments, answer keys, examples, and other useful resources. Refer to this page daily for updated information. The class home page can be found at http://personal.denison.edu/~havill/102/


In order to be successful in this class, you must take an active role in the learning process by attending class, completing the assigned reading on time, participating in discussions and asking questions, and conscientiously completing assignments.
Attendance. Your attendance is expected at each class meeting, unless your absence is excused for a very good reason. Scheduled absences must be communicated to me well in advance. You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class. If you must miss a class, be sure to check with me or another student to get what you missed. Exams will be given in class on the day scheduled and may not be made up.
Reading. It is very important that you finish the assigned reading before coming to class so you will be ready to participate and to ask questions. All reading assignments will be listed on the class web page. Reading in mathematics and computer science is often dense, requiring several passes. It is not enough to scan the reading once without understanding it. You should be prepared to read and study material many times until you grasp it. As you read, you may want to take notes and draw pictures to help you understand the concepts. Be sure to ask questions in class or during office hours if you are unclear about a subject. You can understand even the most difficult concepts with enough perseverance!
Homework. There will be a number of independent assignments given during the semester which will be due in class on the date specified. No late homework assignments will be accepted. Since it will most likely not be obvious how long an assignment might take, you are well advised to start right away. Like other classes at Denison, it is expected that you devote at least 2-3 hours to these assignments for each hour of class time. Your work will be graded on both content and writing style. A correct answer is not very useful if it is not clearly communicated to the reader!
Plagarism. You may generally discuss problems with other students in the class, but the work you hand in must be your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. When it comes time to write your solutions, you are on your own. I will report all cases of academic misconduct to the Associate Provost for disciplinary action. You may not get help from students outside the class. If you have questions, please come see me and I will be happy to help. You are also quite welcome to send me e-mail or call if you would like to discuss an assignment.

Grade Determination

The following relative weights will be used to determine your final grade:
3 midterm exams 45%
Writing assignments 35%
Homework assignments 10%
Class participation 10%
There will be no final exam. (Your final research paper will substitute.)

General Course Outline

  1. What is an algorithm? What is a computer?

  2. Writing algorithms carefully

  3. Organizing and manipulating data in algorithms

  4. Translating algorithms into computer programs

  5. Algorithm design strategies

  6. Proving algorithms are correct

  7. Analyzing the efficiency of algorithms

  8. Are there problems for which no algorithm exists?

  9. Is there such thing as a universal computer?

  10. Algorithms and Intelligence

  11. Examples of algorithms in Economics, Biology, Physics, Chemistry, Sociology, and Art


Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss his or her specific needs. I rely on the Office of Academic Support to verify the need for reasonable accommodations based on documentation on file in their office.
Have a great semester! If you need anything, please let me know.

File translated from TEX by TTH, version 3.38.
On 24 Aug 2005, 15:41.