Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Cornell University CS 211, Spring 1998 CS211 Info Sheet Basic information Lectures: Instructor: Instructor Oce Hours: Recitations: TAs: TA Oce Hours: Consultant Oce Hours: Tuesday and Thursday, 10:10{11:00 am, Olin 155. Prof. M. W. Godfrey, Upson 308. Tuesday and Thursday, 3:00 pm to 4:00 pm, or by appointment. TBA (see course web page) TBA (see course web page) TBA (see course web page) TBA (see course web page) Course texts Required: Core Java, vol. 1 by Horstman and Cornell (Prentice-Hall) | Be sure to get the latest edition which covers version 1.1 of the Java language. This book explains the basics of Java and object-oriented programming very nicely. Alternatives and Extras: Data Structures in Java by Standish (Addison-Wesley) | Does a good job of covering more abstract topics such as data structures. Not a lot of programming language detail, and much of the book covers topics that you won't see until CS410. Java in a Nutshell (second ed.), by David Flanagan (O'Reilly and Assoc.) | An excellent language reference for the practising Java programmer; i.e., it has all of the details of what methods are in each class in the standard Java libraries. Be sure to get the second edition (there's a tiger on the cover) which covers Java version 1.1. It's cheap too. Not a good choice for learning object-oriented programming, 'tho, as it is basically a reference book. A nice complement to Core Java. Well worth reading but not essential to the course: Code Complete, by Steve McConnell (Microsoft Press) | This is a very readable book, and contains a lot of wisdom about how to write programs. You should be able to handle the bulk of it already. Good summer reading! Highly recommended. Don't be deterred by its length, it's easy to read in small doses. Microserfs, by Douglas Coupland | This is a ctional book about life in the software industry. It's pretty accurate and very enjoyable. Sit down and read it over the weekend. Other information Expectations: You are going to work hard. You are going to learn a lot of interesting and important stu. You are going to enjoy yourself. Well, those are my expectations. I'm hoping that by the end of term you'll agree with all three of these statements. CS211 Info Sheet Page 1 of 4 Cornell University Course Web Page: CS 211, Spring 1998 http://www.cs.cornell.edu/Info/Courses/Current/CS211 The course web page will be your rst stop for any questions you might have. We will keep it up-to-date. Lecture notes, assignment information, and other vital tidbits will appear there. You must check the web page often, as much important information will appear there. Please note there there are almost 300 people enrolled in this course. We really cannot spend our time answering the same questions over and over, so please check the web page rst for any information you seek. Course Newsgroup: Messages will be posted to the course newsgroup cornell.class.cs211 and archived on the course web page. Please check regularly. Course Administrator: Laurie Buck, Upson 303. Phone: 255-3534. Email: [email protected]. Laurie will maintain all grading information. She is the rst human to contact if you have an administrative question (i.e., after you have checked the course web pages rst). Consulting Sta: Consultants will be available in Upson 305 most afternoons and evenings. TAs will also have regular oce hours elsewhere. Details will be announced on the web. Assumed Background: Basically, we assume you have taken CS100 in Java, as oered in the Fall of 1997. We will assume basic familiarity with the Java language (e.g., simple variables, for loops, method/procedure denition etc.), and with object-oriented programming (e.g., object references, instantiation, inheritance, etc.). However, we do realize that many of you will not have taken the most recent oering of CS100. Therefore, your options are: Attend the CS211 Java boot camp (see below), do the exercises, and complete assignment #0 (worth no marks); continue in CS211 this term. Retake or audit CS100 in Java; take CS211 later. Spend some time teaching yourself Java (read Core Java) this term; take CS211 later. Our rule of thumb is that if you have CS100-like experience in C or C++, then the \boot camp" is likely to be a reasonable option for you. If your experience is in another language such as Pascal or Basic, then it is likely you will need to spend a little time learning Java and object-oriented programming. But the choice is yours. The due date of the rst assignment will be delayed slightly to allow students unfamiliar with Java to get in some extra practice. Java Boot Camp: We will be holding a review session over the rst two Thursday nights for students who do not have a good background in Java. We will assume that you can already program at a CS100 level in another language. These sessions are intended for students with no programming background in Java who wish to learn the basics of Java and object-oriented programming. Please read through chapters 3, 4, and 5 of Core Java as preparation. The sessions will be held Thurs Jan 22, and Thurs Jan 29 in Olin 155 from 7:00 pm to 10:00 pm. Plan to attend both sessions if you did not take CS100 in Java last term. Code Warrior Demos: CS100 will be holding several sessions on how to use the CodeWarrior system. If you have not used CodeWarrior with Java then plan to attend one of these sessions (they will all have the same content): Tues Jan 20 7-9 pm Wed Jan 21 7-9 pm Sun Jan 24 3-5 pm and 7-9 pm CS211 Info Sheet Page 2 of 4 Cornell University CS 211, Spring 1998 Computing Resources: We will be using Java as the programming language for CS211, and we will assume that you are using CodeWarrior toolset from Metrowerks to do your Java programming. CodeWarrior has been installed in undergraduate lab in the basement of Upson and on all other CIT labs on machines with sucient capacity. You can (optionally) purchase CodeWarrior for both Mac and Windows from the campus store. If you have problems installing CodeWarrior on your home computer, please contact Metrowerks (www.metrowerks.com), not the course sta. It may be also possible to do many of the assignments using a Java tool other than CodeWarrior (e.g., VJ++, VisualAge, Cafe, JDK). We have no objection to this. However, if you choose to follow this path, you will be on your own if problems crop up. Collaboration and Academic Integrity: In short, plagiarism is a form of academic fraud and is treated very seriously. If you have any questions, consult the course sta. You are expected to abide by the Cornell academic integrity code. Some projects in this course will be done in small groups; the rest will be done alone. Collaboration and co-operative work is required within the groups, but not allowed between groups. General discussion of the topics of the solitary assignments is allowed unless the assignment forbids it, but specic discussion, sharing of code, and the like are violations of academic integrity. In addition, faking the output of any programs is also illegal; if your program doesn't work, don't try to pretend that it does. It is not dicult for the graders to detect undue collaboration, and every year several students discover this the hard way. You do not want to become a trophy head on my oce wall (for one thing, I'm running out of room). Note that it is also a serious oense to help someone commit plagiarism. Do not \lend" your printouts or source les or let others have copies of them. If you suspect someone has stolen a copy of your work somehow, contact your instructor immediately. Recitations: Recitations, or tutorials, are an important part of the course. The TAs will be going over examples of concepts discussed in class, going over ne points of assignments, discussing how to use the tools, etc. Recitations are meant to be more interactive than lectures, so bring your questions and don't be afraid to raise your hand. Handing In Assignments: Each assignment will contain instructions as to when it is due, and what is expected to be handed in. Late Policy: Assignments are due at the beginning of class (if due in class) or by the end of the TA oce hour on the due date. You may also hand them in earlier to a TA or the instructor during an oce hour. Late assignments are not accepted for credit. You will nd that right before the assignment is due the computer labs may be very busy, and it may be dicult to nd a computer. There is always the possibility of a printer jam, and other such delights. It is your responsibility to complete the assignment on time regardless of these situations. In the week prior to the assignment due-date, the computer labs will often be relatively idle, and the consultants and TAs have much more time to help you with your assignment. Start your assignment earlier and you will avoid many problems. Getting Back Graded Assignments: Graded assignments will be available in the consulting oce (Upson 305). If you have a serious disagreement with the grading of an assignment, you may submit it for a regrade. To do so, ll out a regrade form (available on the rack outside of Upson 303) and staple it to your assignment. Leave the assignment in the CS211 mailbox in Upson 303 (check the oce hours). You have one week after an assignment is returned to submit a regrade. Please note that by submitting the assignment for a regrade, you understand that your grade may be left the same, raised, or even lowered. CS211 Info Sheet Page 3 of 4 Cornell University CS 211, Spring 1998 Grading: Your nal grade will be based on the assignments, two prelims, and either a project or exam (our choice; likely a project): Assignments (5 or 6) 50% Prelims (2) 30% Project or Exam 20% Important Dates: Check web page for prelim dates. Getting Help: You are mature Cornell students (!!). You should be intelligent and experienced enough to look for a lot of information by yourself (or, if you aren't, it's about time for you to learn). There are a variety of sources of information available. The CS211 consultants in Upson 305. Check the door for schedule information. Tool help pages. Please spend some time running demos and looking through the help pages if you have questions about the tools. The web. If you've never looked, there is a whomping amount of information out there on all sorts of topics related to the course. The course home page will have pointers to some good starting points, but you should also learn how to use a good web query engine, like AltaVista. Two important web sites are Metrowerks (who make CodeWarrior) at www.metrowerks.com, and Sun (who created Java) at www.javasoft.com. Textbooks, and library books. Experimentation. A good way to gure out what something does is to write a short program to try it out. Other students, especially your teammates. It is acceptable to ask any other student for details of tools and/or languages as long as they don't write any code for you or solve any of the assignment. \I still have a question..." OK, if you have checked the web page and other appropriate resources and still have an unanswered question, then you can: drop by a during consultant, TA, or instructor oce hour. post a query to the newsgroup (cornell.class.cs211) send mail to the course account ([email protected]). CS211 Info Sheet Page 4 of 4