Course Overview

The purpose of CS 235 is to build upon the foundation of CS 124 and CS 165 and to learn the fundamental concepts of data structures.

Why do I care?

A major component of any computer program is the data. While all computing systems provide the means to store and manipulate numbers, logical data, and text, they do not provide much help when dealing with collections of data. An understanding of data structures enable us to more easily and efficiently manage these collections of data. This represents an important tool that should be in every programmers toolbag.


Successful graduates of CS 235 will:

These goals will be explored in the context of C++ using the Linux operating system.

Course Materials

The text for this semester will be C++ Data Structures. This textbook is not available in print format but is available for a free download:

Helfrich, James. C++ Data Structures. Download full text here.

Most weeks will have about 30 pages of reading. The shortest week will have 17 pages and the longest will have 44. There will be additional material available through I-Learn, including:

Finally, there will be additional material available on the course Linux directory /home/cs235


The grading breakdown for the class will be:

Preparation 10% Thirteen reading quizzes due Monday night. Most weeks, there will be about thirty pages of reading.
Teach One Another 15% Every week there will be a set of problems designed to illustrate different aspects about the implementation and use of the data-structure of the week. There will be no points awarded for these problem sets. Additionally, there will be a discussion board called "the developer's forum" where you can ask questions about the problem sets or offer answers. You will be graded according to participation on this developer's forum according to the quality of your questions and answers.
Assignments 65% There will be one assignment per week, each worth 5% of your overall grade. All but one will be done in pairs with assignments made by the instructor at the beginning of the week.
Final Exam 10% The final exam will be the last day of class. It will cover all we learned this semester.
Grades are as follows: 100% → 90%  A:  Demonstrated mastery of the class
89.9% → 80%  B:  All of the key concepts and skills have been learned
79.9% → 70%  C:  Acceptable, but might not be ready to graduate
69.9% → 60%  D:  Developing, the class has yet to be mastered
59.9% → 0%  F:  Failed to understand or complete the course

There will also be the usual +’s and -’s. All grades are reported on I-Learn. If you feel that I-Learn does not accurately reflect your earned grade, please discuss this with your instructor.

Most of the learning activities have a time estimate associated with them. These signify how long it takes the average student to complete the activity for the average grade. Some students will complete the assignment significantly faster or slower than the average, and getting an "above average" grade may take much more time and effort. Please use the estimates as guidelines; they are not guarantees.


You may work with your classmates but all submitted work for assignments must be original. Share ideas; do not share code! Assistance from a classmate should be on par with the help you would expect from a lab assistant. The penalty for copying or plagiarizing of assignments might be one or more of the following: -100% on an assignment, being asked to withdraw from the class, a failing grade in the class, or disciplinary action by the university.

Late work will generally not be accepted in this class. That being said, there are exceptions. If you know of an upcoming event that will keep you from turning something in on-time, you need to make prior arrangements with the instructor. As a general rule, the instructor will be more accommodating before the due date than after.


There will be two main ways to communicate with the instructor in CS 345: BYU-Idaho e-mail and the Developer's Forum:

In addition to this, most work for the class will be done using the pair programming technique. This assignment will happen in the second week of the semester. Expect to collaborate with your partner on most assignments through the course of the semester. This person should be the first you turn to for just about anything.


BYU-Idaho is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by BYU-Idaho Disability Services. If you need assistance or feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established policy and procedures.

If you have any disability that may impair your ability to complete this course successfully, please contact Disability Services as soon as possible, preferably before the beginning of the semester, in order to insure that you receive appropriate accommodations.

Disability Services Contact Information:


BYU-Idaho prohibits sex discrimination against any participant in its education programs or activities. Prohibited sex discrimination includes incidents of sexual harassment (including sexual violence), dating violence, domestic violence, sexual assault, and stalking (collectively “sexual misconduct”).

As an instructor, one of my responsibilities is to help create a safe learning environment for my students and for the campus as a whole. University policy requires that I report all incidents of sexual misconduct that come to my attention. If you encounter sexual misconduct, please contact the Title IX Coordinator at or 208-496-9209. Additional information about sexual misconduct and available resources can be found at