CS211: Syllabus
Contents
Policies
You are responsible for knowing the information in this document and the complete list of policies on the course website.
This document is located on the course website at http://www.cs.cornell.edu/courses/cs211/ at the
Syllabus link.
Course Description
- name: COM S 211/ENGRD 211: Computers and Programming
- semesters offered: fall, spring, summer
- credit hours: 3
- prerequisites: COM S 100 or an equivalent course in Java or C++
- grade option: letter or S/U
- course description: Intermediate programming in a
high-level language and introduction to computer science. Topics include
program structure and organization, modules (classes), program development,
proofs of program correctness, recursion, data structures and types (lists,
stacks, queues, trees), object-oriented and functional programming, and
analysis of algorithms. Java is the principal programming language.
- course website: http://www.cs.cornell.edu/courses/cs211/
- course newsgroup:
cornell.class.cs211
Course Objectives
In CS211, you are expected to learn the following:
- concepts in modern programming languages, which include classes and objects, inheritance, recursion, threads, and concurrency
- data structures, like lists, stacks, queues, trees, hash-tables, collections
- JFC (Java Foundation Classes), which are in the Java API
- the ability to produce properly-styled code in a structured fashion
Staff
The following is a summary of the staff for CS211 and CS212. Refer to Staff
link from the course website for an updated and complete listing of names, locations, and office hours.
- Instructors:
We have two instructors involved with CS211 and CS212, as listed below:
Professor Keshav Pingali
Address: 457 Rhodes Hall
Phone: 255-7203
E-mail: pingali@cs.cornell.edu
Office Hours: TBA
Professor David I. Schwartz
Address: 5137 Upson Hall
Phone: 255-5395
E-mail: dis@cs.cornell.edu
Office Hours: TBA
- Teaching Assistants:
The TAs will mainly teach section and assist with homework and exams.
We encourage you to attend their office hours if you have difficulties
in the course.
- Consultants:
Consultants are undergraduate students who have excelled in their coursework and work as graders and tutors primarily for
CS211. They are available in Upson 304 most afternoons and evenings. We will post the schedule in
Staff and on the door for Upson 304.
Related Courses
Refer to
http://www.cs.cornell.edu/ugrad/FirstCourse.html
for information about other "early" programming courses if
you need help in deciding whether or not to take CS211.
CS212
CS212 is a 1-credit project course that the computer science major requires. Students may either take CS212 simultaneously
with CS211 or afterwards, though we recommend taking CS212 as a corequisite.
See
http://www.cs.cornell.edu/courses/cs212/2002fa.
Lectures
You are expected to attend all lectures:
CS Course ID |
ENGRD Course ID |
Section |
Day |
Time |
Place |
625-772 | 625-807 | SEC 01 | T | 10:10AM-11:00AM | 155 Olin Hall |
Sections
You are expected to attend section once per week. Sections will cover some material not covered in
lecture and provide an opportunity for questions on recent material, assignments,
and exams. You may attend any section, but we prefer that you select one and stay with it.
The current sections are as follows:
CS Course ID |
ENGRD Course ID |
Section |
Day |
Time |
Place |
Person |
625-807 | 682-551 | SEC 01 | T | 1220-0110P | HO 306 | Yoon
|
625-844 | 682-783 | SEC 02 | T | 0125-0215P | UP 205 | Popescu
|
625-917 | 682-899 | SEC 03 | T | 0230-0320P | SE 1120 | Kulkarni
|
626-056 | 682-927 | SEC 04 | T | 0335-0425P | UP 205 | Li
|
626-238 | 683-019 | SEC 05 | W | 1220-0110P | HO 306 | Irawan
|
626-251 | 683-217 | SEC 06 | W | 0125-0215P | UP 111 | Irawan
|
626-277 | 683-353 | SEC 07 | W | 0230-0320P | OH 165 | Ko
|
626-302 | 683-406 | SEC 08 | W | 0335-0425P | PH 407 | Kulkarni
|
626-365 | 683-478 | SEC 09 | R | 0230-0320P | UP 111 | Schwartz
|
626-548 | 683-530 | SEC 10 | W | 1220-0110P | PH 407 | Popescu
|
626-634 | 683-543 | SEC 11 | R | 0230-0320P | UP 111 (was PH 403) | Schwartz
|
Transition to Java
To take CS211, you must be experienced in programming, preferably in an object-oriented language.
For students with limited Java experience, we will hold a Java Bootcamp, which involves about three hours
of training in Java. The bootcamp will introduce you to the basics of object-oriented programming in Java, and
CS211 will have one or two review lectures as well.
Java Bootcamp info:
- Place: Upson B17 (basement of Upson Hall)
- Leader: David I. Schwartz
- Dates: September 3 (Tues) and September 5 (Thurs)
Both sessions will be the same.
- Time: 7:30PM-10:30PM
General advice to learn about Java:
- Go to the bootcamp.
- Get Java in a Nutshell.
- Refer to old CS100J websites, such as
CS100J Fall 2001.
- Review a copy of the bootcamp notes.
- For a discussion of C++ versus Java, see FAQs such as this and others.
- Review the Java Resources document on this website.
- Decide on a Java enviroment. We officially support CodeWarrior, which is described in CodeWarrior Resources.
Academic Excellence Workshop
An Academic Excellence Workshop (AEW) is a small, collaborative class offered in conjunction with
core engineering courses that are facilitated by undergraduate peer educators. The workshops are
based on research showing that collaborative and cooperative methods promote higher grades, greater
persistence, deeper comprehension, and positive attitudes and enjoyment toward learning. Information
about and how to sign up for AEWs can be found here:
We have one workshop available (16-18 students):
- Wednesday, 2:30-4:25 PM, Green Room in ACCEL (see Labs)
- Class begins week of 9/9 (3rd week)
- 1 S/U credit based on attendance
- one non-excused absence allowed
Students can sign up at 167 Olin. To register, visit the Learning Initiatives for Future Engineers (L.I.F.E.)
Program in 167 Olin Hall.
Communication
You are responsible for attending all classes and monitoring messages that we will post on the website and newsgroup. Look
at the USENET Information document for help on accessing the newsgroup.
Homework
You will have about five homework assignments to complete for the semester.
- Partners:
You must follow the rules of Academic Integrity (A.I.) that are posted on the website.
Unless otherwise posted, you must follow these rules:
- You may work with a partner or by yourself for each assignment.
- You may not work with different partners for different parts of the same assignment.
- You may not change or drop partners once you have started working on the assignment.
- You may only "divorce" your partner(s) after you submit an assignment.
- You may change partners for a new assignment.
- You share equal responsibility with your partner for completing the assignment.
- Submission:
- Assignments are due by the posted due dates and times, which are generally at the beginning of lecture.
- You must submit your work via the on-line submission system. We may require you to submit your work via
a backup system, which will be explained later in the semester.
- Late assignments will not be accepted.
- Conflicts/Illness:
If you miss an assignment due to illness or another university-excused conflict, you must contact David I. Schwartz and provide
documentation. Valid excuses will usually warrant making up the missed the assignment with the comprehensive makeup exam
(see Exams, below). If you miss more than one assignment, you are strongly encouraged to drop the course.
- Regrades:
- Submit requests for clarifications or to correct mistakes. We reserve the right to regrade the entire assignment, and as a result,
we might raise or lower your entire score.
- Do not e-mail the course staff to request a regrade.
- Unless otherwise posted, do not use the on-line regrade system!
- You must submit your request within one week of the posting of both the grading guide and solutions, unless otherwise posted.
- Print out a copy of your grading comments and assignment.
- Fill out a regrade form, which you will find outside of 303 Upson.
- Staple the form to the front of your grading comments and assignment hardcopies submit it in Upson 304.
- Ensure that the consultant on duty logs your request.
- Regrades are usually processed within one week of the posted deadline.
- Format:
For each assignment, you must do the following:
Exams
- Requirements:
You are required to take two prelims and a final exam:
- Prelim 1: Thursday, October 17, 7:30-9:00 PM
- Prelim 2: Tuesday, November 19, 7:30-9:00 PM
- Final: Friday, December 13, 9:00-11:30 AM
See Exams for rooms, practice prelims, actual prelims, and solutions.
- Retrieving:
We distribute prelims in Upson 304 usually the day after your prelim. Final exams may be reviewed the following semester,
but may not be taken from the room.
- Regrades:
- You must submit your request within one week of the exam date, unless otherwise posted.
- Fill out a regrade form, which you will find outside of 303 Upson.
- Staple the form to the front of your prelim and submit in Upson 304.
- Ensure that the consultant on duty logs your request.
- Regrades are usually processed within one week of the posted deadline.
- Final exam regrade procedures will be posted in announcements before the end of the course.
- Conflicts:
What if you have a known university-excused conflict, like a prelim scheduled at the same time?
You must first try rescheduling the event conflicting with the CS211. If you have exhausted other means for rescheduling your
conflict, you must contact David I. Schwartz two weeks before the exam. You must explain the nature of the conflict and
provide documentation. You might be eligible to take an early prelim offering at 5:45-7:15 PM. We do not offer exams at any
other time.
- Special Needs:
If you have official documentation concerning special needs for exams, you must contact David I. Schwartz and provide a copy
of the documentation.
- Illness:
What happens if you miss one prelim because of illness or unresolvable conflicts? You might be elligible to take a
comprehensive makeup-exam during the last week of classes. This exam covers all content for both prelims
and replaces the score of the missed prelim. This exam cannot replace more than one prelim. You must provide official
documentation to David I. Schwartz within one week of the exam that you missed.
Academic Integrity
All students must follow the Code of Academic Integrity (A.I.) at all times. Each assignment will specify whether
or not you may work with others and, if so, how many. For assignments that allow partners,
only one assignment with all names must be submitted. Exams must always be done individually.
The penalty for any violation of the code is severe. Refer to the rules for
A.I. that are posted on the website.
Grading
Your final grade will be based on the assignments (45%), prelim 1 (15%), prelim 2 (15%), and the final exam (25%). The weights
of individual assignments will differ, depending on the relative difficulty. These weights are approximate,
and we reserve the right to change them.
Required Reading
M. Weiss, Data Structures & Problem Solving Using Java, Addison-Wesley, second edition (2002), ISBN 0-201-74835-5.
Optional Reading
- UML
- ProgramLive,
David Gries and
Paul Gries, 2000.
- Java in a Nutshell (4th ed), David Flanagan,
O'Reilly, 2002.
- The Java Programming Language, Third Edition,
Ken Arnold, James Gosling, and David Holmes,
Addison-Wesley, 2000.
- The Java Language Specification, Second Edition,
Gosling, J. et al, Addison-Wesley, 2000.
- Java:
An Introduction to Computer Science & Programming,
Walter Savitch, Prentice Hall, 2001.
- Java Software Solutions:
Foundations ofProgram Design (2nd edition update), John Lewis and William Loftus,
Addison-Wesley,
2000. You should also investigate the authors' website.
Software Requirements
We require that students use Java SDK 1.3 or higher. The CIT computer labs that support Java use CodeWarrior 8.0. Although
we suggest that you use CodeWarrior for consistency, you may use any development environment that you wish.
See the Java Resources link for help on CodeWarrior and links to other IDEs.
Computer Labs
For public access to CodeWarrior and Java, refer to the Labs link for more details.
What To Do First
- Review this document on the course website. Several items have links to more information!
- Review the rest of the course website.
- Ensure that you have registered for the right lecture (CS211 or ENGRD211) and a corresponding section.
- Access the course newsgroup. Post a message in
cornell.test
if you want to see it "worked."
- Fill out the CS211 Waiver Form and bring it to lecture ASAP!