Have a question? Please contact Donna Gabai (dgabai@cs) or Dave Pritchard (dp6@cs).
Course description. An introduction to computer science in the context of scientific, engineering, and commercial applications. The goal of the course is to teach basic principles and practical issues, while at the same time preparing students to use computers effectively for applications in computer science, physics, biology, chemistry, engineering, and other disciplines. Topics include: programming in Java; hardware and software systems; algorithms and data structures; fundamental principles of computation; and scientific computing, including simulation, optimization, and data analysis.
Instructor. Doug Clark.
Lectures. Lectures meet on Tuesdays and Thursdays at 10am and at 11 am.
Preceptors. Lennart Beringer · Allison Chaney · Siddhartha Chaudhuri · Samuel Clark · Tom Funkhouser · Donna Gabai (co-lead) · Judi Israel · Nanxi Kang · Kevin Lee · Che-yu Liu · Siyu Liu · Shilpa Nadimpalli · Vivek Pai · David Pritchard (co-lead) · Pawel Przytycki · Tardu Sepin · Boyang Song · Yuxuan Wang ·
Precepts. Precepts meet twice a week on Tuesdays and Thursdays or Wednesdays and Fridays. Precepts begin either February 5 or 6.
Undergraduate coordinator. For enrollment problems, see Colleen Kenny-McGinley in CS 210.
Course website. The course website contains a wealth of information, including precept rosters, office hours, lecture slides, programming assignments, and old exams.
Computing facilities. Undergraduate lab TAs are available most evenings in Friend Center 017 to provide general help with using your operating system and assist with debugging your programs (Mon thru Fri 7-11pm, Sat 2-6pm, Sun 5-11pm). Here is the Lab TA home page.
Online forum. If you have general questions about the assignments, lectures, textbook, or other course materials, please post via Piazza. Posts marked private are viewable only by instructors. Never post assignment code to Piazza. Doing so publicly violates the collaboration policy, but even privately it is difficult for us to read large chunks of code in Piazza. If your question requires us to look at your java file(s), consider office hours, the lab, or this two-step approach: (1) ask a general question describing your problem; (2) if you're still stuck afterwards, upload your files to the assignment dropbox and ask your specific question in a private post (mention that you uploaded to dropbox).
Grading. Two 2-part exams (50%), nine programming assignments (40%), final programming project (10%), and staff discretion. We record grades in Blackboard.
Regrading policy. Occasionally, we make mistakes. To request a regrade: write a brief note indicating the perceived mistake by the grader, attach it to your graded work, and give it to your preceptor within two weeks of when the graded work was returned.
Exams. There are 2 two-part exams during the semester. No final exam.
Programming assignments and final project. There are weekly programming assignments plus a final programming project, usually due Mondays at 9pm, beginning February 11.
Required readings. R. Sedgewick and K. Wayne, Introduction to Programming in Java: An Interdisciplinary Approach, Addison-Wesley, 2007. ISBN 0-321-49805-4. Available at Labyrinth Bookstore, 122 Nassau Street. Also on reserve at Friend library.
Recommended readings. D. Harel, Computers Ltd.: What They Really Can't Do, Oxford, 2003. ISBN 0-19-860442-4. Available at Labyrinth Bookstore, 122 Nassau Street. Also on reserve at Friend library.