CSCI-3323 Computer Data Structures

Instructor: Todd Dole

Semester: Fall 2024

Course Information

Meeting Times: MWF 10:00-10:50 AM
First Day of Class: August 27
Location: Abilene Hall 214
Contact: todd.dole@hsutx.edu, Phone 325-670-1502, Office AH100

Office Hours

Monday and Wednesday: 11:00 AM - 12:00 PM, 2:00 PM - 4:00 PM
Tuesday and Thursday: 2:45 PM - 4:45 PM

Holidays and Breaks

Final Exams

Final Exams will be held from December 9-11.

Textbook

Recommended Textbook: Data Structures & Algorithms in Java (Sixth Edition) by Goodrich et al.
The textbook is highly recommended but not required. I strongly recommend you purchase a copy to keep and reference throughout your career.
Additional Reference: Introduction to Algorithms (Third Edition) by Cormen, Leiserson, Rivest and Stein. This book, referred to as CLRS, is considered the gold standard reference for algorithms. While we won't refer to it directly in class, this is another good reference to have on your shelf.

Course Topics and Schedule

For each data structure and algorithm discussed, we will address/derive computational complexity. Topics include:

Date Topic Notes/Lab
Aug 26 Introduction to the Course
Aug 28 Analysis of Algorithms: Big-Oh, Theta
Aug 30 Review of Recursion Lab 1 Assigned
Sep 2 Labor Day (No Class)
Sep 4 Binary Search Trees: Insert, Search, Delete
Sep 6 Binary Search Trees: Max, Min Lab 1 Due, Lab 2 Assigned
Sep 9 Generic Classes in Java
Sep 11 Hashing: Chaining Lab 1 Final Version Due
Sep 13 Hashing: Open-Addressing Lab 2 Due, Lab 3 Assigned
Sep 16 Hashing: Insert, Search, Delete
Sep 18 Hashing: Max, Min Lab 2 Final Version Due
Sep 20 Balanced Trees: Red-Black Trees Lab 3 Due, Lab 4 Assigned
Sep 23 Balanced Trees: Other Balanced Trees
Sep 25 Priority Queues / Heaps Lab 3 Final Version Due
Sep 27 Heaps: Insert, Delete, Extract-Min/Max Lab 4 Due, Lab 5 Assigned
Sep 30 Intro to Graphs: Representations of Graphs
Oct 2 Graph Algorithms: BFS Lab 4 Final Version Due
Oct 4 Exam 1 Covering topics from August 26 to October 2
Oct 7 Graph Algorithms: DFS
Oct 9 Dijkstra's Shortest Path
Oct 11 Fall Break (No Class)
Oct 14 Graph Algorithms: Euler and Hamiltonian Cycles Lab 5 Due, Lab 6 Assigned
Oct 16 MST/Prims Lab 5 Final Version Due
Oct 18 Multi-threaded Programming: Mechanics in Java Lab 6 Due, Lab 7 Assigned
Oct 21 Multi-threaded Programming: Semaphores
Oct 23 Multi-threaded Programming: Monitors Lab 6 Final Version Due
Oct 25 Multi-threaded Programming: Readers-Writers Problem Lab 7 Due, Lab 8 Assigned
Oct 28 Multi-threaded Programming: Producer-Consumer Problem
Oct 30 Sorting: Quicksort Lab 7 Final Version Due
Nov 1 Sorting: Heapsort Lab 8 Due, Lab 9 Assigned
Nov 4 Sorting: Merge Sort
Nov 6 Sorting: Radix Sort Lab 8 Final Version Due
Nov 8 Sorting: Counting Sort Lab 9 Due, Lab 10 Assigned
Nov 11 Sorting Concepts: Stable Sorts
Nov 13 Exam 2 Covering topics from August 26 to November 11
Nov 15 Sorting Concepts: Comparison Sorts Lab 9 Final Version Due, Lab 10 Due, Lab 11 Assigned
Nov 18 Sorting Concepts: Complexity Limits for Sorting
Nov 20 Bit Manipulation Operators Lab 10 Final Version Due
Nov 22 Applications to Sets Lab 11 Due
Nov 25 Review
Nov 27-29 Thanksgiving Break (No Class)
Dec 2 Project Presentations
Dec 4 Project Presentations Lab 11 Final Version Due
Dec 6 Project Presentations All Revised Lab Work and Peer Reviews Due
Dec 9-11 Final Exams

Grading Policy

Your grade in the course will be earned / calculated as follows:

A: 90-100
B: 80-89
C: 70-79
D: 60-69
F: 0-59

Lab Days / Peer Review

Lab Assignments will be assigned each Friday, and will be due the following Friday before class begins.

