Syllabus#

CSC 212: Data Structures & Algorithms#

https://i.ytimg.com/vi/tJQC0HCv8yg/maxresdefault.jpg

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#

Professor

Jonathan Schrader, MS, MA
Office Hours 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…

Support Tools and Technology#

Tools
  • EdStem : Course Communications

  • Gradescope : Submissions, Grades

  • GitHub : Course Deliverables

Invitations/instructions will be provided to the tools above…

Technology
  • 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.

Course Components#

Lectures

Discussion based sessions used to confirm understanding through reading and self-paced research.

Labs

Practicum based sessions to confirm what you know and begin implementation of the material.

Assignments

Assignments are individual work used to implement broader-scoped practicum outcomes along with proof of theoretical understanding of the material.

Projects

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.

Exam

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

8

25

200

Assignments

4

50

200

Projects

2

150 & 350

500

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

D-

F

94

90

87

83

80

77

73

70

67

63

60

0

Note: Semester grading will be complete by the Sunday evening following your project presentations. Those with \(\ge 810\ course\ points\), will be exempt from the exam and granted an \(A\) for the term. Students with any submission for the semester marked ‘late’ in Gradescope will not be applicable to exemption.

Attendance & Submission#

No formal attendance policy. Those who opt out tend to repeat the course…

All deliverables must be properly submitted through Gradescope no later than 11:59p on the respective day due.

Late submissions (labs only), will be allowed through the last day of the term. All submissions marked as late in Gradescope will be applicable to a 50% reduction in points.

Late submissions (assignments 2 & 4 only), will be allowed one additional week. All submissions marked as late in Gradescope will be applicable to a 30% reduction in points.

No further consideration with granted for extension.

Administrative#

Academic Enhancement Center

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.

Academic Honesty
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
  • Students are allowed to use advanced automated tools (artificial intelligence or machine learning tools such as ChatGPT or Dall-E 2) on assignments in this course if instructor permission is obtained in advance. Unless given permission to use those tools, each student is expected to complete each assignment without substantive assistance from others, including automated tools.

  • If permission is granted to use advanced automated tools (artificial intelligence or machine learning tools such as ChatGPT or Dall-E 2), they must be properly documented and credited. Text generated using ChatGPT-3 should include a citation such as: “Chat-GPT-3. (YYYY, Month DD of query). “Text of your query.” Generated using OpenAI. https://chat.openai.com/” Material generated using other tools should follow a similar citation convention.

  • If a tool is used in an assignment, students must also include a brief (2-3 sentences) description of how they used the tool.

Disability Accommodations

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.

Religious Holidays

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.