<h2>CS2330: Languages and Translations</h2>
<h3>Summer 2000</h3>
[ Description | Instructors | Grading | Coding Standards | Workon | Newsgroups | TAs | References | Links | FAQ ]


Official Course Description

Machine translation in the context of learning imperative programming. Covers tokenizing, parsing, machine representations of high-level data, scoping, and functions. Introduces functional programming.

A More Accurate Course Description

CS2330 begins by introducing students to the C programming language, which is used to complete all assignments. The class then becomes more of an "introduction to compilers" course, where students are introduced to the concepts of regular expressions, finite state automaton, context free grammars, LL(k) and LR(k) parsing, interpretation of source code, and language translation. Towards the end of the semester, students are introduced to functional programming, and learn more about the object-oriented and imperative paradigms.


Instructor Information

CS2330:
Jim Greenlee
College of Computing room 115
404-894-6049
Email: jkg@cc.gatech.edu, jkg@prism.gatech.edu, jkg@eecom.gatech.edu

CS2331:
Mike McCracken
http://www.cc.gatech.edu/computing/SW_Eng/people/Faculty/Mike.McCracken.html
Office hours by appointment, email Gwen


Grading

Homeworks25%
Midterm30%
Final45%

At the beginning of the class, you will be assigned a TA. This TA will be your first point of contact when you have a question about your grade. The TA will also grade all of your homeworks (the midterm and final are graded by all of the TAs).


Coding Standards

For all homework assignments, until the end of the semester, all code you submit must adhere to the following coding standards. Failure to follow the standard will cause you to lose points on the assignment.

Definitions:

Naming conventions:

  1. Macro names and typedef-ed symbols names must be in UPPER CASE.
  2. Names of user functions must be mixed case, and must begin with an upper case letter.
  3. Names of static functions must be lower case, and must begin with an underscore.
Declarations:
  1. Each variable declaration must appear on a line by itself.
Commenting:
  1. Block comments must be written using the following style:
    	    /*
    	     * This is a comment.
    	     */
    
    No other text may appear on the lines with /* and */. The first non-whitespace character on each internal line of the comment must be '*'. The '*' characters must be aligned vertically.
  2. All function definitions must be immediately preceded by a header stating the function name, its purpose in the application, its parameters (name, type, and usage), and the name and purpose of any local variables declared within that function. A list of the other user functions that this function calls is also required. The exact format of this header is TBD (any ideas?).
  3. All function prototypes must be immediately preceded by a header stating the function name, its purpose in the application, and its parameters (name, type, and usage).
  4. All blocks within functions must have a short header stating the purpose of that block in the function. The header must include the names and usage of any local variables declared within that block.
Code:
  1. Every conditional (whether it appears in an if, for, while, etc) must have a relational operator in it.
  2. All programs must be indent-ed using the following options
    -bl -c41 -i4 -l72 -pcs
    Note that all Makefiles distributed with assignments will provide a "make pretty" target that enforces this rule.


Workon

Pretty much everything in CS2330 is done with the "workon" system. You should be familiar with it from previous classes, but if not, here's a quick introduction. First, you may need to install workon. Do this by loggin on to Acme and typing "~icslib/setup" at the prompt. After logging out and back in, type "workon cs2330". Your prompt should change to something like:
cs2330>
Whenever this prompt is shown, you're in the workon environment. You must use the workon environment when you are completing your assignments. If your code does not work in workon, you may receive a 0 (ZERO).

The commands you'll use the most in workon are: getjob, turnin, and viewgrades. getjob copies a homework assignment into your directory. For instance, if you wanted to get all the files for hw0, you'd type:
cs2330> getjob hw0
You should see a report of what files getjob copied. The file containing the actual assignment always has the '.nfo' extension. You may also receive other files along with a .nfo file -- these are needed to complete the assignment.

When you are done with a homework assignment, you can turn it in with turnin (unless otherwise instructed). To turn in a file (say a solution to hw0, in the file hw0.ans), you'd type:
cs2330> turnin hw0 hw0.ans
The first argument, hw0, is the assignment name. This should be the same name that you used for getjob. The second argument is the file where you have saved your answers.

The last command you'll use a lot is viewgrades. If it's not obvious, viewgrades allows you to view all of your grades that have been entered into the system.

Formatting Your Answer File

When creating your answer file, we prefer you to follow the following guidelines:

It sounds simple, and it is. So do it.


The Newsgroups

There are 4 newsgroups associated with CS2330:

git.cc.class.cs2330.announce General announcements about Very Important Things. Homework announcements will be posted here, along with any clarifications that are of general interest.
git.cc.class.cs2330.homeworks Questions (and their answers) that are specific to homework assignments.
git.cc.class.cs2331.lab Questions (and their answers) that are specific to laboratory assignments.
git.cc.class.cs2330.questions General questions (and their answers) about course-related topics or issues that are NOT appropriate for the .homeworks or .lab groups.
git.cc.class.cs2330.flame Complaints and other postings that are not appropriate for the other newsgroups.

