Syllabus/Course Plan/Ground Rules

CS 536/01-04: Science of Programming, Spring 2012

Dr. Jim Sasaki, CS Dept., Illinois Institute of Technology

For posted grades and lecture videos, go to myIIT → Blackboard.

Introduction

This syllabus contains information about the course topics, the textbook, and the ground rules for the course.

Textbook cover

1. Books

Textbook & References

We don't have a textbook. Here are some possible reference books.

2. Course Goals & Objectives

2.1 Catalog Description (as of Jan 2012)

Formal specification of how programs execute (operational semantics), how to describe what mathematical functions programs compute (denotational semantics), and how to use logic to characterize properties and invariants of the program execution (axiomatic semantics). These techniques have significant practical utility and are becoming increasingly relevant to other areas of computer science. (3-0-3) Prerequisites: CS 331 or CS 401 or CS 403.

2.2 Course Topics

As time permits: Formal syntax and semantics, correctness triples, Hoare logic and proofs, invariants, arrays, nondeterminism, parallel programs (disjointedness, interference, synchronization); other topics.

2.3 Course Goals

The course goal is for you to learn the basics of software verification: How does verification differ from testing? How do we understand the semantics of programs, and how does that affect the way we understand program correctness? What rules of reasoning can we use to verify the correctness of everyday statements like assignment, decision, and iteration statements? What happens if we look at parallel programs? Can we approach the problem of parallel programs in steps? What if program execution isn't deterministic?

3. Classwork

Coursework includes lectures, homework, and exams and quizzes. Regular class attendance is expected.

3.1 Active Teaching

Research in how to teach shows that students learn better when they are active participants in studying and answering questions than when they are passive receivers of lectures. In addition to calling on people in lecture, I plan to use group activities to get people to discuss and practice and teach each other. (Ungraded) mini-quizzes will help me get quicker feedback on what people understand and what they need more practice on.

3.2 Lecture

Try to avoid coming to lecture cold (without having looked at the textbook at all). You don't need to study everything in detail before lecture, but try to skim things so that you get more exposure to the material beforehand. Try to form questions about any parts you don't understand. Similarly, study the textbook after lecture in view of the ideas discussed.

3.3 Exams and Quizzes

