Duke CS Logo CompSci 1: Principles of Computer Science
(Spring 2007)
Home
Course Information
Calendar
Labs
Project
Discussion Forum
Blackboard
Oasis

Index


Course Goals

By the end of this course, students should be able to:
  • Reason about algorithms and the central role that they play in computer science, particularly their development representation, execution, and limitations
  • Use information about the purpose of the different layers of a computer system to interpret the abstraction that each layer presents and predict the behavior of a new system
  • Evaluate claims about the social and technical implications of the digital representation of information
  • Use notable applications of computing to evaluate the role of computing and computing researchers in society
  • Adapt a simple algorithm to manipulate some aggregate data, break it down into steps, and implement it utilizing some given code base

Course Description

An overview for students not intending to major in computer science. Computer programming, algorithms, symbolic and numeric computation, computer systems, basic theoretical foundations, and the effects of computer and information technology on society.

This course is aimed primarily at students not wishing to major in Computer Science, but may be used by students with no programming background to explore that possiblity. (Students with some programming background who feel they are not ready for CompSci 6 should consider CompSci 4.)


Time and Place

10:20am-11:10pm on Mondays, Wednesdays, and Fridays; B101 LSRC

Labs on Monday-Friday in Old Chem 01 from 2:50pm-4:05


Texts and Software

Texts are available in the Duke textbook store. There will be a number of readings and exercises assigned from the books, so they are required. You can also buy them online. There will be a number of readings assigned from the books, so I recommend but not require that you purchase the books.

Great Ideas in Computer Science with JAVA, Recommended, by Alan Biermann and Dietolf Ramm 
Computer Science: an Overview (9th Edition), Recommended, by J. Glenn Brookshear
Introduction to Computing and Programming in Java: A Multimedia Approach, Recommended, by Mark Guzdial and Barbara Ericson
Software for the course will be provided via this website or in lab.

Staff

Instructor: Jeff Forbes
Web:
http://www.cs.duke.edu/~forbes/
Email:
Office: D235 LSRC
Office hours: Tuesday 3:30-5:00, Thursday, 10:30-11:15, Friday 11:15-12:00, any time my door is open, or by appointment

Graduate TA: Yi Zhang
Email:
Office Hours: Monday 2:30-3:30 and Thursday 12:00-1:30
Office: 005 North Building

Undergraduate Teaching Assistants:

  • TBA
Contact the staff via email at

Topics covered

See
calendar for tentative list of topics.

Web, Discussion Forum, and Blackboard

Most of the course materials, including the syllabus, lecture notes, reading assignments, homeworks, programming FAQs, etc., will be available through the course Web page (http://www.cs.duke.edu/courses/spring07/cps001/).

The discussion forum is useful for posting questions that are likely to be of interest to the rest of the class. We very much encourage students in the class to post responses to questions. We will monitor the the newsgroup regularly, and post responses to questions that have not previously been asked or answered. Before posting a question, please do make sure that you have read all previous messages and that your question has not yet been discussed.

We will use the Blackboard course management system for posting grades and some course materials, and for turning in some assignments.
(https://courses.duke.edu/bin/common/course.pl?course_id=_46120_1)

Finally, please check your email regularly, as important course announcements will be sent via email.


Grading

Grading is done on an absolute, but adjustable scale. This means that there is no curve. Anyone earning 90% or more of the total number of points available will receive a grade in the A range; 80% or more guarantees a grade in the B range, 70% or more guarantees a grade in the C range, 60% or more guarantees a grade in the D range. This scale may slide down, but it will not go up.

There will be several types of assignments during the term, each contributing to your final grade by approximately the following percentages:

Labs15%
Lab final4%
In-class5%
Quizzes/Assignments18%
Project18%
Midterm15%
Final25%

Course Policies

  • Collaboration Policy

  • Individual extensions will be granted only for medical reasons (see the Short-term Illness Notification policy) or other circumstances beyond your control that must be presented with an official Dean's excuse. We do not grant extensions after an assignment is due, you must request an extension before an assignment is due.

  • There will be periodic quizzes on Fridays. The dates are posted on the course calendar. There are no makeup quizzes. The lowest quiz score will be dropped.

  • You can bring 4 sheets of notes to the midterm exam. The final exam will be open book/open-note.

  • The secret to successfully surviving this course is to start early and work steadily; it is not possible to cram or skim in Computer Science classes. If you are having trouble, be sure to the professor as far before the due date as possible. Do not give up, ask for help.

Feedback

We appreciate any feedback you might have about the course and encourage you to talk to or email the Prof. Forbes, the TA, or UTAs with any questions or concerns you may have. If you have concerns that you do not feel comfortable expressing directly to the course staff, please use the department's anonymous course feedback form.
Last updated Sun Apr 22 17:03:00 EDT 2007