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