Difference between revisions of "BSc: Advanced Databases"
Jump to navigation
Jump to search
I.konyukhov (talk | contribs) m (I.konyukhov moved page BSc:AdvancedDatabases to BSc:AdvancedDatabases.S22) |
R.sirgalina (talk | contribs) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | |||
= Advanced Databases = |
= Advanced Databases = |
||
+ | * '''Course name''': Advanced Databases |
||
+ | * '''Code discipline''': XYZ |
||
+ | * '''Subject area''': xxx |
||
+ | == Short Description == |
||
− | * <span>'''Course name:'''</span> Advanced Databases |
||
+ | This course covers the following concepts: DevOps Engineering concepts:. |
||
− | * <span>'''Course number:'''</span> XYZ |
||
− | * <span>'''Knowledge area:'''</span> Data Science |
||
− | == |
+ | == Prerequisites == |
+ | === Prerequisite subjects === |
||
− | * <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 |
||
− | == Prerequisites == |
||
+ | === Prerequisite topics === |
||
− | * Data Modelling and Databases I |
||
+ | |||
− | * Data Modelling and Databases II |
||
+ | |||
− | * Data Structures and Algorithms I |
||
+ | == Course Topics == |
||
− | * Data Structures and Algorithms II |
||
+ | {| class="wikitable" |
||
− | * Discrete Math and Logic |
||
+ | |+ Course Sections and Topics |
||
− | * Introduction to Programming I |
||
+ | |- |
||
− | * Introduction to Programming II |
||
+ | ! 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 |
||
+ | |- |
||
+ | | || |
||
+ | |||
+ | |- |
||
+ | | 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 Databases 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 === |
||
+ | {| class="wikitable" |
||
+ | |+ |
||
+ | |- |
||
+ | ! 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 === |
||
+ | {| class="wikitable" |
||
+ | |+ |
||
+ | |- |
||
+ | ! 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 === |
||
− | == Course outline == |
||
+ | == Resources, literature and reference materials == |
||
− | 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. |
||
− | == |
+ | === Open access resources === |
+ | * Textbook:. Available online: |
||
+ | * Reference:. Available online: |
||
+ | * Reference:. Available online: h |
||
+ | === Closed access resources === |
||
− | * 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 |
||
− | == Expected acquired core competences == |
||
− | + | === Software and tools used within the course === |
|
+ | |||
− | * Software Engineering |
||
+ | = Teaching Methodology: Methods, techniques, & activities = |
||
− | * Software Construction |
||
− | * Relational Databases |
||
− | * Data Modeling |
||
− | * Database Design |
||
− | * Database Systems |
||
− | * Query Languages: Implementation and Optimization |
||
− | * Implementation of Database Systems |
||
− | * Indexing |
||
− | * Information Storage and Retrieval |
||
− | * 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 |
||
+ | == Activities and Teaching Methods == |
||
− | == Textbook == |
||
+ | {| class="wikitable" |
||
+ | |+ Activities within each section |
||
+ | |- |
||
+ | ! 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 ==== |
+ | {| class="wikitable" |
||
+ | |+ |
||
+ | |- |
||
+ | ! Activity Type !! Content !! Is Graded? |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || . || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |} |
||
+ | ==== Section 2 ==== |
||
+ | {| class="wikitable" |
||
+ | |+ |
||
+ | |- |
||
+ | ! 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 ==== |
||
+ | {| class="wikitable" |
||
+ | |+ |
||
+ | |- |
||
+ | ! Activity Type !! Content !! Is Graded? |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |- |
||
+ | | Question || ? || 1 |
||
+ | |} |
||
+ | ==== Section 4 ==== |
||
+ | {| class="wikitable" |
||
+ | |+ |
||
+ | |- |
||
+ | ! Activity Type !! Content !! Is Graded? |
||
+ | |- |
||
+ | | Question || Same as above || 0 |
||
+ | |} |
||
+ | === Final assessment === |
||
+ | '''Section 1''' |
||
+ | # ? |
||
+ | # ? |
||
+ | # ? |
||
+ | # ? |
||
+ | '''Section 2''' |
||
+ | # |
||
+ | '''Section 3''' |
||
+ | '''Section 4''' |
||
− | * Lecturing and lab slides and material will be provided |
||
+ | # Same as above |
||
− | * Several resources are available online and will be pointed during the course |
||
− | == |
+ | === The retake exam === |
+ | '''Section 1''' |
||
+ | '''Section 2''' |
||
− | Students should have laptops. |
||
+ | '''Section 3''' |
||
− | == Evaluation == |
||
+ | '''Section 4''' |
||
− | * Assignments and project (30%) |
||
− | * Mid-term Exam (30 %) |
||
− | * Written Final (40%) |
Latest revision as of 12:21, 12 July 2022
Advanced Databases
- Course name: Advanced Databases
- Code discipline: XYZ
- Subject area: xxx
Short Description
This course covers the following concepts: DevOps Engineering 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 Databases 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