CS212: Course Information

Welcome to CS212!

Welome to the CS212 website! You are responsible for the information in this document and the complete list of policies.


Course Description

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

Course Objectives

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.


When To Take CS212

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

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:30pm

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

Lecture

Requirements

You are expected to attend all lectures.

Registration Information

Course ID Section Day Time Place
342-413Lec 01W0335-0425HO B14

Note that there is no "ENGRD 212."

Conduct

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.

Lecture Notes

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.


Section

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)
Compiler342-46901M12:20-1:10PMHO 306Anthony/Aaron
Compiler342-52502M7:30-8:20PMUP 205Oleg/Kevin
Compiler342-47403W7:30-8:20PMUP 205Etan/Aaron
GBA342-tbd04M7:30-8:20PMPH 307Chuck/Anthony
GBA342-tbd05W7:30-8:20PMPH 307Sean/Fabian

Communication

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.


Project

General Information

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.

Compiler Project

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

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.

Partners

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.

Submission

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.

Late Policy

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.

Conflicts/Illness

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

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:

Submission Format

Follow the format specifications listed below CS211's Assignments link. Be sure to review all the submission specifications.

Taking CS212 Multiple Times

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:


Exams

CS212 has no prelims and no final exam. We might give a quiz at the end of the semester for bonus points.


Academic Integrity

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:

Notes

Doing Homework

Submitting Homework

Contacting Students and Staff

Penalties


Course Grades

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.


Reading And Textbooks

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.


Software Requirements And Resources

Refer to the CS211 requirements. See also our own Java Help.


Special Needs and Disabilities

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.