Some other newsgroups you may want to check out are:

Official Rules and Regulations for Newsgroup Usage
  1. Students in CS 2330 are responsible for all information posted in any of the .announce, .homeworks, or (if they are taking CS 2331 on a grade basis) .lab newsgroups. These newsgroups are specifically set up for use by students, faculty, and staff who are directly affiliated with these courses. IF YOU ARE NOT SO AFFILIATED, THEN DO NOT POST IN THESE NEWSGROUPS. If you want to post an off-topic remark, then do it in .flame (see below).

  2. Homework and lab assignments will be posted in .announce and cross-posted to their respective newsgroups. Further discussion will be directed to (and should take place in) the appropriate newsgroup, depending on what type of assignment it is.

  3. The .questions newsgroup should be used for issues that are peripherally related to the course content, but are not specific to any of the .announce, .homeworks, or .lab newsgroups. These might include questions about courseware (compilers, editors, etc), general programming techniques or strategies, system and library calls, etc.

    While students are not required to read this newsgroup, they should definitely try to keep up with some of what is going on here, as it might help with their overall efficiency in completing assignments.

  4. The purpose of the .flame newsgroup should be self-explanatory. No specific rules of decorum apply here (other than whatever "reasonable use" requirements are imposed by OIT). It is intended to provide a forum where students, TAs, and faculty can engage in healthy, spirited debate about whatever ails them. In other words, its purpose is purely cathartic.

    HOWEVER - do not allow discussions from the .flame newsgroup to spill over into other newsgroups. There is to be no cross-posting between .flame and any other newsgroup in the CS 233x hierarchy (cross-posting to newsgroups outside of CS 233x is permitted, subject to the "rules of normal conduct" for those groups). Any person who violates this rule will be referred to OIT for violation of the Computer Usage Policy.

  5. ALL postings to ANY newsgroup must include valid contact info for the person making the post. This includes your Real Name and a valid E-mail address (a GT address is preferred). Course staff (instructors and TAs) have been given specific instructions to ignore postings that lack this information. Postings that are obviously forged will be forwarded to the proper authorities for investigation.

Other Newsgroup Etiquette

Due to the volume of posts on .homeworks and .questions, we ask that all students follow a few simple guidelines when posting to the newsgroup. First, do not post questions that have already been answered! This wastes the TAs' time and other students' time. If you post a previously answered question, it probably won't be answered, and you may be told (nicely, if you're lucky) that it's been answered. Second, and also very important, indicate the homework and problem number in the subject line. So if you're having a problem figuring out what malloc does on homework 2, p1, a good subject might be: [hw2][p1] malloc. This allows other students to find posts more quickly.


Your New Best Friends (the TAs)

Here's a list of all the TAs, their office hours, when they teach lab, and a link to their homepage (if they have one). Unless otherwise noted, office hours will be held in either CoC room 52 or 53, or in the common area.

Name Office Hours Lab Time Home Page
Ryan Chaves T 5:00-6:30 Th 5:00-6:30 http://angband.org/~desiato/
Danny Diaz T 6:00-7:30 Th 5:00-6:30 http://www.geocities.com/CollegePark/5003
Mike Doyle Th 2:00-3:30
Mike Fulk T 5:00-6:30 Th 5:00-5:30 http://www.cc.gatech.edu/~mfulk
Bruce Labbate Th 2:00-3:30
Patrick McNeill T 5:00-6:30 Th 5:00-6:30 http://templeton.gt.ed.net/~pmcneill/
Bill Murdock T 2:00-3:30 Th 2:00-3:30 http://www.cc.gatech.edu/ai/students/murdock/
Daniel Phommathep Th 2:00-3:30
Sheetal Shah T 5:00-6:30 Th 5:00-6:30
Jason Tang T 2:00-3:30 Th 2:00-3:30 http://www.jtang.org/~tang
David Thompson Th 2:00-3:30
Tracy Westeyn T 5:00-6:30 Th 5:00-6:30

And the random losers who've forgotten they aren't TAs anymore... They might be able to help you though, so listen up!

Name Home Page
Nick Black
Gary Yngve http://www.cc.gatech.edu/~gary/


Handy Dandy References


Some Useful Links


The 233x FAQ

Q: Where does the word "charette" come from?
A: Charette--- \shar-ret'\ n., F: The term "Charette" initially appeared in the early part of the late 1800's. Architecture students in Paris who needed to rush their drawings to the Ecole Des Beaux-Arts placed them on a cart which was called charette. Later the word broadened its meaning and came to describe any intense, short-term student design project. Today the word is used by the architectural community at large to describe any intense, on-the-spot design effort.
From:
http://www.co.new-hanover.nc.us/Media/R990305a.htm


[ Description | Instructor | Grading | Coding Standards | Workon | Newsgroups | TAs | References | Links | FAQ ]


Last Update: June 18, 2000
pmcneill@templeton.gt.ed.net