Course Syllabus


Meet Your Instructor


Course Information

  • Course Name: Computer Programming for Non-CS Majors
  • Course Number: CS 201
  • Credits: 3
  • Dates of Instruction: January 8, 2024 through March 22, 2024
  • Finals Week: March 18, 2024 through March 22, 2024
  • Instructor name: Brian Baker
  • Instructor email:
  • The best way to reach me is through a Canvas message. You'll always have my email, but between two campuses worth of email and personal email it is much easier to get lost in my inbox. Canvas messages from students pop up a notification on my mobile device and I can reply to you directly. We can also arrange to meet via Zoom from there if you want to have a more in depth conversation about something.

    I will also be holding office hours on Zoom, I just feel like it gives a better sense of connection when you can see the instructors face and have a slightly more human conversation. I have found that online students tend to prefer evenings, so my office hours for this term will be Thursday evenings from 5:30PM to 6:30PM at the Zoom Room linked below.

  • Link:
  • Meeting ID: 559 000 1313
  • Password: CarlSagan


Course Learning Outcomes (CLOs)

  1. Translate a problem statement into an appropriate coding solution containing arithmetic, relational, and logical expressions.
  2. Develop a program that reads data from a local data file and from the web.
  3. Develop a program that uses dynamic memory allocation.
  4. Develop a program that uses a List data structure.
  5. Develop a program that uses a Dictionary data structure.
  6. Develop a program that uses a 3rd party library.


Course Credits

This 3-credit course involves approximately 9 hours of work per week, intended for you to distribute in most weeks approximately as follows:

  • 6 hours of "Explorations" each week
    • including 2 hours of reading per week
    • and 4 hours of ungraded practice programming activities
  • 2 hours of graded homework per week
    • always including some programming
    • and sometimes a short online discussion
  • 1 hour of studying for the final exam each week


Learning Resources

  • Textbook absolutely required for all students...
    • Al Sweigert, "Automate the Boring Stuff with Python: Practical Programming for Total Beginners", No Starch Press, ISBN 978-1593275990.
    • Available for purchase at
    • Or for free online at
  • Online documentation for Python at
  • Note to prospective students: Please check with the OSU Beaver Store for up-to-date information for the term you enroll (OSU Beaver Store website or 800-595-0357). If you purchase course materials from other sources, be very careful to obtain the correct ISBN.


Course Content

Typical week:

  • Monday
    • Wrap up the preceding week's graded activities (see below)
  • Tuesday-Thursday
    • Work through the week's Explorations, including the reading and programming practice
    • Don't procrastinate past Thursday. If you postpone the Explorations too long, you'll run short of time to work on the assignment.
  • Friday through following Monday
    • Start the assignment on Friday and try to make enough progress that you can ask for help if needed.
    • If the week has a required, graded discussion or an extra credit activity (TCA), also try to do this on Friday, too.
    • The TA and instructor might not be available on the weekend. So posting on Friday is a good idea.
    • By Monday, you should be wrapping up.


Course Outline

Week Topic Ungraded activities ("Explorations") Graded activities
1 Creating and Running Programs Reading and videos in Canvas; reading Chapter 0 in textbook Required Assignment and Required Discussion
2 Understanding Programs Reading in Canvas; programming practice; reading Chapter 1 in textbook Required Assignment and Optional Extra Credit
3 Controlling Programs Reading in Canvas; programming practice; reading Chapter 2 in textbook Required Assignment and Optional Extra Credit
4 Creating and Calling Functions Reading & video in Canvas; programming practice; reading Chapter 3 in textbook Required Assignment and Required Discussion
5 Structuring Data Reading & video in Canvas; programming practice; reading Chapter 4 and Chapter 5 in textbook Required Assignment and Optional Extra Credit
6 Manipulating Strings Reading in Canvas; programming practice; reading Chapter 6 and Chapter 7 in textbook Required Assignment and Required Discussion
7 Reading and Writing Files Reading & video in Canvas; programming practice; reading Chapter 8 and Chapter 14 in textbook Required Assignment and Optional Extra Credit
8 Putting It All Together Reading and videos in Canvas; intensive programming practice Required Assignment (difficult)
Finals All topics Review material from all Explorations, videos, textbook reading, and homework assignments. Exam will not cover Discussions. FINAL EXAM (REQUIRED)


Evaluation of Student Performance

Required Work:

  • Online discussions: 60 points in total (appears in 3 weeks, 20 points each)
  • Homework: 630 points in total (appears most weeks, 70 points each)
  • Final exam: 180 points


Extra Credit, Team Challenge Activities (TCAs):

  • 40 points in total (appears in 4 weeks, 10 points each)
  • TCA points will be added to your Required Work score above.
  • See the section below for more details about TCAs


Letter Grade:

Letter Grade

Percentage Range

A 92 - 100
A- 89 - 91
B+ 86 - 88
B 82 - 85
B- 79 - 81
C+ 76 - 78
C 72 - 75
C- 69 - 71
D+ 66 - 68
D 62 - 65
D- 60 - 61
F Below 60



Please post all course-related questions in the Q&A Discussion Forum so that the whole class may benefit from our conversation. Please contact the instructor or TA privately for matters of a personal nature, who will reply to course-related questions within 24 hours during business hours on weekdays, as well as return your assignments and grades for course activities to you within five days of the due date.


Technical Assistance

If you experience any errors or problems while in your online course, contact 24-7 Canvas Support through the Help link within Canvas. If you experience computer difficulties, need help downloading a browser or plug-in, or need assistance logging into a course, contact the IS Service Desk for assistance. You can call (541) 737-8787 or visit the IS Service Desk online.


Course Policies


Students are expected to participate in discussions during certain weeks. While there is great flexibility in online courses, this is not a self-paced course. You will need to participate in at least one discussion, with your first post due no later than the date and time indicated for the discussion (Pacific time). Discussions typically require you to give a response to another person within 24 hours of the due date. So, for example, your discussion initial post can be due on a Monday at 11:59pm, and then your discussion reply would be due on the next day Tuesday at 11:59pm. Online instructors and/or teaching assistants will generally be available to answer questions online during normal business hours on weekdays.


Individual Weekly Homework Assignments

A homework assignment is due every week of the term, at the indicated date and time (Pacific time). Each student must complete the assignments without referring to any other student's code. This is in contrast to Discussions and TCAs (below): Assignments are individual; discussions and TCAs are group-oriented.  An automatic grading system will score the assignment submission, and you may resubmit the assignment as many times as you like up to the date/time that it is due. Online instructors and/or teaching assistants will generally be available to answer questions online during normal business hours on weekdays.


Team Challenge Activities (TCAs)

Several modules include TCAs. You may complete the TCA individually or as a group of up to 4 students. You may talk with your group about the TCA, but you may not consult any other team for help. The TCA, like any other assignment, has a due date. Your TCA submission is subject to the same late work policy (below) as any other assignment.

