CPS 1 - Principles of Computer Science


Welcome!

Location: Social Sciences 229 (lectures and lab sessions in same room)
Class time: Monday through Friday, 2:00-3:15pm.
Labs: Tuesday and Thursday, 3:20-4:20pm (We may end up dividing into two lab sessions, depending on the size of the class.)
Instructor: Nihshanka Debroy (ndebroy (at) cs (dot) duke (dot) edu)
Office hours: After class, or by appointment (LSRC D206, 919-660-6512)

Announcements

June 27 - Review Session for Final Exam

Textbook

Great Ideas in Computer Science with JAVA, by Alan Biermann and Dietolf Ramm.

This textbook is recommended, not required. It is possible to get through the class without it (by attending the lectures and reading the notes regularly). But it may be good to have this as a reference book.

Course Description:

Intended for students not majoring in computer science, this course is an introduction to the field of computer science - the theoretical foundations, basic programming and algorithms, computer systems and the internet. We will cover the following broad topics:

Grading

The grading scheme looks like this at present: A couple of quizzes may be added later on, but they are not part of the syllabus currently - if added, you will know about these quizzes at least a couple of days in advance. Roughly, we will have a lab assignment for each major concept we learn. The goal is that you get a chance to apply concepts you have learned to actual problems.

Grades will be assigned, based on the usual cutoffs: 90%+ is an A, 80%+ is a B, 70%+ is a C, 60%+ is a D. This is tentative - the cutoffs may go down, but they will not go up. Although grades are important, the larger goal here is to introduce you to concepts in computer science and for you to enjoy applying them to tangible problems.

Late homework policy

10% will be taken off if the assignment is turned in 1 day late, and 25% taken off if 2 days late. After that, 0 credit will be given, unless there are unusual circumstances that were discussed with me earlier. A weekend counts as a single day, for lateness purposes.

Collaboration (link to general CS guidelines)

Working together is an excellent way of learning computer science. So I encourage you to clarify doubts with each other. Depending on the size of the class, you may work in groups of two (as long as both members contribute to the work). For the course project as well, you may work in groups of two. However, no collaboration is permitted on the exams.