Homepage: All
assignments and other information dealing with the course are posted on
the
course
page (www.cs.usu.edu/allan/5300).
Requirements:
Homework:
There are four written homework assignments. They are due at 11:59:59 pm
on the day specified on the assignment. All assignments are turned
in using the eagle system.
Remember you have to enroll in this class on the
eagle system. Assignments turned in after 11:59:59 pm on the due date are late.
Students are responsible for turning in their assignments on time.
The assignments are to be done individually. Homework must be done
using Word or a compatible system.
Project:
There is a programming project in this course. It consists of
writing a compiler for a programming language named CPSL.
There are 9 phases assigned during the semester. The point
distribution for each project phase is:
| Phase |
Name |
Points |
| 1 |
Lexical Analysis |
30 |
| 2 |
Parsing |
30 |
| 3 |
Symbol Table |
50 |
| 4 |
Declarations |
50 |
| 5 |
Expressions |
50 |
| 6 |
Simple Statements |
50 |
| 7 |
Control Statements |
50 |
| 8 |
User Defined Types |
50 |
| 9 |
Procedures and Functions |
50 |
Each phase of the project is graded on whether it is working, efficiency, and readability of code. The most
important aspect is whether it is working. You are expected to be
able to explain any part of the compiler you have implemented, if
asked. If you cannot explain your work, it is considered
cheating.
Each phase of the compiler is due at 11:59:59pm on the day specified.
Each phase of the project should be submitted to the
eagle system as a
zip file with all relevant files included.
Class: It
is expected that you will attend every class and be prepared to discuss
the material for the day. Missing more than a week of class (or
not being prepared) can affect your grade. In order to emphasize
this, unannounced quizzes are given at random times throughout the
semester. These quizzes cannot
be made up.
Exams:
There are two midterms and a final. The midterms are worth 100
points each and the final is worth 150 points. The midterms are
given on Monday, October 10th and Monday, November 7th.
The final is given on Monday, December 12th at 11:30am, is not optional and is comprehensive.
Grading:
| Homework |
85 |
| Project |
410 |
| Exams |
350 |
| Attendance and preparation |
25 |
| Total |
870 |
You may be given an F is either your
overall average is below 50% or your performance in any one
of the above categories is below 40%.
Grades can be checked using the
eagle system. Special announcements about the class are
also posted on the eagle system, so it
is suggested that you check the eagle system often.
Programming Language:
This course relies heavily on the C or C++ programming language.
Make sure you are familiar with one of them, especially pointers.
You will save a lot of time if you have a thorough knowledge of the
debugger. Take time early in the semester to become familiar with
it.
Regrading: If you
feel that an assignment or exam has been graded incorrectly, submit a
concise written summary of your concern to the instructor. These
requests should be submitted within a week of the return of the assignment
or exam. Requests of the form "I feel I deserve more
points" are rejected almost instantaneously.
Late Work: All work
is due on the date specified at the time described above. Late work
creates difficulty in grading. Late work is accepted with a penalty
of 10% of the possible points per day (weekends are not counted).
Keep up with your work.
Outline: We
cover about half of the book. Keep up with your reading even though
you are doing a lot of programming. The
topics are shown below.
| Introduction to Compiling - 1 |
Run-Time Environments - 7 |
| Lexical Analysis - 3 |
Intermediate Code Generation - 8 |
| Syntax Analysis - 4 |
Code Generation - 9 |
| Syntax Directed Translation - 5 |
Code Optimization - 10 |
| Type Checking - 6 |
|
Etiquette: Please
read the page
www.cs.usu.edu/allan/Advising/Etiquette.html for some interesting
information about interaction with the instructor, classroom behavior, and
cell phones.
Cheating: Cheating
will be dealt with severely. The penalty given will be worse than
not having done the assignment or taken the exam. The least
penalty possible is negative points.
When cheating occurs, a letter to that effect is placed
in your file and a copy of the letter is sent to the dean's office.
Flagrant cheating involves turning in another's work as
your own. However, there are many other forms for dishonesty that
are also considered cheating. Allowing others to copy from your work
is considered cheating, and both of you will be penalized. Do not
put your friends in an awkward position by asking them to help you
cheat. If there are any questions, please refer to the departmental
cheating policy.
Time: This is a time
consuming class; make sure you plan enough time for the class. This
is the first class that you write a large program (about 3,000 lines of
code). Make sure you keep up. Do not think that you will be
able to complete a phase of the project by spending two or three days
straight. The benefits of working a constant number of hours per
week far exceeds the benefits from spurts of effort even though the
total number of hours spent is the same. There is conceptual
work that needs to be done. Start on each phase as soon as
possible. Do not think you are doing fine just because you are as
far along as your friends.
Incompletes:
According to university policy, incompletes are not to be given for poor
performance. There will be no incompletes given except for
conditions beyond the student's control. Such conditions have to
have written documentation. The term "conditions beyond the
student's control" includes (1) incapacitating illnesses that prevent
a student from attending classes for a period of at least two weeks; (2) a
death in the immediate family; (3) financial responsibilities requiring a
student to alter course schedule to secure employment; (4) change in work
schedule as required by an employer; or (5) other emergencies of this
nature. When an incomplete is given, it is anticipated that the
remaining work will be finished within two or three weeks. If the
course must be retaken to make up the work, an incomplete is no
appropriate. There are provisions in case of emergency to permit a
student to withdraw (grade of W) from a course after the regular drop
period when it is not feasible to give an I.
ADA Statement: If a
student has a disability that will likely require some accommodation by
the instructor, the student must contact the instructor and document the
disability through the Disability Resource Center, preferably during
the first week of the course. Any requests for special
considerations relating to attendance, pedagogy, taking of examinations,
etc., must be discussed with and approved by the instructor. In
cooperation with the Disability Resource Center, course materials, can be
provided in alternative formats - large print, audio, diskette or Braille.
Class Fee:
Associated with this class is a fee of $25.
The monies from this fee are used to maintain lab
facilities for the class, purchase software and licenses, and supervise
the lab. In some cases, students may have their own computing equipment,
and thus feel that they do not need to use the lab. However, the lab must
be maintained regardless of and individual's use of it, and thus the fee
is charged to all registered for the class. If you have questions or
concerns about the fee, please see the department head.
Late Adds: The last day to add
this class is September 19th. Attending this class beyond that date without being officially registered will not be approved by the Dean's Office.
Students must be officially registered for this class. No assignments or tests of any kind will be graded for students whose names do not appear on
the class list.
Drop Dates: The last
day to drop classes is: