Difference between revisions of "BSc: Advanced Databases"
Line 3: | Line 3: | ||
* <span>'''Course name:'''</span> Advanced Databases |
* <span>'''Course name:'''</span> Advanced Databases |
||
* <span>'''Course number:'''</span> XYZ |
* <span>'''Course number:'''</span> XYZ |
||
− | * <span>'''Knowledge area:'''</span> |
+ | * <span>'''Knowledge area:'''</span> xxx |
== Course characteristics == |
== Course characteristics == |
||
− | === |
+ | === Key concepts of the class === |
+ | * DevOps Engineering concepts: |
||
− | * <span>'''Faculty:'''</span> Computer Science and Engineering |
||
− | * <span>'''Year of instruction:'''</span> 4th year of BS |
||
− | * <span>'''Semester of instruction:'''</span> 2nd semester |
||
− | * <span>'''No. of Credits:'''</span> 4 ECTS |
||
− | * <span>'''Total workload on average:'''</span> 144 hours overall |
||
− | * <span>'''Class lecture hours:'''</span> 2 per week |
||
− | * <span>'''Class tutorial hours:'''</span> 0 per week |
||
− | * <span>'''Lab hours:'''</span> 4 per week |
||
− | * <span>'''Individual lab hours:'''</span> 0 |
||
− | * <span>'''Frequency:'''</span> weekly throughout the semester |
||
− | * <span>'''Grading mode:'''</span> letters: A, B, C, D |
||
+ | === What is the purpose of this course? === |
||
− | === Prerequisites === |
||
+ | Advanced Databases have become |
||
− | * Data Modelling and Databases I |
||
− | * Data Modelling and Databases II |
||
− | * Data Structures and Algorithms I |
||
− | * Data Structures and Algorithms II |
||
− | * Discrete Math and Logic |
||
− | * Introduction to Programming I |
||
− | * Introduction to Programming II |
||
− | === |
+ | === ______________ === |
+ | ==== What should a student remember at the end of the course? ==== |
||
− | Data Modelling and Databases I and II mostly focus on the relational model, its design and the implementation details of RDBMS. This course is focused on alternative paradigms, generally defined under the hat of NoSQL, and parallel and distributed architectures with all the theoretical and practical consideration of the case. |
||
+ | By the end of the course, the students should be able to recognize and define |
||
− | === Expected learning outcomes === |
||
+ | * |
||
− | * Devise appropriate ways to store and index data |
||
+ | * |
||
− | * Use persistency tools in the context of modern software architectures and the Cloud |
||
+ | * |
||
− | * Understanding of NoSQL and CAP theorem |
||
+ | * |
||
− | * Fluency with Graph DB and relatd query languages |
||
+ | * |
||
− | * Understanding parallel and distributed databases |
||
+ | ==== What should a student be able to understand at the end of the course? ==== |
||
− | === Expected acquired core competences === |
||
+ | By the end of the course, the students should be able to describe and explain (with examples) |
||
− | * Software Design |
||
+ | |||
− | * Software Engineering |
||
+ | * |
||
− | * Software Construction |
||
+ | * |
||
− | * Relational Databases |
||
+ | * |
||
− | * Data Modeling |
||
+ | * |
||
− | * Database Design |
||
+ | * |
||
− | * Database Systems |
||
+ | * |
||
− | * Query Languages: Implementation and Optimization |
||
+ | |||
− | * Implementation of Database Systems |
||
+ | ==== What should a student be able to apply at the end of the course? ==== |
||
− | * Indexing |
||
+ | |||
− | * Information Storage and Retrieval |
||
+ | By the end of the course, the students should be able to apply |
||
− | * NoSQL |
||
+ | |||
− | * Document-based databases |
||
+ | * |
||
− | * Graph databases |
||
+ | * |
||
− | * Non-relational query languages |
||
+ | * |
||
− | * Theory of distributed systems |
||
+ | * |
||
− | * Algorithms for distributed systems |
||
+ | * |
||
− | * CAP theorem |
||
− | * Parallel and distributed databases |
||
− | * MapReduce |
||
=== Course evaluation === |
=== Course evaluation === |
||
+ | <div id="tab:OSCourseGradingRange"> |
||
− | {| |
||
+ | |||
+ | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
|+ Course grade breakdown |
|+ Course grade breakdown |
||
+ | !align="center"| '''Component''' |
||
− | ! |
||
+ | ! '''Points''' |
||
− | ! |
||
− | !align="center"| '''Proposed points''' |
||
|- |
|- |
||
+ | | Laboratory assignments |
||
− | | Assignments and project |
||
+ | |align="right"| 55% |
||
− | | 30 |
||
− | |align="center"| 40 |
||
|- |
|- |
||
+ | | Final exam |
||
− | | Mid-term Exam |
||
+ | |align="right"| 35% |
||
− | | 30 |
||
+ | |- |
||
− | |align="center"| 30 |
||
+ | | 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 |
||
+ | |align="right"| 90-100 |
||
+ | |- |
||
+ | | B. Good |
||
+ | |align="right"| 75-89 |
||
+ | |- |
||
+ | | C. Satisfactory |
||
+ | |align="right"| 60-74 |
||
+ | |- |
||
+ | | D. Poor |
||
+ | |align="right"| 0-59 |
||
+ | |} |
||
+ | |||
+ | </div> |
||
+ | |||
+ | |||
+ | |||
+ | === 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''' |
||
+ | |- |
||
+ | |align="center"| 1 |
||
+ | | Introduction to subject, computer networks basics, transport layer protocols, and socket programming |
||
+ | |align="center"| 12 |
||
+ | |- |
||
+ | |align="center"| 2 |
||
+ | | Multithreaded socket programming, remote procedure calls, and distributed system architecture |
||
+ | |align="center"| 24 |
||
+ | |- |
||
+ | |align="center"| 3 |
||
+ | | Coordination, consistency, and replication in distributed systems |
||
+ | |align="center"| 24 |
||
|- |
|- |
||
+ | |align="center"| 4 |
||
− | | Written Final |
||
+ | | Fault tolerance and security in distributed systems |
||
− | | 40 |
||
|align="center"| 30 |
|align="center"| 30 |
||
|} |
|} |
||
+ | </div> |
||
− | === Reference and referecnce material === |
||
+ | === Section 1: === |
||
+ | ==== Section title ==== |
||
− | * Lecturing and lab slides and material will be provided |
||
− | * Several resources are available online and will be pointed during the course |
||
+ | Introduction to subject, computer networks basics, transport layer protocols, and socket programming |
||
− | ==== Textbook ==== |
||
+ | ==== 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? ==== |
||
+ | |||
+ | <div id="tab:OSSectionEval1"> |
||
+ | |||
+ | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
+ | |''' Form ''' |
||
+ | ! '''Yes/No''' |
||
+ | |- |
||
+ | | Development of individual parts of software product code |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Homework and group projects |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Midterm evaluation |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Testing (written or computer based) |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Reports |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Essays |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Oral polls |
||
+ | |align="center"| 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 2: === |
||
+ | |||
+ | ==== Section title ==== |
||
+ | |||
+ | ==== Topics covered in this section ==== |
||
+ | |||
+ | * |
||
* |
* |
||
* |
* |
||
+ | ==== What forms of evaluation were used to test students’ performance in this section? ==== |
||
− | === Required computer resources === |
||
+ | <div id="tab:OSSectionEval1"> |
||
− | Students should have laptops. |
||
+ | {| style="border-spacing: 2px; border: 1px solid darkgray;" |
||
− | == Course Sections == |
||
+ | |''' Form ''' |
||
+ | ! '''Yes/No''' |
||
+ | |- |
||
+ | | Development of individual parts of software product code |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Homework and group projects |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Midterm evaluation |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Testing (written or computer based) |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Reports |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Essays |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Oral polls |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Discussions |
||
+ | |align="center"| 1 |
||
+ | |} |
||
+ | |||
+ | |||
+ | </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''' |
||
+ | |- |
||
+ | | Development of individual parts of software product code |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Homework and group projects |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Midterm evaluation |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Testing (written or computer based) |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Reports |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Essays |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Oral polls |
||
+ | |align="center"| 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''' |
||
+ | |- |
||
+ | | Development of individual parts of software product code |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Homework and group projects |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Midterm evaluation |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Testing (written or computer based) |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Reports |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Essays |
||
+ | |align="center"| 0 |
||
+ | |- |
||
+ | | Oral polls |
||
+ | |align="center"| 1 |
||
+ | |- |
||
+ | | Discussions |
||
+ | |align="center"| 1 |
||
+ | |} |
||
+ | |||
+ | |||
+ | </div> |
||
+ | |||
+ | ==== Typical questions for ongoing performance evaluation within this section ==== |
||
+ | # |
||
− | === Section 1 === |
||
+ | # |
||
− | ==== Section title: ==== |
||
+ | # |
||
− | === Topics covered in this section: === |
||
− | === |
+ | ==== Typical questions for seminar classes (labs) within this section ==== |
+ | # Same as above |
||
− | === Typical questions for ongoing performance evaluation within this section === |
||
− | === |
+ | ==== Test questions for final assessment in this section ==== |
− | === Test questions for final assessment in this section === |
||
+ | # Same as above |
||
− | === Section 2 === |
||
− | ==== Section title: ==== |
||
− | === Topics covered in this section: === |
||
− | === What forms of evaluation were used to test students’ performance in this section? === |
||
− | === 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 === |
Revision as of 09:47, 3 March 2022
Advanced Databases
- Course name: Advanced Databases
- Course number: XYZ
- Knowledge area: xxx
Course characteristics
Key concepts of the class
- DevOps Engineering concepts:
What is the purpose of this course?
Advanced Databases 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
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
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:
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
- ?
- .
- ?
- ?
- ?
- ?
- ?
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?
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
- 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?
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
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
- Same as above
Test questions for final assessment in this section
- Same as above