Syllabus and Class Information
Computer Science 127
Note: Remember to refresh your browser to see updates to this document.
Rooms, office hours, and other details are subject to change!
Recording or photographing lectures is not allowed unless you have obtained explicit permission, in advance, from the instructor.
Please turn off and put away your phone during class.
MWF 2:10 - 3:00 in Durham 171 (subject to change)
Labs will start on Wednesday, August 31 (the second week of classes).
The lab is the two-hour weekly meeting in Pearson. Note that the schedule below differs slightly from the information on the ISU schedule of classes.
|Section 4||Wednesday 6:10 - 8:00 pm in Pearson 108|
|Section 6||Wednesday 6:10 - 8:00 pm in Pearson 158|
|New section||Thursday 4:10 - 6:00 pm in Pearson 158|
|Section 5||Friday 8:00 - 9:50 am in Pearson 158|
Office: Atanasoff 101
ISU email: smkautz
Office hours during final exam week:
Tuesday 11-12 and 1-3
Prerequisites and course content
This is an introductory course in programming and problem-solving that is intended for students with no prior programming experience who are planning to major in Computer Science.
Math 140 (College Algebra) or equivalent
Major topics include:
- Problem solving strategies
- Survival skills for Com S 227
- Types, variables, arithmetic expressions and assignments
- Functions and modules
- Conditional statements, boolean logic
- Loops and iteration
- Lists and strings
- Input and output; files
- Unit testing, incremental development, modules/libraries
- Documentation, debugging
- How a simple CPU works; binary representation of data
There are no TA office hours during final exam week
See top of page for Steve's office hours during exam week.
||T 4:10 - 5:00
||Lab: W 6:10 - 8:00 (Pearson 158)
||W 3:10 - 4:00
||Lab: F 8:00 - 9:50 (Pearson 158)
||F 3:10 - 4:00
||Lab: W 6:10 - 8:00 (Pearson 108)
||M 5:10 - 6:00
||Lab: R 4:10 - 6:00 (Pearson 158)
Attendance in labs is required. Attendance in lectures is expected, but will not always be checked unless there is an in-class quiz or other activity. (See the "Grades" section of the document to understand the impact of these things on your grade.)
We adhere to an Equal Opportunity Attendance Policy: If you miss lab or you miss an in-class quiz for any reason, it's a zero. You can oversleep, go to the beach, perform in the symphony, get the flu, attend a funeral, or fly to Afghanistan with the ISU Beef Team; we will not discriminate. Therefore you do not ever need to provide excuses when you miss class or lab.
- Ok, for a serious, extended illness or other unusual circumstances, exceptions may be made; please DO discuss the situation with your instructor.
We will drop the two lowest lab scores and the two lowest quiz scores, so you can get sick for a couple of days or go home for an emergency without a negative impact on your grade. Choose wisely.
If you miss the lecture, it is your responsibility to find out what was covered and study it on your own. Please do not ask the professor what happened in class, just consult the "topics" page. This page summarizes the topics covered, give relevant sections of the text, and include links to all code examples discussed in class. For links, see "Notes and sample code" in the pinned messages at the top of the Piazza Q & A.
Piazza and Blackboard
We will be using a web site called Piazza for announcements and discussions in this course.
All students are expected to check Piazza every day for announcements about the course, homework, or exams.
If you were registered for the class as of about August 20, you will have received a
welcome email from Piazza with instructions for signing up. Otherwise just go to
and create an account
using your ISU email address.
Turning off email notifications
By default, Piazza sends out periodic emails. It is easy to turn these off. After you
sign up for Piazza,
Note that even if you select "No Email", you
will still get course announcements that we
believe to be either urgent or important. We will keep this to a minimum.
- Find your name in the upper-right corner of the Piazza screen
- Click the drop-down menu and select "Account/email settings"
- Under "Class and email settings", find Com S 127
- Click on the link "Edit email notifications" in the small, blue font
- Edit as you see fit, e.g. "No Email"
The Piazza Q & A
The most useful aspect of Piazza will be the question-and-answer discussion forum.
This is the first place to look when you have questions about a homework assignment, about the course in general, or about Python.
As you familiarize yourself with Piazza,
you'll find that you can easily search the posts using any word or phrase, but
you can also search using special tags called folders. For example, any posts that concern Exam 1 should be
tagged with exam1 to make it easy to find them.
Whenever you post a question on Piazza, you'll be prompted to select
one of the pre-defined folders for it.
For example, here are the folders that we'll be using this semester:
|General questions about the course
|Questions about the Python language
|Questions about the labs
|Questions about the homework
|Questions about the exams
We will also be making limited use of a course management system called Blackboard.
Blackboard will be used only for submitting homework and recording grades.
Unless announced otherwise, all assignments must be
submitted electronically via Blackboard. We will review the procedure for
doing this during the first or second lab.
You can log into Blackboard with your ISU NetID and password at
Textbook and Other Resources
There are two books:
There Are Eels in my Hovercraft. This is a set of notes written by the instructor. It is a work in progress that is currently being updated for Python 3 and posted in html format. See
http://web.cs.iastate.edu/~smkautz/cs127f16/notes/ for current updates.
- You can also take a look at the entire rough draft here as a giant pdf:
(But remember, this older version uses Python 2. See below for a summary of the key differences between Python 2 and Python 3.)
The second textbook is a free, online interactive version of a book called
How to Think Like a Computer Scientist that has been sort of an online classic for a while. See
and take a look at the "ActiveCode" and "CodeLens" features. Click on the book title at the top of the page to get the whole table of contents. For now, don't worry about registering or logging in, you can still read and use the book.
Python 2 vs Python 3
We will be using Python 3 for this course. Many examples and books still use Python 2. The two versions are not compatible, but it is not hard to translate one to the other. The differences that will matter to us are:
- Use of
print: Python 3 requires parentheses around
the values to be printed.
- Behavior of the division operator:
- In Python 3, the single slash
/ operator always performs floating-point division, and a double slash
// is integer division.
25 / 10 is 2.5
25 // 10 is 2
- In Python 2, the single slash is integer division if both operands are integers, and floating-point division if at least one operand is floating-point.
25 / 10 is 2
25 / 10.0 is 2.5
25 // 10 is an error
- In Python 3, the
input(...) function always returns a string. If you are reading numeric values, you need to explicitly convert from string to
float using the
float(...) functions. There is no function
raw_input as in Python 2.
We will using the Python programming language for this course,
specifically version 3.
We also recommend a development environment (an editor and project manager for writing Python programs) called Wing 101.
The labs in the basement of Pearson will all have this software available (rooms 108, 105/109, 113, and 158). Some of the labs are heavily booked during the day for classes, so check the schedule on the door of each lab first. Note: labs are still being updated as of the first day of classes, so the Python/Wing installation may not be available until later in the week.
If you wish, you can also install the software, which is all free, on your
own computer. For Python, go to
and download the Python 3 installer for your platform.
For Wing 101, see
You can expect to have two in-class exams plus a final. The exact dates will be announced at least 10 days in advance.
*** You must bring your university ID to all exams. ***
If you cannot attend an exam, you must notify your instructor at least
one week prior
to the exam to make other arrangements. The instructors will normally
adhere to ISU policies regarding exam conflicts.
The final exam will not be returned to you, but you may come to
the instructor's office hours during the following semester to review it.
Letter grades will be based on an overall weighted average
of the three exams, the homework, labs, and in-class quizzes or other exercises,
with approximately the following weighting.
Specifically, you can calculate your overall score as follows:
- Exam 1: 15%
- Exam 2: 15%
- Final Exam: 20%
- Homework Assignments: 35%
- Labs and other in-class exercises: 15%
exam1 = your Exam 1 score
exam2 = your Exam 2 score
final = (your final exam score) / 2
homework = 100 * (sum of your homework scores) / (total points for all homework)
labs = 100 * (sum of your lab points) / (total lab points)
overall = exam1 * .15 + exam2 * .15 + final * .20 + homework * .35 + labs * .15
Final exam is normally out of 200 points, Exams 1 and 2 are 100 points each.
Letter grades are not assigned until the end of the course.
We can promise that your grade, determined by the overall weighted average described above, will be at least the grade given
by a standard 10-point scale, that is,
In practice the grading scale may "curved" slightly (i.e. shifted down by couple of points).
An approximate guideline is that the overall median score for students
completing the course will be a B-.
|90 and above||A-
|80 and above||B-
|70 and above||C-
|60 and above||D-
Important note regarding dead week: The last programming assignment will normally be due during the last week of classes.
Programming assignments will
be posted on Blackboard in the Homework section and announced on Piazza.
Submissions and feedback
In general, late assignments will NOT be accepted, except that
programming assignments may usually be turned in up to 24 hours late
with a 25% grading penalty (weekends and university
holidays are not counted in the 24 hours).
Homework scores will be posted for you on Blackboard.
For the assignments, additional feedback is normally
provided in the form of attached text files
indicating where points were taken off and showing the results of whatever functional tests
we performed. To see the attached
file or files, go to the "Review Submission" page on Blackboard for
your latest assignment submission.
If you have questions about the grading or if you
feel an error has been made in grading your assignment, first
contact the TA that graded it, either during office hours or by
email. In particular, requests for regrades must be made within
one week of the date when the results were made
available on Blackboard.
If you are not satisfied with the response from the TA,
please contact your instructor promptly. If necessary,
your homework will be regraded.
Note that a regrade may result in a lower score.
Correct submission of an assignment is your responsibility.
Remember that when submitting an assignment via Blackboard, you can immediately
check whether the submission was successful, and you can always download
your submission and verify that it is what you intended. Don't forget
that with Blackboard, it is NOT
enough to just select the file to be submitted. You also have to remember to click the
The lab period is the numbered section that normally meets 2 hours per week
in one of the computer labs in the basement of Pearson. It is an opportunity to try things
out while there are other people and TAs around to help you.
- Each lab is like a self-paced tutorial with things for you to do. There are occasional
"checkpoints" which are tasks you have to show or explain to the TA. This is how we grade you in lab.
- We encourage you to collaborate and talk about things
with the TA and the people around you, as long as you eventually complete the checkpoints yourself.
If you are finishing the checkpoints outside of the lab period, collaboration is NOT allowed (of course, you can meet with any of the TAs during office hours for help).
- At the beginning of each lab period, you can find the lab writeup through the links
on Piazza and start reading it. The TA will normally go over the new lab and help
everyone get started as necessary.
Grading of lab work
- Attendance and participation in labs is required. "Attendance" means that you come at the beginning of your scheduled lab period and work on the lab material until either you finish the checkpoints or the period ends.
- If you do not attend your scheduled lab period for any reason, you get a zero for that lab.
- There will normally be 10 labs altogether, and we will drop your lowest two scores. This will allow you to get the flu, oversleep, or attend a funeral a couple of times without any negative impact on your grade.
- If you have an extended illness or other unusual circumstances, please discuss the situation with your professor.
- If you aren't able to finish the checkpoints within the lab period, you have 6 days to finish it on your own. You can meet
with any TA during office hours to have your checkpoints recorded or get additional help.
Late checkpoints will not be recorded more than 6 days after your lab period.
The deadline is the last TA or instructor office hour within those 6 days.
Checkpoints will normally NOT be reviewed by email.
- Late checkpoints will not be recorded if you did not attend the lab in the first place.
Working ahead on labs
We expect that the lab writeup will normally be posted each Wednesday before the first lab that week. If it is posted early, or if you have a Friday lab, you are welcome to start working on it early. If you finish the checkpoints before your lab period, you still need to come to lab on time to get credit for it (but you can leave as soon as the TA is able to check off your work).
Academic Dishonesty Policy
The class will follow Iowa State University's policy on academic dishonesty.
Faculty are required to report apparent or suspected incidents of academic dishonesty to the
Dean of Students Office.
What is academic dishonesty?
Unless specifically instructed otherwise, all homework assignments
for this course are to be the product of your own intellectual effort
and are to be done on your own.
If you turn in work that was based on or copied from someone else's work, you have committed plagiarism, which is one form of academic dishonesty.
However, you are also responsible for academic dishonesty if you
allow someone else to copy your work or otherwise provide
Anyone found responsible in an academic dishonesty case will
receive an automatic F in this course.
How to avoid academic dishonesty
There is a simple guideline for this course that covers most cases. When you are working on an assignment that is to be turned in:
Don't look at anyone else's code.
Don't let anyone look at your code.
Don't talk about the code at a level of detail that might lead
to the same solution.
Just as a word to the wise, note that random examples you find on the web
are likely to mislead you more than help you, since those who post them
have no idea of the ideas and techniques being covered in our particular class.
You will be much better off reviewing examples from class and posting
your questions on the Piazza discussions, where the instructor, TAs, and
other students going through the same experience can help you.
Iowa State University complies with the Americans with Disabilities Act and Sect
504 of the Rehabilitation Act. If you have a disability and anticipate needing
accommodations in this course, please contact (instructor name) to set up a meeting
within the first two weeks of the semester or as soon as you become aware of your need.
Before meeting with (instructor name), you will need to obtain a SAAR form with
recommendations for accommodations from the
Disability Resources Office, located in
Room 1076 on the main floor of the Student Services Building. Their telephone number
is 515-294-7220 or email
firstname.lastname@example.org. Retroactive requests for
accommodations will not be honored.
This class follows the Iowa State University Dead Week policy as noted in section
10.6.4 of the
Faculty Handbook. There will be an assignment due during dead week.
Harassment and Discrimination
Iowa State University strives to maintain our campus as a place of work and study
for faculty, staff, and students that is free of all forms of prohibited
discrimination and harassment based upon race, ethnicity, sex
(including sexual assault), pregnancy, color, religion, national origin,
physical or mental disability, age, marital status, sexual orientation,
gender identity, genetic information, or status as a U.S. veteran. Any
student who has concerns about such behavior should contact his/her instructor,
Student Assistance at 515-294-1020 or email email@example.com, or the Office
of Equal Opportunity and Compliance at 515-294-7612.
If an academic or work requirement conflicts with your religious practices and/or
observances, you may request reasonable accommodations. Your request must be in
writing, and your instructor or supervisor will review the request. You or your
instructor may also seek assistance from the Dean of Students Office or the
Office of Equal Opportunity and Compliance.
If you are experiencing, or have experienced, a problem with any of the above