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. Kevin Wayne.
Lectures. Lectures meet in Frist 302 on Tuesdays and Thursdays, either at 10 or 11am.
Preceptors. Aditya Bhaskara · Mehmet Bilgili · Will Clarkson · Rob Dockins · Donna Gabai (head) · Michael Golightly · Wonho Kim · Sally Ling · Jun Ma · Thomas Mason · Chris Park · JP Singh · Min Sun.
Precepts. Precepts meet twice a week on Tuesdays and Thursdays or Wednesdays and Fridays, beginning either February 3 or February 4.
Website. The course website contains a wealth of information, including precept rosters, office hours, lecture slides, programming assignments, and old exams.
Grading. Two exams (50%), nine programming assignments (40%), final programming project (10%), and staff discretion.
Exams. There are two 2-part exams during the semester. No final exam.
Programming assignments and final project. There are weekly programming assignments plus a final programming project, due Mondays at 11pm, beginning February 9.
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 the Labyrinth Bookstore, 122 Nassau Street. Also on reserve at Friend library.