Compiler Design Specification

advertisement
College of Science at Az Zulfi
Institution:
Academic Department : Department of Computer Science and Information
Computer Science and Information Program
Programme :
Fundamentals of Information Systems
Course :
...............................................................
Course Coordinator :
Programme Coordinator : Associate Prof. Yosry Azzam
…./ … / 1435 H
Course Specification Approved Date :
A. Course Identification and General Information
1. 1 - Course title : Compiler Design
Course Code: CSI 413
2. Credit hours : 3 credit hours (2 lecture + 2 Laboratory)
3 - Program(s) in which the course is offered: Computer Science & Information
4 – Course Language : English
2. 5 - Name of faculty member responsible for the course: Dr.
3. 6 - Level/year at which this course is offered : 5th Level
7 - Pre-requisites for this course (if any) :
 Disc. Math For CS 2 CSI 222, Programming 2 CSI 221
8 - Co-requisites for this course (if any) :
 N/A
9 - Location if not on main campus :
( College of Science at Az Zulfi )
10 - Mode of Instruction (mark all that apply)
A - Traditional classroom
B - Blended (traditional and online)
D - e-learning
E - Correspondence
F - Other
√
What percentage?
80 %
√
What percentage?
10 %
What percentage?
…. %
What percentage?
…. %
What percentage?
10 %
√
Comments :
One-tenth of the course is presented mainly inside video lectures of other instructors
worldwide. They illustrate the same topics that I introduced in my lectures with a
different presentation.
B Objectives
Briefly describe any plans for developing and improving the course that are being
implemented : (e.g. increased use of IT or web based reference material, changes in
content as a result of new research in the field)
1. Using group discussion through the internet with course attending students.
2. Updating the materials of the course to cover the new topics of the field.
Page 2 Of 9
C. Course Description
1. Topics to be Covered
1. Topics to be Covered
No of
Weeks
Contact
hours
3. Introduction to Compilers: The role of language
translation in the programming process; Comparison
of interpreters and compilers, language translation
phases, machine-dependent and machine-independent
aspects of translation, language translation as a
software engineering activity
1
4
4. Lexical Analysis: Application of regular expressions
in lexical scanners,
1
2. List of Topics
4
4
5. Lexical Analysis: hand coded scanner vs.
automatically generated scanners
1
6. Lexical Analysis: formal definition of tokens,
implementation of finite state automata.
1
7. Syntax Analysis: Revision of formal definition of
grammars, BNF and EBNF; bottom-up vs. top-down
parsing,
8. Syntax Analysis: tabular vs. recursive-descent parsers,
error handling,
9. Parsers Implementation: automatic generation of
tabular parsers, symbol table management, the use of
tools in support of the translation process
Page 3 Of 9
4
4
1
4
1
4
1
10.Semantic Analysis: Data type as set of values with set
of operations, data types, type- checking models,
semantic models of user-defined types, parametric
polymorphism, subtype polymorphism, type-checking
algorithms.
4
1
4
11.Intermediate Representation, code generation:
Intermediate and object code, intermediate
representations, implementation of code generators
1
12.Code generation: code generation by tree walking;
context sensitive translation, register use.
1
4
4
13.Code optimization: Machine-independent
optimization; data-flow analysis; loop optimizations;
machine-dependent optimization
1
14.Error Detection and Recovery
1
4
15.Error Repair, Compiler Implementation
1
4
16.Compiler design options and examples: C Compilers
1
4
4
17.C++, Java, and YACC Compilers
18.Project presentation
1
2. Course components (total contact hours and credits per semester):
Lecture
Tutorial
Laboratory
Practical
Other:
Total
Contact
Hours
30
............
...30.........
............
............
60
Credit
30
............
....15........
............
............
45
Page 4 Of 9
3. Additional private study/learning hours expected for
students per week.
5
The private self-study of my student is crucial for this course. It includes:
 reading carefully the topics in the textbook or reference book,
 searching the websites that concerned with the course,
 solving the exercises that are assigned,
 discussing the course topics with the instructor in his office hours,
 watching video lectures of other instructors who presented related topics
