Course Syllabus

Overview

Heraclitus, a famous Greek philosopher, once said, "There is nothing permanent except change." The need for updating and changing software is constant. Most of the money spent on software is for maintenance, and at least half is spent on enhancements driven by continuous innovation. The cost of change is high. What can we do to make this system better? Programming with classes, when applied, makes changing software easier and therefore more cost-effective.

Course Description

This course will introduce the notion of classes and objects. It will present encapsulation at a conceptual level. It will also work with inheritance and polymorphism.

Requirements

Prerequisites

In order to take this course, you should have completed CSE 111: Programming with Functions.

Required Resources

  • There is no textbook required for this course. All study material will be provided. 
  • You will need a computer that can run Visual Studio Code and C# (The .NET Framework). A smart phone will not be sufficient.
  • You will also use a communication platform called Microsoft Teams.
  • This course will use the C# programming language, but you are not expected to have any prior experience with C#. Rather you should be comfortable with programming principles in general, and then you will learn the C# syntax you need during this course.

Structure

Course Outcomes

You will accomplish the following:

  1. Articulate the principles of programming with classes.
  2. Design software using the principles of programming with classes.
  3. Develop working software using the techniques of programming with classes.

Organization Structure

[This course may require synchronous meetings. OR This course includes required synchronous meetings.]

This course is organized into a series of two units that each focus on a core principle of programming with classes.

During the first of the two weeks you will have learning activities that help you learn and apply the topic and then you will work with your team to design a project that uses the principle of the unit.

In the second of the two weeks, you will develop a working program that highlights the principle of the unit. You will also review code with your team and articulate the principle of the unit and how it was used.

Major Assignments

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

Major Assignment Description Course Outcome
Design Each week you will complete a design for the project of the week. 2
Programming Projects Each week you will develop a programming project that highlights a different principle of programming with classes. 3
Articulate Write Ups Each week you will show that you can articulate the principles of programming with classes by explaining the principle and how it was used in your program. 1

Weekly Patterns

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

Due Date Week of the unit Learning Model Activity Title Description
Midweek First week Prepare Learning Activity Prepare activities help you apply a programming principle in a low-stakes environment. These activities prepare you to contribute to the team design activity and to complete your programming assignment that is due at the end of each unit.
Midweek First week Teach One Another Team Design

Teach one another activities require you to complete a design challenge with your team members. You can complete this through Microsoft Teams or in a group setting like Zoom.

You will finish and submit your design individually by the end of the week.

Midweek Second week Teach One Another Team Code Review You will meet with your team for a code review where you help each other improve your programming projects.
End of the Week Second week Prove  Developer Prove activities require you to complete a programming assignment.
End of the Week Second week Prove Articulate Demonstrate your ability to articulate the principle learned each week.

NOTE: Set your time zone so the dates and times for course activities will display correctly for your time zone.

Learning Model

As outlined above, each weekly activity has direct correlation with The BYU-Idaho Learning Model. Every unit you will be expected to prepare by completing individual learning activities, then you will teach one another as you create a design together for your programming projects. Finally, you will ponder and prove by developing working software and articulating how the principle of the week was used.

Expectations

Workload

A consistent hour of practice each day of the week will help you learn to program better than four hours spent on one day. Similar to how scripture study works best if you study some each day, and not just studying on Sunday.

Group Work

In Week 01, you will be assigned a team to work with. You will work with this group for the rest of the course. Each week you will coordinate the completion of one weekly team challenge, due Thursday (mountain time). You may choose to meet through Zoom, or if the opportunity exists, work in person. You may also choose to work through Microsoft Teams. 

Late Work

As a sign of professionalism and respect, you should complete your work on time. However, your instructor has the discretion to accept late work or extend due dates as appropriate. 

Extra Credit

There is no extra credit in this course. 

Grading Scale

As mentioned above, each week you will have a Solo Checkpoint, Team Challenge, and Ponder Reflection. The Final Project will take place starting Week 09 and continue through Week 14. All Solo Checkpoints and Team Challenges from Weeks 09–13 will be counted as part of the Final Project. Reflections from Weeks 09–13 will remain in the Ponder Reflections category. 

Letter Grade Percent
A 100%–93%
A- 92%–90%
B+ 89%–87%
B 86%–83%
B- 82%–80%
C+ 79%–77%
C 76%–73%
C- 72%–70%
D+ 69%–67%
D 66%–63%
D- 62%–60%
F 59% and lower

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

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