Vous êtes sur la page 1sur 7

CS 47 Green Sheet

(revised 6/11/2011) Terry Allen

Section 01

Web Site
The web site for this course is http://www.cs.sjsu.edu/~allen/Summer_2011/cs47. (It is case-sensitive.) You should consider this site to be in a permanent state of under construction, but you will find there written assignments, a copy of this green sheet, and other information which I may at odd times believe you could find useful. As is prudent with any website, do not assume it will be up and running 24/7. Download copies for yourself of all files you find useful.

Work to be accomplished
There will be out-of-class programming assignments, including readings and independent study in the textbook, and some work that could be characterized as digital logic design. You can expect an assignment at most weekly.

Assenmbly Language for Intel-Based Computers (4th ed., 2002), by Kip Irvine. ISBN 013-091013-9. Used versions should be available with the CD-ROM, but if you find it difficult to secure a copy of the CD-ROM, I may be able to burn a copy for you. Later editions are also available at a slightly higher price.

Previous completion of CS46B, or equivalent, with a grade of C- or better.

Office Hours
My office is in DH282. The phone number in the office is 924-5116. There is voicemail on that line, but email will provoke faster response (I dont have to be in the office to answer email). My email address is terry_allen@hotmail.com. Try to send your email from a SJSU address: this should get you past the spam blocker and produce more timely replies. Also, put CS47 (or something recognizably similar) in the subject line. Using email will also allow you to send examples of non-working code, but sending an entire program will probably just cause me to invite you to see me during office hours. The preferred address for homework submissions is assignment.cs47@gmail.com. You can use my email address (and I will go by that timestamp, if its earlier and the files are identical), but Im not any more likely to see the homework, and Ill have to forward it to the other address, which is likely to make me at least a little grumpy. If your email application (such as Outlook, or Eudora1) allows you to request a receipt from whomever you send email to, use that feature when you submit homework. Because I accept late homework, I wont necessarily panic2 if I dont receive a particular homework assignment from you. But if you dont get a receipt back from me within a day or so, you should probably start investigating. Theres not much I can do at the end of the term if youre sure you hit the Send button on some homework back in January or February, but I never received it. Also, be sure you attach the homework (by, for example, checking your Sent Mail folder). Obviously, a virtually empty email will get you the sort of grade you would expect for such a submission. If you want to email me a question, please put question in the subject line (along with the course number). Questions go to the front of the email queue. Office hours are in DH282 unless otherwise noted, and are: Tuesdays, Wednesdays, Thursdays, 7:00 1:10 10:00 7:00 1:10 a.m. p.m. a.m. a.m. p.m. to 8:50 a.m. to 2:00 p.m. to 11:00 p.m. to 8:50 a.m. to 2:00 p.m.

One-on-one meetings (see below) and other less formal meetings outside of official office hours are encouraged (at least one one-on-one is required, of course), but they need to be set up in advance. Note that you must schedule and lead at least 1 one-on-one meeting in order to meet the basic requirements for completion of the course.

1 2

Eudora also has the virtue of being open source, so no monopolies are likely to get rich off you. or whatever the professorial equivalent of panic might be.

Consequences and definitions of cheating:

Cheating on exams or copying homework from others will result in an F in the class. You will not be allowed to drop the course, and the incident will be reported to the University administration. All work in this course is individual. No two programs will be exactly alike even if they have the same purpose. I expect you to be proud of the work you do in this course, and to be able to explain to me your reasoning behind the programming strategies you used to carry out the assignments. It will be very difficult to accomplish this if its not your own work.

You will write programs in C or in x86 assembly language, using a text editor such as vi (or vim) or emacs (actually xemacs is much better), and you will submit these programs in text file format. The assembly code will use the MASM syntax, which is the syntax Microsoft uses. You may use any development environment on any machine to test your code, but I will be compiling your C submissions with gcc in a Cygwin environment. If the Cygwin-resident version of the gcc compiler complains about your code, it will be as though you submitted nothing, so it would be prudent in almost all cases to make your development environment match mine (even though I will be the first to admit it is not the best available). For a debugger (always useful, but probably not necessary for the first half of the semester), we will use gdb, the GNU debugger. You should make sure you have access to a copy of that, as well as a copy of gcc.

Homework submissions: due dates and times

You will have 48 hours to complete a homework assignment. I will assign programming homework on Monday, and I will expect emailed submissions to be timestamped before the start of class on Tuesday. I will not assign programming homework on Thursday, although I may assign reading or non-programming assignments (e.g. problem sets). You will have to make a serious and timely effort and produce serious and timely results on all programming assignments in order to do well in the course. If you cannot complete an assignment by the time due, you should submit what you have been able to do by that time (assuming it compiles and links correctly, even if it does not function as desired). I will expect to see any students who are obliged to submit non-working code at some point during my office hours. Corrected code should be submitted as soon as possible after the deadline, even though it will be past the deadline. Failing to meet a deadline does not get you off the hook for the assignment. Indeed, many of the later homework assignments will build on code you generated in earlier assignments. Also, unlike many instructors, I do give partial credit for late submissions. At the end of the

