Windows Programming Green Sheet (Course Information)

Dr. Beeson

1. Web site: The web site for this course is www.mathcs.sjsu.edu/faculty/beeson/courses/cs130/cs130.html. At this URL you will find assignments, lecture notes, a copy of this green sheet, and other information which may be posted from time to time. The Department and University make no commitment to keep this site up and running at all times.  Two years ago it was down 2% of the time, or about half an hour a day.  Last semester it was much better, but not perfect.   If it goes down the night before an assignment is due, you were warned. You might want to download important files when you can, and keep a local copy on your own machine.

2. Meeting places: The course will meet in the scheduled lecture room (Sci 164) on MW, but on Fridays it will meet in the computer lab, Sci 311, for hands-on work. The lab will be open for three scheduled 65-minute labs on Friday afternoon, with ten minutes in between the sessions.  When you enrolled for the course you should have also been enrolled for one of the labs.  The lab will be supervised by your TA, Mr. Karl Schramm, who was an A student in this course as an undergraduate and has supervised the lab in this course for several semesters.   You will work on structured laboratory exercises designed by Dr. Beeson. Mr. Schramm will assist you if you encounter problems.

3. Work to be accomplished. There will be about six programming assignments, weekly in-lab programming, reading and study of the lecture notes, practicing writing programs at home after the lectures before the labs, and some multiple-choice homework related to the lectures.  There will not be a term project.

4. Textbook: There is no required textbook for this course. The reading materials will be the lecture transparencies, which will be posted on the course web site, and the online help in Visual C++, which forms a complete reference.

You do NOT need to purchase or consult books.    Your time would be better spent as follows:

5. How to succeed in this course-- Do all of the following:

6. Prerequisites: CS 46B and CS140. You need to know the elements of C++ (e.g. derived classes, member functions, etc.). You do NOT need to know the Standard Template Library (STL). The concepts you need are also part of Java, so if you learned programming in Java rather than C++, you only need to learn a few minor details of syntax. These should have been adequately covered in CS140.   You need to be able to write simple for-loops, e.g. to draw a checkerboard given a function Rectangle that draws a rectangle.

7.  Adding the course: The lecture hall has a large capacity, so enrollment is limited by the lab capacity.   The maximum capacity is 120 students.  It is unlikely that this limit will be approached—everyone who has the prerequisites will be allowed to add.

8. Office hours for Fall 2004: Room MH 215, MW  2:45 to 4:00 (right after class) and 11:00  to 11:50.  My office phone number is 924-5113. There is 24-hour a day voice mail on that line, but I will check it only on Monday, Wednesday, and Friday. Perhaps your question can be answered by email. You can email me at beeson@cs.sjsu.edu. I’ll do my best to respond promptly but, for example, you might send an email on Friday noon and not get an answer until Monday night. If your question involves code that doesn’t work, it’s best to bring the code to my office where we can look at it together.  You can bring it on your laptop, or you can bring it on a floppy disk or flash memory.   You need all the files in the project’s root folder and in the \res subfolder, but not the large files in the \Debug folder.

9. Computer use. This course will involve the use of computers.  The Department has recently joined some other departments of the University in the Laptop Initiative.  Theoretically, each student is expected to have a laptop.   However,  laptops are not required in this course.  We will meet in a computer lab on Fridays,  and (if you do have a laptop) you may work on your laptop if you so choose.   If you plan to use the University’s desktop computers in the lab on Fridays,  then you are required to have an account. You must therefore either enroll for CS110L, or pay a $45 lab fee (whichever is cheaper for your situation). Both can be done starting at the Student Information Window, MH 208, during business hours.    Note:  that window is closed 12:30-1:30 and closes early Friday afternoon.

10. Software. The programming environment to be used in this course is Microsoft Visual C++ NET.  Microsoft has made this software available free to students.   Exact directions for obtaining your free copy are posted on the course web site—follow a link from the main course web page.

11. Turning in Programming Assignments.   We use an online submission system.  There will be a link to the online submission form from the web page where the assignment is posted.  When the grader finishes his work, a table of grades by last 4 digits of student ID number will be posted.  Note, the university no longer uses Social Security numbers for anything—don’t use your SSN to try to submit your homework. The grader gets two weeks to grade the homework, though he sometimes turns in half the grades after one week.  This allows him to distribute his workload evenly.  

12. Final exams. The final exam will involve programming and will be administered in the computer labs in Science 311, where we meet on Fridays, as well as in the Washington Square Hall lab (WSQ 1). The exam is scheduled for Thursday, December 16, from 12:15 to 14:30.    You will be assigned to one of the two or three labs based on your student ID; check the course web site a few days before the exam to find your location.  

