Computer Science 320: Problem Solving
Spring 1995

Course description and Syllabus

Instructor: Bruce J. MacLennan
Phone: 4-5067
Office: 110-A, Ayres Hall
Email:
maclennan@cs.utk.edu
Hours: 2:30-3:25 or make an appointment.

Teaching Assistant: Chuck Hand
Phone: 4-8635
Office: 1B, Ayres Hall
Email: hand@cs.utk.edu
Hours: 10:00-12:00 in Hydra Lab

Classes: 3:35-4:25 WF (Ayres 316 - change from scheduled!)
Labs: 2:30-5:30 M (Ayres 15)

CS 320 Home Page


Information


Prerequisites

If you lack any of these prerequisites, you must see me to discuss whether or not you should take the course.


Required Texts

Optional Text


Assignments


Laboratory

Attendance at laboratory is mandatory. You may make up one missed lab, simply by making arrangements with the instructor. If you miss a lab and do not make arrangements to make it up, you will fail the course.

We attempt to design labs so that a well-prepared student who works energetically can complete the lab in the 3-hour lab session. You should strive to do so, since the teaching assistant will be at the lab to answer your questions. However, you may continue to work on the lab after the lab session; details will be given at the first lab.


Grading Plan

Lab: 20%
Weekly homework: 10%
First test: 20%
Second test: 20%
Final exam: 30%

Doing the weekly homework is necessary to succeed in this course. In a sense, it counts far more than merely 10%. Likewise, succeeding at the labs is necessary to succeed in the tests.


Policy on joint work and outside help

The ability to share common interests and ideas is a valuable tool for learning. I encourage you to discuss your homework and lab problems with your fellow students, and to seek outside help when you do not understand something, be it Lisp code or algorithm analysis. However, I insist you abide by two rules. First, you must always make a serious attempt to understand the problem and a reasonable attempt to solve it by yourself before you ask for help or discuss the problem with someone else. Second, whatever you turn in, you must completely understand. It is acceptable, for instance, for someone else to explain to you how to get over some programming hurdle, but you must understand the answer given (and not just notice that it does the job) if you turn in that work.

If you collaborate with someone on an assignment (per the above rules), and if the collaboration is substantial, please note on the assignment that I worked with so-and-so. This will serve as a gentle reminder of the above rules.


Goals

Each of the above goals is of roughly equal importance. However, the proficiency expected is in the order listed: respectable at Lisp, modest at algorithm invention and analysis, passable at proofs, and an intuitive feel for the ``great ideas.''

General Approach

Typically, the first lecture will introduce a topic in the abstract, followed quickly by several examples. In the laboratory, students will study the ``nuts and bolts'' of the topic, often by coding up an algorithm and running an experiment with it. Treatment of topics will be light. The emphasis will be on getting major ideas across, and letting other courses build upon a firm foundation created in CS 320.

Caveats


Topics

  1. Introduction to problem solving by human and computer (Brassard & Bratley, ch. 1)
  2. Proof techniques (Solow)
  3. Analyzing the efficiency of algorithms (Brassard & Bratley, ch. 2)
  4. Greedy algorithms (ch. 3)
  5. Divide-and-conquer algorithms (ch. 4)
  6. Dynamic programming (ch. 5)
  7. Probabilistic algorithms (ch. 8)
  8. Genetic algorithms
  9. Neural networks
  10. Introduction to decidability and complexity (ch. 10)

Schedule

The two exams will be at approximately the 1/3 and 2/3 points of the semester (most likely after chapters 4 and 8 are covered). Exact dates will be announced later.
Send mail for corrections or clarifications.

Return to MacLennan's home page


Based on a document prepared by David Mutchler on January 12, 1993.
Revised by Bruce MacLennan / MacLennan@cs.utk.edu