day (or semester), though, you might not consider this to have been a kindness on my part: having to deliver a large number of programming assignments in the waning days of the semester simply in order to pass the course is not the sort of experience I want to share with you.

Grading system
Homework counts for fifty percent of the final grade, with class participation counting ten percent and the two midterm exams counting fifteen percent (7.5 percent each). The final will count twenty-five percent.

Midterm exams
There will be two midterm exams, tentatively scheduled for the fourth or fifth week, and then two weeks before the end of the term. Make-up midterms will be close to impossible for the second midterm, because of its lateness in the term, and will be highly unlikely for the first midterm. I will try to make sure plenty of advance notice is given in class about the midterms.

Final exam
There will be a final exam. However, there will also be a final assignment, due on the last day of class. If not complete by the last day of class, the same rules apply as for all other late homework: any late assignments must be handed in by the end of finals week (not by the Make-up Day). This will allow me time to grade the assignments.


Every student must, before spring break, have at least one one-on-one meeting with me. Each of you will arrange a time with me (outside of office hours, of course) reserve a conference room for that time (MH229 and MH211 are available for student-faculty conferences, but not exclusively for this course), and prepare an agenda for the meeting covering, for example, plans for future study, or concerns about the students own performance. I dont recommend using the 1:1 for a discussion of the most recent homework assignment (thats what office hours are for), but if you are truly strapped for anything to talk about, it is acceptable to devote a small amount of time to this topic. The meeting can be rescheduled if necessary, but I must have advance notice if the meeting needs to be rescheduled, and remember that available time will become limited as spring break approaches. This meeting is a requirement for completion of the course. An hour should be allowed when scheduling the meeting, although thirty minutes may suffice. Only the first meeting is required, but of course other meetings may be scheduled at the students discretion (and subsequent meetings may take place after spring break).

Q: I was sick and couldnt work on the programming assignment. Can I turn it in late without penalty? A: Only if you have contacted me before the due date and made specific arrangements. In such cases it is always good to turn in what you have done by the due date. Q: I was swamped that week with other classes. Can I turn it in late? A: You have to turn it in, so if its late, you will have to turn it in late. Turning in an assignment late will reduce your maximum possible score for the assignment, but in no case will the score be reduced by more than 40% due to lateness. (Not turning in an assignment at all still results in a zero score, however.) Also, advance notice works wonders. Often, when youre swamped with work from other classes, you still know the extra work is coming due well in advance. In such cases your best strategy is to contact me and see if any specific alternate arrangements can be made.

Course objectives as specified by the Department

Students will acquire a basic understanding of the organization of computer systems. Students will acquire familiarity with the standard symbols and conventions for recording and displaying electronic circuits and digital designs. Students will receive instruction in writing readable, well-documented and maintainable assembly code. Students will gain experience in dealing with the fundamental elements and issues of program development.

Students will gain facility with the following aspects of writing C programs: Compilers, object files, linkers, debuggers. In-line assembly code. Formatted I/O, including input validation. Arrays Pointers Common stylistic conventions

Students will gain facility with the following aspects of writing assembly programs: Assemblers, object files, linkers, debug utilities. High-level language calls. Operating system calls in DOS. Arrays Pointers Common stylistic conventions

Upon successful completion of the course, students should be able to: Write and debug assembly language programs until they run correctly without the need to refer extensively to any reference resources. Be able to use a standard text editor such as vim or emacs. Use a debugger (such as gdb) for program development and debugging Produce code that is clear, correct, and well-organized. Read, interpret and even debug assembly code written by others. Answer general questions about program development and tools. Describe in detail the workings of any aspect of a CPU.

Dept. of Computer Science Additional Green Sheet Information Required by the University
Academic Integrity:
Your own commitment to learning, as evidenced by your enrollment at SJSU, and the Universitys Academic Integrity Policy require you to be honest in all your academic course work. Faculty members are required to report all infractions to the Office of Student Conduct and Ethical Development. The policy on academic integrity may be found at http://sa.sjsu.edu/judicial_affairs/.

Further information:
If you need course adaptations because of a disability, or if you need special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible , or see me during office hours. Presidential Directive 97-03 requires that students with disabilities requesting accommodations register with the SJSU Disability Resource Center to establish a record of their disability. Please familiarize yourself with SJSU policies and procedures at: http://info.sjsu.edu/static/soc-fall/soc-fall.html, and http://info.sjsu.edu/static/catalog/policies.html, particularly the add/drop policy. It is your responsibility to know and observe these policies. However if there is something about a policy that you dont understand, please ask!