In general, one student of the team will submit the assignment on behalf of the team. It is not necessary for every member of the team to submit the assignment. The assignment should be submitted as a Python file via the TCA's GradeScope link. The assignment submission must include these parts:

  • The working code specified by the TCA. This is very similar to any of the homework assignments. Just write the code that the TCA says that you should write.
  • Somewhere within your Python file, a code comment (using # or """ notation) indicating what every person on your team contributed to the code. Include the ONID username of each team member. For example, you might write the following...
# Tom Wright (ONID twright66) wrote the first version of the code. Jenny Smith (ONID smithjen11) tested it and found some bugs.
# Tom fixed the bugs, and then Jenny tested it again, but we couldn't fix one of the bugs.
# So then we asked Asher Reddy (reddyasher2) to join our team, and he figured out how to make the code work.

The TA will read these code comments. All team members must be involved in the process of solving the challenge. If the TA can't immediately understand what each person on the team contributed to the TCA, then some or all members of your team will lose points.

In addition, you should be prepared for the TA to contact you in order to ask questions about how your code works. For example, the TA might contact a member of your team to schedule a Skype or similar video conference session in order to do some screensharing and questioning about the code that your team submits. The TA might randomly pick a student to question, or the TA might specifically look at your submission comment (above) and pick a student who appears to have made a weak contribution. Every person on your team must be prepared to explain how the code works. If the TA emails questions to a member of your team, and that person cannot explain how the code works, then the TA may deduct points for every member of the team. So be selective about who you invite onto your team.

You may only be on one team for a given TCA. If more than one team claims you as a member, then the TA will probably ask you which team you are part of. You can be part of different teams for different TCAs.

If you believe that you made a contribution to a team's submission, but that team's submission does not mention you in the code comments (i.e., you think that you are not getting credit that is due to you), then you can contact the TA to complain. Be prepared to show evidence (such as git commits and/or emails) to demonstrate your contributions. In other words, have documentation handy. The TA has full discretion of whether to give you credit and, if so, then how much. Be thoughtful about which teams you join in the future.

Finally, please do not pester other classmates about joining their teams. You can ask, but if they say "no," then take no for an answer. Instead of pestering, try to become the kind of person that other people want to have on their teams. Do this instead... Step 1: Learn the material. Step 2: Showcase your abilities in the Discussions, so that other students can see your abilities. Step 3: Prosper.


Late Work Policy

Although the course is structured with the intent that students can complete homework, discussions and Team Challenge Activities (TCAs) on or before Friday, each is officially due by 11:59 pm (Pacific time) on the following Monday. They may be submitted late after this official due date, but they will be penalized at a rate of 10 lost points per assignment per day (rounded up). Online instructors and/or teaching assistants will generally be available to answer questions online during normal work hours on weekdays. They will not necessarily be available over the weekend. Plan ahead.


Makeup Exams

Makeup exams will be given only for missed exams excused in advance by the instructor. Excused absences will not be given for airline reservations, routine illness (colds, flu, stomach aches), or other common ailments. Excused absences will generally not be given after the absence has occurred, except under very unusual circumstances.



Incomplete (I) grades will be granted only in emergency cases (usually only for a death in the family, major illness or injury, or birth of your child), and if the student has turned in 80% of the points possible (which basically doesn't happen unless the student encounters a major problem during the final exam).


Guidelines for a Productive and Effective Online Classroom

Students are expected to conduct themselves in the course (e.g., on discussion boards, email) in compliance with the university’s regulations regarding civility. Civility is an essential ingredient for academic discourse. All communications for this course should be conducted constructively, civilly, and respectfully. Differences in beliefs, opinions, and approaches are to be expected. In all you say and do for this course, be professional. Please bring any communications you believe to be in violation of this class policy to the attention of your instructor.

Active interaction with peers and your instructor is essential to success in this online course, paying particular attention to the following:

  • Unless indicated otherwise, please complete the readings and view other instructional materials for each week before participating in the discussion board.
  • Read your posts carefully before submitting them.
  • Be respectful of others and their opinions, valuing diversity in backgrounds, abilities, and experiences.
  • Don't pester other people about joining their teams. You can ask, but if they say "no," then take no for an answer. Focus on becoming the kind of person that others seek out to join their teams, then showcase your abilities through Discussions.
  • Challenging the ideas held by others is an integral aspect of critical thinking and the academic process. Please word your responses carefully, and recognize that others are expected to challenge your ideas. A positive atmosphere of healthy debate is encouraged.


Statement Regarding Students with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval, please contact DAS immediately at 541-737-4098 or at DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.


Accessibility of Course Materials

All materials used in this course are accessible. If you require accommodations please contact Disability Access Services (DAS). Additionally, Canvas, the learning management system through which this course is offered, provides a vendor statement certifying how the platform is accessible to students with disabilities.


Expectations for Student Conduct

Student conduct is governed by the university’s policies, as explained in the Student Conduct Code. Students are expected to conduct themselves in the course (e.g., on discussion boards, email postings) in compliance with the university's regulations regarding civility.


Academic Integrity

Students are expected to comply with all regulations pertaining to academic honesty. For further information, visit Student Conduct and Community Standards, or contact the office of Student Conduct and Mediation at 541-737-3656.

OAR 576-015-0020 (2) Academic or Scholarly Dishonesty:

  1. Academic or Scholarly Dishonesty is defined as an act of deception in which a Student seeks to claim credit for the work or effort of another person, or uses unauthorized materials or fabricated information in any academic work or research, either through the Student's own efforts or the efforts of another.
  2. It includes:
    1. CHEATING - use or attempted use of unauthorized materials, information or study aids, or an act of deceit by which a Student attempts to misrepresent mastery of academic effort or information. This includes but is not limited to unauthorized copying or collaboration on a test or assignment, using prohibited materials and texts, any misuse of an electronic device, or using any deceptive means to gain academic credit.
    2. FABRICATION - falsification or invention of any information including but not limited to falsifying research, inventing or exaggerating data, or listing incorrect or fictitious references.
    3. ASSISTING - helping another commit an act of academic dishonesty. This includes but is not limited to paying or bribing someone to acquire a test or assignment, changing someone's grades or academic records, taking a test/doing an assignment for someone else by any means, including misuse of an electronic device. It is a violation of Oregon state law to create and offer to sell part or all of an educational assignment to another person (ORS 165.114).
    4. TAMPERING - altering or interfering with evaluation instruments or documents.
    5. PLAGIARISM - representing the words or ideas of another person or presenting someone else's words, ideas, artistry or data as one's own, or using one's own previously submitted work. Plagiarism includes but is not limited to copying another person's work (including unpublished material) without appropriate referencing, presenting someone else's opinions and theories as one's own, or working jointly on a project and then submitting it as one's own.
  3. Academic Dishonesty cases are handled initially by the academic units, following the process outlined in the University's Academic Dishonesty Report Form, and will also be referred to SCCS for action under these rules.


Tutoring and Writing Assistance

NetTutor is a leading provider of online tutoring and learner support services fully staffed by experienced, trained and monitored tutors. Students connect to live tutors from any computer that has Internet access. NetTutor provides a virtual whiteboard that allows tutors and students to work on problems in a real time environment. They also have an online writing suite where tutors critique and return essays within 24 to 48 hours. Access NetTutor from within your Canvas class by clicking on the Tools button in your course menu.

The Oregon State Online Writing Suite is also available for students enrolled in Ecampus courses.



Your instructor may ask you to submit one or more of your writings to Turnitin, a plagiarism prevention service. Your assignment content will be checked for potential plagiarism against Internet sources, academic journal articles, and the papers of other OSU students, for common or borrowed content. Turnitin generates a report that highlights any potentially unoriginal text in your paper. The report may be submitted directly to your instructor or your instructor may elect to have you submit initial drafts through Turnitin, and you will receive the report allowing you the opportunity to make adjustments and ensure that all source material has been properly cited. Papers you submit through Turnitin for this or any class will be added to the OSU Turnitin database and may be checked against other OSU paper submissions. You will retain all rights to your written work. For further information, visit Academic Integrity for Students: Turnitin – What is it?


Student Evaluation of Courses

The online Student Evaluation of Teaching system opens to students during the week before finals and closes the Monday following the end of finals. Students receive notification, instructions and the link through their ONID. They may also log into the system via Online Services. Course evaluation results are extremely important and used to help improve courses and the online learning experience for future students. Responses are anonymous (unless a student chooses to “sign” their comments, agreeing to relinquish anonymity) and unavailable to instructors until after grades have been posted. The results of scaled questions and signed comments go to both the instructor and their unit head/supervisor. Anonymous (unsigned) comments go to the instructor only.

Course Summary:

Date Details Due