Welome to the CS212 website! You are responsible for the information in this document and the complete list of policies.
| Name | COM S 212: Java Practicum, or just CS212 |
|---|---|
| Semesters offered | fall, spring |
| 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/2007sp |
| 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 separate assignments. This semester we offer two different Projects. The course topics will be listed along with lecture notes at the Lecture Notes 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 | Location | Office Hours |
|---|---|---|---|
| Instructor | David I. Schwartz dis [at] cs cornell edu 255-5395 |
5137 Upson Hall | Open hours: Fri 1:30-3pm
appointments: e-mail whh [at] cs cornell edu |
| Course Administrator | Bill Hogan whh [at] cs cornell edu 255-7790 |
4119 Upson Hall | 9:00am-11:30am & 1:30-4:30 |
| Compiler TAs | Etan Bukiet eab68 [at] cornell edu |
328C Upson | Tue 10-11am |
| Christopher Fellows ckf5 [at] cornell edu |
N/A | N/A | |
| Kevin Hunton Foster khf5 [at] cornell edu |
328C Upson | Thurs 1 -2pm | |
| Anthony Jawad ahj5 [at] cornell edu |
328A Upson | Mon 11-12 | |
| Oleg Sagalchik os36 [at] cornell edu |
328A Upson | Wed 1:30 - 2:30 |
|
| Aaron Daniel Sidford ads68 [at] cornell.edu |
328 Upson | TBA | |
| GBA TAs | Fabian Canas ffc3 [at] cornell edu |
328B Upson | Thurs 12:20-1:15pm |
| Zoe Chiang lzc2 [at] cornell edu |
328 Upson | Fri 2:30-3:30pm | |
| Sean Cameron Francis-Lyon scf29 [at] cornell edu |
328D Upson | Tues 5-6pm | |
| Anthony Jawad ahj5 [at] cornell edu |
328A Upson | Mon 11-12 | |
| Chuck Sakoda cms235 [at] cornell edu |
328A Upson | Thurs 5:30-6:30pm |
You are expected to attend all lectures.
| Course ID | Section | Day | Time | Place |
|---|---|---|---|---|
| 342-413 | Lec 01 | W | 0335-0425 | HO B14 |
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 Lecture Notes 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 require section attendance. Note that sections are split based on projects. We post section material in Section Notes.
| Project | Course ID | Section # | Day | Time | Place | Instructor(s) |
|---|---|---|---|---|---|---|
| Compiler | 342-469 | 01 | M | 12:20-1:10PM | HO 306 | Anthony/Aaron |
| Compiler | 342-525 | 02 | M | 7:30-8:20PM | UP 205 | Oleg/Kevin |
| Compiler | 342-474 | 03 | W | 7:30-8:20PM | UP 205 | Etan/Aaron |
| GBA | 342-tbd | 04 | M | 7:30-8:20PM | PH 307 | Chuck/Anthony |
| GBA | 342-tbd | 05 | W | 7:30-8:20PM | PH 307 | Sean/Fabian |
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, which we post along with each project.
You will have separate 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.
This semester we provide a choice of two projects. We will determine how project selection will occur about 3 weeks into the semester. You might not get your primary choice of project, but we will try to place people according to their wishes and skills.
The Compiler 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:
For more information, see Compiler Project under Compiler.
The GameBoy Advance (GBA) Game Project (or just GBA Project) involves writing a game for Nintendo's GameBoy Advance handheld game system. As this project is still relatively new, the parts are less defined and may fluctuate. However, the primary work involves creating at least one game, which the staff will likely specify. However, students will have opportunities to expand the feature set.
For more information, see GBA Project under GBA.
Unless otherwise posted, you must follow these rules:
The GBA Project will likely require stricter rules, in that students will need to continue working with the same group.
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 a major portion of the project, you should drop the course. Missing the last part 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 format specifications listed below CS211's Assignments link. Be sure to review all the submission specifications.
Some students have asked about taking CS212 multiple times to do both projects. We summarize the rules that we know about. We advise checking with your own college's advising office for the specific rules:
CS212 has no prelims and no final exam. We might give a quiz at the end of the semester for bonus points.
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, which will range between about 5 and 35% of the grade. All partners must contribute equally. If discrepancies arise, we will adjust course grades accordingly, as stated above in Projects. The Course Evaluation will count towards 1% of your grade.
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. See also our own Java Help.
In compliance with the Cornell University policy and equal access laws, we are available to discuss appropriate academic accommodations that may be required for students with special needs and/or disabilities. Requests for academic accommodations are to be made during the first three weeks of the semester and must be accompanied by official documentation. Please register with Student Disability Services in 420 CCC to verify your eligibility.