Syllabus
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.
Outcomes
Successful graduates of CS 235 will:
- Implement the basic data structures: lists, trees, graphs, etc.
- Understand the tradeoffs between implementations of the data structures.
- Devise algorithms and programs that use these data structures.
- Understand and implement algorithmic strategies of recursion, divide & conquer, sorting, and searching.
- Determine the time complexity of simple algorithms.
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:
- Schedule
- Assignments
- Additional references
Finally, there will be additional material available on the course Linux directory /home/cs235
Grading
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.
Policies
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.
Communication
There will be two main ways to communicate with the instructor in CS 345: BYU-Idaho e-mail and the Developer's Forum:
- E-Mail. All students are required to use their BYU-Idaho e-mail when communicating with the instructor. Please do not count on using the phone (unless explicitly arranged by the instructor), Facebook, smoke signals, or any other form of communication. The instructor will answer all your e-mails in less than 24 hours. Please contact your instructor directly for questions about your grade.
- Developer's Forum. All questions about the course content, help with problems or coding challenges, questions about expectations regarding any of the assignments, a shoulder to cry on, or just about anything else should be done through the Developer's Forum. This is your lifeline for CS 235. It will be active 24 hours a day and constantly monitored by the instructor as well as your classmates.
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.
Accessibility
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:
- Phone: 208 496 9210
- Email: disabilityservices@byui.edu
- Fax: 208 496 5210
- Website: http://www.byui.edu/disability-services.
Discrimination
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 titleix@byui.edu or 208-496-9209. Additional information about sexual misconduct and available resources can be found at http://www.byui.edu/titleix