PDF for print Find calendar

Complex IT Systems – Theory

Title
Complex IT Systems – Theory
Semester
E2023
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 responsive applications in a distributed environment.

Focus will be on client-server environments, a responsive 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:

  • demonstrate knowledge and understanding of key theories in the core subject areas and techniques for the design and construction of software systems meeting specific requirements.

  • show comprehensive overview of and understanding of the general principles behind the hardware and software systems that are part of modern computers and the users' interactions with these.

  • selecting and applying appropriate methods and techniques from the subject area for the analysis, design, and construction of software systems.

  • demonstrate competences in being able to work with IT issues, both independently and in teams, and in being able to critically and systematically learn new approaches to the subject area and thereby independently take responsibility for one’s own professional development.

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)
Exam code(s) : U60056
Last changed 04/09/2023

lecture list:

Show lessons for Subclass: 1 Find calendar (1) PDF for print (1)

Monday 04-09-2023 10:00 - 04-09-2023 16:00 in week 36
Study- and semesterstart - 1st semester - Computer Science (COMP)

Tuesday 05-09-2023 09:00 - 05-09-2023 17:00 in week 36
Complex IT Systems - Theory (COMP)

Thursday 07-09-2023 13:00 - 07-09-2023 17:00 in week 36
Complex IT Systems - Theory (COMP)

Wednesday 13-09-2023 08:15 - 13-09-2023 16:00 in week 37
Complex IT Systems - Theory (COMP)

Friday 15-09-2023 08:15 - 15-09-2023 12:00 in week 37
Complex IT Systems - Theory (COMP)

Wednesday 20-09-2023 08:15 - 20-09-2023 16:00 in week 38
Complex IT Systems - Theory (COMP)

Friday 22-09-2023 08:15 - 22-09-2023 12:00 in week 38
Complex IT Systems - Theory (COMP)

Monday 25-09-2023 08:15 - 25-09-2023 12:00 in week 39
Complex IT Systems - Theory (COMP)

Wednesday 27-09-2023 08:15 - 27-09-2023 16:00 in week 39
Complex IT Systems - Theory (COMP)

Friday 29-09-2023 08:15 - 29-09-2023 12:00 in week 39
Complex IT Systems - Theory (COMP)

Wednesday 04-10-2023 08:15 - 04-10-2023 16:00 in week 40
Complex IT Systems - Theory (COMP)

Friday 06-10-2023 08:15 - 06-10-2023 12:00 in week 40
Complex IT Systems - Theory (COMP)

Wednesday 11-10-2023 08:15 - 11-10-2023 16:00 in week 41
Complex IT Systems - Theory (COMP)

Friday 13-10-2023 08:15 - 13-10-2023 12:00 in week 41
Complex IT Systems - Theory (COMP)

Wednesday 18-10-2023 08:15 - 18-10-2023 16:00 in week 42
Complex IT Systems - Theory (COMP)

Friday 20-10-2023 08:15 - 20-10-2023 12:00 in week 42
Complex IT Systems - Theory (COMP)

Wednesday 25-10-2023 08:15 - 25-10-2023 16:00 in week 43
Complex IT Systems - Theory (COMP)

Friday 27-10-2023 08:15 - 27-10-2023 12:00 in week 43
Complex IT Systems - Theory (COMP)

Wednesday 01-11-2023 08:15 - 01-11-2023 16:00 in week 44
Complex IT Systems - Theory (COMP)

Friday 03-11-2023 08:15 - 03-11-2023 12:00 in week 44
Complex IT Systems - Theory (COMP)

Wednesday 08-11-2023 08:15 - 08-11-2023 16:00 in week 45
Complex IT Systems - Theory (COMP)

Friday 10-11-2023 08:15 - 10-11-2023 12:00 in week 45
Complex IT Systems - Theory (COMP)

Monday 13-11-2023 08:15 - 13-11-2023 16:00 in week 46
Complex IT Systems - Theory (COMP)

Wednesday 15-11-2023 08:15 - 15-11-2023 12:00 in week 46
Complex IT Systems - Theory (COMP)

Friday 17-11-2023 08:15 - 17-11-2023 12:00 in week 46
Complex IT Systems - Theory (COMP)

Wednesday 22-11-2023 08:15 - 22-11-2023 16:00 in week 47
Complex IT Systems - Theory (COMP)

Friday 24-11-2023 08:15 - 24-11-2023 12:00 in week 47
Complex IT Systems - Theory (COMP)

Wednesday 29-11-2023 08:15 - 29-11-2023 16:00 in week 48
Complex IT Systems - Theory (COMP)

Friday 01-12-2023 08:15 - 01-12-2023 12:00 in week 48
Complex IT Systems - Theory (COMP)

Wednesday 06-12-2023 08:15 - 06-12-2023 16:00 in week 49
Complex IT Systems - Theory (COMP)

Friday 08-12-2023 08:15 - 08-12-2023 12:00 in week 49
Complex IT Systems - Theory (COMP)

Wednesday 13-12-2023 08:15 - 13-12-2023 16:00 in week 50
Complex IT Systems - Theory (COMP)

Friday 15-12-2023 08:15 - 15-12-2023 12:00 in week 50
Complex IT Systems - Theory (COMP)

Tuesday 23-01-2024 08:15 - Thursday 25-01-2024 18:00 in week 04
Complex IT Systems - Theory - Oral examination (COMP)

Friday 23-02-2024 08:15 - 23-02-2024 18:00 in week 08
Complex IT Systems - Theory - Oral reexamination (COMP)