BSc: Advanced Compilers Construction and Program Analysis.previous version

From IU
Revision as of 13:41, 28 June 2022 by M.petrishchev (talk | contribs) (Created page with "= Advanced Compilers Construction and Program Analysis = * <span>'''Course name:'''</span> Advanced Compilers Construction and Program Analysis * <span>'''Course number:'''</...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Advanced Compilers Construction and Program Analysis

  • Course name: Advanced Compilers Construction and Program Analysis
  • Course number: XYZ
  • Knowledge area: xxx

Course characteristics

Key concepts of the class

  • Advanced Compilers Construction and Program Analysis concepts:

What is the purpose of this course?

Advanced Compilers Construction and Program Analysis have become

______________

What should a student remember at the end of the course?

By the end of the course, the students should be able to recognize and define

What should a student be able to understand at the end of the course?

By the end of the course, the students should be able to describe and explain (with examples)

What should a student be able to apply at the end of the course?

By the end of the course, the students should be able to apply

Course evaluation

Course grade breakdown
Component Points
Laboratory assignments 55%
Final exam 35%
Attendance 10%

Important: In order to successfully finish the course, the student is required to score at least 50% in final exam.


Grades range

Course grading range
A. Excellent 90-100
B. Good 75-89
C. Satisfactory 60-74
D. Poor 0-59


Resources and reference material

  • Textbook:. Available online:
  • Reference:. Available online:
  • Reference:. Available online: h

Course Sections

The course is organized in 8 weeks, with every weeks 4 academics hours of lectures and 4 academic hours of tutorials/labs. The main sections of the course and approximate hour distribution between them is as follows:

Course Sections
Section Section Title Teaching Hours
1 Introduction to subject, computer networks basics, transport layer protocols, and socket programming 12
2 Multithreaded socket programming, remote procedure calls, and distributed system architecture 24
3 Coordination, consistency, and replication in distributed systems 24
4 Fault tolerance and security in distributed systems 30

Section 1:

Section title

Introduction to subject, computer networks basics, transport layer protocols, and socket programming

Topics covered in this section

  • General introduction to the course
  • Computer networks basic
  • Socket programming
  • UDP socket programming
  • TCP socket programming

What forms of evaluation were used to test students’ performance in this section?

Form Yes/No
Development of individual parts of software product code 1
Homework and group projects 1
Midterm evaluation 0
Testing (written or computer based) 1
Reports 0
Essays 0
Oral polls 1
Discussions 1


Typical questions for ongoing performance evaluation within this section

  1. ?
  2. .
  3. ?
  4. ?
  5. ?
  6. ?
  7. ?

Typical questions for seminar classes (labs) within this section

Test questions for final assessment in this section

  1. ?
  2. ?
  3. ?
  4. ?

Section 2:

Section title

Topics covered in this section

What forms of evaluation were used to test students’ performance in this section?

Form Yes/No
Development of individual parts of software product code 1
Homework and group projects 1
Midterm evaluation 0
Testing (written or computer based) 1
Reports 0
Essays 0
Oral polls 1
Discussions 1



Typical questions for ongoing performance evaluation within this section

  1. ?
  2. ?
  3. ?
  4. ?
  5. ?


Typical questions for seminar classes (labs) within this section

  1. 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.
  2. 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)
  3. 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
  4. Given the function implemented locally, make it available to be called through RPC from remote process? Use xmlRPC.

Test questions for final assessment in this section

  1. .
  2. ?
  3. ?
  4. ?
  5. ?



Section 3: Coordination, consistency, and replication in distributed systems

Section title

Coordination, consistency, and replication in distributed systems

Topics covered in this section

What forms of evaluation were used to test students’ performance in this section?

Form Yes/No
Development of individual parts of software product code 1
Homework and group projects 1
Midterm evaluation 0
Testing (written or computer based) 1
Reports 0
Essays 0
Oral polls 1
Discussions 1


Typical questions for ongoing performance evaluation within this section

  1. ?
  2. ?
  3. ?
  4. ?
  5. ?

Typical questions for seminar classes (labs) within this section

Test questions for final assessment in this section

Section 4: Fault tolerance and security in distributed systems

Section title

Fault tolerance and security in distributed systems

Topics covered in this section

What forms of evaluation were used to test students’ performance in this section?

Form Yes/No
Development of individual parts of software product code 1
Homework and group projects 1
Midterm evaluation 0
Testing (written or computer based) 1
Reports 0
Essays 0
Oral polls 1
Discussions 1


Typical questions for ongoing performance evaluation within this section

Typical questions for seminar classes (labs) within this section

  1. Same as above

Test questions for final assessment in this section

  1. Same as above