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.

Requirements

Prerequisites

Students should take the following courses:

  • CSE130 - Algorithm Design 
  • CSE111 - Programming with Functions 

Required Resources

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. Through 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 algorithm 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

Major Assignments

The table below is meant to help you see the relevance of each major assignment as it pertains to the course outcomes (CO).

Major Assignment Description CO#
W13 Final Exam Cumulative Exam 1.2.3.4.5.6.7

Weekly Patterns

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

Due Date* Learning Model Activity Title Description
Beginning of Week Prepare Reading Read the material and take a quiz.
End of Week Teach One Another Developer's Forum Answer questions posed by the 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: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.

Learning Model

Students will prepare for each week by reading the required chapter and completing a quiz. They will teach one another by answering questions posed by the instructor in the discussion board. They will also ask and answer one another's questions there. Students will then prove what they have learned by completing a programming assignment each week.

Expectations

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

Feedback

You can expect to receive grades and feedback within 7 days of the due date for all assignments.

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 15% of your overall grade in the class for online students, 20% for campus students.

Developer's Forum/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.

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. This will be 15% of your overall grade for online students, 0% for campus students.

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. 

Weekly Programming Labs

The course provides 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 Feedback Icon.to view instructor comments.
    2. Select Rubric Icon.to view rubrics.

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.

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 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. Some examples of good excuses would be death in a family, illness requiring a doctor visit, etc. Examples of bad excuses include: 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.

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 Scale

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

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 and Apple Xcode. 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

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