CSCI 201.003 Introduction to Algorithm Design

Fall Semester 2010

Class Policies


Last revised 17 August 2010, 1:40 pm

Note: For general information on this course you should start from the 201.003 Home Page, which includes links to the Lecture Schedule and the Exam Schedule. This page covers textbook/resource information and grading policies regarding homework, exams, and attendance.

Text: Python for Software Design: How to Think Like a Computer Scientist, Allen B. Downey, Cambridge University Press, ISBN 13: 978-0-521-72596-5 (paperback).

Note: an online version of the manuscript for this text is published by Green Tea Press under the alternate title Think Python: How to Think Like a Computer Scientist. Additional online resources for this course are listed on the 201.003 Home Page.

Summary of course goals and contents: This course is an introduction to basic principles of computer programming and the design of algorithms for fundamental computing tasks. Its primary goals are to develop skills in analytical thinking and problem solving, as well as to introduce fundamental concepts of programming in high-level computer languages.

Most of your work load in this course will be in the form of programming projects. These will include all the projects that you implement in your weekly supervised laboratory sessions, as well as homework assignments that you complete outside of class. The first set of projects, extending over roughly the first half of the course, will be implemented in the Python programming language. The remaining projects will all be implemented in Java. No prior knowledge of either language is necessary or expected.

Note: The inclusion of two distinct languages in this course serves several purposes:

In general the homework projects will be simple exercises designed to reinforce basic concepts and help you prepare for the exams. Unless otherwise stated, each homework project will be due one week from the date of assignment. At any time during the semester, you can get a current list of the homework assignments, with descriptions and due dates, from the Homework page.

The policy on late homework assignments is as follows:

Up to ONE week past due date: 10% off regular grade
More than ONE week past due date: NO CREDIT

This policy is designed to reduce the load on both the students and the available systems, especially during the last weeks of the semester.

In addition to the in-class lab projects and the homework assignments, there will be three midterm exams and a final exam. Tentative dates for the midterms are given in the Lecture Schedule, with more detail provided in the Exam Schedule. If it later becomes necessary to reschedule any of the midterms, the actual date will be announced at least two weeks in advance. The date of the final exam is set by the UNCA Fall 2010 Final Exam Schedule (Thursday, December 9, 3:00 - 5:30 pm). At any time during the semester, you can consult the Exam Schedule for currently available information.

Makeup tests are normally not permitted, unless a student can provide in advance a satisfactory reason for failure to take a scheduled test. Because of the time constraints, no makeup is allowed for the final examination.

Overall grades for this course will be evaluated as follows:

Average grade for all supervised laboratory projects: 30%
Average grade for all homework: 30%
Average grade for three midterm exams (open book): 30%
Final examination (open book): 10%

The weighted numeric grade computed on this basis at the end of the semester is used to determine the final letter grade for each student. Letter grades for this course will be based on the plus/minus grading policy (A, A-, B+, B, B-, C+, C, C-, D, F).

Although class rolls are not taken on a regular basis, consistent attendance is regarded as an essential requirement of the course. In particular, repeated or consecutive absences are a key factor in "borderline" grading decisions.