CSI 3334: Data structures, Fall 2019


Data structures and the algorithms that operate on them are the keys to making efficient software. They are also very interesting. This course will cover data structures in a way that exercises your problem-solving skills. These problem-solving skills are what you will need to be a successful programmer, scientist, engineer, or mathematician.

This course covers:

This is a difficult course. My recommendation is to attend lectures, study hard, start projects early, and seek help from the professor when you need it.

Practical information

Lectures are from 11:00 to 12:15 in Sid Rich 224 on Tuesday, Thursday. You may use the general computer science labs, though there is no lab component of the course.

My office is in the Hankamer building, and office hours are listed on my home page. I am glad to talk to students during and outside of office hours. If you can't come to my office hour, please make an appointment for another time, or just stop by.

This course benefits from the TA help of Nasim Soltani Kazemi and Hwamin Kim. While TAs assist in grading assignments, for this course they do not assist in lecturing, helping students with assignments, or helping students with projects. Please talk with Dr. Hamerly for any assistance in the course.


Here is a schedule of the material we will cover:

Week Dates topic reading Tuesday Thursday
1 Aug 25-31 Overview, C++ review 1.1-1.6; syllabus, submission guidelines, using the shell, style guidelines Project 0 assigned
2 Sep 1-7 Algorithm analysis 2 Homework 0 assigned; Project 1 assigned
3 Sep 8-14 Algorithm analysis Homework 1 assigned
4 Sep 15-21 ADTs, lists, stacks, queues 3.1-3.3, 3.6, 3.7 Project 2 assigned
5 Sep 22-28 Trees 4 Homework 2 assigned
6 Sep 29-Oct 5 Trees Project 3 assigned
7 Oct 6-12 Heaps 6
8 Oct 13-19 Heaps Project 4 assigned, Homework 3 assigned, Midterm exam
9 Oct 20-26 Hashing 5
10 Oct 27-Nov 2 Hashing Project 5 assigned
11 Nov 3-9 Sorting 7 (skip 7.4)
12 Nov 10-16 Sorting, Graphs 9.1-9.5 Homework 4 assigned
13 Nov 17-23 Graphs Project 6 assigned
14 Nov 24-30 Graphs Homework 5 assigned Thanksgiving
15 Dec 1-7 Disjoint set, Algorithm design 8, 10 Last day of class

The final exam will be December 13, 09:00-11:00. The latest university finals information is available at the registrar web page for final exam scheduling.

Textbooks & resources

Required text: we will be using Mark Weiss' textbook Data Structures and Algorithm Analysis in C++ (4th Edition). An older edition might be okay, but you are responsible in case there are differences between the editions. You can purchase this book from the Baylor bookstore or amazon, among other places.

Further online resources:


Grades will be assigned based on this breakdown:

Important: Each project not completed by the end of the semester will result in a drop of one letter grade. For example, if you would have received a 'B', but you did not complete two of the projects, then your letter grade will be a 'D'.

Different projects and assignments will have different point values. Points are not comparable across assignments; each graded homework/project/exam/etc. will have an associated weight which determines how it factors into your grade.

In-class exams are closed-book. The final will be comprehensive.

Homework is due at the beginning of class; homework turned in after it has been collected but before the end of class will receive a 20% penalty. Homework will not be accepted after class on the due date.

Final letter grades will be assigned at the discretion of the instructor, but here is a minimum guideline for letter grades:
F < 60 ≤ D- < 62 ≤ D < 67 ≤ D+ < 70 ≤ C- < 72 ≤ C < 78 ≤ C+ < 80 ≤ B- < 82 ≤ B < 88 ≤ B+ < 90 ≤ A- < 92 ≤ A


Academic honesty

Plagiarism or any form of cheating involves a breach of student-teacher trust. This means that any work submitted under your name is expected to be your own, neither composed by anyone else as a whole or in part, nor handed over to another person for complete or partial revision. Be sure to document all ideas that are not your own. Instances of plagiarism or any other act of academic dishonesty will be reported to the Honor Council and may result in failure of the course. Not understanding plagiarism is not an excuse. I expect you as a Baylor student to be intimately familiar with all aspects of the Honor Code.

I take academic honesty very seriously. Many studies, including one by Sheilah Maramark and Mindi Barth Maline have suggested that "some students cheat because of ignorance, uncertainty, or confusion regarding what behaviors constitute dishonesty" (Maramark and Maline, Issues in Education: Academic Dishonesty Among College Students, U.S. Department of Education, Office of Research, August 1993, page 5). In an effort to reduce misunderstandings in this course, a minimal list of activities that will be considered cheating have been listed below.

Title IX Office

Baylor University does not discriminate on the basis of sex or gender in any of its education or employment programs and activities, and it does not tolerate discrimination or harassment on the basis of sex or gender. This policy prohibits sexual and gender-based harassment, sexual assault, sexual exploitation, stalking, intimate partner violence, and retaliation (collectively referred to as prohibited conduct). For more information on how to report, or to learn more about our policy and process, please visit www.baylor.edu/titleix. You may also contact the Title IX office directly by phone, (254) 710-8454, or email, TitleIX_Coordinator@baylor.edu.

Copyright © 2019 Greg Hamerly, with some content taken from a syllabus by Jeff Donahoo.
Computer Science Department
Baylor University

This page was last updated February 07, 2024 at 19:18 (America/Chicago)

Valid html and css.