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.
|
CS161 (Object Oriented Problem Solving) AND [MATH160 or MATH141 or MATH155] (all with a C or better)
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
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% |
In the Spring of 2017, students will have a score for the Discrete Math Portion (about 1/3) and Programming Portion (about 2/3) of the class. In the case of a D or F grade for the whole course, the score for the Discrete Math Portion will determine whether CS220 will need to be taken. The Discrete Math Portion consists of the three Homeworks and the Discrete Math questions in the Mid Term Test and Final.
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.
Midterm | Thursday March 2 in class |
Final | Thursday May 11 6:20 - 8:20 pm in class |
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.
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: