Instructor: Todd Dole
Semester: Fall 2024
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
Monday and Wednesday: 11:00 AM - 12:00 PM, 2:00 PM - 4:00 PM
Tuesday and Thursday: 2:45 PM - 4:45 PM
Final Exams will be held from December 9-11.
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.
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 |
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 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.
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.
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.
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.
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)
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.
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.
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.