CPSC 6129 - Zanev - Columbus State University

advertisement
Course Description and
Objectives
Textbook
Software
Methods of Instruction
Evaluation
Student Responsibilities
Attendance Policy
Academic Dishonesty
ADAAccommodation
Notice
Instructor: Dr. Vladimir Zanev
Office Location/Phone Number: CCT 442/ 569-3056
Office Hours: Mon, Wed, Fri: 10:00 a.m.-12:00 noon.
2:00-4:00 p.m.
E-mail: CougarVIEW class e-mail or zanev_vladimir@colstate.edu
Website: http://colstate.view.usg.edu
http://csc.colstate.edu/zanev/current_courses.asp
; Tue,Thu:
This course is offered as an online class in the Fall semester of 2008. Class meets
100% online at
( http://colstate.view.usg.edu )
Online Interface:
CougarVIEW (formerly WebCT Vista) will be the primary system and method of online
interaction in this course. Course materials (course outline, schedule, assignments,
projects, course notes, datasets, discussions, resources, and grading) will be available
through CougarVIEW. You can access CougarVIEW at:
( http://colstate.view.usg.edu )
At this page, click on the "Log-in" link to activate the CougarVIEW logon dialog box,
which will ask for your CougarVIEW username and password. Your CougarVIEW
username and password are:
Username: lastname_firstname
Password: DDMMYY
where DDMMYY is the student birth date. (Example - Birthday of Oct. 25, 1978 is
251078)
If you try the above and CougarVIEW will not let you in, please use the
"Comments/Problems" link at the bottom of the home page to request help. If you are still
having problems gaining access a day or so after the class begins, please e-mail me. Once
you have clicked on the course's name and accessed the course itself, you will find a
home page with links to other sections and tools, and a menu on the left-hand side. This
course homepage and the left-hand menu will give you access to all course materials.
Course Description and Objectives
Course Description:
Prerequisite: CPSC 5135.
From the Catalog: "A study of the principles, concepts, and mechanisms of computer
programming languages-their syntax, semantics, and pragmatics; the processing and
interpretation of computer programs; programming paradigms; and language design.
Additional topics will include language design principles and models of language
implementation."
The primary objective of this course is to understand the theory and practice of compiler
construction and programming language design. This will start with a survey of the basic
structure of a compiler and techniques to build a compiler. We will study briefly the
theory of finite automata, regular expressions, and lexical scanning. We will introduce
the theory of context free grammars and various parsing techniques, and the construction
of abstract syntax trees and symbol tables. Finally, we will take a look at intermediate
machine representations and actual code generation. You will become familiar with the
architecture of a typical small compiler and the standard tools and design approaches
used to construct a compiler.
Expected Outcomes
At the completion of this course, students will have an understanding and knowledge
about:








programming language translation and compilation process
scanning process, finite automata and regular expressions
context-free grammars and parsing
how to use scanners (Lex) and parsers (Yacc)
top-down and bottom-up parsing techiques
semantic analysis using attribute grammars, symbol table, data types and type
checking
runtime environment and memory organization
code generation
Textbook
Textbooks - required
Title: Compiler Construction. Principles and Practice
Authors: Kenneth C. Louden
Edition: 4th
Publisher: PWS Publishing Company (
http://course.com )
ISBN: 0-534-93972-4
Software
Software
To complete all studies, projects, assignments, and exams, you will need a computer
with:


Windows 2000/XP, Internet Explorer, PowerPoint, Notepad, and Word
Cygwin platform with gcc, vi, flex, and bison
Methods of Instruction
Methods of Instruction:





Online Studies
Assignments
Programming projects
Midterm Exam
Final Exam
Online Study
Each student is expected to complete all readings from the textbooks and the tutorials
following the course schedule.
Assignments
The assignments are homework assigned on the concepts covered in the textbook
chapters. They help to reinforce lectures topics covered in class, and help prepare
students for upcoming lessons, projects and exams. The assignments are posted on the
Assignments Web page at the class Web site. The due dates for the assignments are
posted on the Schedule and on the Assignment Web pages. Eight assignments will be
given that build upon the concepts covered in the textbooks. Assignment deadlines are
not flexible for any reason. Late assignments are not accepted for credit. Assignment
submissions are via WebCT Vista dropboxes.
Programming projects
Proper programming language design and compiler construction cannot be learned
simply by reading a textbook. You must practice by implementing real algorithms and
data structures developing scanners, parsers, symbol tables, and code generation. The
programming projects are "hands-on practice" part of the course that allows developing
skills and experience in compiler construction techniques and algorithms. Four to six
programming projects about developing scanners, parsers, symbol tables, compiling and
code generation will be assigned and graded. The programming projects, hints, grading
scales, and due dates will be posted on the Projects Web page. Project submissions are
through WebCT Vista dropboxes. The programming project deadlines are firm. Late
projects are not accepted for credit.
Exams
Your performance in this class will be measured by two online exams - Midterm and
Final Exam. The exams will be problem-solving delivered through the class Web site on
WebCT Vista. No make up exams will be given unless an exam was missed due to a
documented emergency.
Top
...
Evaluation
Evaluation
The final grade will be obtained from the following:
Assignments
Projects
Midterm
Exam
Final Exam
30%
20%
20%
30%
The letter grade will be assigned as follows:
Grade
A
B
C
D
F
Points
90-100
80-89
70-79
60-69
0 -59
Student Responsibilities
Student Responsibilities






Each student is responsible to manage his/her time and maintain the discipline
required to meet the course requirements.
Each student is responsible to study from the textbooks and the tutorials
Each student is responsible to read from the textbook all chapter topics, notes and
references
Each student is responsible to execute the assignments and the programming
projects
Each student is responsible to adhere to all course deadlines
Each student is responsible to take the exams as they are scheduled in the course
schedule.
“I didn’t know” is no an acceptable excuse for failing to meet the course requirements.
Students who fail to meet their responsibilities do so at their own risk.
Attendance Policy
Attendance Policy
Attendance at all classes and other activities (lecture periods, laboratory sessions, tests,
examinations, or other schedule meetings is required of every student at Columbus State
University. The attendance record begins with the first meeting of the class, and one who
registers late is responsible for class work missed. Student should note that the Computer
Science Faculty does not initiate "class drops". A student wishing to drop should
complete the official procedure before the deadline. Those who violate the attendance
policy after that deadline may receive an "F" at the discretion of the instructor. After the
midpoint of the quarter, no drop slip will be signed by the Dean unless extreme
circumstances can be proved.
Academic Dishonesty
Academic Dishonesty: Academic dishonesty includes, but is not limited to, activities
such as cheating and plagiarism
(http://aa.colstate.edu/advising/a.htm#AcademicDishonesty/Academic Misconduct). It is
a basis for disciplinary action. Any work turned in for individual credit must be entirely
the work of the student submitting the work. All work must be your own. You may
share ideas but submitting identical assignments (for example) will be considered
cheating. You may discuss the material in the course and help one another with
debugging; however, any work you hand in for a grade must be your own. A simple
way to avoid inadvertent plagiarism is to talk about the assignments, but don't read each
other's work or write solutions together unless otherwise directed. For your own
protection, keep scratch paper and old versions of assignments to establish ownership,
until after the assignment has been graded and returned toyou. If you have any questions
about this, please see me immediately. For assignments, access to notes, the course
textbooks, books and other publications is allowed. All work that is not your own, MUST
be properly cited. This includes any material found on the Internet. Stealing or giving or
receiving any code, diagrams, drawings, text or designs from another person (CSU or
non-CSU, including the Internet) is not allowed. Having access to another person’s work
on the computer system or giving access to your work to another person is not allowed. It
is your responsibility to keep your work confidential.
No cheating in any form will be tolerated. Penalties for academic dishonesty may
include:




a zero grade on the assignment or exam/quiz
a failing grade for the course
suspension from the Computer Science program
dismissal from the Computer Science program.
All instances of cheating will be documented in writing with a copy placed in the
Department’s files. Students will be expected to discuss the academic misconduct with
the faculty members and the chairperson. For more details see the Faculty
Handbook:http://aa.colstate.edu/faculty/FacHandbook0203/sec100.htm#109.14and the
Student Handbook:http://sa.colstate.edu/handbook/handbook2003.pdf
ADA Accommodation Notice
ADA Accommodation Notice
If you have a documented disability as described by the Rehabilitation Act of 1973 (P.L.
933-112 Section 504) and Americans with Disabilities Act (ADA) and would like to
request academic and/or physical accommodations please the Office of Disability
Services in the Center for Academic Support and Student Retention, Tucker Hall 100 or
at (706) 568-2330, as soon as possible. Course requirements will not be waived but
reasonable accommodations may be provided as appropriate.
Download