COS 100: Introduction to Programming
Interim 2022
Basic Information
- Instructor: Jed Yang,
- Office hours: Tuesday 10:55–11:55 and Friday 11:55–12:55; or by appointment (instructions)
- Lectures: MTWRF 12:30–15:15 in CC325
- Course website: https://www.mathcs.bethel.edu/yang/cos100.22i/
Calendar
Daily schedule to be updated throughout the term; topics and exam dates are tentative and subject to change.Before class, do the reading listed for the first half. After class, do the reading listed for the second half.
Day | First Half | Second Half | Due |
---|---|---|---|
1. 01/04 Tue | Introduction to Introduction to Programming - worksheet 1 - hw00: Getting started, due 01/04 Tue 10pm | Basics (Chapters 1, 2) - hw01: Counting lines, due 01/05 Wed 10pm - Read: Zelle 1.0–1.5, 2.3–2.5.1 (1.0 refers to the "Objectives" segment before 1.1) | hw00 |
2. 01/05 Wed | Arithmetic (Chapter 3) - worksheet 2 - Read: Zelle 3.0–3.1 | - lab01: Working with numbers - hw02: Counting the cost, due 01/07 Fri 10pm - Read: Zelle 3.2–3.3, 3.5–3.6 (3.5 refers to a factorial program in 3.4 that you may not understand yet) | hw01 |
3. 01/06 Thu | Branching (Chapter 7) - worksheet 3 - Read: Zelle 7.0–7.1.2 | - lab02: Making decisions - hw03: Counting credits, due 01/10 Mon 10pm - Read: Zelle 7.2. This reading is shorter, this would be a good time to catch up on past reading. | |
4. 01/07 Fri | Logic - worksheet 4 - Read: Zelle 2.1, 7.3 | - lab03: Using logic - Read: Zelle 7.5–7.5.3 | hw02 |
5. 01/10 Mon | Optional class session, check Moodle for details. - worksheet 5 | - hw04: Darts game, due 01/13 Thu 10pm | hw03 |
6. 01/11 Tue | Iteration (Chapter 8) - Read: Zelle 2.6, 8.2 | - lab04: Repeating - Read: Zelle 8.0–8.1, 8.3–8.3.2. Finish lab04 first before reading this. | |
7. 01/12 Wed | exam1 - Read: Zelle 8.4. Read this regardless of whether you finished lab04. | - lab05: Repeating again - lab06: Extra practice - hw05: Guessing game, due 01/14 Fri 10pm - Read: Zelle 8.5 | |
8. 01/13 Thu | Functions (Chapter 6) - worksheet 6 - Read: Zelle 6.0, 6.2 | - lab07: Writing functions - hw06: Handling money, due 01/19 Wed 10pm - Read: Zelle 6.4 (pp.184–186) | hw04 |
9. 01/14 Fri | Sequences (Chapter 5) - worksheet 7 - Read: Zelle 5.0–5.1 | - continue on lab 7 - Read: Zelle 6.5 (skip paragraphs related to triangle2.py) | hw05 |
10. 01/18 Tue | exam2 | - lab08: Working with strings - hw07: Encryption, due 01/20 Thu 10pm - Read: Zelle 5.2, 5.4 | |
11. 01/19 Wed | - lab09: Working with lists - Read: Zelle 5.3, 5.5 | - hw08: Decryption, due 01/24 Mon 10pm - Read: Zelle 5.6–5.8.1 | hw06 |
12. 01/20 Thu | Mutation - lab11: List mutation - Read: Zelle 6.6 | hw07 | |
13. 01/21 Fri | exam3 | Multidimensional lists - lab12: Lists of lists - hw10: Gradebook, due 01/26 Wed 10pm - Read: Zelle 5.9–5.9.3 | |
14. 01/24 Mon | - work day | hw08 | |
15. 01/25 Tue | - review | - lab23: Bonus lab | |
16. 01/26 Wed | exam4 | - optional work day | hw10 |
Course Information
- Official course description: An introduction to programming using a current procedural (imperative) programming language. Standard data types and control structures are introduced.
- Prerequisites: There are no prerequisites, just an enthusiasm to learn. No previous programming experience is necessary. If you have significant coding experience (e.g., you took a course in high school, even if you didn't take an AP exam), please come talk to me about whether COS100 is the right course for you.
- Textbook: John Zelle, Python Programming: an introduction to computer science, 3rd edition, 2016, ISBN: 9781590282755.
- Software: We will be using Python 3. You are encouraged (but not required) to install Thonny on your own computer.
Topics
In this course we will focus on problem solving and formulating problems in a computational way. This allows us to then develop algorithms, or step-by-step procedures, for solving these problems. We will use the programming language Python as a means to explore fundamental programming and computer science ideas.Objectives
By the time you've completed the course, you will be able to:- Break down a task into a series of steps (an algorithm) that solves the task.
- Read and understand simple programs (or algorithms) written by others.
- Design, implement, and test projects in Python that can be run and understood by others.
- Excel in COS 105 in the Spring.
Whatever you do, work at it with all your heart, as working for the Lord, not for human masters, since you know that you will receive an inheritance from the Lord as a reward. It is the Lord Christ you are serving.I will be trying to make these verses true for me as I work with you throughout this course, and I hope that you will, too.- Colossians 3:23–24 NIV
Structure and Adjustments
- By default, we will meet in person every day.
- We will be working in groups very often. Social distancing will NOT be possible, as students will be working in close proximity with teammates, the professor, and TAs.
- Masks are required at all times in the classroom; do not eat or drink.
- If necessary, some days we may meet via Zoom instead (but none are planned right now).
- The instructor reserves the right to make reasonable adjustments to the syllabus if necessary. These changes, if any, will be communicated to students in writing. The instructor will make a good-faith effort to help students adversely affected by such changes.
- Each student is asked to make a good-faith effort to try to adapt.
Grading
Your grade will be determined by a weighted arithmetic mean of various components with weights listed in the table on the right.component | weight |
---|---|
Attendance and participation | 15% |
Homework, projects, and quizzes | 40% |
Exams | 45% |
Note that there is no preset curve of how many of each letter grade will be given. If you all do A-level work, you will each get an A. As such, you are encouraged to help each other in the pursuit of perfection.
In many courses I intentionally make one exam harder than others, which gives me information (in a mathematical sense) in separating an A performance from an A- performance. Typically, I will let you know and adjust that exam's scores upward. What this means is that you should NOT care about how hard an exam is. If you do A-level work, you will get an A, regardless of the raw numerical score prior to adjustment.
Besides possibly adjusting scores upward for difficult exams, I also reserve the right to lower the grade cutoffs. Both of these help you. I will not hurt you by adjusting your exam scores downward or increasing the grade cutoffs.
Participation and Class Structure
Computer science is an exciting, challenging, and dynamic field, and one of the most effective ways to learn is by doing. Thus, we will spend the majority of our class time grappling and working with interesting problems and questions. We will be working on projects and considering some larger questions in the field. This will require you to actively apply the course concepts in new and unfamiliar ways, which is a great way to deeply learn new material.In particular, many class days will involve worksheets, discussions, and completing practice labs while the professor and TA wander around offering advice and verifying your solutions.
Reading. To adequately prepare for this style of learning (commonly called the "flipped classroom"), you are required to complete specific reading assignments or exercises before class meetings. Your aim is not to understand every detail, but to get a sense of where we are headed. Even a few minutes of pre-reading can help with class time. After class, you may need to read the sections carefully again to fill in the gaps. Keep up with the reading: if you do not read, you may be more lost in class!
Attendance and participation. I expect you to attend class. Any time that you are not in class for the full class period without a written exception from the professor will result in a 1% deduction from your course grade. On lab days, you may leave early with full credit if and only if you show your completed labs to the professor or TA and receive verbal clearance to leave. If you know in advance that you will need to miss a class period, be sure to receive a written exemption from the professor beforehand in order to avoid the penalty. Asking for an excused absence after you have already missed the class will generally not meet with success.
Coming to class is not just about showing up; it is also about being fully engaged in the learning experience. If you have a question, others in the class may also be wondering the same thing. So, please speak up and ask questions anytime you need to. Not only will you be helping yourself, but also you will be helping your peers.
Be mindful of others. Refrain from using mobile phones or laptops for activities unrelated to the learning process. If you prefer to use laptops to take notes, please kindly sit in the back, as the screen may distract others. There is research that suggests taking notes by hand is better for long-term retention (P. A. Mueller and D. M. Oppenheimer, The pen is mightier than the keyboard, Psychological Science 25 (2014), 1159–1168).
Silence and put away mobile phones and do not use laptops for anything other than class-related activities.
Participation points may be deducted if you are off-task or distracting yourself or others. It is my sincere hope that every one of you get all the points for attendance and participation.
Illness. You should make every effort to attend class when you are healthy. If you become ill, for your well-being and the well-being of the rest of the class, you should not come to class. (Nor should you show up to my office with your germs!) Yes, this sounds like common sense, but it is tempting to try and power through as normal so as not to fall behind. If you become ill, or know that you will need to miss class for some reason, please contact me as soon as you are able, and we will work together to plan how you will keep up and/or make up any missed work.
Other Components
Homework and Projects. Homework and projects will be assigned throughout the term.
In general, work handed in late will receive zero credit.
However, because life is weird right now, you are given three (3) Grace Passes. Each Grace Pass can be used to extend the deadline of an assignment by 24 hours (regardless of weekends and holidays).
- To use a Grace Pass, you must email me your intent before the assignment is due. (No explanation for the tardiness is necessary or desired.)
- If you wish to use more than one Grace Pass for a single assignment, you must discuss with me first. (This is to prevent you from falling too much behind.)
- Grace Passes may not be used for extensions beyond the final day of classes.
- This allotment is to cover for legitimate reasons for tardiness that may arise. To be fair to everyone in the class, I will generally not grant additional extensions without the intervention of a doctor or dean. But if a genuine emergency situation arises, please talk to me. In particular, if you have a delay due to COVID-19 or other long-term health issues, please talk to me instead of using up a large number of Grace Passes.
Exams. There are three (3) in-class exams (see calendar for a tentative schedule). Each exam is cumulative and covers all material that has been addressed up to that point. You may be required to write and evaluate short sections of code by hand during the exam without the aid of a computer.
There are no make-up exams except in circumstances recognized by the instructor as beyond the control of the student. To receive this consideration, the instructor must be notified of the problem before the exam unless this is impossible, in which case as soon as possible.
Time outside of class. I expect a typical student to spend about two to three hours outside of class for each hour in class. Some students need to spend a bit more than that (which is okay). If you are spending more than 10 hours per day on this course outside of class time, please come talk to me so we can find ways to help you learn the material without spending so much time.
Policies
Learning integrity.
Search me, O God, and know my heart;Collaborative work is an integral part of many successful ventures. As such, I expect that you should collaborate with your classmates a lot during your time in this course. However, it is important to understand that there is a big difference between thinking about and solving a problem as part of a group (which is good, both educationally and morally) and copying an answer or letting someone else copy your answer (which is bad, educationally and morally, and has punitive consequences).
Try me, and know my anxieties;
And see if there is any wicked way in me,
And lead me in the way everlasting.- Psalm 139:23–24 NKJV
In short, I trust you to maintain the utmost level of academic integrity in this course. Please do not break this trust; if you do, there will be repercussions. The formal policy below lays this out explicitly, and supplements Bethel's academic honesty policy.
Collaboration policy.
- You may collaborate on the homework assignments to the extent of formulating ideas as a group, but you may not collaborate in the actual writing of solutions/code (unless explicitly allowed in the instructions).
- In particular, you may not work from notes taken during collaborative sessions.
- You may not consult any materials from any previous offerings of this course or from any other similar course offered elsewhere unless explicitly permitted.
- You may not show your homework assignment code to other students, or to copy code from other students or other resources, including Internet sources. Do not email each other code, and do not copy code over each other's shoulders. Any code you hand in for an assignment must represent your own work.
- You are required to completely understand any solution/code that you submit and, in case of any doubt, you must be prepared to orally explain your solution/code to me. If you have submitted a solution/code that you cannot verbally explain to me, then you have violated this policy.
Accommodation policy. Bethel University is committed to accessibility for students with disabilities and the Office of Accessibility Resources and Services (OARS) is a resource to ensure students experience access. The instructor will provide accommodations after the student initiates the process.
- Students with a documented disability may contact OARS to learn more about how to register for accommodations. Reasonable accommodations are approved after an interactive process with the student and OARS.
- Students registered with OARS are responsible for logging in to their AIM Accessibility Accommodation portal (via MyBethel) each term to request their Faculty Notification Letter of Accommodations. Accommodations cannot be applied prior to the faculty’s receipt of the letter.
Concerns and appeals. If you have any concerns regarding the course, your grades, or the instructor, see the instructor first. If needed, see Bethel's academic appeals policy.
Getting Help
If you need help there are multitude of resources you can use:- Yourself. If you're stuck on a problem or struggling with a concept from class, take a break and think about something else (e.g., your Hebrew assignment, the economics of Star Trek) for a few hours and then try a fresh start.
- Your classmates. You are each other's best resource: talking through the course material with someone else who is also trying to master it is a great way for you both to learn. (And don't discount the learning that you will do while trying to explain to a classmate an idea covered during class that you think you understand; I can't count the number of times that I've discovered that I didn't really understand something until I tried to teach it to someone.) The homework assignments are meant to challenge you, and figuring some of them out together is a great approach.
- CS Lab. The Math/CS Department offers support for students enrolled
in CS classes by providing a
Math/CS Lab five days per week in HC 113.
If you are having any difficulty with your homework in this class,
please seek help from the tutors in CS Lab.
The CS Lab is not only a great place to get help from tutors,
but also is the perfect place to meet other students from class or do homework.
Plan CS Lab hours into your weekly schedule and develop this habit early on in the course.
- The instructor. Stay behind after class to chat or email to make an appointment. To make an appointment, please email me several times you are available and try to give me at least 24 hours of lead time. Each afternoon, I will look at your availabilities and try to schedule as many people as I can fit for the next day.