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.