There will be two quizzes, one midterm exam, and a final exam. (Open book/notes? Closed book? Closed notes? Let's discuss this.)

The midterm exam will be comprehensive but emphasize material since Quiz 1. The final exam will be comprehensive but emphasize material since the midterm and Quiz 3 exam.

3.4 Homework

Homework assignments will be assigned periodically. Homework doesn't count for much toward the final grade; its primary purpose is to prepare you for the tests. Doing the homework doesn't guarantee you'll earn an A in the course, but not doing the homework is a good way to get flattened at test time.

Submitting Homework

Distance students (those in the TV, Internet, or India Internet sections) must submit homework electronically. Students in the live section can submit electronic files or hard copy. For electronic files, PDF is preferable, but anything okay with the TA is okay. Use the Assignments feature of myIIT → Blackboard to submit your file. (Don't use the Digital Dropbox.) We prefer electronic files, but if you really want to submit a hard copy, bring it to lecture or give it homework to someone at the CS department office during normal business hours. Get it time-stamped and have it put in the instructor's mailbox. Written assignments slipped under the door after business hours are considered to be submitted the next business day.

Include your name, the assignment number, and a page number on each page of your submission. Turn in your entire assignment at once (don't turn in a problem here and a problem there). Present your answers in the same order as the questions. (Give the answer to Question 1 first, the answer to Question 2 second, etc.)

Homework will typically be due by 2400 hrs (midnight, end-of-the-day), Chicago time (UTC-5:00). (Remember, you must submit electronically if you want to submit work after class or after the department office is closed for the day.) Assignments may be handed in up to two days late, with a penalty of 10% per weekday. Only the instructor can grant exceptions, and he is extremely disinclined to do so (especially if you ask at the last minute or worse, after the due date). After the two-day partial grace period, homework can be discussed with the TAs but gets a score of 0. Badly organized or submitted material may be penalized up to an additional 10%. An illegible or hard-to-read answer may be penalized up to the full credit for a problem.

Collaboration and Use of Other Resources

Evidence indicates that people learn better in pairs or groups, so I recommend you work together on homework. You may also use outside sources such as the Internet. Note “working with” someone means things like sharing ideas and checking each other's work; it doesn't mean just copying someone else's work -- that won't help at test time either. Each of you should understand what you're handing in as well as though you'd done it alone.

If you work with someone, you must each submit your own copy of the answers -- writing your own solution will give you practice writing. When you submit your work, include the name of the person/people you worked with and any resources you used, so that we can cross-reference if need be. (It may help us figure out your answer if we can check it against a partner's.) Don't include the textbook, teaching assistants, or instructor in the list of resources you used.

You aren't banned from handing in exactly the same solution as your partner(s) -- for some problems, there's only a small possible number of solutions or ways to phrase them. On the other hand, if you just staple your partner's solution to Problem 1 to your solution for Problem 2, you aren't both learning the material, which will be problem at exam or quiz time. So a possible scenario is you work on Problem 1, your partner works on Problem 2, you get together and explain your work to each other so that now both of you know how to solve both problems. (See below for how much tests count toward the final grade.)

Another recommendation: Don't work with the same partner(s) the whole semester. It's good to learn to work with different people.

3.5 Make-up Exams/Quizzes

If you're sick or have an emergency, contact the instructor (or have a friend or family member contact the instructor) as soon as you can. Don't wait until you get well/get back in town. If you know you're going to miss class, please send the instructor an email.

Make-up exams/quizzes are at the discretion of the instructor (not a guaranteed right), especially if you ask after the due date/exam date. (See My Grading Philosophy below.) Barring some urgent reason, you must take exams/quizzes at the scheduled time. (Getting a cheaper airline ticket is not considered to be an urgent reason.)

Note that because of the "Second Chance" policy for exams (see Section 4 below), missing a quiz or exam isn't as critical a problem as you might think.

3.7 Disability Policy

Reasonable accommodations will be made for students with a letter of accommodation from The Center for Disability Resources (LS 218, 312-567-5744, ) Please also speak with the instructor about any necessary accommodations well ahead of time.

4. Grading

4.1 The End-of-Semester Score

Barring something weird happening during the semester, we'll calculate your end-of-semester grade as: Homework 5%; Two 30-minute quizzes @ 11% each; 28% Midterm Exam (75 minutes), 45% Final Exam (120 minutes).

4.2 The "Second Chance" Policy [this is important!]

If you do badly on a Quiz or the Midterm, you have a chance to redeem yourself by doing well later. For example, if you do badly on the Midterm exam but score higher on the Final exam, we'll use the Final exam grade in place of your Midterm grade. Similarly, Quiz 1 can be improved on by doing better on the Midterm or Final exam, and Quiz 2 can be improved on by doing better on the Final exam:

In theory, you could get zeros on the quizzes and the Midterm Exam but still earn an A in the class by doing fantastically on the Final Exam. (But don't try this :-)

4.3 Letter Grades

My default scheme is A: 90-100, B: 80-89, C: 60-79, E: 59-0. (I really try to stick to these numbers, and I promise not to make them higher.) There may or may not be a curve added to the final grade. Curving is done by adding a constant to everyone's end-of-semester score.

I reserve the right to assign a failing semester grade to any student who fails the final exam. I also reserve the right to lower your final grade by one letter for failing to attend class and participate in class discussions.

4.4 My Grading Philosophy

To me, grading is about describing the quality of your work. At the end of the semester, I take all your work and put it on a big scale and tell you what the quality gauge says. Maybe nine times out of ten, there's no ambiguity as to what the reading is: A, B, etc. The only judgement comes in at the borders. My personal algorithm is to push people up to the next higher grade if I can -- if you're two points short on the final exam, I'll give you the benefit of the doubt because I can't guarantee to myself that my grading is accurate to within two points when we're talking about an exam full of programs and proofs. On the other hand, if you're ten points short, you get the lower grade.

Your grade must be based solely on the quality of your work. It would be unethical and unprofessional of me to base the grade on anything else, and it would cheat the other students. Please don't ask me to raise your grade because a low grade will make your life more difficult.

Grading has to be done on a level playing field: I can't give you extra make-up work that I don't give to everyone else, especially once the semester is over. On the other hand, if in my judgement some uncontrollable factor has significantly unleveled the playing field for you, I may decide to on an exception. So if you miss an Exam because a flaming asteroid takes out the Kennedy Expressway, I will probably give you a make-up exam. (If you have a core sample and a note from your geologist :-)

5. Conduct

Classroom Conduct

In the classroom, please avoid distracting the other students with cell phone calls, excessive talking, noisily entering class late, any kind of harassment, etc. You may be called on in class, so please pay attention to what's going on. If you know you'll have to leave class early, I'd appreciate your telling me ahead of time. On the other hand, I know emergencies do happen.

Ethics (I'm for it!):

Students are responsible for maintaining the highest level of academic integrity; the IIT Code of Academic Honesty can be found in the handbook at The Office of Student Affairs. The normal penalty for violations of this policy, especially copying or other cheating during exams or quizzes is an E for the course, plus notification of the student's advisor and/or department and any appropriate administrators. (Neither of us wants to repeat the semester where apx. 13 people earned E's.)

Communicate with us!

Please take advantage of the instructor and TA office hours, email, etc., whenever you have problems or questions.

If you find yourself getting that lost feeling, don't wait weeks before seeing the instructor. It's much easier to deflect a rolling bolder near the top of the hill -- if you let it roll for 15 weeks, there's really nothing I can do. As an instructor, it's very depressing when some poor soul comes in, just before finals, panic-stricken about the final grade, with an Indiana-Jones-sized boulder looming just behind.

Document History

Posted: Jan 9, 2012.

Copyright © 2012 CS Dept., Illinois Institute of Technology

xhtml css