Title |
Complex IT Systems – Theory
|
Semester |
E2024
|
Master programme in |
Computer Science
|
Type of activity |
Course |
Teaching language |
English
|
Study regulation |
Read about the Master Programme and find the Study Regulations at ruc.dk |
REGISTRATION AND STUDY ADMINISTRATIVE | |
Registration |
You register for activities through stads selvbetjening during the announced registration period, which you can see on the Study administration homepage. When registering for courses, please be aware of the potential conflicts and overlaps between course and exam time and dates. The planning of course activities at Roskilde University is based on the recommended study programmes, which should not overlap. However, if you choose optional courses and/or study plans that goes beyond the recommended study programmes, an overlap of lectures or exam dates may occur depending on which courses you choose. |
Number of participants |
|
ECTS |
15
|
Responsible for the activity |
Troels Andreasen (troels@ruc.dk)
|
Head of study |
Henrik Bulskov (bulskov@ruc.dk)
|
Teachers |
|
Study administration |
IMT Registration & Exams (imt-exams@ruc.dk)
|
Exam code(s) |
U60056
|
ACADEMIC CONTENT | |
Overall objective |
Software engineering methods and principles, machine architecture and operating systems, distributed systems, databases and human to machine interactions. The course includes a presentation and critical discussion as well as testing of knowledge and understanding of the core areas in each of these subjects. |
Detailed description of content |
This course will cover selected topics from theory on databases, networks and user interfaces and will in addition involve hands-on practical experience with special emphasis on development of applications in a distributed environment. Focus will be on client-server environments, where an application draws on functionality made available through web services, which in turn draws on data from one or more databases and possibly other sources. The course is divided in four sections. The content of each of these is outlined below. Section 1: Data and Databases In this section we will cover a number of key topics from database theory. First of all we will cover the relational model and the relational algebra as well as the relational language database SQL. We will go into two important approaches to database design, namely database modelling using the Entity-Relationship model and analysis using normalisation theory. We will briefly discuss database indexing and query optimization as well as transaction management. As far as programming is concerned we will consider two different approaches. One approach concerns implementation of functions, procedures and triggers to be stored directly in the database. The other approach concerns integration of database access into application programs and services – either using database interfaces or the so-called Object Relational Mapping (ORM). Section 2: Data communication and network with focus on web services This section will include a general introduction to network architecture and distributed systems. There will be a special focus on web services, including context, technology, communications, languages, protocols and architecture related to these. The main development language for server programming will be the object-oriented language c# (similar to java). For the connection to the database we will look at an ORM framework and linq, which is an extension of c# specifically directed at simplifying the processing of relational data in an object-oriented context, and for the web services we will use asp.net web api, which is a framework specific for supporting restful web services interfaces. Section 3: Development of single-page web applications We touch on the general theory and practice related to designing and implementing graphical user interfaces. We will implement front-end applications that run on the users browser. They will be implemented in JavaScript, HTML, and CSS and will use a front-end UI library for developing so-called single-page applications (SPA) which communicate asynchronously with the backend and thus hide these communications from the user. We will cover modular and composable UI components, routing and navigation, application state management, and advanced JavaScript, including asynchronous programming and event-driven programming. Section 4: Security Attacks on web-sites and methods to protect against the attacks. Attacks covered include SQL injection attacks on databases, attacks on password-based user-authentication, and cross-site scripting attacks that display web-content from a malign third party. |
Course material and Reading list |
Main key references in Database Systems, C# and JavaScript, as well as additional course literature, can be found on the Moodle page for the course. |
Overall plan and expected work effort |
The course will have a total workload of 412 hours with 135 hours of lectures and exercises, 232 hours of preparation over a 15-week course period and 45 hours for the exam and preparation before the course. The activity’s major teaching and learning activities are fleshed out • In class teaching • Exercises • Mandatory assignments on course topics • Homework individually/in study groups and these may be further developed with description of the processes involved, links to files with descriptions, etc. |
Format |
|
Evaluation and feedback |
Evaluation form to be filled out (anonymously) plus open discussion on the last course day. |
Programme |
|
ASSESSMENT | |
Overall learning outcomes |
After completing this activity, students will be able to:
|
Form of examination |
Individual oral exam without time for preparation.
Time allowed for exam including time used for assessment: 30 minutes. Permitted support and preparation materials: All. Assessment: 7-point grading scale. Moderation: External examiner. |
Form of Re-examination |
Samme som ordinær eksamen / same form as ordinary exam
|
Type of examination in special cases |
|
Examination and assessment criteria |
It will be assessed to which degree the student demonstrates knowledge and understanding of key theories in the core subject areas of the three sections (outlined above). Before the exam students will know the exam questions for each of the three sections. At the exam the student will pick a set of three questions, one from each section. |
Exam code(s) | |
Last changed | 27/08/2024 |