Course Description
This course is about software design and construction with abstract data types. This includes the description, performance and use of commonly-used algorithms and data structures including lists, trees, and graphs. We will be using the C++ programming language as our base language.
Prerequisites:
CSI 1440 with a grade of B or better
CSI 2350 with a grade of C or better
This course requires proficiency in some of the basic areas of mathematics such as arithmetic and algebra. Please make sure you feel confident in all these subjects prior to starting this course.
Credit Hours: 3
Not sure if this course is right for you?
Quite honestly, this is a difficult course. My recommendation is to attend lectures, write C++ programs, study hard, code some more, start projects early, and seek help from the professor when you need it. If this is something you are committed do, this course might be right for you.
Textbook
- R. Lysecky, CSI 3334: Data Structures, a zyBook ISBN: 979-8-203-00683-7. This is the main book for material, participation, and challenges.
- M. A. Weiss, Data Structures and Algorithm Analysis in C++, 4th Ed. There are other versions out there of this text; however, you are responsible to match homework exercises to the correct one that was assigned for you to solve.
- Cormen, Thomas H. Introduction to algorithms. Third Edition. MIT press. 2009.
- Bruce Eckel, Thinking in C++ (2nd edition).
- Bentley, Jon. Programming pearls. Second Edition. Addison-Wesley. 1999.
- Upload Site, for keeping records of assignment grades.
- Project submission guidelines for this course.
- Coding style guidelines for this course.
- A "how to" guide to use the command line (or "shell").
- The C++ language and standard library reference.
Objectives
- Further know the science of designing algorithms.[1,2]
- Understand and correctly use complex data structures.[1,2]
- Read programming problems and identify feasible algorithms to solve them.[1,2]
- Believe in the nature of objects as consisting of data and methods.[1,2]
- Combine mathematical analysis and algorithms for problem solving.[1,2]
- Enjoy declaring and manipulating arrays.[1,2]
- Look at a computer program and determine its complexity.[1,2]
- Practice finding some answers for themselves, because capable problem solvers never stop learning.[1,2]
Schedule
The weekly coverage might change as it depends on the progress of the class. However, you must keep up with the reading assignments.
Week | Date | Content |
---|---|---|
1 | 8/22-8/26 | Overview. Reading assignment: Ch. 1. Project 0, Homework 0, and Project 1 assigned. |
2 | 8/29-9/2 | Algorithm analysis. Reading assignment: Ch. 2. |
3 | 9/5-9/9 | Algorithm analysis. Homework 1, and Project 2 assigned. |
4 | 9/12-9/16 | ADTs, lists, stacks, queues. Reading assignment: Ch. 3. |
5 | 9/19-9/23 | Trees. Reading assignment: Ch. 4-6. Homework 2, and Project 3 assigned. |
6 | 9/26-9/30 | Trees. |
7 | 10/3-10/7 | Heaps. Reading assignment: Ch. 7. Homework 3, and Project 4 assigned. |
8 | 10/10-10/14 | Midterm Exam. Heaps. |
9 | 10/17-10/21 | Hashing. Reading assignment: Ch. 8. |
10 | 10/24-10/28 | Hashing. Homework 4, and Project 5 assigned. |
11 | 10/31-11/4 | Sorting. Reading assignment: Ch. 9. |
12 | 11/7-11/11 | Sorting, Graphs. Reading assignment: Ch. 10. Homework 5, and Project 6 assigned. |
13 | 11/14-11/18 | Graphs. |
11/21-11/25 | No class. Give thanks. | |
14 | 11/28-12/2 | Graphs. |
15 | 12/5-12/7 | Disjoint set, Algorithm design. Reading assignment: Ch. 11. |
02 | 12/10 | Final Exam at 4:30-6:30 pm in C319. |
01 | 12/13 | Final Exam at 4:30-6:30 pm in C319. |
Policies
Grade Distribution
Grades will be assigned based on the following breakdown:
Participation 10%
Challenges 15%
Projects 30%
Master exam 20%
Final exam 25%
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'.
This course also involves quizzes for some classes at random. Such quizes will be either given in printed form, or will be made available on Canvas and you should take them and answer them by hand or electronically on Canvas. The quizzes are not directly counting toward your grade (see percentages above), but they will count as extra knowledge toward your course preparation. The main idea of the quizzes is that they will help you prepare for the projects, and the accuracy with which you answer them will give you an idea of the grade you could expect in your projects or homework. To prepare for the quizzes and the class, you must do the required reading indicated in the tentative course outline for that week, and you must be making timely progress toward your assigned homework, reading, and projects. That is all you need to be successful in each quiz.
Letter Grade Distribution
Final letter grades will be assigned at the discretion of the
instructor, but here is a minimum guideline for letter grades:
A: 100-95, A-: <95-90, B+: <90-87, B: <87-83, B-: <83-80,
C+: <80-77, C: <77-73, C-: <73-70, D+: <70-65, D: <65-60,
F: <60
Course Policies
General
- The class website contains the official course information (rivas.ai/csi3334f22). Please check it regularly for updates.
- All work in this course is strictly individual, unless the instructor explicitly states otherwise. While discussion of course material is encouraged, collaboration on assignments is not allowed. Collaboration includes (but is not limited to) discussing with anyone (other than the professor) anything that is specific to completing an assignment. You are encouraged to discuss the course material with the professor, preferably in office hours, and also by email.
- Bring any grading correction requests to your professor's attention within 2 weeks of receiving the grade or before the end of the semester, whichever comes first.
Grades
- Grades in the C range represent performance that meets expectations; Grades in the B range represent performance that is substantially better than the expectations; Grades in the A range represent work that is excellent.
- Grades will be maintained in the LMS course shell. Students are responsible for tracking their progress by referring to the online gradebook.
Attendance and Absences
- Attendance is expected and will be taken each class. You are allowed to miss 2 classes during the semester without penalty. Any further absences will result in point and/or grade deductions.
- A total of 6 absences will automatically cause an F grade.
- Students are responsible for all missed work, regardless of the reason for absence. It is also the absentee's responsibility to get all missing notes or materials.
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, and I check carefully for violations. 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.
- Using a source other than the optional course textbooks, the course website, or your professor to obtain credit for any assignment.
- Copying another student's work. Simply looking over someone else's source code is copying.
- Providing your work for another student to copy.
- Collaboration on any assignment, unless the work is explicitly given as collaborative work. Any discussion of an assignment or project is considered collaboration.
- Plagiarism.
- Studying tests or using assignments from previous semesters.
- Providing someone with tests or assignments from previous semesters.
- Turning in someone else's work as your own work.
- Giving test questions to students in another class.
- Reviewing previous copies of the instructor's tests without permission from the instructor.
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.
About The Professor

Pablo Rivas (Senior Member, ACM and IEEE) received the BS in Computer Systems Engineering degree from the Nogales Institute of Technology, Mexico, in 2003; the MS in Electrical Engineering from the Chihuahua Institute of Technology, Mexico, in 2007; and his Ph.D. in Electrical and Computer Engineering from The University of Texas at El Paso, in 2011. He has been an assistant professor of computer science at the School of Engineering and Computer Science at Baylor University since 2020. Before that, Dr. Rivas was with the School of Computer Science and Mathematics at Marist College (2015-2020). Pablo has more than eight years of industry experience as a Software Engineer and has been recognized for his creativity and academic excellence. In 2011, he was inducted into the international honor society for IEEE Eta Kappa Nu; in 2021, Dr. Rivas was inducted into Upsilon Pi Epsilon, the international honor society for the computing and information disciplines; and in 2022, he was elevated to Senior Member of ACM. He has published several peer-reviewed papers and authored a book on deep learning in 2020. Prof. Rivas predominantly researches artificial intelligence and its ethical and social implications, focusing on computer vision, natural language processing, and quantum machine learning. He is a member of the IEEE Standards Association and is involved in the working groups developing the P70XX series standards for AI ethics. He is currently in the planning phase of the Center for Standards and Ethics in Artificial Intelligence with funding from the National Science Foundation.
How to Contact The Professor
- Tuesdays 9:30 AM - 10:30 AM
- Thursdays 5:00 PM - 6:00 PM
He is glad to talk to students during and outside of office hours. If you can't come to his office hour, please make an appointment for another time, or just stop by if you see the door open. If you are going to stop by it is a good idea to check his schedule.
If extra help is needed, there is help available at the Center for Academic Success and Engagement.
Note: Any student who needs learning accommodations should inform Dr. Rivas immediately at the beginning of the semester. The student is responsible for obtaining appropriate documentation and information regarding needed accommodations from the Office of Access and Learning Accommodation and providing it to the professor early in the semester.