Difference between revisions of "BSc: Advanced Compilers Construction and Program Analysis"
Jump to navigation
Jump to search
m (M.petrishchev moved page BSc:AdvancedCompilersConstructionandProgramAnalysis to BSc: Advanced Compilers Construction and Program Analysis) |
R.sirgalina (talk | contribs) |
||
Line 1: | Line 1: | ||
+ | |||
= Advanced Compilers Construction and Program Analysis = |
= Advanced Compilers Construction and Program Analysis = |
||
+ | * '''Course name''': Advanced Compilers Construction and Program Analysis |
||
+ | * '''Code discipline''': XYZ |
||
+ | * '''Subject area''': xxx |
||
+ | == Short Description == |
||
− | * <span>'''Course name:'''</span> Advanced Compilers Construction and Program Analysis |
||
+ | This course covers the following concepts: Advanced Compilers Construction and Program Analysis concepts:. |
||
− | * <span>'''Course number:'''</span> XYZ |
||
− | * <span>'''Knowledge area:'''</span> xxx |
||
− | == |
+ | == Prerequisites == |
− | === |
+ | === Prerequisite subjects === |
− | * Advanced Compilers Construction and Program Analysis concepts: |
||
+ | === Prerequisite topics === |
||
− | === What is the purpose of this course? === |
||
− | Advanced Compilers Construction and Program Analysis have become |
||
− | + | == Course Topics == |
|
+ | {| class="wikitable" |
||
+ | |+ Course Sections and Topics |
||
+ | |- |
||
+ | ! Section !! Topics within the section |
||
+ | |- |
||
+ | | Introduction to subject, computer networks basics, transport layer protocols, and socket programming || |
||
+ | # General introduction to the course |
||
+ | # Computer networks basic |
||
+ | # Socket programming |
||
+ | # UDP socket programming |
||
+ | # TCP socket programming |
||
+ | |- |
||
+ | | || |
||
+ | |- |
||
− | ==== What should a student remember at the end of the course? ==== |
||
+ | | Coordination, consistency, and replication in distributed systems || |
||
+ | |- |
||
− | By the end of the course, the students should be able to recognize and define |
||
+ | | 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 === |
||
− | By the end of the course, the students should be able to describe and explain (with examples) |
||
+ | ==== Level 1: What concepts should a student know/remember/explain? ==== |
||
− | * |
||
+ | By the end of the course, the students should be able to ... |
||
− | * |
||
− | * |
||
− | * |
||
− | * |
||
− | * |
||
− | ==== What should a student be able to apply at the end of the course? ==== |
||
− | + | ==== 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? ==== |
||
− | === Course evaluation === |
||
+ | By the end of the course, the students should be able to ... |
||
+ | |||
+ | == Grading == |
||
+ | === Course grading range === |
||
− | <div id="tab:OSCourseGradingRange"> |
||
+ | {| class="wikitable" |
||
− | |||
+ | |+ |
||
− | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
− | |+ Course grade breakdown |
||
− | !align="center"| '''Component''' |
||
− | ! '''Points''' |
||
|- |
|- |
||
+ | ! Grade !! Range !! Description of performance |
||
− | | Laboratory assignments |
||
− | |align="right"| 55% |
||
− | |- |
||
− | | Final exam |
||
− | |align="right"| 35% |
||
− | |- |
||
− | | Attendance |
||
− | |align="right"| 10% |
||
− | |} |
||
− | '''Important:''' In order to successfully finish the course, the student is required to score at least 50% in final exam. |
||
− | |||
− | |||
− | </div> |
||
− | |||
− | === Grades range === |
||
− | |||
− | <div id="tab:OSCourseGradingRange"> |
||
− | |||
− | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
− | |+ Course grading range |
||
|- |
|- |
||
− | | A. Excellent |
+ | | A. Excellent || 90-100 || - |
− | |align="right"| 90-100 |
||
|- |
|- |
||
− | | B. Good |
+ | | B. Good || 75-89 || - |
− | |align="right"| 75-89 |
||
|- |
|- |
||
− | | C. Satisfactory |
+ | | C. Satisfactory || 60-74 || - |
− | |align="right"| 60-74 |
||
|- |
|- |
||
− | | D. Poor |
+ | | D. Poor || 0-59 || - |
− | |align="right"| 0-59 |
||
|} |
|} |
||
+ | === Course activities and grading breakdown === |
||
− | </div> |
||
+ | {| class="wikitable" |
||
− | |||
+ | |+ |
||
− | |||
− | |||
− | === 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: |
||
− | |||
− | <div id="tab:OSCourseSections"> |
||
− | |||
− | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
− | |+ Course Sections |
||
− | !align="center"| '''Section''' |
||
− | ! '''Section Title''' |
||
− | !align="center"| '''Teaching Hours''' |
||
|- |
|- |
||
+ | ! Activity Type !! Percentage of the overall course grade |
||
− | |align="center"| 1 |
||
− | | Introduction to subject, computer networks basics, transport layer protocols, and socket programming |
||
− | |align="center"| 12 |
||
|- |
|- |
||
+ | | Laboratory assignments || 55% |
||
− | |align="center"| 2 |
||
− | | Multithreaded socket programming, remote procedure calls, and distributed system architecture |
||
− | |align="center"| 24 |
||
|- |
|- |
||
+ | | Final exam || 35% |
||
− | |align="center"| 3 |
||
− | | Coordination, consistency, and replication in distributed systems |
||
− | |align="center"| 24 |
||
|- |
|- |
||
+ | | Attendance || 10% |
||
− | |align="center"| 4 |
||
− | | Fault tolerance and security in distributed systems |
||
− | |align="center"| 30 |
||
|} |
|} |
||
+ | === Recommendations for students on how to succeed in the course === |
||
− | </div> |
||
− | === Section 1: === |
||
− | ==== Section title ==== |
||
+ | == Resources, literature and reference materials == |
||
− | Introduction to subject, computer networks basics, transport layer protocols, and socket programming |
||
− | + | === Open access resources === |
|
+ | * Textbook:. Available online: |
||
+ | * Reference:. Available online: |
||
+ | * Reference:. Available online: h |
||
+ | === Closed access resources === |
||
− | * 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? ==== |
||
+ | === Software and tools used within the course === |
||
− | <div id="tab:OSSectionEval1"> |
||
+ | |||
+ | = Teaching Methodology: Methods, techniques, & activities = |
||
+ | == Activities and Teaching Methods == |
||
− | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
+ | {| class="wikitable" |
||
− | |''' Form ''' |
||
+ | |+ Activities within each section |
||
− | ! '''Yes/No''' |
||
|- |
|- |
||
+ | ! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4 |
||
− | | Development of individual parts of software product code |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Development of individual parts of software product code || 1 || 1 || 1 || 1 |
||
− | | Homework and group projects |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Homework and group projects || 1 || 1 || 1 || 1 |
||
− | | Midterm evaluation |
||
− | |align="center"| 0 |
||
|- |
|- |
||
− | | Testing (written or computer based) |
+ | | Testing (written or computer based) || 1 || 1 || 1 || 1 |
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Oral polls || 1 || 1 || 1 || 1 |
||
− | | Reports |
||
− | |align="center"| 0 |
||
|- |
|- |
||
+ | | Discussions || 1 || 1 || 1 || 1 |
||
− | | Essays |
||
+ | |} |
||
− | |align="center"| 0 |
||
+ | == Formative Assessment and Course Activities == |
||
− | |- |
||
− | | Oral polls |
||
− | |align="center"| 1 |
||
− | |- |
||
− | | Discussions |
||
− | |align="center"| 1 |
||
− | |} |
||
+ | === Ongoing performance assessment === |
||
+ | ==== Section 1 ==== |
||
− | </div> |
||
+ | {| class="wikitable" |
||
− | |||
+ | |+ |
||
− | ==== Typical questions for ongoing performance evaluation within this section ==== |
||
− | |||
− | #? |
||
− | #. |
||
− | #? |
||
− | #? |
||
− | #? |
||
− | #? |
||
− | #? |
||
− | |||
− | ==== Typical questions for seminar classes (labs) within this section ==== |
||
− | |||
− | # |
||
− | # |
||
− | # |
||
− | # |
||
− | # |
||
− | |||
− | ==== Test questions for final assessment in this section ==== |
||
− | |||
− | # ? |
||
− | #? |
||
− | #? |
||
− | #? |
||
− | |||
− | === Section 2: === |
||
− | |||
− | ==== Section title ==== |
||
− | |||
− | ==== Topics covered in this section ==== |
||
− | |||
− | * |
||
− | * |
||
− | * |
||
− | |||
− | ==== What forms of evaluation were used to test students’ performance in this section? ==== |
||
− | |||
− | <div id="tab:OSSectionEval1"> |
||
− | |||
− | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
− | |''' Form ''' |
||
− | ! '''Yes/No''' |
||
|- |
|- |
||
+ | ! Activity Type !! Content !! Is Graded? |
||
− | | Development of individual parts of software product code |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Homework and group projects |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || . || 1 |
||
− | | Midterm evaluation |
||
− | |align="center"| 0 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Testing (written or computer based) |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Reports |
||
− | |align="center"| 0 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Essays |
||
− | |align="center"| 0 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Oral polls |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Discussions |
||
+ | |} |
||
− | |align="center"| 1 |
||
+ | ==== Section 2 ==== |
||
− | |} |
||
+ | {| class="wikitable" |
||
− | |||
+ | |+ |
||
− | |||
− | </div> |
||
− | |||
− | |||
− | |||
− | ==== Typical questions for ongoing performance evaluation within this section ==== |
||
− | |||
− | #? |
||
− | #? |
||
− | #? |
||
− | #? |
||
− | #? |
||
− | |||
− | |||
− | ==== Typical questions for seminar classes (labs) within this section ==== |
||
− | |||
− | # 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. |
||
− | # 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) |
||
− | # 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 |
||
− | # 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 ==== |
||
− | |||
− | #. |
||
− | # ? |
||
− | # ? |
||
− | # ? |
||
− | # ? |
||
− | # |
||
− | |||
− | |||
− | |||
− | |||
− | === 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? ==== |
||
− | |||
− | <div id="tab:OSSectionEval1"> |
||
− | |||
− | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
− | |''' Form ''' |
||
− | ! '''Yes/No''' |
||
|- |
|- |
||
+ | ! Activity Type !! Content !! Is Graded? |
||
− | | Development of individual parts of software product code |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | 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 |
||
− | | Homework and group projects |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | 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 |
||
− | | Midterm evaluation |
||
− | |align="center"| 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 |
||
− | | Testing (written or computer based) |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || Given the function implemented locally, make it available to be called through RPC from remote process? Use xmlRPC. || 0 |
||
− | | Reports |
||
+ | |} |
||
− | |align="center"| 0 |
||
+ | ==== Section 3 ==== |
||
+ | {| class="wikitable" |
||
+ | |+ |
||
|- |
|- |
||
+ | ! Activity Type !! Content !! Is Graded? |
||
− | | Essays |
||
− | |align="center"| 0 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Oral polls |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Discussions |
||
− | |align="center"| 1 |
||
− | |} |
||
− | |||
− | |||
− | </div> |
||
− | |||
− | ==== Typical questions for ongoing performance evaluation within this section ==== |
||
− | |||
− | #? |
||
− | #? |
||
− | #? |
||
− | #? |
||
− | #? |
||
− | |||
− | ==== 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? ==== |
||
− | |||
− | <div id="tab:OSSectionEval1"> |
||
− | |||
− | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
− | |''' Form ''' |
||
− | ! '''Yes/No''' |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Development of individual parts of software product code |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Homework and group projects |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || ? || 1 |
||
− | | Midterm evaluation |
||
+ | |} |
||
− | |align="center"| 0 |
||
+ | ==== Section 4 ==== |
||
+ | {| class="wikitable" |
||
+ | |+ |
||
|- |
|- |
||
+ | ! Activity Type !! Content !! Is Graded? |
||
− | | Testing (written or computer based) |
||
− | |align="center"| 1 |
||
|- |
|- |
||
+ | | Question || Same as above || 0 |
||
− | | Reports |
||
+ | |} |
||
− | |align="center"| 0 |
||
+ | === Final assessment === |
||
− | |- |
||
+ | '''Section 1''' |
||
− | | Essays |
||
+ | # ? |
||
− | |align="center"| 0 |
||
+ | # ? |
||
− | |- |
||
+ | # ? |
||
− | | Oral polls |
||
+ | # ? |
||
− | |align="center"| 1 |
||
+ | '''Section 2''' |
||
− | |- |
||
+ | # |
||
− | | Discussions |
||
+ | '''Section 3''' |
||
− | |align="center"| 1 |
||
− | |} |
||
+ | '''Section 4''' |
||
+ | # Same as above |
||
+ | === The retake exam === |
||
− | </div> |
||
+ | '''Section 1''' |
||
+ | '''Section 2''' |
||
− | ==== Typical questions for ongoing performance evaluation within this section ==== |
||
+ | '''Section 3''' |
||
− | # |
||
− | # |
||
− | # |
||
− | ==== Typical questions for seminar classes (labs) within this section ==== |
||
− | # Same as above |
||
− | ==== Test questions for final assessment in this section ==== |
||
+ | '''Section 4''' |
||
− | # Same as above |
Revision as of 12:55, 12 July 2022
Advanced Compilers Construction and Program Analysis
- Course name: Advanced Compilers Construction and Program Analysis
- Code discipline: XYZ
- Subject area: xxx
Short Description
This course covers the following concepts: Advanced Compilers Construction and Program Analysis concepts:.
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: h
Closed access resources
Software and tools used within the course
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