This syllabus is subject to change based on specific class needs, especially the schedule. Significant deviations will be discussed in class. Individual exceptions to the policies and schedule are granted only in cases of true emergency. Please make arrangements with me if an emergency arises.
Introduction to Programming teaches basic programming skills that are applicable to a variety of disciplines and also acts as a bridge to continued studies in computer science. Students will work with the Python programming language in order to solve basic problems. By the end of the course students will be able to read and develop computer programs utilizing the following programming concepts: basic data types and encoding, variables and scope, array and list data structures, if statements and conditional execution, loops and iteration, functions, and object types.
Goals:
Our textbook is Foundations of Python Programming. It is completely online and free, although I highly suggest making a small donation if you can afford it – providing the interactive exercises requires money to host the servers that run the code!
There are several apps/accounts we will be using for this course.
An account at Runestone Academy. Your account will be automatically created and you will be emailed your account information at the start of the semester.
During class I will often ask interactive questions using the Socrative app. Students will need to create a free student account at https://socrative.com. While you can participate in Socrative sessions via a web browser, I recommend using the free iOS or Android apps available here.
Though most assignments will use the interactive textbook, I might give some assignments/projects via Replit, an online development service. Students will receive, complete, and submit assignments all via the website. If/when Replit is used, you will receive instructions on how to create an account and join our course.
The weekly workload for this course will vary by student and by week but should be about 12.5 hours per week on average. The following table provides a rough estimate of the distribution of time over different course components for a 16 week semester, as well as detailing the type, amount, and relative value of all assignments.
Category | Amount | Final Grade Weight | Time/Week (Hours) |
---|---|---|---|
Lectures | ~41 | 10% (Participation) | 2.5 |
Labs | 8–10 | 10% | 3 |
Homework | 6–8 | 10% | 1 |
Exam Study | - | - | 1 |
Exams | 4–5 | 30% | - |
Projects | 2 | 30% | 3 |
Reading Assignments/Practice | - | 10% | 2 |
Total | 12.5 |
Reading Assignments: Before most classes there will be an assigned reading in the interactive textbook. Your progress on these is automatically recorded and visible to me. These are graded on a pass/fail basis: you either put in a reasonable amount of effort or you didn’t.
Practice: In addition to the reading assignments, each week you have review practice questions to complete. These can be found by clicking 👤 > Practice on Runestone. Each week you must complete the questions on at least 3 days.
Exams: All exams are weighted equally and will take approximately the same amount of time. Exams will generally focus on material covered since the previous exam but will be in some sense cumulative due to the nature of programming. Unless stated otherwise, assume that exams will be pencil and paper and that computers will not be available during the exam period.
Projects: Two larger scale programming projects will be undertaken during the semester. These projects will be individual efforts and will require much more effort than the programs written in lab or as part of homework. Students can expect to have two weeks from the time of the project assignment to complete the project. One or more lab periods will be dedicated to work on the project. It is highly recommend that all students make ample use of the time given on these projects.
Labs: Most weeks will include an in-class lab assignment. Students will sometimes be placed into pairs for “paired programming”, a programming practice where each member of the group takes turns typing while the other group member helps look for typos, bugs, and otherwise assists in the design of the code. Each group will submit their work at the end of the lab period regardless of the overall completeness of the assignment. The goal is to make good constructive progress on the assignment. Full credit can and will be given on unfinished work so long as it can be executed to complete some portion of the given task, shows evidence of purposeful progress, and the group made full use of the lab period.
Homework: Students will be assigned a set of homework problems, usually from the current chapter of the book. These problems are meant to guide reading, prepare the student for in-class problems, and survey the material covered by the exam. Each student will turn in their own set of solutions.
Your final grade is based on a weighted average of particular assignment categories. You can estimate your current grade based on your scores and these weights. You may always visit the instructor outside of class to discuss your current standing. Assignments and final grades use a standard grading scale shown below and will not be curved except in rare cases when deemed necessary by the instructor.
This courses uses a standard grading scale. Assignments and final grades will not be curved except in rare cases when its deemed necessary by the instructor. Percentage grades translate to letter grades as follows:
Score | Grade |
---|---|
94–100 | A |
90–93 | A- |
88–89 | B+ |
82–87 | B |
80–81 | B- |
78–79 | C+ |
72–77 | C |
70–71 | C- |
68–69 | D+ |
62–67 | D |
60–61 | D- |
0–59 | F |
You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge*.
You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge.
Lab and homework assignments are graded on a simple 3 point scale, marked with (in decreasing order) a check-plus, check, or check minus. Your final grade for these two assignment categories is then based on the respective averages.
Your participation grade is based on a variety of activities, but especially daily use of Socrative for in-class question and answer sessions. Questions will cover portions of the text that were assigned as reading and will range from simple checks to see if the reading was done to more challenging questions that follow from a close examination of the reading. For the most part, the only requirement is to provide an answer to every question and participate in the resultant discussions. On occasion, questions will be evaluated for their correctness and performance on 3 these questions will also factor into the course participation grade. Students who do the reading and start the homework as soon as possible will have very little to worry about.
While there is no strict attendance policy, the course participation grade is based in large part on engagement with socrative. Absent students cannot participate in socrative sessions. Students should avoid unexcused absences, as defined in the college-wide absence policy. Whenever possible, let the instructor know of the absence before it occurs. When unexcused absences do occur, it is the student’s responsibility to make up for the lost class time and to seek the permission of the instructor to hand-in or complete assignments that are late due to an unexcused absence.
This course is designed around the assumption that students engage in new ideas before they’re covered in class meetings. This means doing assigned reading, taking a stab at homework problems, and as a result coming to class and lab with some understand about a new idea or, just as likely, with a host of questions about something encountered in the reading and homework. Not attending class, skipping lab, and putting off work to the point that an extension is needed are signs that a student isn’t holding up their end of the bargain and is not prepared to participate in class.
Late assignments: You have each been allotted a total of 5 late days. You may apply these to any homework or programming assignment (NOT exams, labs, or reading assignments) you see fit and turn in your solutions with no penalty. Each late days gives you exactly 24 extra hours from the original due date and time. However, you may use at most 2 late days on any individual assignment. The whole point here is to give you some flexibility that allows for things like illnesses, long trips, and the like. I am unlikely to grant further extensions. You must notify me if you will use late days, and how many, BEFORE the assignment is due. Late assignments (beyond any applied late days) will be subject to a grade reduction at my discretion. While you should expect a reasonable penalty for late work, know that I will NEVER give you a 0 for late work as long as it is turned in before the final exam. If you must miss a lab, please contact me ahead of time to make arrangements.
Academic dishonesty: Monmouth College’s official policy on academic dishonesty can be found here. You are responsible for reading and complying with that policy.
Note: Use of ChatGPT or similar AI tools is not allowed in this class. While such AI models can be effective tools, they should be utilized only in later courses, and only after a thorough discussion of their use.
In this course, any violation of the academic honesty policy will have varying consequences depending on the severity of the infraction as judged by the instructor. Minimally, a violation will result in an “F” or 0 points on the assignment in question. Additionally, the student’s course grade may be lowered by one letter grade. In severe cases, the student will be assigned a course grade of “F” and dismissed from the class. All cases of academic dishonesty must be reported to the Associate Dean who may decide to recommend further action to the Admissions and Academic Status Committee, including suspension or dismissal. It is assumed that students will educate themselves regarding what is considered to be academic dishonesty, so excuses or claims of ignorance will not mitigate the consequences of any violations
Collaboration: We encourage you to make use of the resources available to you – it is fine to seek help from a friend, tutor, instructor, internet, etc. However, copying of answers and any act worth of the label “cheating” is never permissible! In addition to listing your sources and collaborators, you should be producing your own writeup in your own words. By “your own words,” we mean you should be producing the text yourself, without some external aid. Verbatim copying of text is specifically disallowed, but so is taking a source and rearranging some phrases and changing some variable names to create a derivative version! Such behavior is definitely NOT “using your own words.” It does not matter if you helped contribute to this source text with others, since then you are still not the sole author of the text. The point of collaborating on an assignment is not to produce a jointly authored set of solutions, since that violates the course policies. Instead, it is to help you solve the problems, which sometimes involve a bit of creativity. After you have jointly come up with the ideas you need to solve the problems, though, you should part ways with your group and sit down to do the writing by yourself. I also advise against sharing the writeup you submit with others, since if someone else uses your text as a source for their own solution (with or without your permission), you will also be implicated in the violation of the academic integrity policy. In any case, if two nearly identical solutions are received, we have no way of tell which is the original, and the policy is to not award credit for either submission.
Electronic devices: Do not use your phone or other devices in class except where necessary. Any computer or tablet usage should be related to the course. If a device is not being used for Zoom or Socrative it should be put away and turned on silent. Other usage is rude and distracting to others.
General expectations: In short, I expect you to be respectful of others and take responsibility for your own learning. You are here to learn, so work hard and be professional.
Just attending class is not sufficient to truly learn the material. Read the text, use the resources available at Monmouth College, and go beyond the material.
If you miss class, you are responsible for everything covered on that day. College is, in some sense, your job. Take pride in creating quality work. Staple your assignments, label problems, and present your answers neatly and orderly.
Your job is to convince me that you have learned the material – show your work! Even if you do not know a particular answer, guide me through your thought process.
The following tentative calendar should give you a feel for how work is distributed throughout the semester. Assignments and events are listed in the week they are due or when they occur. This calendar is subject to change based on the circumstances of the course.
Note: All readings should be done before the class period in which they are listed below.
Date | Topic | Assignment and Readings |
---|---|---|
Wed 08/23 (Week 1) | Intro and Logistics | |
Fri 08/25 | Misc. Exercises | FOPP 1: General Intro |
Mon 08/28 (Week 2) | Operating, Unfolding Exercises | FOPP 2.1-2.9: Types, Variables |
Mon 08/28 (lab) | Lab 01: A Preview of the End Goal | Homework 1 out |
Wed 08/30 | String and Type Exercises | FOPP 2.10-2.16 |
Fri 09/01 | Debugging Exercises | FOPP 3.1-3.8 |
(Mon 09/04) (Week 3) | (Labor Day – no classes) | |
Wed 09/06 | “Lab” 02: Input-Compute-Output | Homework 2 out |
Fri 09/08 | Modules; Intro to Turtle | FOPP 4.1-4.4 |
Mon 09/11 (Week 4) | Turtle, OO, and for loops |
FOPP 5: Python Turtle |
Mon 09/11 (lab) | Lab/Hwk 03: Turtle | (No Homework) |
Wed 09/13 | Turtle Exercises / Sequences | FOPP 6.1-6.5 |
Fri 09/15 | Exam 1 Review | |
Mon 09/18 (Week 5) | (No class) | |
Mon 09/18 (lab) | Exam 1 (ch. 1–5) | Homework 3 out |
Wed 09/20 | Exam 1 Solutions | |
Fri 09/22 | (No class) | |
Mon 09/25 (Week 6) | Sequence Methods | FOPP 6.6-6.9 |
Mon 09/25 (lab) | Lab/Hwk 04: Generating a Password | Homework 4 out |
Wed 09/27 | More About For Loops | FOPP 7.1-7.7 |
Fri 09/29 | Iteration/Text Processing Exercises | |
Mon 10/02 (Week 7) | (Partial class) Homework 4 Exercises | |
Mon 10/02 (lab) | Lab 05: Computing Statistics with Kiva Data | Project 1 out |
Wed 10/04 | Lab 5 Solutions/Review | |
Fri 10/06 | Functions I | FOPP 7.9,7.10,7.12 AND 12.1-12.5 |
Mon 10/09 (Week 8) | Conditionals I | FOPP 8.1-8.7 |
Mon 10/09 (lab) | (Reserved for Project 1) | |
Wed 10/11 | Exam 2 Review | |
(Fri 10/13) | (Fall Break) | |
Mon 10/16 (Week 9) | Exam 2 | |
Mon 10/16 (lab) | (Reserved for Project 1) | |
Wed 10/18 | Exam 2 Solutions | |
Fri 10/20 | Project Questions, More Conditionals | FOPP 8.8-8.11 |
Mon 10/23 (Week 10) | Project 1 Solutions/Debrief | |
Mon 10/23 (lab) | Lab 06: Turtles, Strings, L-Systems | Homework 5 out |
Wed 10/25 | Functions II | 12.6-12.15 |
Fri 10/27 | Function Exercises | |
Mon 10/30 (Week 11) | Transforming Sequences I | FOPP 9.1-9.7 |
Mon 10/30 (lab) | Lab 07: Substitution Ciphers | Homework 6 out |
Wed 11/01 | Transforming Sequences II | FOPP 9.8-9.14 |
Fri 11/03 | (No class) | |
Mon 11/06 (Week 12) | Exam 3 Review | |
Mon 11/06 (lab) | Exam 3 | |
Wed 11/08 | Exam 3 Solutions | |
Fri 11/10 | Nested Iteration | FOPP 7.8-7.12 |
Mon 11/13 (Week 13) | More Iteration | FOPP 14 |
Mon 11/13 (lab) | Lab 08: Image Processing | Homework 7 out |
Wed 11/15 | Image Processing | |
Fri 11/17 | More Image Processing, Dictionary intro | FOPP 11.1-11.4 |
Mon 11/20 (Week 14) | Dictionaries II | FOPP 11.5-11.9 |
Mon 11/20 (lab) | Lab 09: Converting Roman Numerals | Project 2 out |
(Wed 11/22) | (Thanksgiving Break) | |
(Fri 11/24) | (Thanksgiving Break) | |
Mon 11/27 (Week 15) | Files | FOPP 10 |
Mon 11/27 (lab) | (Reserved for Project 2) | |
Wed 11/29 | Testing | FOPP 18 |
Fri 12/01 | Building Programs | FOPP 21 |
Mon 12/04 (Week 16) | Exceptions | FOPP 19 |
Mon 12/04 (lab) | (Reserved for Project 2) | |
Wed 12/06 | Classes | FOPP 20 |
Fri 12/08 8 AM | Exam 4 (Final) |
The Academic Support and Accessibility Services Office offers FREE resources to assist Monmouth College students with their academic success. Programs include supplemental instruction for difficult classes, drop-in and appointment tutoring, and individual academic coaching. The office is here to help students excel academically, since everyone can work toward better grades, practice stronger study skills, and mange their time better. Please email academicsupport@monmouthcollege.edu for assistance.
If you need course adaptions or accommodations because of a disability please make an appointment with me and/or with the Accessibility Services Office (ASO) (access@monmouthcollege.edu 309-457-2257) as soon as possible. The accessibility of this course for every learner is important to me. If at any time you experience a barrier to learning, please bring it to my attention and I will do my best to address it. At any point in the semester, if you encounter difficulty with the course or feel you could be performing at a higher level, consult with me.
Wellness on Campus: The College wants to support all aspects of your life on campus, including mental and physical health. We offer a health clinic in the lower level of McMichael Residence Hall (open M-F, 9am-1pm): healthcenter@monmouthcollege.edu, 309-536-6055. Mental healthcare will be available from anywhere through online provider TimelyCare, starting no later than October 1 of this year. Services include emergency “Talk Now,” counseling sessions, health coaching, medical services, psychiatry, prescriptions, digital self-care, and a peer community. More information on TimelyCare will be forthcoming soon. Until October 1st, students seeking mental health support are encouraged to contact Cindy Beadles, on campus counselor, August 24th – September 28th , Tuesday-Thursday, 1-5pm at cindybeadles@monmouthcollege.edu or call Heather Fisher at 309-457-2115. If you would like to be connected to additional local resources, please contact Dean Michelle Merritt at mmerritt@monmouthcollge.edu.
Always, students facing a crisis should contact Campus Safety at 309-457-3456 or the Police at 911. Suicide resources are The National Suicide Prevention Hotline at 1-800-273-TALK, and the local Bridgeway Crisis Hotline at 800-322-7143.