| CPSC 327 | Data Structures and Algorithms | Spring 2026 |
On this page:
| Course Communication | |
|---|---|
| Classroom Conduct | |
| Assignments and Evaluation |
Reading: Readings are listed on the schedule page on the day when they will be discussed in class. Readings are the first introduction for most material — it often takes more than one encounter to fully absorb something, and class time is more effective if it can be used to fill in the gaps and answer questions about things you have already started to think about. You are encouraged to complete the assigned reading before class to identify the main ideas and note questions, and then revisit the reading after class to more fully understand the material. Homework: Hands-on practice is essential for learning and mastery, and weekly homework assignments provide an opportunity to tackle problems for yourself. Each homework will typically have three sections: auto-graded drill problems which focus on basic knowledge, new topics, and reinforcement exercises providing additional practice with the previous homework's new topics. Programming assignments: Much of this course deals with theory (designing and analyzing data structure and algorithms); four programming assignments emphasize practical issues. Revise and resubmit: Learning is an iterative process, and mistakes are a natural and valuable part of that process. For this reason, most assignments in this course include a revise-and-resubmit option. This policy is designed to provide you with feedback and a second opportunity to demonstrate improved understanding and mastery — provided you actively engage with the feedback and revision process. Revision requires something meaningful to revise, so the initial handin should reflect a substantive, good-faith effort i.e. a majority of the required problems have been attempted and the submission reflects a reasonable amount of time and engagement. Work that appears rushed, minimal, or perfunctory does not qualify. If you are stuck on a problem, come to office hours before the assignment is due. Exams and interviews: Exams and interviews assess what you, individually, have mastered. There will be four exams, three in class during the semester and one in the final exam timeslot. There will be a 15 minute individual interview following each programming assignment. Review problems: Review problems will be provided before each exam. It is strongly recommended that you treat them like a practice exam as there will not be a second chance opportunity for the exams. Grades: Final grades in this course will be computed as follows:
An average of 70 or higher on the exams is required in order to earn a C- or better in the course. |
| Attendance, Making Up Work, and Rescheduling Exams | |
| Late Work and Extensions |
Staying on schedule is essential as there is a steady workload of assignments — a late or incomplete handin (whatever the reason) on one assignments takes away time from the next, and students who submit late or incomplete assignments more than once or twice often fall into a pattern of repeated lateness which significantly harms learning and performance. That being said, it is also understood that there may be occasional conflicts or time crunches where a little flexibility is needed and as a result, late work is discouraged but not directly penalized. The bottom line:
No work will be accepted after the end of the Registrar-scheduled final exam time slot except in the case of an incomplete. |
| Academic Integrity, Outside Resources, and Collaboration | |
| Use of AI | |
| Being Successful |
There is a steady schedule of assignments — don't fall behind! Review each day's material soon after class, start on assignments early (it is better to spend some time each day than to set aside a large block of time the night before the assignment is due), ask questions, and take advantage of office hours and Teaching Fellows if you are stuck on something or want to discuss ideas. Letting a point of confusion slide can quickly snowball and then it is very difficult to catch up. Note taking on paper is encouraged as it avoids the distraction of electronic devices and the act of handwriting helps with retention of information. If you do use a laptop or other device to take notes, you are encouraged to turn off notifications and close other applications to reduce the temptation of those distractions. Either way, anything that appears on the projector screen — slides or code — will be posted on the schedule page soon after class, so you don't need to copy down all of that material in your notes. I recommend that you (only) make note of key ideas and examples during class and then rewrite your notes, filling in other details and relevant information, soon after class. This allows you to pay more attention during class, increases your engagement with the material, and helps you identify what you need to ask questions about. There are many resources to help you be successful in the course:
Finally, if there is something related to the course format or materials that would help you be more successful in the course, please come discuss it with me. |