INTRODUCTION TO COMPUTER PROGRAMMING: COURSE POLICIES AND PROCEDURES Gary T. Leavens Department of Computer Science, Iowa State University $Date: 1993/10/30 22:32:35 $ This document describes the course policies and procedures. There is no curve grading, and tests count for 2/3 of your grade. Homework is due at the start of lecture. You are urged to talk with other students about the class material, but not to 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. We will not look at your work or correct it if you are an auditor. 2. STAFF Assistant Professor Gary Leavens (Ph.D., MIT, 1989) is the instructor and Ke Chen (B.S., Xian Jiaotong Univ.), Kishore Doobagunta (B.E., Birla Institute of Technology & Science), Steve Jenkins (B.A., East Tennessee State Univ.), Borislav Simov (B.S., Graceland College) are the teaching assistants. The following table summarizes information about the staff. Vincent Name Office E-mail Phone -------------------------------------------------- Gary Leavens 229 Atanasoff leavens 294-1580 Ke Chen 106 Atanasoff kechen 294-4377 Steve Jenkins B4 Atanasoff sjenkins 294-4377 Kishore Doobagunta B2 Atanasoff kishore 294-4377 Borislav Simov B2 Atanasoff simov 294-4377 Note that on many campus maps, Atanasoff Hall is listed as the ``Computer Science Building''. You can send Vincent e-mail to the entire staff at once by sending your mail to the address ``com_s_227_staff'' (without the quotes). 2.1 OFFICE HOURS See the file ``/home/cs227/doc/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. You may call or visit at other times as well, but we may not be able to talk with you at other times. 2.2 OTHER WAYS TO REACH US 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. Questions may also be asked (and answered) by electronic mail. Send it to com_s_227_staff if it is urgent. You can send it to just myself or a TA if it is not urgent. Please don't hesitate to send electronic mail. Discussions related to the class can take place on our usenet newsgroup: ``isu.coms.227''. (See the file ``/home/cs227/doc/reading-news.txt''.) My telephone (294-1580) has an answering machine attached, so leave a message if I am not available. Short questions can often be handled over the phone. The TAs don't really have phones; if you call the numbers above you'll reach the department office, where you can leave a message. It's usually faster to send them e-mail than to try to call them. 3. INSTRUCTION 3.1 MEETINGS The ``lecture'' meeting is from 12:10 PM to 1 PM on Mondays, Wednesdays, and Fridays in 5 Physics Hall. 3.2 DISCUSSION SECTIONS All of the discussion sections meet in E116 Lagomarcino. There are discussion sections on Tuesdays at: 9AM, 10AM, 11AM, 12:10PM, 1:10PM, and 4:10PM. There are also some on Wednesdays at: 9AM, 10AM, 11AM, 2:10PM, 3:10PM, and 4:10PM. You are expected to attend the discussion section for which you signed up faithfully. 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 2/3 of your grade it won't help.) 3.4 REQUIRED TEXT The course text is ``Scheme and the Art of Programming'' by George Springer and Daniel P. Friedman (1989, McGraw-Hill Book Company). You must also buy a copy of the Project Vincent User's Guide by the ISU Computation Center (1991, Document 134). (You can get the Project Vincent User's Guide from the computation center as well as the bookstores.) 3.5 RECOMMENDED TEXTS You do not have to buy the following books, although we believe they may be helpful to you. The book ``The Little LISPer'' by Friedman and Felleisen (1987, MIT Press) has been helpful to previous students, as it presents the basics of Scheme in a way that is suitable for self-study. If you have an IBM PC (or compatible) computer, and if you want to run PC Scheme on it, and if you want documentation for PC Scheme, you may also want to buy the book ``PC Scheme'' by Texas Instruments (1988, Scientific Press). This contains reference materials on PC Scheme and the edwin editor (which is like emacs). You do not have to buy this book. (If you have a 80486 processor, see me for a copy of PC Scheme that runs on it, but this book will still give you the documentation.) If you are new to computers, and have never used an operating system before, you might be wise to go to the bookstore (or the library) and find a book on Unix that suits you. Some suggestions appear in our handout ``Becoming a Computing Professional''. ``The Little LISPer'' and other books related to Scheme are on reserve at the Parks library. 3.7 COMPUTER ACCOUNTS You must sign up for a project Vincent account. See the details in the sheet titled Vincent Account Information Sheet or in section 3.1.1 of the Project Vincent User's Guide. Even if you don't do all your work on Project Vincent, we expect you to log in and read your electronic mail at least once every other day (once on weekends). We will send you mail to tell you of significant clarifications or changes in homework problems. Less significant discussions will be posted to the newsgroup ``isu.coms.227''. 3.7 GRADING 3.7.1 Late Policy for Homework Homework is due at the beginning of the ``lecture'' meetings, not five minutes after it starts. However, students in the Wednesday sections that meet after lecture may hand in their homework at the end of the discussion section for which they are signed up (not some other one). We do give partial credit for homework, so please turn in what you have at the time it is due, instead of not turning in anything because you waited to make it perfect. Homeworks that are late but less than 24 hours late, will count 50% of their total points; that is, if you would have earned 20 points, you get credit for 10 points. (This 24 hours does not count weekends or holidays.) Note that 50% of the total points on a homework is a ``D,'' but that is still better than nothing, especially in figuring course averages. Homework that is 24 hours (or more) late receives 0 points. (You can turn in such late homework, and your TA may correct it, but it will not change the zero for the homework problems that were late.) 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. 3.7.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. 3.7.3 Standards for homeworks and tests Although we will not always make fine distinctions in points the nominal minimum standard for ``A'' work will be 90% of the points on a homework or test; the ``A-''minimum is 85%, the ``B+'' minimum is 80%, the ``B'' minimum is 75%, ``C'' work will be 60%, etc. Details are in the file ``/home/cs227/lib/grading.ss'' on Vincent. 3.7.4 Homework Problem Types There are 4 kinds of homework problems: normal, basic, suggested practice, and extra credit. Basic problems are essential material; these are handed in and count the same as normal problems, but if not done satisfactorily, will lead to an incomplete. Suggested practice problems are for you use for practice, if you wish, but not to hand in; suggested practice problems may be discussed in discussion sections. Extra credit problems do not count as normal problems, but can be handed in. They are discussed further below. On homeworks, the points and type of problem follow the problem number. For example, ``3. (5 points, basic)'' is a basic problem, while ``4. (10 points)'' is a normal problem. The points used to figure your grade on a homework are the points you earn for the normal and basic problems. 3.7.5 Incompletes and makeups You are required to master all the basic material in this class, as mastery of the basics will help you succeed in this and future courses, get everything from this class, and enjoy it. Requiring that you master the basics will also give us feedback on our problems teaching you the basics. For homeworks, incompletes and makeups are on a per-problem basis, for the basic problems. (Your scores on normal problems are final.) If on such a problem you do worse than a ``C-'', then you earn an ``incomplete'' for that problem. You are not allowed to do a makeup for a problem if you get a ``C-'' or better on a problem, or if your poor grade was the result of a late penalty. We also give incompletes for less than ``C-'' work on tests, except for the final. That is, each test, except the final, is treated as one basic homework problem for the purposes of incompletes. An incomplete will require you to: * get specific help from us, * carry out our suggestions for your learning, and * do a similar but different homework problem or test, on which the highest grade you can earn is a ``B''. You get the help by consulting with me or a TA. We will figure out why you had difficulty. We will try to find out what the learning trouble was, try to teach you in a different way than we first did, and see if there are other things to do or read that would help. Then to makeup the homework, you would do another new problem that is similar (but not the same) as the original basic problem. For a test we will usually give you some additional exercises or work to aid your study; after you have completed those, you will take a similar, but different, test. (Note: a makeup test will be an entire test, and may involve material that could have been, but was not tested originally.) You must get help from us within a week after the graded work is returned to the class. If you don't get help from us within a week after the graded work is returned to the class (even if you are not in class when the graded work is passed back, your time limit starts from the time your graded work was available to you), then you will earn only the grade you originally got on the incomplete parts. In this case you will also be charged with a ``unfinished incomplete''. You will have a maximum of two weeks (from the time when your graded work became available) to finish the work for a makeup; you will be told the exact limit for a given makeup when you talk to us. (We will often reduce the time available for makeups before a test.) If you do not finish the work within the time limit specified, then you will earn only the grade you originally got on the incomplete parts and you will be charged with an unfinished incomplete. The following limits are intended to prevent abuse of our makeup and incomplete policies. * If you earn an incomplete on a test or homework, then the highest total grade you can earn for it is a ``B.'' * If you did not turn any work on a basic problem, you are not permitted to do the makeup on that problem. That is, makeups cannot to be used to shift due dates. * If you are not attending both lectures and discussion sections, then you are not eligible to do makeups. * If you earn a midterm grade of ``D-'' or ``F,'' then you will no longer be permitted to do makeups. (You should drop the course if that is the case.) * If you have an unfinished incomplete on a homework at the time of a test, you are not eligible for a makeup on that test. * If you have 2 unfinished incompletes at the time of a homework, you are not eligible for a makeup on that homework. * No makeup work will be accepted during finals week, and there will be no makeup for the final. You may clear an unfinished incomplete by handing in satisfactory work after it is due; however, we will not record a grade for such work. There are no makeups on non-basic problems. So even though you will be able to makeup the basic problems, you may still have a very low grade for a homework. If you do not hand in a homework (or part of a homework), you get a ``F'' on that homework (or a zero on that part). It is my hope that this policy for incompletes will * solve any communication problems that may develop between you and the staff, * help you find the amount of time you need to learn the material at the same pace as the rest of the class (because you will have to put in extra time if you get an incomplete), and * allow you to learn the essential material even if there is some learning or teaching problem. If you don't think it's important to master some of the material we say is basic, please ask us about it. 3.7.6 Extra Credit In homeworks for which you earned a grade of at least a ``C-'' overall (not an incomplete), you may accumulate extra credit points on problems marked extra credit. Extra credit problems that are not given explicit due dates may be turned in any time within 3 weeks of the due date of the last basic or normal problem of the homework to which they are attached to. In no case will extra credit work be accepted after ``lecture'' meeting 41 (that is, it must be handed in before the last week of classes). For each 40 points of extra credit work, we will raise the score on your lowest test by one partial grade (and if all your tests are ``A'' after this process, then we will raise scores on your lowest homework grade). For example, if you have 160 points of extra credit work at the end of the term, you can raise four test scores from ``A-'' to ``A''. There is no limit on the number of extra credit points you can accumulate. These score raises will be applied at the end of the term, so you can stock up for the future. However, extra credit points cannot be used to raise the scores of tests or homeworks for which you have unfinished incompletes. Furthermore, if you get an incomplete, then you will have to do the makeup as usual, regardless of your extra credit work. See the file ``/home/cs227/lib/grading.ss'' for details on how extra credit points are used in estimating your grade. Since the main material is more important, you should only do extra credit problems that interest you and that you have time for. Beware that one reason for having extra credit problems is to give me a place to put interesting problems that are of unknown difficulty. Sometimes these turn out to be too hard. You may also do work for extra credit that you invent, but please check with me before spending a lot of time on something that I may not consider worth many extra credit points. 3.7.7 Final Grades Your final grade will be an average of your fractional grades, with tests counting for 2/3 of your grade and homework 1/3. See the file ``/home/cs227/lib/grading.ss'' for details on how these are computed. 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, if you 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. Because homework only counts for 1/3 of your grade, don't imagine that it is not important. Homework is important practice. Imagine trying to play a professional sport or a musical instrument without practice; ask any musician about whether that can be done, or read a biography of a sports star or musician. In Fall 1992, all of the students who got a grade of ``D+'' or lower got an ``F'' on at least 4 out of the 9 homeworks. All of them. But of all the 35 students who got an ``A'' or ``A-'', on all their 35 times 9 = 315 homeworks, only 2 of them were ``F''. The same pattern held in Spring 1993. All the students who got a ``D+'' or lower got an ``F'' on at least 4 out of the 9 homeworks; and all but one of them had at least 4 scores of 0 (nothing turned in usually) on homeworks. (One had only 2 scores of 0, and got a D.) In 1993 people who did all or almost all of the homeworks, even if they did them poorly, got at least a ``C-'' in the class. If you think: ``of course, the better students will do well on the homework, they are smarter,'' think again. You don't have to be smart to hand in a homework, let alone to just get a ``C-''. You just have to think a bit, and do the work. (Remember, we do not grade on a curve.) It's very simple. The more you practice piano, the better you get at it. The more you practice programming, the better you get at it. I guarantee that if you do all the homework, you will at least pass the class. I reserve the right to adjust your calculated grade downward (towards ``F'') in the following exceptional circumstances. * Your homework grades are much higher than your test grades. (This indicates to me you are not doing your own homework; if you have some legitimate problem taking tests, then tell me about it.) * 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.) 4. 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. 5. COOPERATION You are encouraged to discuss homework, and other parts of the class with other students. However, in such discussions 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. 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.) 6. COOPERATIVE LEARNING FOR ASSIGNED GROUP WORK The above policies on cheating and cooperation apply to homework that is individually assigned. After the first test, we will switch to group homework, and the above policies on cheating and cooperation will apply to the interactions of different groups, but not within groups. (That is, substitute ``your group'' for ``you'' and ``group'' for ``student'' above to see how these discussions apply to groups.) The reason for assigning work to groups is that you learn more effectively when you participate in a group discussion. According to material by Edgar Dale, as quoted by Dr. Richard M. Felder, people tend to remember about 50% of what they hear and see, but 70% of what they say, and 90% of what they both say and do. As any teacher can tell you, you really learn something when you have to explain and defend it to someone else! Cooperative learning also provides (according to Felder again) increased: * academic achievement * higher-level thinking skills * attitudes towards the subject, motivation to learn it * teamwork, interpersonal skills * understanding of the professional environment * communication skills * self-esteem * level of comfort (due to lower emphasis on competition) * race, gender relations * class attendance Such cooperative learning is not just students sitting in a terminal room talking to each other, or group projects with only a few students doing the work. You will all depend on each other, but yet will be individually accountable for your own learning (on tests). You will have to develop your interpersonal skills. These skills are increasingly important in the business world. Businesses realize that groups work better than individuals because: * individuals get stuck and give up, groups keep going * individuals go with the first thing that works, groups look at several solutions and pick the best. Furthermore, groups promote active learning, and better questions in class. To promote cooperative learning, we will assign problems as group homework. For problems assigned as group homework, the following policies apply. 6.1 Forming groups Groups are to be formed as follows. * Goups must consist of 3 or 4 students (no groups of other sizes are allowed). We encourage groups of size 3. * Each group must consist of students with the same teaching assistant, but they need not have the same discussion section. * A group of 3 may contain not more than 1 student who got an ``A'' on the first test. A group of 4 may contain up to two such students. You are encouraged to seek out people for a group who are different than you are. The more diverse the group, the more different ideas and backgrounds you will be able to draw on when solving problems. Group membership will stay fixed for the rest of the semester. These groups have nothing to do with the groups in lecture (which depend on where you sit). If you wish, you may also study with friends. 6.2 Group Leadership One group member will be designated the leader for each assignment. The leader will be responsible for: * coordinating the work, and * making sure everyone in the group understands all the problem solutions before they are handed in. Once you have been a group leader, you may not be a group leader again until every other student in your group has been a group leader. (If the leader does not show up to a meeting, some one else may serve; but this should then be brought to the attention of the staff.) The group may decide to have other jobs that rotate as well such as checker, recorder, etc. 6.3 How the Group Should (and Shouldn't) Work We require *each* student to write a solution (or a partial solution and a description of what difficulty has them being stuck) for *each* problem individually, and then that the group get together to compare solutions, help those who are stuck, decide on the best, type them in, test them, debug them, and review them for style and elegance. It it important that each student start each problem, because on a test you will all have to work the problems on your own, and if you don't know how to start the problems, then you will find it difficult to get started on the test. This also ensures that all the group members are familiar with the problems and have some ideas for the solution before a group meeting. What the group should *not* do is to split up the problems. If you do that, you won't see how each problem works and how to start it. This is a recipe for disaster on tests, which are 2/3 of your grade. The point is for each student to learn how to do the problems more effectively, not to do less work (although typing, testing, and debugging may go somewhat faster in groups). As a check that each student is starting each of the problems, until further notice the group must turn in a set of individual solutions (or partial solutions with a description of what difficulty has them being stuck) for each problem, one from each member of the group. Each individual solution should be signed at the top right by the student. This signature certifies that the handwritten solution is the student's work, done before the group meeting. These will not be graded, but will be used to check that your group is complying with this policy. To improve the group process, on each assignment the group must describe: * what the group did that went well worked, * what aspect of the group needs improvement, and * what (if anything) will be done differently on the next assignment. This should be an honest assessment, and is intended to get the group talking about what is happening, improve the process, and to keep us informed of how your group is working. 6.4 Certifying credit for Group Work, Cheating On group homework, the leader must write "Leader:" followed by his or her name, and then the name of each *participating* group member. If a student's name appears on the solution set, it certifies that he or she has participated in the completion of some of the problems and understands *all* the solutions. If this is not the case, then both the student in question and the group leader will be considered to have cheated, and will be dealt with accordingly. A group member who does not participate will receive a zero (0) for each problem in the set of problems in which he or she did not participate. A group leader may certify individual problems instead of the set, so that the leader can certify some members for some problems and not others. The leader should explicitly note if he or she is not certified. No student is allowed to turn in individual work for problems which are assigned as group work. Each participating group member gets the same grade as the others for that homework. Tests are graded individually. However, if each student in the group gets above 80% on the test, then all the students in that group will have their scores raised by 5% as a bonus. 6.5 Extra Credit Problems Extra credit problems are probably best done individually. However, if the group desires, it can do extra credit problems. But members of a group should not be pressured into doing extra credit problems. Only the regular homework groups may submit group solutions to extra credit problems. That is, you may not form special groups to submit solutions to extra credit problems. 6.6 Problems, Quitting and Firing Members If your group is having problems that it cannot resolve, please see me (or another member of the staff). I will probably request that the entire group meet with me, and usually the problem can be worked out. As a last resort, a group member may quit or be fired with the unanimous consent of the group. In the case of a member wishing to quit a group, he or she will be responsible for finding another group that agrees to add or trade members so that all groups have 3 or 4 members. In the case of a group firing a member, the other group members will be responsible for this. 6.7 Acknowledgements The above material on cooperative learning draws extensively on materials from "Effective Teaching: A Workshop" by Dr. Richard M. Felder (September 9, 1993, pages 39, and 68-75). 7. DISCLAIMER The details of this course are subject to change as experience dictates. You will be informed of any changes. The following is the version information for this file: $Id: red-tape.txt,v 1.22 1993/10/30 22:32:35 leavens Exp leavens $