Course Syllabus

Overview

This course will focus on designing and debugging programs consisting of multiple functions. An emphasis will be placed on problem solving and analysis skills.

Prerequisites

Students should take the following courses:

  • CSE130 - Algorithm Design 
  • CSE111 - Programming with Functions 

Textbook

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.

The course provides a textbook: Software Design, by James Helfrich. This will be available through Kendall Hunt. Throughout the course of the semester, you will need to read all of Unit 1, 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 solve this semester. The course also provides additional material available through I-Learn, including tutorials and Python references.

You will need to 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 modularization design. There are no grades directly associated with the reading.

Structure

Course Outcomes

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

  1. Explain the syntax, purpose, and use of design tools as they relate to modularization
  2. Explain and use design metrics as they relate to modularization
  3. Identify and explain design trade-offs
  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 as an independent programmer

Parts of the Class

The table below displays typical weekly activities, due dates, and activity descriptions.

Time and Date Learning Model Activity Title Description
Beginning of Week Prepare Reading Read the material and take a quiz.
During the Week Teach One Another Developer's Forum/Problem Sets Answer questions posed by instructor. 
End of Week Prove Lab Create a program to solve a problem.

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:00p.m. 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 131 will offer the following learning activities: reading, reading quiz, problem sets, weekly programming labs, and a final exam.

Reading quiz

The course has a reading quiz associated with each chapter in the book. The reading quiz covers all the fact and 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 15% of your overall grade in the class for online students, 20% for campus students.

Developer's Forum/Problem Sets

The course has 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.

For online sections, the problem sets will be posted by the instructor on a regular basis. Solutions to the problem sets are provided through the discussion board for online sections and in class for the campus sections. 

You will need to work through these problem sets in class or online. Some are to be tackled individually, some in small groups, and some as a class. 

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, and 15% of your grade for online students.

Weekly Programming Labs

The course has twelve labs. Seven are programming labs, where a working Python program will be developed. Five are design labs, where a design solution (in pseudocode or flowchart) 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 three hours to complete.

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 60% of your overall grade, about 6% for each submission.

Feedback is left on every lab. To find feedback on labs, use the following steps:

  1. Select Grades.
  2. To the right of the activity (Assignment/Discussion/Quiz) for which you wish to see feedback.
    1. Select FeedbackIconto view instructor comments.
    2. Select RubricIconto view rubrics.

Here are additional tutorials.

Final Exams

The course has a final exam, covering everything we learned about the entire semester. The course also has 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 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, and so on. 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 or 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.

Grading

There are four components to your overall grade:

Activity Online Campus Description
Reading 15% 20% Twelve reading quizzes, five attempts, due before the first class of the week
Developer's Forum 15% 0% Twelve Developer's Forum discussion boards, keep posting until you reach 100%
Labs 60% 60% Twelve design and programming problems, due each Saturday night at 5:00pm
Final Exams 10% 20% One final due on the last day of class

The American filmmaker Woody Allen said, "80% of success is showing up." This is true in school, in the workplace, and in life! To help with this, we have an attendance policy.

For campus students, there is one other element to your grade: the attendance incentive. If you are present in every class period, then you can choose your bonus: either the lowest grade will be dropped or a late penalty will we waived. If you miss one or two class periods, then there will be no impact on your grade. If you miss three of four class periods, then one grade sign will be deduced from your final grade (A- to a B+, for example). If you miss five to six class periods, then two grade signs will be deducted. Seven or more missed class periods will result in a full letter grade reduction. 

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 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 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 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