12. Midterm exams.  Two of the Friday lab sessions will be set aside for programming examinations.   These will be similar to the regular Friday labs except that there will be no step-by-step instructions, and the required programming will not involve anything new—just things you have already (supposedly) learned.   The normal labs go over what you just learned that week, and have detailed instructions.    Also, in the normal labs you are allowed to help your fellow students, but not on the midterm exams.

12. Academic Dishonesty. Cheating on exams or copying homework or labs will result in an F in the class. You will not be allowed to drop, and the incident will be reported to the University administration. You may copy code from the CS130 handouts or the CS130 web pages. All other code you turn in must be your own, unless you have permission from Dr. Beeson. This does not include media files (images, sounds, etc.) When there are cases of apparent copying, both students will be held responsible--we will not argue over who was the copier and whose code was copied.   In particular, although you have Internet access during exams and lab sessions, you are expected to write your own code, not to cut and paste code you may find on the Internet, except for the course web pages.  This applies to homework too.

13.  Multiple choice homework.  There will be some multiple-choice questions over the lecture materials.  I hope you’ll be able to do this work online this semester.  In the past we have used Scantron forms.

14. Grading system. You will get a lab grade (based on the Friday programming sessions); an out-of-class programming grade; a midterm exam grade based on three midterm exams,  a final exam grade, and a homework grade (on the multiple-choice questions). These five  grades (e.g., B+ =3.3)  will be treated as decimal numbers.   They will be averaged to determine your course grade. The in-class programming grade will be computed by averaging all but the lowest of your Friday in-class programming scores. The intention in dropping the lowest score is to allow for the good chance that you may miss one Friday due to illness. There is a minimum-performance clause as well: To pass the course, you must turn in all the programming assignments, and earn a passing grade on most of them, and you must earn at least 40% on the final exam.   In Fall 2003,  five students out of  72  failed to meet this minimum standard,  but half the students earned 90% or better on that same exam.  In Spring 2004,  even fewer failed to meet the minimum standard.

15. Illness. If you should be ill on a Friday when we have an in-class programming assignment, you should of course go through that assignment on your own. However, normally no grade will be recorded for a session you have missed. Everyone is allowed to drop one Friday in-class programming grade; if you miss more than one Friday due to illness, you need to make arrangements with Dr. Beeson about the grade.   If you are sick on one of the midterm exam days, you must send Dr. Beeson an email or leave a phone message before the time of the midterm, and make arrangements to make up the exam.  

16. Grading FAQs: Q: What percentage will each of the five grades count? A: when you average five numbers, each of the numbers counts 20%. Q: I was very sick last Friday, can I make up the lab? A: You can and should make up the lab, but no grade will be recorded, if this is the only lab you have missed so far. Extended illnesses will be dealt with case-by-case. Q: Will there be a term project? A: No. Q: I was sick and didn't turn in the programming assignment, can I turn it in late? A: Yes. If you made arrangements (by email or phone) before the due date, there will be no penalty. Otherwise there will be a grade penalty. Q: I wasn't sick but I had midterms in my other classes so my programming assignment wasn't done on time. Can I turn it in late? A: Yes, you must turn it in.  Turning it in late will cost you one letter grade per day of delay, down to a D, but you must turn in all programming assignments to pass the course.   Q: I still don't understand the grading system. A: let's take an example. You have an A- on the programming assignments, a B on the labs, a C on the final, an A and a C on the two midterms, and a B+ on the non-programming homework. Your grade is (3.7 + 3.0 + 2.0 + 3.0 + 3.3)/5 = 3.0 = B. If it had come out 3.3 to 3.49 it would have been B+; 3.5 would have been A-. In this internal average, A+ = 4.3.  Q: I should have gotten a B+ on the third programming assignment, not a B.   A:  Check the grading criteria specified on the assignment sheet.  If you think there is an error, communicate with the grader by email.  If the problem can’t be solved that way, then ask Dr. Beeson to arbitrate the dispute.   Usually that is not necessary.

17.  Homework Grading.   The Department does have funds at the moment to pay a student to grade the programming homework, which it did not have for the past two semesters.  It would not surprise me if these funds are exhausted in mid-semester.   The cost of homework grading runs to approximately one dollar per disk.  We will have (approximately) six programming assignments during the semester.   If the Department funds run out, I will ask the students to chip in a dollar for each remaining assignment.  The details will be posted to the course web site if and when this becomes necessary.