Welcome to csci0150 (a.k.a. CS15)! This missive is designed to get you acquainted with the history and objectives of CS15, the course personnel, some of your responsibilities, and other essential information about the course. Please read this document carefully; you are responsible for everything in it. More information on the day-to-day operation of the course is available in the Standard Operating Procedures.
CS15: Yesterday and Today
This is the twelfth year CS15 will be taught in Java, one of the foremost object-oriented programming languages used today. As with last year, while students can opt to work from home, we recommend that students take advantage of the department's own computing facility, the Sun Lab, for working on programming assignments, labs, and various other information sessions. The Sun Lab -- originally full of Sun Microsystems computers -- is located in room 143 of the Thomas J. Watson Center for Information Technology (the CIT). It is comprised of 75 state-of-the-art Intel Quad Core workstations, each with 4 gigabytes of main memory. Other computers work together to create our server array and 8.2 TB file system. All these resources make the Sun Lab one of the most powerful and modern undergraduate computing facilities in the world!
As CS15 typically has well over 100 preregistered students, it needs a large room in which to hold lectures. MacMillan 117 is outfitted with the latest audio and video presentation equipment, enabling you to sit very comfortably (don't get too comfortable!) and enjoy electronic lecture slides presented on the big screen. With this electronic lecture slide system, we can record any marks made during class on the slides. The great part is that students will be able to view all of the notes and slides on the Web, with access to synchronized audio from the lectures!
As CS15 students, you will be using the Sun Lab to work on your assignments. Part of your experience in CS15 will be getting used to working on the Linux(tm) operating system. We have written several guides to ease you into these wonderful worlds of Java and Linux. Things may be a bit cryptic at first, but you should soon find yourself at home with the department's computers. The 75 workstations in the Sun Lab should ensure that there is a machine available when you need it.
The course regularly undergoes a major paradigm shift to anticipate developments in the rapidly changing field of computer science. Eleven years ago, we had one of those special years. For the first time, we taught object-oriented design and programming. Object-oriented programming focuses on code reuse: It allows programmers to have access to existing libraries of tested objects that provide a broad range of functionality. The software portion of the entire undergraduate curriculum has been updated to incorporate object-oriented programming. It is one of the most exciting and important concepts in computer science today and has become standard practice in industry.
Java has two advantages. First, it is a relative of C++, the de facto standard language for object-oriented programming. However, Java was designed to be a "cleaner C++"; it is pedagogically more accessible to novices than C++, and is easier and more intuitive to use. Second, Java is enjoying great commercial success, primarily because it was designed as a tool to create programs for the Internet. Brown was one of the first schools in the country to have an introductory Java course. We will also be using the graphics package that Sun created called Swing to introduce students to graphics programming in general, and graphical user interfaces (using buttons, sliders, icons, etc.) in particular. We will be using the book "Object-Oriented Programming in Java: A Graphical Approach" based on CS15 notes by Brown Ph.D. Professor Kate Sanders (RIC) and Professor van Dam, the instructor for CS15.
The Course
Traditionally, CS15 has been both a lot of work and a lot of fun. We hope that, in "learning by doing," everyone will come to appreciate computers, what they can do, and what they can't do.
The objective of CS15 is to introduce computers, systematic analysis of problems, and object-oriented design and programming techniques. The course may be taken by anyone, with or without previous computing experience. No math background beyond basic algebra is required. Anyone considering a concentration in Computer Science or contemplating taking other courses in the CS department should consider taking either CS15, csci0170 (a.k.a. CS17) or csci0190 (a.k.a. CS19) as a gateway course. CS17 is a more general approach to computer science that teaches several different programming languages. It focuses on theoretical and problem-solving skills. CS19 is an advanced programming class in Java for students with significant background in computer science (especially Java). CS19 combines material from CS15 and CS16 into one semester.
CS15 will teach you object-oriented design and programming in Java and the use of graphical user interfaces. It will also introduce you to some of the important concepts in computer science such as data structures and computational efficiency.
The Professor
Professor Andries van Dam, known to all as Andy, has been at Brown since 1965. He helped start Computer Science at Brown and was the department’s first chairperson. This will be his 32nd year at the helm of CS15 and his 43rd year teaching the department's introductory course. Andy is very informal and encourages—indeed demands—student feedback and class participation. His office is Room 465 of the CIT, and his phone number is x3-7640. Andy's office hours are by appointment, or you can often catch him late afternoon by calling his office number. His administrative assistant, Rachel Reisner (rar@cs.brown.edu), books his appointments and can be reached at x3-7616.
The TAs
The following seasoned veterans of CS15 will be Undergraduate Teaching Assistants (otherwise known as TAs) for the class:
Head TAs
Lyla Fujiwara, 2010 |
Henry Jackson, 2009 |
Doug Kirschner, 2010 |
|
TAs
Erik Abi-Khattar, 2010 |
Kyle Cackett, 2011 |
Elizabeth Cheever, 2009 |
Jihan Chao, 2010 |
Chris Coleman, 2011 |
Nell Elliott, 2011 |
Jake Heimark, 2010 |
Peter Kalmakis, 2010 |
Josh Kaplan, 2011 |
Kelly Newton, 2011 |
Osmar Olivo, 2011 |
Laura Parkinson, 2011 |
Bentley Rubinstein, 2009 |
Ashley Tuccero, 2011 |
Alex Unger, 2011 |
|
|
|
|
CS15 is unusual both in the amount of day-to-day work involved and in the amount of personalized help available. With one TA for approximately 8 students, this course offers a great deal of help to those who use the TA system wisely. In particular, we offer over 60 hours per week at “TA hours” where you can get one-on-one help from the TAs, especially with assignments. The TAs, all of whom did well in the course in a previous year and know the material inside out, have four main functions:
- They evaluate and give critical feedback on your assignments.
- They are the people to whom you go with any questions you might have. They're not there only to help people who are having trouble with a concept or assignment, but also for clarification of points brought up in class and general questions about Java, the assignments, object-oriented programming, how the class is run, etc. Please don't hesitate to seek help and advice from them; that's what they're there for.
- They listen to complaints and suggestions about how to improve the course.
- They lead weekly 90-minute labs. Labs are designed to provide a much more personal interaction between students and TAs than is possible in the large lecture format, as well as to reinforce concepts and syntax learned in class.
All regular TAs grade programs, hold TA hours, and have other assorted duties. The Head TAs (who were TAs in previous years) assist and supervise the regular TAs in grading programming assignments to ensure a consistent grading scale and are also responsible for the organization and administration of the course. TA hours will begin on Tuesday, September 9, 2007. See the document Standard Operating Procedures for a more detailed discussion of TA hours.
In the beginning, if a student requires individual help with course material beyond TA hours, we can arrange for that student to receive a tutor. If you are really struggling with course material despite seeking TA help, contact cs015headtas@cs.brown.edu or see a Head TA on hours to discuss tutoring options.
Course Materials
As mentioned, CS15 has a textbook. It is available in the Brown Bookstore, and contains many useful explanations and examples.
We will be handing out assignments and reference materials as the class progresses. Some handouts will be given to you as you enter or leave class. Use the syllabus to make sure you are up to date with the assignments, and make sure to pick up a copy of any assignments or reference materials you have missed by visiting the Assignments section of the CS15 website. If you’re unsure as to which documents you need, contact a TA.
Your most important resource for this class is the CS15 homepage, located at:
http://www.cs.brown.edu/courses/cs015/
Any information you need will be on the homepage or the MOTD (Message of the Day -- see below).
Initial Mechanics
For CS15 internal registration, if you are even considering taking the course, we need to collect your name and AuthID (what you use to log into restricted Brown sites) so that we can get you a log-in as soon as possible, in advance of the first-weekend lab introducing you to the Linux environment. If you haven’t turned in your opening day form, please send your name and AuthID to cs015headtas@cs.brown.edu as soon as possible. This will ensure that when you show up for the first lab, you will be able to get started with minimal hassle. It is in no way committing you to the course. (Note that this is not the same as registering for CS15 with the University. All students must complete our CS15 internal registration, no matter what permissions or forms have been filed with the University registrar.)
Please bring your signed Collaboration Contract to the first lab over the first weekend of classes.
NOTE: If you are not yet sure you want to join the class, or are picking up this class late, please see a Head TA about registering. If you cannot make it to an Introductory Lab or if you missed it for any reason, please see a Head TA as soon as possible to get your account.
Student Responsibilities
Lectures
CS15 lectures are during K hour (Tuesday and Thursday, 2:30pm - 3:50pm). Expect to stay for the full lecture each class day as Andy will always attempt to give you your money's worth. If class is about to run late, the TAs will start yawning and dimming the lights so Andy will get the idea. You are expected to attend all class hours. TAs don't take kindly to going over things that were explained in class just because you weren't there, unless, of course, you have a legitimate excuse for being absent. A copy of the lecture slides will also be accessible online, from the CS15 homepage. You are responsible for everything said in class.
In case you do need to miss lecture, there are ways of catching up. In particular, you can use the CS15 website (http://www.cs.brown.edu/courses/cs015/) to download Andy's notes and audio (in the form of online video) for every lecture on the cs15 webpage. There will be links to these and to information on how to view the files and recorded lectures available off the CS15 homepage.
Labs
There will be weekly 90-minute labs, attendance of which is mandatory. Labs are designed to provide an environment where students can practice coding in Java with TA supervision without the pressure of being graded (though you will be given credit for completing the lab, which will be factored into your final grade). Labs will also review concepts covered in class that you may have problems understanding, give you extra practice applying the concepts, and give you any extra information that you need or want. In addition to programming and discussing Java syntax issues, labs will include topics such as good program design, different design ideas and tradeoffs for your assignments, and final project options. Labs are also a means for you to interact with your lab TAs and bring up any concerns you might have. See the Standard Operating Procedures for detailed lab mechanics.
All labs will meet in the Sun Lab (CIT 143), located on the first floor of the CIT.
Handouts & MOTD
We have spent a lot of time putting all course materials and handouts together to help you, so please read them carefully and thoroughly. You are responsible for the contents of each and every handout. We cannot stress enough how important it is for you to be familiar with everything we give you. Taking a few extra minutes to read these handouts a few times with highlighter or pen in hand will save you, and the TAs, countless hours in the future.
In addition, there is the message of the day (otherwise known as the MOTD), which you must read at least every time you log into your CS account. The MOTD is posted on the CS15 homepage.
The MOTD should be checked at the very least daily. The MOTD will contain administrative information as well as clarifications of technical points and other information that you will need for completing assignments. You are responsible for the contents of the MOTD.
It is up to you to ask the TAs questions when you don't understand the material. If you don't understand what was covered in lecture, see a TA before you try to write the program. Claiming that you don't know something for which you are responsible is not a valid excuse. Please see the Standard Operating Procedures for more information on how to use TA hours properly in CS15.
The Pace: Keeping Up
In general, CS15 and other programming courses require that you start working consistently from the time an assignment is handed out. This will prevent you from getting blown away by unexpected bugs, hardware or software problems, a crowded lab, or acts by a vengeful dog. Procrastination followed by cramming will result in great pain and anguish, while working consistently prevents CS15 from becoming a killer course. This is not a threat but a survival tip.
STARTING EARLY IS THE KEY TO SUCCESSFUL PROGRAMMING.
Keep in mind that assignments are closely spaced and that each assignment uses concepts from previous work. This makes it very difficult to fall behind on one assignment and still complete the next one. We will rarely give extensions, and only for truly extenuating circumstances (the pressure of other courses not being one), and will grant incompletes in the course only if formally approved by a dean.
Grading Standards
There will be no tests, quizzes, papers, or final examinations in CS15! Your grade in this course will be based solely on your performance on the assignments. Assignments are not weighted equally, with the more difficult and important assignments due later in the semester. See the Standard Operating Procedures handout for more information about grading.
After an assignment has been graded, the TAs will email you and put your graded assignment in the handout bin outside of the TA Lab (Room 271). Any questions regarding grading should be addressed to the TA who graded your particular assignment.
Written assignments that are handed in after the due date listed in the syllabus will not be accepted and will receive a "No Credit." Programming assignments that are handed in after the due date listed in the syllabus will be assessed penalties. All programs must be handed in by their late dates in order to avoid receiving an NC on the assignment. There is no late date for the final project or for any of the written assignments; a late written assignment or a late final project is automatically an NC. In addition, an acceptable version (i.e., worthy of a grade higher than C-) of all projects must be submitted in order to pass the course, even if you received an NC on a particular assignment. This is an important concept. Let us emphasize this since some students haven't remembered in the past and have NC'd the course.
Again, see the document Standard Operating Procedures for more information on all grade issues.
We consider grades a necessary evil and would like to view them primarily as a standardized means for giving you feedback on how well you are doing. You should not be overly concerned with initial grades, but continued low marks indicate a problem in understanding the material and should be reason enough to see a TA for help.
Collaboration
CS15 has a Collaboration Policy that provides specific guidelines for what you can and cannot do in regard to working with other students. This policy is based on Brown's Academic Code of Conduct, but it is specific to CS15. Thus, it has its own handout. You should read over the handout very carefully and return the signed portion to your introductory lab over the first weekend.
Changes and Feedback
CS15 is a constantly evolving course. Changes are made in order to adapt both to technological advancements, which are inevitable in the field, and to student concerns and needs. Please give us constructive criticism on any topic, no matter how small you feel it may be—CS15 runs on your criticism! We will pay special attention to how students are doing, the comments you make, and the answers you provide on the several questionnaires that we pass out.
In short, if you don't come to us, we will assume everything is just fine, which may not be an accurate impression - so if you have any problems, please speak up!
Good Luck and Enjoy! |