Following completion of the lab assignments, we will take time on Fridays to conduct peer reviews of students' lab work. This will take different formats from week to week, but students should be prepared to give a brief presentation of the code that you wrote, explain how it works and why you made the design choices you made, and answer questions about the code. In some cases, this will be to the entire class, with Mr. Dole facilitating a discussion. In other cases students will work in smaller groups with a provided grading rubric to review each others' code. Not every student's code will be reviewed every week, but you should come prepared every Friday.

A final, revised version of the lab assignment may then be submitted by the following Wednesday (twelve days after originally assigned) before class time. Students who wish to incorporate feedback from peer reviews (not simply copy other students' code) and improve a lab assignment may do so. This gives us an opportunity to help one another learn, improve as coders, and demonstrate that improved knowledge.

Grading for each lab assignment will consider the original submission, the final submission as well as points given for feedback to other students through the peer review process. No more than 50% of the week's points will be awarded if a student fails to turn in an adequate original lab assignment sufficient to be peer-reviewed (something resembling a reasonable working attempt at the problem.) If the first version is a reasonable attempt, but the final version is improved (or even greatly approved) students wi

Students may be absent for one Friday lab/peer review session without penalty (but the lab turn in deadlines will still apply.) Additional absences will require the work to be made up outside of class. Contact Mr. Dole to work out specifics.

Academic Integrity

Violations of academic integrity have been described to some degree in other sections of this syllabus. Cases of suspected academic dishonesty will be handled in accordance with university policies outlined in Undergraduate Catalog and in the Student Handbook. The current catalog prescribes that “no student who has violated the Academic Integrity Policy will be allowed to graduate from Hardin-Simmons University with honors.” Penalties will be assigned at the discretion of the instructor and typically range from failure on the assignment to failure of the course. A general rule-of-thumb is that a first offense (if not too major) will result in a zero on the assignment and a second offense will result in an F for the course. The current catalog states that an F earned in this way cannot be replaced by retaking the course.

Use of Artificial Intelligence

There is an acceptable time and place to use large language models such as ChatGPT or Microsoft Copilot. These tools may be used to help you learn, to answer questions you have about the algorithms or data structures we will cover, or to give you very broad help on lab assignments. However, it is never acceptable in this course to turn in work generated by AI, except for specific assignments which will be clearly designated by the instructor. This course is foundational to a career in the world of computer science. The goal of all lab assignments is for you to learn the material and skill necessary to succeed in the field. These are skills that in many cases you may have to demonstrate from memory in job interviews. Do not cut take shortcuts by having AI do the work for you. Students deemed to have turned in work generated by AI will be in violation of the Academic Integrity provisions listed above, with the same penalties.

Exams

All exams are comprehensive. The final exam will take place at the scheduled time during finals week. Exams will never be collaborative in nature so receiving any form of assistance from anyone other than the instructor is a violation of the academic integrity policy. You may only use study aids during the exam if they are expressly allowed by the instructor for that particular exam.

Students with Disabilities

An individual with a disability is defined by the Americans with Disabilities Act (ADA) as a “person who has a physical or mental impairment that substantially limits one or more major life activities.” Any student with a documented disability may choose to seek accommodations. Eligible students seeking accommodation should contact the Director of Undergraduate Advising and Disabilities as soon as possible in the academic term (preferably during the first two weeks of a long semester) for which they are seeking accommodations. The director will prepare letters to appropriate faculty members concerning specific, reasonable academic adjustments for the student. The student is responsible for delivering accommodation letters and conferring with faculty members. Please refer to the most recent version of the Undergraduate Catalog for the complete policy. (Carol Krueger, Director of Undergraduate Advising and Disabilities, Office: Sandefer Memorial, 1st floor Academic Advising Center, Phone: 670-5867, Email: disabilityservices@hsutx.edu)

Student Support

Peer-to-peer academic support (tutoring) is available for all undergraduate HSU students. The Academic Center for Enrichment (ACE) is open for virtual tutoring sessions via Zoom. To access instructions or make an appointment, open the ACE course on your Canvas dashboard. For additional information regarding academic support, contact the Advising Center at 325-670-1480 or tutoring@hsutx.edu.

In addition, all full or part-time students are eligible to receive free, confidential, and voluntary counseling services at HSU. Services include consultation, evaluation, counseling, and crisis support services for students facing issues impacting their overall well-being. To obtain any of these services, students may call The Office of Counseling Services at (325) 671-2272, email counseling@hsutx.edu, or begin the intake process by completing our online forms at https://www.hsutx.edu/intake.

Computer Account Use

The instructor may occasionally use email to communicate with the class as a whole or with individuals. When contacting you for this course the instructor will use your HSU email account. You are expected to check your HSU email account at least once per day and you will be held responsible for any content distributed in this way.

Attendance

Regarding class attendance, the Undergraduate Catalog states:

Accordingly, absence from more than 25 percent of class meetings and/or laboratory sessions scheduled for a course (including absences because of athletic participation) is regarded as excessive, and a grade of F may be assigned as deemed appropriate by the professor.