worldwide.
The total workload of the student in this course is then: 60 + 5 * 15 = 135 work
hours.
4. Course Learning Outcomes in NQF Domains of Learning and
Alignment with Assessment Methods and Teaching Strategy
NQF Learning Domains
And Course Learning Outcomes
Course
Teaching
Strategies
1.0 Knowledge
1.1 Understand the structure of compilers
Lectures
Lab
demonstrations
Case studies
1.2 Understand the basic techniques used in compiler Individual
construction such as lexical analysis,
presentations
top-down, bottom-up parsing, context-sensitive
analysis, and intermediate code generation
2.0 Cognitive Skills
2.1 explain the core issues of Compiler desighn.
2.2 Design and implement a compiler using a software
engineering approach
Page 5 Of 9
Lectures
Lab
demonstrations
Case studies
Course
Assessment
Methods
Written Exam
Homework
assignments
Lab
assignments
Class
Activities
Quizzes
Written Exam
Homework
assignments
Class Activities
Quizzes
NQF Learning Domains
And Course Learning Outcomes
3.0 Interpersonal Skills & Responsibility
3.1 Work in a group and learn time management.
3.2 Learn how to search for information through library
and internet.
Course
Teaching
Strategies
Individual
presentations
Brainstorming
Small group
discussion
Whole group
discussion
Brainstorming
Presentation
4.0 Communication, Information Technology, Numerical
Small group
4.1 Function effectively on teams to accomplish a
discussion
common goal.
Whole group
4.2 Communicate effectively with a range of audiences.
discussion
Brainstorming
Presentation
5.0
5.1
5.2
5.3
Psychomotor
.....................................................................
.....................................................................
.....................................................................
..................
..................
..................
Course
Assessment
Methods
Written Exam
Homework
assignments
Class Activities
Quizzes
Written Exam
Homework
assignments
Class Activities
Quizzes
..................
..................
..................
5. Schedule of Assessment Tasks for Students During the Semester:
Assessment task
Week Due
Proportion
of Total
Assessment
1
First written mid-term exam
6
15%
2
Second written mid-term exam
12
15%
3
Presentation, class activities, and group
discussion
Every week
10%
Page 6 Of 9
4
Homework assignments
After every
chapter
10%
5
Research about presented topics
Every two
weeks
10%
6
Final written exam
16
40%
Total
100%
D. Student Academic Counseling and Support
Arrangements for availability of faculty and teaching staff for individual
student consultations and academic advice. (include amount of time teaching
staff are expected to be available each week)
1. 6-office hours per week in the lecturer schedule.
2. The contact with students by e-mail , mobile, office telephone and website.
E. Learning Resources
1. List Required Textbooks :
 R Sethi , J D Ullman & Addison-Wesley : Compilers: Principals, Techniques, and
Tools, 3rd , 2007, Addison-Wesley.
2. List Essential References Materials :
 Modern Compiler Implementation in Java, Cambridge University Press, 2003
3. List Recommended Textbooks and Reference Material :

None
4. List Electronic Materials :
 http://nptel.ac.in/courses.php?branch=Comp
Page 7 Of 9
 https://www.coursera.org/
5. Other learning material :
 Video and presentations that available with the instructor
F. Facilities Required
1. Accommodation
 Classrooms and,
 Library, as those that are available at the college of science at AzZulfi
2. Computing resources
 Smart Board
3. Other resources
 None
G. Course Evaluation and Improvement Processes
1 Strategies for Obtaining Student Feedback on Effectiveness of Teaching:
 Questionnaires (course evaluation) achieved by the students and it is
electronically organized by the university.
 Student-faculty management meetings
2 Other Strategies for Evaluation of Teaching by the Program/Department
Instructor :
 Discussion within the staff members teaching the course.
 Departmental internal review of the course.
3 Processes for Improvement of Teaching :
 Periodical departmental revision of methods of teaching.
 Monitoring of teaching activates by senior faculty members.
 Training course.
4. Processes for Verifying Standards of Student Achievement
 Instructors of the course are checking together and put a unique process of the
evaluation.
5 Describe the planning arrangements for periodically reviewing course
effectiveness and planning for improvement :
 Course evaluation
Page 8 Of 9
 Exam evaluation
 Improvement plan
Course Specification Approved
Department Official Meeting No ( ….. ) Date … / …. / ….. H
Course’s Coordinator
Name :
Signature :
Date :
Page 9 Of 9
...........................
...........................
…./ … / …… H
Department Head
Name : Associate Prof. Yosry Azzam
Signature : ..........................
Date :
…./ … / …… H
Download