Description§
This course serves as an introduction to computer science (CS) as a field, to computer programming as a skill (an art, many would say), and to some of the tools commonly used when programming. We will answer the questions “What is computer science?”, “What are computers?”, and, most importantly, “What can we do with them?”
Programming is a fundamental part of CS, and we will spend a great deal of time learning how to program. We’ll start with a simple one-line program and work towards incorporating many of the tools and techniques that allow people to create complex, valuable code like operating systems, video games, and search engines (but we won’t be ready to make those, yet). Along the way, we’ll gain a better understanding of how computers execute programs and how to think and work in the logical, formal system of a programming language.
Upon completing this course, you will have a good understanding of what CS is, including the diverse branches of study and practice contained within it; you will understand the fundamental concepts and constructs of programming; and you will be able to create simple programs that make a computer do what you want it to do, giving you a much greater degree of control over it than you had previously. Of course, you will also be well prepared to continue on to other courses in computer science or in other areas that involve programming.
For an idea of the specific topics covered in the course, see the rough schedule for the semester.
Other Pages§
Semester schedule — tentative; see Canvas for up-to-date details.
Canvas — assignments, quizzes, announcements, and other online resources will be here.
Programming grading rubric — describes how programming assignments will be graded.
References — collected links and documentation relevant to this course.
Advice from past 127 students — See what students who took this with me previously have said about it.
Details§
When/Where:
MWF 12:25-1:15pm / CNS E204
When/Where:
MWF 12:25-1:15pm / CNS E204
Instructor: Mark Liffiton
Office: CNS C207B (2nd floor CNS, in middle of building over atrium)
Office Hours:
- Monday 11am-noon
- Tuesday 10-10:40am; 3-4pm
- Wednesday 11am-noon
- Thursday 10-10:40am; 3-4pm
During my scheduled office hours, I will be in my office and likely available on Discord (if I’m not with someone in person).
If your schedule prevents you from attending my set office hours or you would like to meet sooner than the next office hours you can attend, you have several options: 1) please feel free to drop in any time my door is open, 2) I will often be available on Discord, and 3) I’m very happy to set up alternate meetings if you ask at least a day in advance.
Contact (you→me): We will use Piazza for most course- and content-related questions. For anything specific to you, feel free to talk to me before or after class, meet me in office hours, stop by my office, catch me on Discord, or email (for email, please start the subject with “CS 127:”).
Contact (me→you): I will post course announcements through Canvas, and they will be sent to your IWU email accounts. Check your IWU email frequently or have it forwarded to an address you do check.
TA: Zhansen Shingis.
TA Office Hours: TBD
Textbook§
We will use freely-available online resources (primarily The Python and Pandas Field Guide).
If you prefer physical books, this is a pretty good option that matches much of what we will cover: Python Programming: An Introduction to Computer Science by John Zelle. ISBN: 9781590282977
Bilingual CS I§
We will initially be using the Python programming language in this class, with later sections done using Processing, instead. This will provide a somewhat “bilingual” introduction to programming, which will give you a better understanding of the material and better prepare you for future work. Learning the same concept with two different languages will help separate the concept from the syntax of any particular language. Not only can this make that concept clearer, but it can make it easier to apply it in new languages in the future.
Grading§
The final grade will be based on the following breakdown:
| Assignments | 15% |
| Quizzes | 15% |
| Exam 1 | 15% |
| Exam 2 | 20% |
| Final Exam | 25% |
| Engagement | 10% |
Assignments§
Assignments will be posted on the course’s Canvas site, usually about a week before they are due, and they will be collected there as well. Directions will be given for how to submit each assignment. I will aim to get them graded and returned to you by the following week.
Late Policy§
Assignments will be due at set times; they will be considered late at any point after that time. An assignment will lose 10% of the total possible points for every day or partial day it is late, and after five days it will not be accepted.
Assignments can’t be accepted at all after solutions have been handed out or the graded work has been returned to the class.
Grace Tokens§
Every student has two “grace tokens” that they may use for extensions in instances where they are unable to complete work by the assigned deadline. To use a grace token on an assignment, send me an email before the assignment deadline, explain why you need an extension, and we will determine an appropriate extension, which will be granted with no grade penalty. Some assignments may not be eligible for grace tokens due to immediate use of or feedback on the submitted work, but most will be.
Quizzes§
Quizzes will be held in class, and there will be roughly 5 over the semester. Your lowest quiz score will be dropped.
Exams§
There will be two exams during the semester, held in class, and the second will primarily focus on the material seen since the first exam. The final will be cumulative. Dates for all exams are given in the schedule.
Regrading§
If you would like to request a regrade, submit a request to me in writing (via email) within one week of receiving the graded item. Indicate exactly which part you believe deserves a different score and why.
Office Hours§
If any concept, piece of code, error, or anything else related to this course is ever unclear to you, please come see me during my office hours. One-on-one, I can help you bridge the gap from what you do understand to what you want to understand. It will generally be the easiest, fastest way to clarify something.
If you cannot attend any of my regularly scheduled office hours, I’m more than happy to setup another time to meet. Just let me know.
And to make sure that misunderstandings and difficulties do not go unaddressed, I will often ask that anyone who receives a C- or below on an assignment or exam come see me to see what we can do about improving that going forward.
Engagement / Attendance§
Class time will be complementary to the reading, and you will need both in order to learn all of the material in this class. Furthermore, each student benefits from the engagement of all others in the class. Ten points of your final grade will be based on that engagement. Attending every class period on time and prepared will earn a base of 7 points; points can be gained by constructive participation, in class or out, such as asking questions, answering them, responding in the forum, sharing insights or useful/interesting resources with the class (posting in the forum, for example), investigating concepts beyond the requirement in class, working on small independent learning projects, and in many other ways; points can be lost for excessive (more than 3) unexcused absences, disrupting class (e.g., regularly showing up late), dominating the conversation, and the like.
Absences can be excused with documentation or if arrangements are made with me a week in advance. In general, if you know you will be missing a class, let me know as soon as you can.
Working with Others; Using External Resources§
I strongly encourage you to form study groups with your classmates, compare notes, explain concepts to one another, and generally help each other learn the material in this course.
You may discuss assignments with other people, but anything you turn in for a grade needs to reflect your own understanding. For every assignment, you should write a brief statement at the beginning indicating who you collaborated with and what help each person provided (e.g., if one person explained a particular idea to everyone else). Simply copying answers and providing solutions are not allowed. The following show an example of collaborating badly and the same example changed slightly to become good collaboration:
BAD:
Jane: “Oh! We need to use all three variables in the conditional. It’s going to look like this…”
Jim: “I have no idea what you’re talking about, but I’ll write it down.”
GOOD:
Jane: “Oh! We need to use all three variables in the conditional. It’s going to look like this…”
Jim: “I have no idea what you’re talking about. Could you explain that some more?”
Try to follow this rule of thumb: No matter what help you received figuring out the concepts involved, when you turn something in you should be able to reproduce the whole thing, working through the assignment again, without any outside help. If you can’t, you will have trouble on quizzes, exams, and later assignments.
Submitting code generated by a large language model as your own work is plagiarism. Put another way: using AI to write code or solve problems is prohibited in this class. (You are very welcome to use CodeHelp, however, for assistance from an AI designed to be a tutor!) Copying code found online and submitting it as your own work is plagiarism as well. Copied code with a source cited will not be reported as an academic honesty violation, but if the code you’ve copied is a substantial portion of the problem you were supposed to solve, you may still lose points.
For details on the university’s policies regarding academic integrity, please read the University Policies Concerning Student Conduct & Academic Integrity. Academic misconduct can result in failing the course and a report to the associate provost. If you are ever unsure of whether something might be crossing that line, please err on the side of caution. You can also just ask me, and I’ll be happy to provide guidance.
Accommodations§
Illinois Wesleyan University strives to make all learning experiences as accessible as possible. If you anticipate or experience academic barriers based on a disability (including mental health and chronic or temporary medical conditions), it is your responsibility to self-disclose and provide documentation to the Office of Student Accessibility Services. Please note that accommodations are not retroactive and accommodations cannot be provided until I receive an email from Student Accessibility Services. Once the email is sent, please make arrangements with me as soon as possible to discuss your accommodations confidentially so they may be implemented in a timely fashion. For more information contact Student Accessibility Services by e-mailing accessibility@iwu.edu or stopping by their office in Holmes Hall.
Diversity§
Our university’s mission statement includes, “The University through our policies, programs and practices is committed to diversity […]” Our school and this course are made stronger by the mix of people that come into it bringing a diversity of ideas, experiences, and backgrounds. I expect everyone in this course — instructor, TA, and student — to contribute to an inclusive atmosphere that respects the diversity of all others in it. Dimensions of diversity can include sex, race, age, national origin, ethnicity, gender identity and expression, intellectual and physical ability, sexual orientation, income, faith and non-faith perspectives, socio-economic class, political ideology, education, primary language, family status, military experience, cognitive style, and communication style. The individual intersection of these experiences and characteristics must be valued in our community. If you have related concerns about the class environment or behavior of any in it (including me), you are welcome to raise them with me, and I will do my best to address them. If you are not comfortable speaking with me about them, you may also bring concerns to the Associate Provost.
End-of-Syllabus Advice§
Come to office hours. If there is one thing I wish I had done more during my undergraduate education, that’s it. (But don’t just take my word for it. Many past CS127 students say it’s important and useful as well.) If something in class or in the book isn’t clear, the one-on-one interaction of office hours is often the best way to work it out. Office hours are an important extension of the class sessions, which won’t always be sufficient by themselves. In general, the more we interact, and not just in the classroom, the better the semester will be.