OO Programming and Data Structures | CS 241

Syllabus

Course Overview

The purpose of CS 241 is to survey the topics of both object-oriented programming and common programming data structures. Successful graduates of CS 241 will be able to :

These objectives will be explored in the context of Python using the Linux operating system.

Details

This course covers the fundamentals of both object-oriented programming and data structures. This is accomplished by focusing on object-oriented programming topics heavily through the first two-thirds of the semester, during which time we will highlight one data structure each week. For the last third of the semester, we will turn our focus more directly to data structures and algorithms topics.

The course is primarily organized at the weekly level. Each week the student will be expected to:

  1. Complete weekly reading assignments

  2. Write two checkpoint programs during or immediately following the reading. These checkpoints are not designed to be problem solving exercises, but rather to help practice the syntax and mechanics of the reading. These assignments are pass/fail and will be auto-graded.

  3. Teach and learn from peers in a synchronous team activity.

  4. Complete a data structures homework assignment involving programming and a concept quiz.

  5. Apply the topics of the week in a larger programming assignment that requires problem-solving, design, and debugging.

  6. Complete a weekly reflection.

Course Materials

Reading assignments will direct students to freely available online material.

Finally, there will be additional material available in the course Linux directory /home/cs241 .

Grading

The grading breakdown for the class will be:

Checkpoints 10%

As described above, the checkpoints will reinforce the syntax and mechanics for the topic of each week.

Team Activities 10%

Students will be divided into teams for synchronous activities that will occur once each week.

Data Structures Homework 10%

This will require an additional reading, and then a programming assignment that reinforces the data structure topic for the week, as well as a concept quiz.

Weekly Assignments and Projects 55% The first several weeks of the course will have a standalone weekly assignment. Following these, we will complete three larger projects that demonstrate the value of the object-oriented tools we are learning. These projects will have milestone deliverables due at the end of the weeks leading up to the final deliverable.
Reflections 5% A week will have a short Question and Answer document to reflect on the topics of the week.
Final Exam 10% Closed book, closed note, multiple-choice, primarily on how to read code.

Final letter grades will be assigned 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 subsequent classes
69.9% -> 60% D: Developing; the class has yet to be mastered
59.9% -> 0% F: Failed to understand or complete the course

There will also be the usual +'s and -'s. All grades are reported on I-Learn.

Policies

Checkpoint assignments are due on the day noted on the schedule. Late checkpoints will be accepted for 50% credit until the due date of that week's weekly assignment. After that, they will not be accepted.

Generally, late weekly assignments, milestones, and projects are not accepted. Major, extenuating circumstances must be discussed with the instructor, before the assignment is due, and reasonable accommodations may be made.

Examples of emergencies: death in family, illness requiring a doctor visit, etc.

Examples of things that are not emergencies: I forgot when it was due, I did not plan appropriately, I was up all night playing Halo and overslept, I went out of town with my friends, I had to work, etc.

Academic Honesty

You may work with your classmates but all submitted work for projects and assignments must be original. Share ideas; do not share code! Assistance from a classmate should be on par with the help you would expect from a lab assistant.

If you work closely with another student, helping teach and learn from each other, make sure you each still write your own code, but in this case, your solutions may end up being very similar. This is completely fine, but please make sure to put a comment in your code stating that you wrote your own program, but worked closely with that person, and that is why it is similar.

I encourage you to use the Internet as a resource, but recognize that you should not copy and paste someone else’s work as your own. Cite all sources and follow copyright laws. When in doubt, give credit and be upfront.

The penalty for copying or plagiarism 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.

Accessibility

BYU-Idaho is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by BYU-Idaho Disability Services. If you need assistance or feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established policy and procedures.

Maintaining a Safe Learning Environment

BYU-Idaho prohibits sex discrimination against any participant in its education programs or activities. Prohibited sex discrimination includes incidents of sexual harassment (including sexual violence), dating violence, domestic violence, sexual assault, and stalking (collectively "sexual misconduct").

As an instructor, one of my responsibilities is to help create a safe learning environment for my students and for the campus as a whole. University policy requires that I report all incidents of sexual misconduct that come to my attention. If you encounter sexual misconduct, please contact the Title IX Coordinator at titleix@byui.edu or 208-496-9209. Additional information about sexual misconduct and available resources can be found at www.byui.edu/titleix.

Changes to Schedule and Assignments

Schedules, assignments, and policies are subject to change. You will be notified of any changes on I-learn.