You are responsible for the information in this document and the complete list of policies on the course website.
Name | COM S 212: Java Practicum, or just CS212 |
---|---|
Semesters offered | fall, spring, summer |
Credit hours | 1 |
Pre- or co-requisite | COM S/ENGRD 211 |
Grade option | letter |
Course description | A project course that introduces students to the ways of software engineering using the Java programming language. The course requires the design and implementation of several large programs. |
Course website | http://www.cs.cornell.edu/courses/cs212/2005fa |
Course newsgroup | cornell.class.cs212 |
In CS212, you are expected to do the following:
To help you develop these skills, you will work on a large-scale project that we split into four assignments. The assignment is described below in Project. The course topics will be listed along with lecture notes at the Notes & Examples link.
CS212 is a one-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 co-requisite. For more information, see CS211 Course Information.
Staff | Name | Phone | Location | Office Hours |
---|---|---|---|---|
Instructor | David I. Schwartz dis@cs.cornell.edu |
255-5395 | 5137 Upson Hall | Open hours: Mon 1:30-3pm
appointments: e-mail Kelly |
Compiler TAs | Etan Bukiet eab68@cornell.edu |
328C Upson | Tue 4:10-5:10pm | |
Kevin Hunton Foster khf5@cornell.edu |
328A Upson | Tue 10:00-11:00am | ||
Oleg Sagalchik os36@cornell.edu |
||||
Aaron Daniel Sidford ads68@cornell.edu |
328C Upson | Thur 3:00-4:00pm | ||
GBA TAs | Fabian Canas ffc3@cornell.edu |
|||
Alexandra Julliet Denby ajd45@cornell.edu |
328B Upson | Wed 2:30-3:30pm | ||
Sean Cameron Francis-Lyon scf29@cornell.edu |
328D Upson | Tue 4:30-5:30pm | ||
Anthony Jawad ahj5@cornell.edu |
328B Upson | Wed 11:00-noon | ||
Course Administrator | Kelly Patwell patwell@cs.cornell.edu |
255-7790 | 5147 Upson Hall | 9:00am-11:30am & 1:30-4:30 |
You are expected to attend all lectures.
Course ID | Section | Day | Time | Place |
---|---|---|---|---|
345-948 | Lec 01 | W | 0335-0425 | PH 101 |
Note that there is no "ENGRD 212."
We expect the following to improve the effectiveness of lecture for all students:
Generally, we prefer class participation, so please feel free to raise your hand to ask a question.
We put most of my files for lecture notes, corresponding readings, and examples at the Notes&Examples link, usually just before or after lecture. Not all material covered in lecture will necessarily be on-line. However, sometimes it's the reverse scenario, so you are responsible for this material.
We will occasionally use sections. Specific dates will be announced on-line and in lecture.
You are responsible for the following forms of communication:
To reach a staff member, the best time is in office hours. Please post general questions on the newsgroup so that others can benefit from your question. We will usually copy important questions and answers in FAQ files at the Project link.
You will have four homework assignments this semester. Each assignment contributes to an overall project that takes the semester to complete. So, each assignment is called a part, using the simple abbreviation of p. During lecture, we will usually give tips on anticipating the next part so that you can work ahead.
To achieve the course objectives, the project involves writing a compiler that translates one computer language (Bali) into another (Sam). Learning how to write the compiler will help to bridge the "gap" between introductory programming courses and more in-depth courses, such as CS312 and CS314. Consequently, the project will introduce you to computer architecture, assembly code, the Java Virtual Machine (JVM), compilers, and data structures. The four parts that have the following structure and goals:
Unless otherwise posted, you must follow these rules:
We will be using an on-line submission system called Course Management System (CMS). If you are working with partners, do not wait until the last minute to submit an assignment! Since your team may only submit one assignment, CMS requires that you and your partners form a group. Group formation requires that each member log into CMS in advance of the due date.
Generally, late assignments receive a 20-point penalty per day late. Once we post solutions, we will not accept any late assignments. If any of your partners has a university-excused conflict (see Conflicts, below), the remaining partners are still responsible for submitting the assignment on time and training the partner(s) who missed some of the work. If you work by yourself and have a university-excused conflict, you need to contact the instructor before the due date to make arrangements.
If you miss an assignment due date because of illness or another university-excused conflict, you must contact the instructor and provide documentation. If you miss more than one assignment, you are strongly encouraged to drop the course. In particular, if you miss Part 3, you should drop the course. Missing Part 4 due to a univeristy-excused conflict will likely result in an incomplete. See also the Late Policy, above.
Regrades are generally due one week after the assignment grades are posted. We will post instructions for each part on the steps to take (sometimes using CMS's system, sometimes scheduling meetings with the staff). We offer similar advice, as given in CS211:
Follow the CS211 format. Be sure to review all the submission specifications.
CS212 has no prelims and no final exam. We will likely give at least one in-class quiz to that test whether or not all members in a group have contributed equally to the project.
All students must follow the Code of Academic Integrity (AI) at all times. Unless posted, follow the rules as listed above in Project. The penalty for any violation of the code is severe. Refer to the rules that are posted below:
Your final grade will be based on the assignments. All partners must contribute equally. If discrepancies arise, we will adjust course grades accordingly, as stated above in Project. The weights of each part are as follows:
Part | Weight |
---|---|
1 | 9% |
2 | 25% |
3 | 35% |
4 | 30% |
E | 1% |
E represents the university evaluation.
Other than course notes and assignments, there are no required readings for CS212. However, we might be interested in these resources:
See also the many references listed on CS211.
Refer to the CS211 requirements.