CS212: Course Information

Contents

0. Policies 7. Communication
1. Course Description 8. Project
2. Course Objectives 9. Exams
3. When To Take CS212 10. Academic Integrity
4. Staff 11. Course Grades
5. Lecture 12. Reading and Textbooks
6. Section 13. Software Requirements and Resources

0. Policies

You are responsible for the information in this document and the complete list of policies on the course website.

1. Course Description

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

2. 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 four assignments. The assignment is described below in Project. The course topics will be listed along with lecture notes at the Notes & Examples link.

3. 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.

4. Staff

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

5. Lecture

5.1 Requirements

You are expected to attend all lectures.

5.2 Registration Information

Course ID Section Day Time Place
345-948Lec 01W0335-0425PH 101

Note that there is no "ENGRD 212."

5.3 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.

5.4 Lecture Notes

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.

6. Section

We will occasionally use sections. Specific dates will be announced on-line and in lecture.

7. 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 at the Project link.

8. Project

8.1 General Information

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:

8.2 Partners

Unless otherwise posted, you must follow these rules:

8.3 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.

8.4 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.

8.5 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 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.

8.6 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:

8.7 Submission Format

Follow the CS211 format. Be sure to review all the submission specifications.

9. Exams

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.

10. 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:

10.1 Notes

10.2 Doing Homework

10.3 Submitting Homework

10.4 Contacting Students and Staff

10.5 Penalties

11. Course Grades

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:

PartWeight
19%
225%
335%
430%
E1%

E represents the university evaluation.

12. 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.

13. Software Requirements And Resources

Refer to the CS211 requirements.