CSC 212: Data Structures & Algorithms#
Fall Location(s)#
Lecture |
Section 0001 |
||
Lab |
Section L03 |
Section L02 |
Section L01 |
Fall Schedule#
Tuesday |
Thursday |
Lab |
Assignment |
|
---|---|---|---|---|
Week 01 |
Analysis |
|||
Week 02 |
Analysis |
Analysis |
||
Week 03 |
Linear |
Admin Day |
||
Week 04 |
Linear |
Analysis |
||
Week 05 |
||||
Week 06 |
Holiday Observed / |
Search & Sort |
||
Week 07 |
Search & Sort |
Sick Day |
||
Week 08 |
Non-Linear |
|||
Week 09 |
Non-Linear |
|||
Week 10 |
Non-Linear |
Non-Linear |
||
Week 11 |
Non-Linear |
|||
Week 12 |
Happy |
Thanksgiving |
Break |
|
Week 13 |
||||
Week 14 |
212 Project Presentations |
212 Project Presentations |
212 Project Presentations |
Syllabus#
Course Description#
CSC 212 introduces fundamental concepts in data structures and algorithms, and their role in organizing and processing information efficiently. The course explores theoretical, implementation, and application aspects of important data structures and algorithms in use on modern computers. Particular emphasis is given to algorithms for searching and sorting. The course also covers basic concepts for analyzing space and time requirements of algorithms, critical for understanding their performance characteristics. C/C++ is the programming language required for programming assignments and lab sessions.
Prerequisites: C- or better in CSC 211; and MTH 180 or Computer Engineering major, and understanding the basics of programming in a higher level language such as C, Java, or Python. You should be familiar with classes, objects, methods, functions, loops, conditionals, arrays.
Course Staff#
Lecture
Professor
Jonathan Schrader, MS, MA
Office Hours By Appointment [via EdStem]
Lab
Graduate Teaching Assistant
David Perrone, BS
Office Hours scheduled and by appointment [via EdStem]
Course / Lab Aides
Undergraduate Teaching Assistants
Nick Goltsos, Jessica Tingley, Cassidy Cooper, Addie Murphy, Yemi Fasina, Daniel Diaz Pereyra, Vincent Zhuang
Office Hours scheduled and by appointment [via EdStem]
Instructor Note: The syllabus is a living document and alterations may be made to the course as deemed necessary throughout the term…
Office Hours#
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Saturday |
Sunday |
|
---|---|---|---|---|---|---|---|
8a |
LAB03 |
||||||
9a |
LAB03 |
||||||
10a |
LAB02 |
||||||
11a |
David |
LEC |
LAB02 |
LEC |
Jess |
||
12p |
David |
LAB01 |
|||||
1p |
Addie |
LAB01 |
Addie |
||||
2p |
Addie [OH/LC] |
Addie |
Yemi |
Addie |
Cassidy [💻] |
||
3p |
Addie |
Yemi |
Addie |
Cassidy [💻] |
Nick |
||
4p |
Nick |
Nick |
Cassidy [💻] |
Nick |
|||
5p |
Nick |
Nick |
|||||
6p |
Nick |
Nick |
|||||
7p |
Nick |
Nick |
Unless otherwise stated, OH are held on the ground floor of Tyler Hall in the lounge area outside 053/055…
Support Tools and Technology#
EdStem : Course Communications
Gradescope : Submissions, Grades
GitHub : Course Deliverables
Invitations/instructions will be provided to the tools above…
A laptop with a full OS [iOS/Android devices not recommended]
JetBrains CLion [supported IDE]
While you are free to use any IDE for working with course programming, only Clion by JetBrains will be officially supported for this course. As well, source code submitted to the autograder must compile without any errors utilizing the g++ compiler.
Student Learning Outcomes#
Upon successful completion of this course, each student will be able to:
implement code using pointers and dynamic memory allocation;
implement solutions that involve recursive functions;
compare different algorithms and data structures based on efficiency, using empirical and theoretical algorithm analysis techniques;
choose appropriate data structures and algorithms to solve a problem;
implement sorting algorithms and understand their performance under different scenarios;
implement and use basic data structures, including linked lists, stacks, queues, priority queues, trees, balanced trees, and graphs;
implement and use containers such as sets, maps, and hash tables.
Recommended Textbooks#
Course Components#
Discussion based sessions used to confirm understanding through reading and self-paced research.
Practicum based sessions to confirm what you know and begin implementation of the material.
Assignments are individual work used to implement broader-scoped practicum outcomes along with proof of theoretical understanding of the material.
A wide-ranged insight piece with a unique implementation of designated the data structure[s] and/or algorithm[s] with a formal presentation to your peers.
There is only one exam for this course: the final exam. The exam will be cumulative, timed, and consist of multiple choice questions.
Grading#
Task |
Quantity |
Course Points |
Total Points |
---|---|---|---|
Labs |
10 |
30 |
300 |
Assignments |
4 |
75 |
300 |
Project |
300 |
||
Exam (Cumulative) |
100 |
||
Course Total |
1000 |
Final letter grades are calculated using the cutoffs below. A ‘curve’ will not be applied to final course grades. However, those who make extraordinary effort to contribute to the overall flow and learning environment of the classroom, may be given additional consideration.
A |
A- |
B+ |
B |
B- |
C+ |
C |
C- |
D+ |
D |
F |
---|---|---|---|---|---|---|---|---|---|---|
94 |
90 |
87 |
83 |
80 |
77 |
73 |
70 |
67 |
60 |
0 |
Note: Semester grading will be complete by the Sunday evening following your project presentations. Those with \(\ge 830\ course\ points\), will be exempt from the exam and granted an \(A\) for the term. Students with a 0 for any course deliverable beyond the final submission date in Gradescope will not be applicable to exemption.
Attendance & Submission#
Attendance
- Lecture
Attendance IS NOT required
- Lab
Attendance IS required
You must attend to receive credit for your submission
Proof of attendance
is signing in on the sign-in sheet at the beginning of lab and submitting at least once prior to days end
- Caveat
“You get out what you put in…”
- Advice
Those who opt out and or fail to submit, tend to repeat the course…
Submission
- Labs
have a three day window for submission and a 3 day late window…
Review: prior to lab
Start: your designated lab
Due: Friday @ 11:59pm
Late: Monday @ 11:59pm
- Assignments
have a three (3) week window for completion and are due on Mondays
All deliverables must be properly submitted through Gradescope no later than 11:59p on the respective day due.
- Any Course Deliverable
not submitted within the submission window (including the late window) will result in automatic 10% reduction of your course grade per missed deliverable.
Four or more missed deliverables and you fail for the term…
Late Submissions & Extensions#
Late Submission
- Labs
Will be allowed a 72-hour late window
Penalty of -20% / day late.
- Assignments 2 & 4 only
Will be allowed a three (3) day late window.
Penalty of -50%.
Submissions outside of these opportunity windows will not be subject to grading.
Extensions
Consideration will be given on a case by case basis…
Administrative#
Nearly all students recognize that regardless of how well or poorly they are doing in a given class, there are ways to improve their learning and studying. The Academic Enhancement Center (AEC) and Writing Center (WC), located in Roosevelt Hall, offers several kinds of support that help students improve their learning and academic performance in this class as well as other classes. For information on any of these programs, visit the AEC website or call the AEC’s main number at (401) 874-2367.
- General
Discussions with peers to gain more insights on coursework and lectures is strongly encouraged. However, when working on assignments, all written work and source code must be original. Students might not look at anyone’s written solution. Copying another individual solution is plagiarism, a serious offense, and the one most common in computer science courses. Anyone that provides homework answers, source code for a programming assignment to another individual is also guilty of academic dishonesty. Students caught plagiarizing will be prosecuted in accordance with the University’s Policy of Academic Honesty.
- Advanced Automated Tools
This term we will be using generative AI to partially complete labs. The use of AI is restricted to the prompting of ChatGPT-3.5. Prompts may not include direct content from the lab itself. (ie. you may not Copy & Paste from the lab.)
Your primary focus for gen-AI usage will be to source code for respective data structures per lab and review the code through integrity testing.
from a visual review, does this appear to do everything it needs to relative to the lab outcomes?
if not, re-prompt AI with a narrower/broader request
At the top of each data structure source code submitted, you will include a comment with the URL to the prompt used the outcome. If you need/choose to modify the source code received to satisfy the lab requirements, you must use clear, concise, meaningful comments to describe the change and why you’ve made it.
Any student with a documented disability is welcome to contact me as early in the semester as possible, so that we may arrange reasonable accommodations. As part of this process, please be in touch with Disability, Access, and Inclusion Office.
It is the policy of the University of Rhode Island to accord students, on an individual basis, the opportunity to observe their traditional religious holidays. Students desiring to observe a holiday of special importance must provide written notification to each instructor.