Course Syllabus
Course Syllabus
Overview
The purpose of CSE 232 is to build upon the foundation of CSE 212 (Programming with Data Structures) and CSE 231 (Inheritance Design) to learn how to design, build, and manipulate data structures.
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 programmer's toolbag.
Prerequisites
Students should take the following:
- CSE231 - Inheritance Design
Textbook
The course provides a textbook: C++ Data Structures, by James Helfrich. Most weeks will have about 30 pages of reading. The shortest week will have 17 pages and the longest will have 44. This textbook presents all the skills you will need to demonstrate for the class. It does not provide solutions to the assignments, projects, or tests. It also does not describe how to solve every problem you will need to solve this semester. The course also provides additional material available through I-Learn, including tutorials and C++references.
You will need to read a chapter of this textbook at the beginning of each week. Some concepts are difficult, and you may need more than one reading to understand everything. By the time you work on the weekly lab and take the final exam, you will need to master every aspect of these chapters. It will take around 45 minutes to read each chapter.
By completing the reading, you will understand the concepts surrounding data structure design. There are no grades directly associated with the reading.
Structure
Course Outcomes (CO)
Successful graduates of CSE 232 will have done the following:
- Implement the basic data structures: lists, trees, graphs, etc.
- Understand the trade-offs between implementations of the data structures.
- Implement classes to meet rigid design specifications.
- Solve complex coding problems.
- Work effectively in a pair-programming environment.
These goals will be explored in the context of C++.
Parts of the Class
The table below displays typical weekly activities, due dates, and activity descriptions.
Due Date* | Learning Model | Activity Title | Description |
---|---|---|---|
Beginning of the Week | Prepare | Reading | Quiz on the material of the week |
Midweek | Teach One Another | Problem Set | Weekly update meeting with your instructor (through Zoom or in class) |
End of Week | Prove | Programming Lab | With your partner, write a program to implement a data structure. |
The weekly labs are due Saturday night at 5:00pm mountain standard time. This due-time was selected for several reasons. First, in the workplace, deadlines tend to be during work hours. Second, the solution will be released at the due-time and you are more likely to see it at 5:00pm than midnight. Third, when due-times are midnight, it is difficult to have a normal social life Saturday night. This way, it is possible to submit your work and go out at night! Finally, the due-time is mountain standard time. If the due-time was midnight, then it would be Sunday on the east coast and in Europe. A 5:00pm due-time makes submissions due on Saturday (rather than Sunday) for the majority of all students.
*Set your time zone in User Settings so that the dates and times for course activities will display correctly for your time zone.
In order to help you meet these objectives, CSE 232 will offer the following learning activities: reading, reading quiz, problem sets, weekly programming labs, and a final exam.
Reading quiz
The course provides a reading quiz associated with each chapter in the book. The reading quiz covers all the fact/comprehension topics for the chapter. The solution to each reading quiz will be provided shortly after the due date.
You will need to complete the reading quiz at the beginning of the week. You may take this quiz up to five times. The highest grade will be retained. These are open-book quizzes.
By completing the reading quiz, you will have demonstrated a readiness to participate in class. The reading quizzes will account for 10% of your overall grade in the class.
Problem Sets
The course provides a collection of exercises, problems, and challenges. The exercises are designed to test your mastery of the facts and concepts in each chapter. The problems are to help you apply the concepts of the chapter to coding situations. The challenges are designed to exercise your ability to solve novel, large, or difficult problems.
You will need to work through these problem sets in class or online. For online sections, you and your partner are encouraged to work through these problems. During your weekly meeting with the instructor, he/she may ask you to work through a problem to ensure you understand the data structure of the week. .
By completing these problem sets, you will be well prepared to tackle the weekly programming lab. There are no grades directly associated with the problem sets for campus students.
Programming Labs
The course provides twelve labs. Each lab will ask you to implement a data structure or container in C++. These labs contain extensive unit tests, allowing you to see how you and your partner are progressing.
You will need to use creativity, problem-solving, and plenty of hard work to find a solution to these labs. Each lab will take about three hours to complete. Most of the work this semester will be done with a partner using pair-programming. Except for the reading quizzes and final exam, you are encouraged to work with your partner on everything. However, working with other teams on problem sets or labs is prohibited. 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. For more information about this, please see this document on plagiarism (Links to an external site.).
By completing the projects, you will master the various programming constructs, develop problem-solving skills, and learn how to debug programs. The labs will account for 65% of your overall grade, about 5% for each submission.
Feedback is left on every lab. To find feedback on labs, use the following steps:
- Select Grades.
- To the right of the activity (Assignment/Discussion/Quiz) for which you wish to see feedback.
- Select
to view instructor comments.
- Select
to view rubrics.
- Select
Here are additional tutorials.
Final Exams
The course provides a final exam, covering everything we learned about the entire semester. The course also provides two practice final exams with which you can measure your readiness for the final exam. The instructor will provide immediate feedback on your performance on each exam.
You will need to review the problems presented in the back of each chapter to prepare for the test. These tests are to be completed in a closed-book format without reference to the internet or the textbook. You will also need to complete the practice exam several times until you have achieved mastery over all aspects of the class.
By studying for the exam, you will develop a mastery of the skill of reading code and identifying common pitfalls. The final exam is worth 10% of your overall grade in the class for online students, 20% for campus students.
Course Policies
Late Work
After the first week, late reading quizzes are not accepted. This is because the solution to the reading quizzes will be presented immediately after each reading quiz is due. It is therefore a good idea to not wait until the last minute to complete these.
Late work for the labs is also not accepted in this class. The reason for this policy is that solutions will be posted immediately upon the due date. This is so you get immediate and detailed feedback on the lab right when it is most useful and relevant to you. If late work was accepted, then you would have to wait days or weeks until you could see the solution and understand why it was done a certain way. Studies have shows that the usefulness of feedback decreases drastically when it is delayed.
If a problem arises, you must contact your instructor long before the due date and provide a good reason. Some examples of good excuses would be death in a family, illness requiring a doctor visit, etc. If a special accommodation needs to be made, a new plan needs to be created. This plan is to be created by the student and will address three things: what the student will do (perhaps an alternate assignment? when will it be due?), what the instructor will do (grade it, I presume), and how it will be graded. The student will also need to make a case that the plan is fair to the student (who wants a grade for his/her work) and the rest of the class (who is following the standard plan that is part of the class). When the instructor and student both agree on this plan, then it will be used to replace the missed assignment.
Health Challenges
A growing number of students are experiencing mental health challenges to varying degrees. Doing what you can to stay ahead and on top of depression or anxiety by wisely taking care of yourself will be a key to succeeding academically. But even then, sometimes these challenges can affect your ability to complete the required work. Or a particular assignment might trigger anxiety for you in ways I have not anticipated. Or maybe you reach a point where you just can’t get yourself to class at all.
In any of those cases, please come and talk with me or at least send me an email. I’ll listen and do what I can to help. But the sooner you share your challenges with me, the better I can help. To pass the course or earn an A, you’ll still need to do every bit as much work as other students, but we may be able to find some creative ways to help you do that—especially if you approach me when your problems arise, instead of at the end of the semester.
Doing Your Own Work
Working with other members of the class on the labs or copying solutions from the internet is prohibited. You can get help on the Python language, but not on how to solve problems. 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. For more information about this, please see this document on plagiarism.
If an AI agent such as ChatGPT is used in the generation of any code, describe its use in that function/method's comment block.
Grading
There are four components to your overall grade:
Preparation | 10% | Thirteen reading quizzes due Monday night. Most weeks, there will be about 30 pages of reading. |
---|---|---|
Teach One Another | 15% | Schedule a synchronous meeting including the members of your team and the instructor. |
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 pair assignments made by the instructor at the beginning of the second week. |
Final Exam | 10% | The final exam will be the last day of class. It will cover all we learned this semester. |
Number grades are converted to letter grades using the following scale:
Standard BYU-Idaho Grading Scale | |||||||
93-100% | A | 90-92.9% | A- | 87-89.9% | B+ | ||
83-86.9% | B | 80-82.9% | B- | 77-79.9% | C+ | ||
73-76.9% | C | 70-72.9% | C- | 67-69.9% | D+ | ||
63-66.9% | D | 60-62.9% | D- | Below 60% | F |
University Policies
Students with Disabilities
Brigham Young University-Idaho is committed to providing a working and learning atmosphere that accommodates qualified persons with disabilities. If you have a disability and require accommodations, please contact the Disability Services OfficeLinks to an external site. at (208) 496-9210 or visit their website and follow the Steps for Receiving AccommodationsLinks to an external site.. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with students and instructors by the Disability Services Office.
- This course contains figures and graphs. If you have a disability that prevents you from viewing or creating figures and graphs, please contact Disability Services.
- Additionally, this course requires you to use a code editor such as Microsoft Visual Studio. If you have a disability that prevents you from accessing a code editor, please contact Disability Services.
- This course may require synchronous meetings. If you are currently registered with the Disability Services Office and need an interpreter or transcriber for these meetings, please contact the deaf and hard of hearing coordinator at (208) 496-9219.
Other University Policies
Please read through the document called University PoliciesLinks to an external site.. It gives important information about the following topics: Student Honor (Academic Honesty, Student Conduct, Sexual Harassment), Student with Disabilities, Complaints and Grievances, Copyright Notice. Go to the Student Resources module to review further resources and information.
Course Summary:
Date | Details | Due |
---|---|---|