BSc: Advanced Compilers Construction and Program Analysis
Revision as of 14:37, 17 February 2023 by M.petrishchev (talk | contribs) (→Resources and reference material)
Advanced Compilers Construction and Program Analysis
- Course name: Advanced Compilers Construction and Program Analysis
- Code discipline: XYZ
- Subject area: Programming Languages and Software Engineering
Short Description
This course covers the following concepts: Advanced Compilers Construction and Program Analysis concepts:
Key concepts of the class
- Type Systems
- Lambda calculi as the core representation
- Type checking and type inference
- Simple types and derived forms
- Subtyping
- Imperative objects
- Recursive types
- Universal polymorphism
- Compiling lazy functional languages
Prerequisites
Prerequisite subjects
Prerequisite topics
Course Topics
Section | Topics within the section |
---|---|
Introduction to subject, computer networks basics, transport layer protocols, and socket programming |
|
Coordination, consistency, and replication in distributed systems | |
Fault tolerance and security in distributed systems |
Intended Learning Outcomes (ILOs)
What is the main purpose of this course?
Advanced Compilers Construction and Program Analysis have become
ILOs defined at three levels
Level 1: What concepts should a student know/remember/explain?
By the end of the course, the students should be able to ...
Level 2: What basic practical skills should a student be able to perform?
By the end of the course, the students should be able to ...
Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?
By the end of the course, the students should be able to ...
Grading
Course grading range
Grade | Range | Description of performance |
---|---|---|
A. Excellent | 90-100 | - |
B. Good | 75-89 | - |
C. Satisfactory | 60-74 | - |
D. Poor | 0-59 | - |
Course activities and grading breakdown
Activity Type | Percentage of the overall course grade |
---|---|
Laboratory assignments | 55% |
Final exam | 35% |
Attendance | 10% |
Recommendations for students on how to succeed in the course
Resources, literature and reference materials
Open access resources
- Textbook:. Available online:
- Reference:. Available online:
- Reference:. Available online:
Closed access resources
Software and tools used within the course
Resources and reference material
- Benjamin C. Pierce. ’‘Types and Programming Languages. The MIT Press
2002”
- Simon Peyton Jones. ’‘Implementing functional languages: a tutorial.
Prentice Hall 1992”
- Simon Peyton Jones. ’‘Implementing Lazy Functional Languages on Stock
Hardware: The Spineless Tagless G-machine. Journal of Functional Programming 1992”
Teaching Methodology: Methods, techniques, & activities
Activities and Teaching Methods
Learning Activities | Section 1 | Section 2 | Section 3 | Section 4 |
---|---|---|---|---|
Development of individual parts of software product code | 1 | 1 | 1 | 1 |
Homework and group projects | 1 | 1 | 1 | 1 |
Testing (written or computer based) | 1 | 1 | 1 | 1 |
Oral polls | 1 | 1 | 1 | 1 |
Discussions | 1 | 1 | 1 | 1 |
Formative Assessment and Course Activities
Ongoing performance assessment
Section 1
Activity Type | Content | Is Graded? |
---|---|---|
Question | ? | 1 |
Question | . | 1 |
Question | ? | 1 |
Question | ? | 1 |
Question | ? | 1 |
Question | ? | 1 |
Question | ? | 1 |
Section 2
Activity Type | Content | Is Graded? |
---|---|---|
Question | You have a list of large numbers, and you need to find if they are prime or not. Would you use multithreading, multiprocessing, or sequential programming in order to complete the task asap? Prove it in practice. | 0 |
Question | You need to send multiple requests to a server and receive responses. Assume there is a few msecs of delay before you receive the response from the server. Would you use multithreading, multiprocessing, or sequential programming in order to complete the task asap? Prove it in practice. (Order of the requests/responses doesn't matter) | 0 |
Question | Discuss two ways of creating the threads using threading module in Python: 1) passing the worker function as a target, 2) subclassing the Thread class | 0 |
Question | Given the function implemented locally, make it available to be called through RPC from remote process? Use xmlRPC. | 0 |
Section 3
Activity Type | Content | Is Graded? |
---|---|---|
Question | ? | 1 |
Question | ? | 1 |
Question | ? | 1 |
Question | ? | 1 |
Question | ? | 1 |
Section 4
Activity Type | Content | Is Graded? |
---|---|---|
Question | Same as above | 0 |
Final assessment
Section 1
- ?
- ?
- ?
- ?
Section 2
Section 3
Section 4
- Same as above
The retake exam
Section 1
Section 2
Section 3
Section 4