Course Syllabus

This course will focus on designing and debugging classes. An emphasis will be placed on problem solving and analysis skills.

Course Outcomes

CSE 230 is the third class in a seven-class software design sequence sequence. If you complete all the readings, problem sets, and labs, you will be able to:

  1. Explain the syntax, purpose, and use of design tools as they relate to encapsulation
  2. Explain and use design metrics as they relate to classes
  3. Identify and explain design tradeoffs
  4. Qualitatively and quantitatively evaluate the pros and cons of alternative solutions
  5. Find solutions to complex, ill-defined, and difficult programming problems
  6. Read, write, and debug code
  7. Work effectively in a pair programming environment
  8. Read and write C++ code

What to Expect from the Course

In order to help you meet these objectives, CSE 230 will offer the following learning activities: reading, reading quiz, problem sets, weekly programming labs, and a final exam.


The textbook for this course is Software Design by James Helfrich. This is available as an e-book through Kendall Hunt. Your subscription should be part of the course enrollment. Through the course of the semester, you will need to read all of Unit 2, totaling ten chapters. This textbook presents all the necessary skills you will need to demonstrate for the class. It does not provide solutions to the assignments, projects, nor tests. It also does not describe how to solve every problem you will need to tackle this semester. The course also provides additional material available through I-Learn, including tutorials and C++ references.

You will need to individually read a chapter of this textbook at the beginning of every week. Some concepts are difficult and may require more than one attempt 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 on average a half-hour to read the 20 pages in each chapter.

By completing the reading, you will understand the concepts surrounding encapsulation design. There are no grades directly associated with the reading.

Reading Quiz

The course provides a reading quiz associated with each chapter in the textbook and each chapter in the C++ tutorial. The reading quiz covers all the fact and comprehension topics for the chapter.

You will need to complete the reading quizzes. Most weeks will have two quizzes: one for the C++ programming language and another for the encapsulation component of the class. You may take this quiz up to five times. The highest grade will be retained. These are open-book quizzes. Each quiz is to be accomplished individually, without the help of the rest of the class.

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. One-third of the reading grade will be for the C++ component, due Mondays (mountain time) for online students and 15 minutes before the first class period of the week for campus students. Two-thirds of the reading grade will be for the encapsulation component, due Wednesdays (mountain time) for online students and 15 minutes before the second class period of the week for campus students.

Problem Sets

The course provides a collection of exercises, problems, and challenges. Exercises are designed to exercise 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. Solutions to the problem sets are provided in class for campus students and in an announcement for online students.

You will need to work through these problems sets in class. Most weeks will have two problem sets: one for the C++ component of the class, and the second for the encapsulation component. Each problem set is to be tackled with your partner. Campus students will complete these problem sets in class.

By completing these problem sets, you will be well-prepared to tackle the weekly programming lab. The problem sets will account for 10% of your overall grade in the class for online students. For campus students, there is no grade for the problem sets. For online students, one-third of the grade will be from the C++ component which is due on Tuesdays (mountain time), and two-thirds from the encapsulation component due on Thursdays (mountain time).

Weekly Programming Labs

The course provides twelve labs. Ten are programming labs where a working C++ program will be developed. Two are design labs where a design document (containing class diagrams, pseudocode, flowchart, data flow diagrams, structure chart, and test cases) are to be created. Detailed feedback and a presentation of a good solution to each of these labs will be provided shortly after each lab is due.

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 four hours to complete. You will work with a partner on each lab except the first using the pair-programming technique.

By completing the projects, you will master the various procedural programming constructs, develop problem-solving skills, and learn how to debug programs. The labs will account for 70% of your overall grade, about 6% for each submission.

Final Exam

The course provides a final exam and two practice final exams.

You will need to review the problems presented in the back of each chapter to prepare for the test. This test is to be completed in a “closed-book” format without reference to the internet, the textbook, or anyone else in the class. You may wish to complete the practice exam several times so you can  achieve mastery over all aspects of the class.

By studying for the exam, you will develop a mastery of the skill of designing and analyzing algorithms. The final exam is worth 20% of your overall grade in the class for campus students, 10% for online students.



There are three components to your overall grade:

Reading Quiz 10% 26 reading quizzes to be completed individually.
Problem Set 10% 23 problem sets to be completed with your partner.
Labs 70% Twelve design, analysis, and programming problems.
Final Exams 10% The final exam is the last day of class.

The weekly labs are due Saturday night at 5:00 p.m. (mountain time). This due date 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 date and you are more likely to see it at 5:00 p.m. 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 date is mountain time. If the due date was midnight, then it would be Sunday on the east coast and in Europe. A 5:00 p.m. (mountain time) due date makes submissions due on Saturday (rather than Sunday) for the majority of all students.

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 for CSE 231.
69.9%–60%  D:  Developing; the class has yet to be mastered.
59.9%–0%  F:  Failed to understand or complete the course.

Additionally, a minus (-) will be added when the last digit is a 0, 1, or 2 for all grades except F's. A plus (+) will be added when the last digit is a 7, 8, or 9 for all grades except A's and F's. Grades will be posted on I-Learn but you are responsible for verifying your grade. Please notify me if there is a problem.


Please send all questions to your instructor through BYUIdaho email. Please do not use Canvas e-mail (conversations) or your own private e-mail (such as your Gmail account). You can expect your instructor to respond to each email within 24 hours, though a full answer may take longer. Your instructor will post announcements several times a week. Each of these are important and should be read as soon as possible. If your instructor needs to contact you directly, he/she will do this through your official BYU-Idaho email.

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.

Generally speaking, late work is generally not accepted in this class. The reason for this policy is that solutions will be posted immediately upon the due date. If a problem arises, you must contact your instructor long before the due date and provide a good reason. Examples of good excuses: death in family, illness requiring a doctor visit, etc. Examples of bad excuses: I forgot when it was due, I did not plan appropriately, I relied upon some technology to work flawlessly the five minutes before the deadline, etc. If a special accommodation needs to be made, both you and your instructor must come up with and agree upon a plan for your late work. This plan may include new due dates or a point penalty. If you do not have a written (in email) agreement, then the assignment due date remains.

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: receiving a zero on an assignment, being asked to withdraw from the class, receiving a failing grade in the class, or receiving disciplinary action by the University. For more information about this, please see the information on Plagiarism.

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 Office at (208) 496-9210 or visit their website and follow the Steps for Receiving Accommodations. 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 may require synchronous meetings. OR This course includes required 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

Student Honor and Other Policies

Please read through the document called University Policies. 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