CloseHelpPrint
Kies de Nederlandse taal
Course module: 202001028
202001028
Data & Information
Course infoSchedule
Course module202001028
Credits (ECTS)12
Course typeStudy Unit
Language of instructionEnglish
Contact persondr. F.A. Bukhsh
E-mailf.a.bukhsh@utwente.nl
Lecturer(s)
PreviousNext 4
Lecturer
dr. F. Ahmed
Lecturer
Y.d.C. Barrios Fleitas
Lecturer
N. Bouali
Contactperson for the course
dr. F.A. Bukhsh
Lecturer
dr. F.A. Bukhsh
Academic year2020
Starting block
2B
RemarksOnly B-TCS/BIT students can register via Osiris. Others need to contact modulesupport-tcs@utwente.nl or the minor-office
Application procedureYou apply via OSIRIS Student
Registration using OSIRISYes
Number of insufficient tests1
Aims
After successful completion of the module student is able to …(Agile software engineering)
E1.    …develop software following Agile principles: SCRUM meetings, task boards, burn-down charts, frameworks, etc.;
E2.    …apply requirements-based testing;

(Requirements engineering)
R1.    …identify business requirements and translate these to user stories;
R2.    …specify functional and non-functional requirements;
R3.    …prioritize requirements in collaboration with various stakeholders;
R4.    …design a UML class diagram;
R5.     …systematically design web based applications using UML;

(Structured data)
D1.    …derive a logical database schema from a UML class diagram;
D2.    …identify functional dependencies and use these to systematically normalize a database to BCNF;
D3.    …formulate questions and translate these to SQL queries;
D4.    …apply SQL triggers in simple cases;
D5.    …identify transactions and explain the effect of different isolation levels on concurrency;

(Web programming)
P1.    …design and implement complex multi-tier web applications;
P2.    …use repositories and version management;
P3.    …integrate web applications with existing (REST-ful) services;
P4.    …build user interfaces with frameworks for HTML, CSS, and javascript;
P5.    …explain the consequences of server-side vs. client-side scripting, servlets, Ajax, JSP, Web frameworks, etc.;

(Semi- and unstructured data)
U1 … apply basic techniques for handling XML/JSON data in an XML database using XML standards such as XPath and XQuery
U2 … apply basic techniques for handling XML/JSON data in a relational database using extensions to the SQL standard, such as SQL/XML and JSON types, functions and operators
U3 … understand the basic theoretical principles behind tree data structures and indexing of tree data
U4 … understand the basic theoretical principles behind information retrieval and apply basic full text querying support in XML and relational databases

(Security)
S1.    …protect applications against unauthorized access;
S2.    …project applications against (SQL-)injection and cross-site scripting;


(Academic skills: Project skills)
A1… apply the Belbin team role model
A2… apply the core quality quadrant model of Daniel Ofman
A3... effectively give and receive feedback
A4... effectively resolve team conflicts
A5… explain the concepts of fraud and plagiarism and behave responsibly as a professional concerning these aspects
Content
In the module “Software systems” students have learnt to solve complicated software problems by means of stand-alone applications. In this module they learn and get experience in the design, implementation, and testing of complex multi-tier systems, using standard tools like database management systems, scripting frameworks and existing services (RESTful services). In this module, data (structured and semi-structured) play an important role. This comprises classically structured data in databases as well as obtaining data from social media and other web resources. Security will be explicitly dealt with.
A large project for an external client will be carried out by means of agile methods. As a consequence, students will gain experience in dealing with various stakeholders. Team skills are explicitely addressed as Academic Skills.
The mathematics in this module is concerned with probability theory.

Prerequisite knowledge:
Programming: Core concepts of imperative programming and object-oriented programming; being able to write software of average size (around ten classes) in Java. If you have adequate programming experience, but not in Java, you should additionally familiarize yourself with Java syntax and a Java software development environment like Eclipse.
Computer networks: Understanding the basic working of internet applications and protocols like HTTP.
Databases: No prerequisite knowledge required, but if you have no experience with elementary database concepts and data modelling, some extra effort is required to catch up.
Mathematics: No prerequisite knowledge required, but elementary knowledge of Set Theory and Mathematical Logic is helpful for understanding query languages.
 
For further details please contact the module coordinator.
Assumed previous knowledge
See description of module contents
Module
Module 4
Participating study
Bachelor Business & IT
Participating study
Bachelor Technical Computer Science
Required materials
-
Recommended materials
Course material
Study materials, such as parts of books and articles, as well as (references to) online materials will be made available on Canvas
Instructional modes
Lecture

Lecture with lab

Practical
Presence dutyYes

Presentation(s)
Presence dutyYes

Project supervised
Presence dutyYes

Project unsupervised
Presence dutyYes

Self study without assistance

Tests
Introduction Data & Information

Database Design

DB transactions / Information Retrieval

Semi-structured Data / Security

Project

Additional Requirements

CloseHelpPrint
Kies de Nederlandse taal