PRINCIPLES OF PROGRAMMING LANGUAGES: COMPLETE COURSE POLICIES AND PROCEDURES Gary T. Leavens Department of Computer Science, Iowa State University $Date: 1999/10/02 15:39:11 $ This document describes the course policies and procedures. There is no curve grading, and tests count for 70% of your grade. You are urged to talk with other students about the class material, but you must *not* exchange code or written answers. 1. YOU MUST BE REGISTERED TO ATTEND To attend this class, you must be registered for it. If you wish to simply listen in to the class, you must register as an auditor. 2. STAFF Associate Professor Gary Leavens (Ph.D., MIT, 1989) is the instructor and Abhay Bhorkar (B.S., Veermata Jijabai Technological Institute, Bombay, 1998) and Srikanth Krishnamohan (B.S., Birla Institute of Technology and Science, Pilani) 1998) are the teaching assistants. The following table summarizes information about the staff. Name Office E-mail address Phone --------------------------------------------------------------------- Gary Leavens 229 Atanasoff leavens@cs.iastate.edu 294-1580 Abhay Bhorkar B03 Atanasoff abhayb@cs.iastate.edu 294-4377 Srikanth Krishnamohan B03 Atanasoff srikk@cs.iastate.edu 294-4377 To send mail from home or from a Vincent machine, be sure to use the ``@cs.iastate.edu'' (without the quotes) in the e-mail addresses given above. If you don't, you'll risk sending mail to someone else. You can send e-mail to the entire staff at once by sending your mail to the address ``cs342s@cs.iastate.edu'' (without the quotes). 2.1 OFFICE HOURS See the file ``/home/course/cs342/public/docs/office-hours.txt'' for the current office hours of the staff. Office hours provide times when you are guaranteed to be able to reach the us. (Any changes to office hours will be announced in class.) Although we cannot guarantee we will be able to talk with you at other times if you just drop by, you may come to see us at other times as well. You can also call or send email for an appointment or to have a specific question answered. 2.2 OTHER WAYS TO REACH US I'm happy to talk by phone, as that avoids both of us typing. My telephone (294-1580) has an answering machine attached, so leave a message if I'm not available. Short questions can often be handled over the phone. TAs don't really have a phone; if you call the number above you'll reach the department office, where you can leave a message. It's usually faster to send the TA an e-mail than to try to call. Questions may also be asked (and answered) by electronic mail. Send it to cs342s if it is urgent. You can send it to just myself or a TA if it is not urgent and you have some particular reason for not sending it to both of us. Please don't hesitate to send electronic mail. Discussions related to the class can take place on our usenet newsgroup: ``isu.coms.342''. You can read this with netscape from ISU, or see the file ``/home/course/cs342/public/docs/reading-news.txt''.) The department has boxes for faculty and graduate students. If you need to leave an assignment or a note for us and we are busy or not around, you can leave it in 226 Atanasoff. 2.3 HOW WE WILL REACH YOU We will send out email for important announcements that were not made in class. However, other announcements, hints for homework, etc. will only be made to the newsgroup, ``isu.coms.342''. Please check your email and read the newsgroup often, especially if you think there is a bug with our software or with the homework problem, or test cases we have given you. The newsgroup and other information about the course are available from the web at the following URL. http://www.cs.iastate.edu/~leavens/ComS342.html 3. INSTRUCTION 3.1 MEETINGS The ``lecture'' meetings are from 2:10PM to 3:30PM on Tuesdays and Thursdays in 205 Pearson. 3.2 DISCUSSION SECTIONS There are 2 discussion sections. Section Time Room TA --------------------------------------------------- A T 4 1213 Coover Abhay Bhorkar B T 5 1213 Coover Srikanth Krishnamohan You are expected to attend the discussion section for which you registered faithfully. (If you need to change sections, drop the old section and add the new one, through the ISU Registrar's office.) 3.3 TUTORING Some tutoring may be available for this course. See the tutoring office, in 20 Student Services Building, 294-6624. (If you pass this course with an ``A,'' please consider signing up to tutor in the future.) If you get tutoring, be sure that your tutor does not do the homeworks for you; that is called cheating. (And since tests count for 70% of your grade it won't help.) 3.4 REQUIRED TEXT There is one required text: ``Structure and Interpretation of Computer Programs, Second Edition'' by Harold Abelson and Gerald Jay Sussman with Julie Sussman (MIT Press and McGraw-Hill, 1996). 3.5 RECOMMENDED TEXT There is a recommended text for learning Scheme: ``The Little Schemer (Fourth Edition)'' by Daniel P. Friedman and Matthias Felleisen (MIT Press, 1996). You can read the ``Revised^5 Report on The Algorithmic Language Scheme,'' on-line through the course web page, or you can buy a copy at Copyworks (105 Welch Ave.). This is a Scheme reference, and also a good example of how to write a programming language manual. Students in the past have found this helpful. 3.6 RESERVE BOOKS The course text, the Scheme Report, a reference book for Scheme, and other books related to the course are on reserve at the library. 3.7 COMPUTER ACCOUNTS You must have an account on the Com S department machines (including shazam, stimpy, and popeye), which will be used for this course. If you do not already have such an account, go to the ``Unix Account Activation Terminal'' in 116 Atanasoff Hall. Then follow the directions on that terminal to get your account. If you have problems with this, contact the System Support Group (ssg@cs.iastate.edu) at 294-0179 or go to their office in 108 Atanasoff Hall. Besides the terminals in Atanasoff Hall, you can access the department by using remote login from Unix systems (e.g., project Vincent) or by using a modem. See http://www.cs.iastate.edu/help/faq.html#3 for up to date information on how to do this. It will be possible to do work on project Vincent or a home computer. However, if you do not work on the department machines, you are responsible for transferring files and getting updates to the homeworks yourself. Even if you don't do all your work on the Com S department machines, we expect you to read your electronic mail every day (and once on weekends). Have it forwarded if need be. 4. GRADING 4.1 Late Policy for Homework The late policy for homeworks is designed to encourage you to: - hand in one "good" version of each problem, - hand it in on-time if possible, but to hand it in eventually in any case. To prevent the TA from grading multiple versions of homework, only one version of each problem, the first you hand in, will be accepted. Late homework must be printed and handed in to a staff member, email will *not* be accepted. If you can't find your TA to turn in late homework, turn it in to me or the Com S department office in 226 Atanasoff Hall. If you give it to someone in the office, be sure to have them note the time on it. Homeworks due in lecture are due at the beginning of the ``lecture'' meetings, not five minutes after it starts. The same applies to homeworks due in discussion sections. We do give partial credit for homework, so you will have to balance the gain from waiting to get a good version of a problem and the loss from handing the problem in late. In general, we encourage you to hand in a good version, but if you are late (and have been trying), consider that as a sign that you need help, and get help from us! Homework problems that are late receive points based on the following table. when handed in percentage penalty ---------------------------------------------------------- if answer(s) are given in class 25% (or more due to time) by 5pm of the next weekday 5% at the next lecture meeting 10% by 1 week after due date 25% by 2 week after due date 50% by 3 weeks after due date 75% later or during last week of classes 100% For example, if a homework problem is due on Thursday in class, but you turn it in by 5pm Friday, you will have 5% of what would have been your score subtracted; thus if the problem was 25 points, and you earned 20 of them, your score would be recorded as 19 points, due to the 5% penalty. If you turned the same thing in on Tuesday, your penalty would be 10%, so your score would be recorded as 18 points. However, if an answer to the problem was given in class, then even turning it in by 5pm on Monday you would have a 25% penalty (and so your score would be recorded as 15 points). Absolutely no credit for late homework will be given during the last week of classes (or later!), or for homework turned in later than 4 weeks after the due date. If you are consistently late with homework, we may stop accepting your late homework. 4.2 No Curve Grading Your grade is independent of anyone else's grade in this class; that is, we do not grade on a curve. Everyone can get an ``A'' in this class. Our purpose in grading is to uphold a standard of quality and to give you feedback, it is not to rank students. Instead of using curve grading as a final defense against problems that are too hard, I use the following policy. If a problem on the homework on a test is so hard that most students do not ``get it'', then I will eliminate it from the test or homework grading. If this problem was appropriate, then I will teach how to solve problems like it, and give a similar problem on another test or homework. If it was not appropriate, then we will ignore it. If you detect such a problem on a homework, let me know about it as soon as possible, as it will save us all a lot of work. 4.3 Standards for homeworks and tests Although we will not always make fine distinctions in points the nominal minimum standards are given by the following table. minimum percentage grade notes ------------------------------------------ 90% A max of late hw by next class meeting 85% A- 80% B+ 75% B max of late hw by next week (or ans. in class) 70% B- 65% C+ 60% C 55% C- minimum acceptable grade for Com S majors 50% D+ max of late hw by 2 weeks 45% D 40% D- less F 4.4 Extra Credit You may accumulate extra credit points on homeworks by doing more than the recommended ammount of homework. Extra credit work should be turned in separately from regular homework. That is, don't staple it together with regular homework, and be sure it is labeled with your name, etc. The main reason to do extra credit work should be that you are interested in the problems and want to learn more about the material. You should only do extra credit problems that interest you and that you have time for. Another reason, for doing extra credit work, however, is that your extra credit points will be used to subjectively raise your final grade in the class. For example, if you are close to an ``A'' in the class, and have some extra credit points, then we will take them into account and may raise your grade to an ``A''. Another use for extra credit points is to impress me, if you want me to write you a recommendation someday. (Because of that, it is wise to save your extra credit work.) However, you can't use extra credit work to make up for incomplete work. If you are having difficulty in the class, focus on the main material, not on the extra credit work. You may also do work for extra credit that you invent, but please check with me before doing something like that. (Otherwise you may spend a lot of time on something that I may not consider worth many extra credit points.) 4.5 Final Grades Your final grade will be a weighted average of your fractional grades, with tests counting for 70% of your grade and homework 30%. Note this policy well. The idea is that you should: DO THE HOMEWORKS TO LEARN THE MATERIAL. You will pass and do well if you make mistakes on your homework and learn from them. Don't think that the homework grades are so important that you should cheat to get higher homework grades, as doing so will most likely cause you to fail the tests. I reserve the right to adjust your calculated grade downward (towards ``F'') if you do not turn in the homeworks, but get good grades on the tests. (This indicates to me that you are either cheating on the tests or denying yourself the extra learning that would come from doing the homeworks. If you already know the material, talk to me about placing out of this class.) 5. CHEATING The simple rule of thumb is: NEVER GIVE OR USE SOMEONE ELSE'S CODE OR WRITTEN ANSWERS. Such exchanges are definitely cheating and not cooperation. We will take action if we catch you cheating on a test or exchanging code or written answers. Read the section on ``academic dishonesty'' in the Iowa State University Bulletin General Catalog. If you honestly believe that certain problems are too much busy work, then bring it to my attention; or failing that, only do the part of the problem that you think you need to do to learn the material and explain that to us. 6. COOPERATION You are encouraged to discuss homework, and other parts of the class with other students. Such discussions about ideas are not cheating, whereas the exchange of code or written answers is cheating. However, in such discussions of ideas, you should distinguish between helping and hurting yourself and the other student. In brief, you can help the other student by teaching them, and you can hurt them by giving them answers that they should have worked out for themselves. (Remember, when you're being tested, you won't be able to help each other.) The same applies to tutoring and getting help from me or a TA. This most commonly occurs in giving away a key idea needed to solve a problem. For example, suppose you have studied a programming problem for an hour or so, and finally found that the key to the solution is to use a helping procedure you call ``critical''. Your friend, after working on the problem for 15 minutes, says ``I just can't see how to do this'' and you say ``try using a helping procedure called `critical'. '' Although it takes more time, your friend will learn more if you say something like: ``How are you approaching the problem, what's your plan?'' (knowing that if your friend is not planning, no helping procedure will be found). If your friend hasn't planned, you should let them do it; if they have trouble planning, tell them to think about problems discussed in class that were similar, etc. If, after planning, your friend still hasn't found helping procedure `critical', you should say something more direct like, ``what helping procedures do you have?'' or ``how do these helping procedures help you get closer to the solution?'' or ``can you solve part of the problem?'' The idea is to guide the other person's thinking process. Perhaps a more common way to fall into the hurtful exchange of giving away the key idea is when you're talking over a problem that no one knows the answer to yet. Once one of you comes up with the key idea, it is tempting to blurt it out, impressing the others with your brilliance. If this happens, you should write ``developed in cooperation with ...'' on your solution. (Note that this disclaimer cannot be used to get away with cheating, but we're not discussing exchanging written code or answers.) It would be better for the one who comes up with the key idea say ``I have it, but now I can't tell you what it is'' and then try to guide the others to the solution as described above. If you use reference materials (other than the course texts) to solve a problem, please give a citation. (You should not copy code from other books, as that will probably not help you on tests. But you may get some ideas from a book about algorithms or data structures.) Similarly, if you discuss a solution with another student, give credit where credit is due by making a note such as ``the following idea was developed jointly with Alyssia P. Hacker,'' or ``the following idea is due to Ben Bittwiddle.'' You cannot be charged with plagiarism if you cite in this way. (However, don't expect to excuse cheating with such a citation. That is, you cannot exchange code even if you say it was developed in cooperation with someone else. Cooperation refers to the exchange of ideas, not code or written answers.) 7. DISCLAIMER The details of this course are subject to change as experience dictates. You will be informed of any changes.