Instructors: Dr. Andy Somogyi.
Dr. Andy Somogyi
Tue Thur 12 PM-2 PM
Office hours for AIs and UIs can be found here.
Use Indiana University email (@indiana.edu) to reach any of the course staff; usernames are given above.
Send emails with #c211 in the subject line
We have set up a course discussion forum using Piazza, which you must participate in. This is where course announcements will be made.
Somogyi: Monday and Wednesday 04:00P-05:15P CH 001
Somogyi: Tuesday and Thursday 09:30A-10:45A WH 120
Labs Labs are held on Thursday and Friday.
Midterm Exam: Tuesday, Febuary 28, 7:15PM - 9:30PM, BLPY (Psychology) 100 and 101
Final Exam: Friday, May 5, 2:45 – 4:45, Room: TBA
Lab sections 13069, 13071, 13072, 13073
Lab sections 13070, 13075, 13074
There will be a final exam, date: TBA
Felleisen, Findler, Flatt, Krishnamurthi How to Design Programs, Second Edition (Draft)
The course will primarily follow this draft of the second edition of the text book. Both texts focus on the same design principles for small pieces of software; the details differ significantly.
Felleisen, Findler, Flatt, Krishnamurthi How to Design Programs, First Edition, MIT Press, 2001
The first edition of the text book is available in print and on line. But almost all exercise material will come from the draft book. There is no need to read this book in detail but doing so will give you a second perspective and its exercises may help improve your understanding of the material.
The following book is not a textbook for this course, but you may find it interesting.
Bice, DeMaio, Florence, Lin, Lindeman, Nussbaum, Peterson Plessner, Van Horn, Felleisen, Barski Realm of Racket, No Starch Press. 2013
You may think that this course teaches Scheme, or Racket, or both. It doesn’t. Instead, it teaches design ideas that are applicable in every language.
Realm of Racket is not a textbook, but instead a book that bridges the gap between the programming languages used in this course and Racket programming. The course may borrow material from Realm of Racket but there is no need for you to buy this book, in any form or shape.
Assignments will be due on Wednesday each week at midnight. Assignments will be graded on an A-F scale. If you do not turn in the assignment, it will recieve a Z grade, which cannot be appealed. If you cannot complete an assignment at all for some reason, you must contact your instructor in advance to discuss it with them.
Each lab will feature a quiz, which will count as part of your grade.
Assignments will be submitted using the Handin Server in DrRacket.
If you make a mistake while submitting your assignment, you can resubmit as many times as you want up until the due date.
Any assignment which does not run in DrRacket (meaning that none of the check-expects run) will get at best a D.
If you receive a grade of C, D, or F on an assignment, you will have the opportunity to raise your grade to a B by correcting all errors (including stylistic errors), submitting your new work and then appealing to one of us during our normally scheduled appeal hours. All appeals must be made in person the week following the one is which your graded assignment is returned to you. You should be prepared to demonstrate the correct operation of your code, defend your solutions, and answer questions related to the constructs and techniques used in the programs. Be sure to hand in your corrected work in advance.
Exceptions: Z grades cannot be appealed. A grade of B cannot be promoted to an A. The midterm review assignment, and the last two assignments cannot be appealed.
For graduate students enrolled in A591, the course will be identical to C211.
We urge you to download DrRacket to your own computer so that you can work on C211 wherever, whenever you like.
DrRacket runs on most popular platforms (Windows, Mac OS X, Linux, and other *nixes). Programs written in the teaching languages have mostly the same behavior on all platforms. You therefore do not need to worry what kind of machine you use when you run your programs.
As one way to promote student success in this course, we have a supplemental program available to you called Peer Led Team Learning (PLTL.) The PLTL leaders have already taken this class, are sitting in again and will each offer an extra session to class members for each class meeting. The purpose of the session is to use active learning strategies to learn how to learn the course material, and practice, and then be able to do your homework and tests with more confidence. Particpation credit will be awarded for attending PLTL sessions. Our PLTL student leaders will provide more details in class. All students welcome. Research shows significant improvement in grades for participants so try it!
Since the three lecture sections will follow the same material, you can attend any PLTL session.
Your grade in this class will be determined primarily by your performance on weekly homeworks and lab quizzes (40%), and your exam grades (40%). There will be two exams: a midterm and a final.
There will be regular in-lab and in-class quizzes which will compose 10% of your grade.
Additionally, 10% of your grade will be determined by participation, considered broadly. This includes participation in class, on the Piazza message board, and attendance and participation in PLTL sessions.
Final letter grade in the class will be determined by your performance relative to the entire class. In other words, there will be a "curve", but it will be determined only at the end of the semester. Therefore, the total grade shown on Canvas does not reflect the letter grade you will get at the end of the semester. If you have questions about your grade, please see your instructor.
Academic honesty: we will strictly enforce the university’s academic integrity policy. All programs must be completed strictly by you. You are free to discuss the problem sets with others, so long as you acknowledge discussants. However, you may not share code in any way. Submitting code that is not your own will be considered a violation of the University’s Code. Violations of academic integrity will be reported to Office of Student Ethics and will have a negative impact on your grade.
One of our responsibilities is to help create a safe learning environment on our campus. Title IX and our own Sexual Misconduct policy prohibit sexual misconduct. If you have experienced sexual misconduct, or know someone who has, the University can help. I encourage you to visit http://stopsexualviolence.iu.edu/ to learn more. If you are seeking help and would like to speak to someone confidentially, you can make an appointment with a Mental Health Counselor on campus (contact information available at http://stopsexualviolence.iu.edu/employee/confidential.html).
It is also important that you know that federal regulations and University policy require me to promptly convey any information about potential sexual misconduct known to me to our Deputy Title IX Coordinator or IU’s Title IX Coordinator. In that event, they will work with a small number of others on campus to ensure that appropriate measures are taken and resources are made available to the student who may have been harmed. Protecting a student’s privacy is of utmost concern, and all involved will only share information with those that need to know to ensure the University can respond and assist.