Description

CS 200 revisits and extends the principles of programming and discrete math concepts that are introduced in CS 161 and applies them to the development, analysis, and implementation of data structures and efficient software. The course is taught using the Java Programming Language and an Object Oriented approach to data structures and algorithms. Specific topics in data structures/algorithms include advanced sorting, queues, stacks, hash tables, trees, and graphs. Advanced topics from theory include complexity analysis, relations, and mathematical induction.

Extensive practice through programming exercises and written assignments that explore discrete math concepts are principal activities of the course.

Personnel

Section 001
Instructor: Hamid Reza Chitsaz
Email: chitsaz@colostate.edu
Office: CSB 342
Office Hours: Tue, Thurs 11:00 am-12:00 pm
Lecture: 9:30-10:45, TR, MICRO A 101
Section 002
Instructor: Wim Bohm
Email: bohm@cs.colostate.edu
Office: CSB 470
Office Hours: Tue, Thurs 9:00-10:00 am
Lecture: 11:00-12:15, TR, MICRO A 101
GTAs
Jake Lee, L02 Mon 8am, L03 Fri 11am, L07 Fri 8am
Office Hours: Tue 3:00-5:00 pm, Thurs 11:00-1:00 pm @CSB120
Ashish Kattamuri, L02 Mon 8am, L04 Mon 3pm, L05 Wed 1pm
Office Hours: Mon 10:00-12:00pm, Wed 3:00-4:00, Thurs 2:00-3:00 @CSB120
UTA
Nathan Currier, L01 Tue 2pm, L02 Mon 8am, L06 Fri 3pm
Office Hours: Fri 2:00-3:00pm @CSB120

Prerequisites

CS161 (Object Oriented Problem Solving) AND [MATH160 or MATH141 or MATH155] (all with a C or better)

Textbook

Data Abstraction and Problem Solving with Java, 3rd edition, 2011, Frank Carrano, Janet Prichard, ISBN 10: 0-13-212230-8
Discrete Mathematics and Its Applications, 7th edition, Kenneth H. Rosen, ISBN: 978-0-07-338309-5

Lab Times and Places

  1. L01, 2pm-3:40pm, Tuesday, CSB 225 (Nathan)
  2. L02, 8am-9:40am, Monday, CSB 225 (Ashish, Jake, Nathan)
  3. L03, 11am-12:40pm, Friday, CSB 225 (Jake)
  4. L04, 3pm-4:40pm, Monday, CSB 225 (Ashish)
  5. L05, 1pm-2:40pm, Wednesday, CSB 225 (Ashish)
  6. L06, 3pm-4:40pm, Friday, CSB 225 (Nathan)
  7. L07, 8am-9:40am, Friday, CSB 225 (Jake)

Grading

Here are the formally graded elements of the course and associated weighting:

Activity Weight
Programming Assignments 20 %
Written Assignments 10 %
Quizzes 10 %
Recitations 10 %
Midterm 25 %
Final Exam 25 %

Programming assignments will be done individually.

Plagiarism in coding: This is a difficult issue. It is impossible to prevent "borrowing" code from web sources, especially for well established algorithms and data structures. In most cases, we have structured the programming assignments such that any borrowed code will need to be modified. If you have started your program using code from another source, you need to make that clear in your comments.

Sources that are acceptable are: the textbook and reliable Web repositories. Sources that are not acceptable: other students in the class, friends who have taken CS200 before, tutors, paid programmers found on programmer for hire web sites...

When code has been taken from an acceptable source and modified, a comment must be added that explains the provenance (origin and creator) of the code. It is only fair to give credit where it is due. Failure to do so may result in a charge of academic dishonesty.

Quizzes are given during lectures class; no quizzes will be given in those weeks in which a midterm exam is being given. No makeups will be given for quizzes, but the lowest quiz grade will be dropped.

Exams will be given during the lecture class except for programming components which, if given, will be given during the assigned laboratory section.

Exams and written assignments will be done individually and grades assigned on an individual basis. Further, students not already familiar with the CSU Honor Pledge should review this clear and simple pledge and always adhere to it.

The assignment of letter grades will be made as follows:

Letter Grade Point Range
A >= 90%
A- >= 88%
B+ >= 86%
B >= 80%
B- >= 78%
C+ >= 76%
C >= 70%
D >= 60%
F < 60%

Late and Makeup Policy

Midterm and Finals: Make-up exams are only given for extraordinary circumstances (e.g., illness, family emergency, won lots of money in the lottery). Students must consult with the instructor as soon as possible, preferably before the start of the exam. Course examination dates are listed in the syllabus; be aware of them and plan accordingly.

Projects: Unless otherwise specified, programming assignments are to be submitted electronically through Checkin. Specifics will be included in each assignment. Always check the assignment page for due dates. Late assignments submitted within 48 hours of the time required will receive a 10% late penalty. Electronic submission is closed 48 hours after assignments are due; students not having submitted programs receive an automatic zero on the assignment.

Important Dates

MidtermThursday, October 15th during class
Final Exam (Bohm) Tuesday, December 15th 6:20-8:20p
Final Exam (Chitsaz) Thursday, December 17th 6:20-8:20p

Any written midterms and the final exam will be held in the same classroom as regular lectures. While no change to the midterm dates is anticipated, the instructor reserves the right to change these dates with a weeks notice.

Professional Conduct

All students are expected to conduct themselves professionally. We (the instructors and GTAs) assume you are familiar with the policies in the student information sheet for the department and the Conduct Code for the department. Additionally, you are computing professionals, albeit perhaps just starting. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct HERE.

We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular: