This course completes the broad introduction to computer science begun in CS21. It provides a general background for further study in the field. Topics to be covered include object-oriented programming in C++, advanced data structures (such as priority queues, trees, hash tables, and graphs), advanced algorithms, as well as software design and verification. Students will be expected to complete weekly lab assignments illustrating the concepts presented.
Prerequisite: CPSC 21 or permission of the instructor. This course is designated as a Natural sciences and engineering practicum.
WEEK | DAY | ANNOUNCEMENTS | TOPIC & READING | HOMEWORK |
1 | Aug 31 | Introduction to C++ Ch1: pages 2-8, 10(strings), 16(using), 17-30 |
inclass: intro Lab1: Introduction to C++ |
|
Sep 02 | ||||
2 | Sep 07 | Object-Oriented Design in C++ Ch1: pages 33-38, 46-56; Ch2: pages 62-88 |
inclass: OOP Lab2: Introduction to OOP |
|
Sep 09 | Drop/Add ends (Sep 10) | |||
3 | Sep 14 | Complexity Analysis Ch3: pages 108-134 |
Lab3: Analysis | |
Sep 16 | ||||
4 | Sep 21 | Stacks and Queues Ch4: pages 156-182 |
Lab4: Maze solver | |
Sep 23 | Quiz 1 (Sep 24) | |||
5 | Sep 28 | Linked Lists Ch5: pages 217-226 |
Lab5: Doubly Linked Lists | |
Sep 30 | ||||
6 | Oct 05 | Sorting Ch10: pages 484-497, 504-521 |
||
Oct 07 | ||||
Oct 12 |
Fall Break |
|||
Oct 14 |
||||
7 | Oct 19 | Trees Ch6: pages 254-280, 414-420 |
Lab6: Word Frequency | |
Oct 21 | ||||
8 | Oct 26 | Balanced Search Trees Ch9.3,9.4: pages 437-448 Priority Queues Ch7: pages 312-324, 330-348 |
Lab7: Web Search | |
Oct 28 | Quiz 2 (Oct 29) | |||
9 | Nov 02 | Dictionaries | Lab8: Web Search Caching | |
Nov 04 | Last day to declare CR/NC or withdraw with a "W" (Nov 05) |
|||
10 | Nov 09 | Graphical User Interface wxWidgets | Lab9: Browser GUI | |
Nov 11 | ||||
11 | Nov 16 | Graphs Ch12: pages 576-594 |
Lab10a: Warm up with Bacon | |
Nov 18 | ||||
12 | Nov 23 | Quiz 3 | No Lecture. Quiz Only | |
Nov 25 |
Thanksgiving |
|||
13 | Nov 30 | More Graphs Ch12: pages 625-633 |
Lab10: Oracle of Bacon | |
Dec 02 | ||||
14 | Dec 07 | |||
Dec 14 |
Final exam 9:00-Noon Sci 181 |
40% | Lab assignments |
30% | Quizzes |
5% | Class Participation |
25% | Final Exam |
Assignments will be introduced during lab on Fridays and will be due before midnight the following Wednesday night. You are strongly encouraged to start early and to attend the study sessions on Monday nights.
You will submit your assignments electronically using the handin35 program. You may submit your assignment multiple times, but each submission overwrites the previous one and only the final submission will be graded. Late assignments will not be accepted unless you contact me before the deadline, and even then extensions are only provided under extreme circumstances beyond student control. Even if you do not fully complete an assignment, you should submit what you have done to receive partial credit.
Student mentors will assist me in class and run study sessions on Mondays 7—11pm in SCI 256.
You are invited -- and encouraged -- to participate in these study sessions to prepare for quizzes, to discuss programming concepts, and to get friendly assistance in working on lab assignments. As an added bonus, snack may occasionally be provided.
If you believe that you need accommodations for a disability, please contact Tracey Rush in the Office of Student Disability Services, located in Parrish 113, or e-mail trush1 for an appointment to discuss your needs and the process for requesting accommodations. Tracey Rush is responsible for reviewing and approving disability-related accommodation requests and, as appropriate, she will issue students with documented disabilities an Accommodation Authorization Letter. Since accommodations may require early planning and are not retroactive, please contact her as soon as possible.
You are also welcome to contact me privately to discuss your academic needs. However, all disability-related accommodations must be arranged through Tracey Rush in the Office Of Student Disability Services.
Academic honesty is required in all work you submit to be graded. You may not submit work done with (or by) someone else. You may not examine or use work done by others to complete your own work. You may discuss assignment specifications and requirements with others in the class to be sure you understand the problem. In addition, you are allowed to work with others to help learn the course material. However, with the exception of the student mentors and your partner on group assignments, you may not work with others on your assignments.
All code you submit must be your own with the following permissible exceptions: code distributed in class, code found in the course text book, and code worked on with an partner. In these cases, you should always include detailed comments that indicates on which parts of the assignment you received help, and what your sources were.
"It is the opinion of the faculty that for an intentional first offense, failure in the course normally is appropriate. Suspension for a semester or deprivation of the degree in that year may also be appropriate when warranted by the seriousness of the offense." - Student Handbook (2009-2010, pg19 Section I.B.3.b.i)
Please see me if there are any questions about what is permissible.