PDF for print Find calendar

Complex IT Systems – Theory

Title
Complex IT Systems – Theory
Semester
E2022
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

Sign up for study activities at STADS Online Student Service within the announced registration period, as you can see on the Study administration homepage. When signing up for study activities, please be aware of potential conflicts between study activities or exam dates. The planning of activities at Roskilde University is based on the recommended study programs which do not overlap. However, if you choose optional courses and/or study plans that goes beyond the recommended study programs, 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 Studyadministration (imt-studyadministration@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 three sections. In each of these, the theory and the related practice (covered in the Complex IT Systems – Practice course) will be linked such that the theory dominates in the beginning while the practice related work will be in focus at the end. The three sections will form a coherent whole.

The content of the three sections is outlined below.

Section 1: Data and Databases

In this section we will cover a number of key topics from database theory including the relational model, the relational language SQL, database design, normalisation theory, database indexing and query optimization as well as transaction management. We will also cover database programming, basically by two different approaches. One approach concerns implementation of functions, procedures and triggers to be stored directly in the database. The other approach concerns development of applications and services using the database – either through a simple database interface or by means of so-called Object Relational Mapping (ORM). In addition the database section will cover approaches to deal with unstructured data, more specifically noSQL databases. We will compare these to the relational approach and discuss strengths and weaknesses.

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 responsive applications

Here we touch on general theory and practice related to user interfaces for human-machine interaction and the development of user interfaces. We will, as far as target applications are concerned, focus on so-called single-page applications (spa) with html5, css and javascript, and with emphasis on responsive applications that can adapt to a wide range of devices, including smartphones, tablets and desktops. In this context we will cover various aspects of advanced scripting, including asynchronous programming, event-driven programming and data binding. We will also introduce "hybrid apps" (mixture between native and web-based) and present approaches that, given an html5, css and javascript-based web app, can create dedicated (and thereby app-store-publishable) versions for devices such as smartphones and tablets.

Course material and Reading list

Key references are the following:

  • Database System Concepts 7th Edition Abraham Silberschatz, Henry Korth, S. Sudarshan ISBN: 9781260084504
  • C# 6.0 IN A NUTSHELL Joseph Albahari and Ben Albahari ISBN: 978-1-491-92706-9
  • Eloquent JavaScript https://eloquentjavascript.net/

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 24/05/2022

lecture list:

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

Monday 05-09-2022 13:00 - 05-09-2022 17:00 in week 36
Complex IT Systems - Theory (COMP)

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

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

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

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

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

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

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

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

Monday 03-10-2022 09:00 - 03-10-2022 12:00 in week 40
Complex IT Systems - Theory (COMP)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Friday 09-12-2022 08:15 - 09-12-2022 12:30 in week 49
Complex IT Systems - Theory (COMP)

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

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

Monday 23-01-2023 08:15 - Wednesday 25-01-2023 18:00 in week 04
Complex IT Systems – Theory - Oral examination (COMP)

Thursday 23-02-2023 08:15 - 23-02-2023 18:00 in week 08
Complex IT Systems – Theory - Oral reexamination (COMP)