Programme

The Bachelor in Applied Information Technology offers the following programme:
Year introduces IT, graphics, mathematics and programming,
Year 2 adds databases, networks, software development, web applications.
Year 3 offers deeper knowledge on design patterns, web programming and different optional courses. The last semester is dedicated to an internship.
Academic Contents
Course offer for Semestre 1
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-2
- Module(s): Module 1.1
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Rassembler tous les éléments de culture générale informatique qui seront développés dans les cours avancés, entre autres : les conversions de bases, les automates, le fonctionnement d’un réseau informatique, les outils de collaborations. Le cours s’appuie sur les contextes historiques qui ont mené aux différents points abordés et présentent les différentes notions permettant de comprendre les systèmes informatiques modernes.
-
Course learning outcomes
Après avoir suivi ce cours, les étudiants seront capables : de connaître les noms d'informaticiens célèbres et leurs contributions à l'histoire de l'informatique; d'expliquer de façon correcte et simple la signification des termes et abréviations communément utilisés en informatique; d'avoir une compréhension des concepts fondamentaux de l'informatique (logique binaire, architecture logiciel-matériel, notion de protocole, de code machine, de langage informatique); d'appliquer un certain nombre d'algorithmes de base à des situations concrètes; de connaître les principaux outils de collaboration informatique de faire des raisonnements simples sur des concepts informatiques; de décrire des procédés et techniques informatiques. -
Description
Historique des techniques de traitement de l'informationConversion de bases et CalculLogique booléenneStructure générale et fonctionnement des ordinateurs Introduction aux automatesPrésentation des UTMs (Universal Turing Machine)Introduction à l’algorithmiqueOutils de Collaboration et évolution des langagesIntroduction aux réseaux informatiques Introduction à l’intelligence artificielle -
Organisation
-
Note
Les étudiants devront obligatoirement participer aux TD et remettre les travaux personnels qui leur sont demandés.Ouvrage de référence: Les références online seront publiées sur Moodle.
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-1
- Module(s): Module 1.1
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Evaluate existing working knowledge of the English language and bring it to perfection, especially in the information technology domain.
-
Course learning outcomes
On successful completion of this course, students are capable to: use the English language in written and oral form in the context of information technology; read and understand technical documents from the IT domain written in English language; explain in English language the content of documents from the IT domain of medium complexity. -
Description
The course is given in English and so allows all students to practice their English language. If possible, two groups will be formed based on the students' experience with English. Special focus will be laid on the usage of the English language specifically in the context of information technology:Revision of the linguistic basis (grammar and specialised vocabulary).Investigation and analysis of thematic documents for improving the understanding of English language structures and usage of key vocabulary. -
Organisation
-
Note
Literature: Online references will be announced on the course website.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-3
- Module(s): Module 1.2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course intends that all students have sufficient knowledge of basic calculus, especially on the analysis of elementary real functions in one variable and on the usage of finite and infinite sequences and series in computer science.
-
Course learning outcomes
On successful completion of this course, students are capable to: solve problems in calculus of real-valued functions in one variable of different types (polynomial, logarithm, exponential, trigonometric functions); determine convergence and (possibly) limits of simple sequences and series; apply the most common proof techniques used in calculus to basic mathematical problems; determine derivatives and antiderivatives of simple real-valued functions in one variable; summarize some examples of close relationships between mathematics and computer science. -
Description
Proofs with mathematical inductionConvergence of infinite sequences and their limitsConvergence of finite and infinite series and applications in computer scienceBasic definitions and properties of real-valued functions in one variableElementary functions (polynomials, logarithm, exponential, trigonometric functions) and their propertiesDerivatives and integration of real-valued functions and applicationsApplications of real-valued functions in one variable to problems in computer science -
Organisation
-
Note
Literature: Franck Leprévost: What counts? A Hands-On Tutorial on Calculus, Ed. Amazon (2022).
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-4
- Module(s): Module 1.2
- Language: FR
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Fournir une introduction aux mathématiques discrètes, en traitant les techniques de base de la logique, des ensembles et du dénombrement, ainsi que de l'arithmétique.
-
Course learning outcomes
Après avoir suivi ce cours, les étudiants seront capables : d'appliquer les règles de logique élémentaire; d'utiliser les ensembles et les relations binaires; de représenter et de calculer avec les nombres en base quelconque; de calculer en arithmétique modulaire; de résoudre des petits problèmes de dénombrement; de comprendre et d'utiliser un modèle simplifié du protocole de chiffrement RSA; de résoudre certains problèmes élémentaires de théorie des graphes; d'appliquer un raisonnement par récurrence. -
Description
Logique élémentaireListes et suitesEnsemblesDénombrementArithmétique élémentaireRelations binairesCongruences et arithmétique modulaireGraphes -
Organisation
-
Note
Ouvrage de référence: Michel Marchand, «Outils mathématiques pour l'informaticien », 2e éd. De Boeck Université, Bruxelles 2005 [ISBN 978-2804149635]. O. Levin, Discrete Mathematics, An Open Introduction (open access book available at http://discrete.openmathbooks.org/dmoi3.html) Franck Leprévost, "How big is big? How fast is fast? A Hands-On Tutorial on Mathematics of Computation", available via Amazon. (2021).
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-5
- Module(s): Module 1.2
- Language: FR, EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Familiariser l'étudiant(e) avec les techniques de base des statistiques descriptives.
-
Course learning outcomes
Après avoir suivi ce cours, les étudiants seront capables : de traiter des séries statistiques; d'appliquer la théorie statistique pour des problèmes informatiques; d'utiliser des outils informatique pour des calculs statistiques. -
Description
Organisation des données statistiques Traitement des séries statistiques Paramètres caractéristiques -
Organisation
-
Note
Les étudiants devront obligatoirement participer aux TD et remettre les travaux personnels qui leur sont demandés.Ouvrage de référence: Catherine Dehon, Jean-Jacques Droesbeke, Catherine Vermandele: "Éléments de statistique", éditions de l'Université de Bruxelles. ISBN 978-2340009080.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-101
- Module(s): Module 1.3
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Operating systems provide an interface between the hardware and the applications on the computer. It helps with processes scheduling, user and rights management and file management. The purpose of this course is to provide a basic introduction to operating systems.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain the basic principles of OS, including process scheduling, user and rights management and file systems, use shell commands and basic scripting in Linux. -
Description
Introduction to OS (Windows, Linux, MacOS)Processes: management and schedulingUser and Rights managementFile SystemsBasic of system administration, lab exercises, scripting, virtualisationMobile OS (Android, iOS) -
Organisation
-
Note
Literature: Books and other inputs given in the lecture.
-
Details
- Number of ECTS: 8
- Course number: BPINFOR-100
- Module(s): Module 1.3
- Language: FR, EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course introduces the fundamentals of programming, together with the key concepts of object-orientation. The Java programming language will be used primarily for the code examples.
-
Course learning outcomes
On successful completion of this course, students are capable to: Understand the fundamentals of programming. Apply object-oriented concepts. Design algorithms of average complexity. Implement those algorithms in the Java programming language. Perform basic testing. -
Description
The course discusses and illustrates the following topics using a hands-on approach:Overview of different types of programming languages.Basic skills of problem-solving: from problem descriptions to algorithms.Data types.Control structures.Classes and objects.Encapsulation and access control.Subtyping, inheritance, and polymorphism.Basics of generic programming.Exception handling. -
Organisation
-
Note
Literature: "The Java Language Specification, Java SE Edition", James Gosling et al, Addison-Wesley, ISBN 978-0133260229, available online at: https://docs.oracle.com/javase/specs/ Additional material will be announced during the lecture.
Course offer for Semestre 2
-
Details
- Number of ECTS: 2
- Course number: BPINFOR-8
- Module(s): Module 2.1
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Review the English grammar and develop composition and presentation skills in English. In addition, we introduce more technical vocabulary from the IT domain.
-
Course learning outcomes
On successful completion of this course, students are capable to: understand courses and presentations given in English language. read and understand technical documents from the IT domain. show skills in giving presentations in English. -
Description
Oxford Grammar and Listening Tests and diagnostic assessment (first session)Writing three short papers based on a class projectWriting one oral presentation using Powerpoint covering the class project -
Organisation
-
Note
Students must participate in all weekly class meetings and complete three papers and one oral presentation.Literature:Swan, Michael. Oxford English Grammar Course: Basic, Oxford Univ. Press, 2011, ISBN-10: 0194420779Readings in Extreme ProgrammingReading SDK for mobile phone applicationsReading tutorials for mobile phone applications
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-11
- Module(s): Module 2.2
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course explains basic algorithms like Euclid's algorithm, modular exponentiation and the Chinese Remainder Theorem. Tests for primality are presented. In addition, operations for modular computations in Z/p^dZ and Z/mnZ are explained.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain basic algorithms for integers; apply the learned techniques to common integer-related problems; transfer the applied techniques to related problems for large numbers. -
Description
Prime numbers: What? How many? What for?Euclid's algorithm: How?Euler’s totient φ-function(Z/nZ)^∗ and φ(n)Exercises : Computing in Z/p^d Z and in Z/mnZChinese remainder theoremModular exponentiationQuestions about prime numbersEratosthenes Sieve Method Digression : Gauß approximationsHow to decide if a number is prime or not?Naive methodFermat’s testLegendre symbol and Solovay-Strassen test -
Organisation
-
Note
Literature: Franck Léprevost: "How Big is Big? How Fast is Fast? A Hands-On Tutorial on Mathematics of Computation", ISBN 9798642630556 – edited by Amazon
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-12
- Module(s): Module 2.2
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Ce cours vise à familiariser l'étudiant avec les notions de base du calcul des probabilités. Tout événement à priori inconnu est généralement décrit par des probabilités. Des exemples classiques sont: un jet de dés ou le lancer d'une pièce. Les probabilités sont utiles dans de nombreux domaines, soit pour faire des estimations, soit pour prendre de bonnes décisions par rapport à des évènements inconnus.
-
Course learning outcomes
Après avoir suivi ce cours, les étudiants seront capables : d’expliquer les bases de la théorie des probabilités; de formaliser et de résoudre des problèmes avec des probabilités; d'utiliser des distributions discrètes et continues. -
Description
Analyse combinatoire: dénombrement des possibilités, combinaisons, permutations.Variables aléatoires: notation, probabilités conditionnelles, théorème de Bayes, marginalisation, indépendance.Espérance mathématique: valeur moyenne, variance, écart-type, linéarité, corrélation.Distributions discrètes: épreuves de Bernoulli, loi géométrique, loi binomiale.Distributions continues: densités, loi uniforme, loi normale.La loi des grands nombres.Estimations. -
Organisation
-
Note
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-10
- Module(s): Module 2.2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
To guarantee that all students have a sufficient knowledge of basic linear algebra needed in computer science.
-
Course learning outcomes
On successful completion of this course, students are capable to: calculate with vectors and matrices; explain the relevance of determinants and Eigenvalues for some practical problems in computer science; apply the learned topics to problems in IT related with basic linear algebra. -
Description
Vectors and vector spacesLinear independence of vectors and basis of a vector spaceMatrices and matrix operationsAlgorithm of Gauss for solving simultaneous linear equationsMatrix determinant and matrix inversionMatrix normal formsEigenvalues and eigenspaces -
Organisation
-
Note
Students are obliged to participate to the exercise sessions and do their homework.Literature: Franck Leprévost: "Order Matters! A Hands-On Tutorial on Linear Algebra", available on Amazon, ISBN 979-8595860642.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-13
- Module(s): Module 2.3
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Familiarize students with algorithms and fundamental data structures and with the analysis of their complexity.
-
Course learning outcomes
On successful completion of this course, students are capable to: solve problems computationally by developing a suitable algorithm and corresponding data structure; analyze the complexity of an existing algorithm; extend their algorithmic background independently using existing literature. -
Description
Concept of algorithm;Complexity of algorithms;Sorting algorithms ;Mathematical background;Data structures;Hashing;Graph algorithms;Classification of algorithms;Complexity of problems. -
Organisation
-
Note
Literature: Relevant literature and online resources will be announced on the course website.
-
Details
- Number of ECTS: 6
- Course number: BPINFOR-14
- Module(s): Module 2.3
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course introduces advanced notions of object-orientated programming, supporting the design and implementation of more complex software systems. Both the Java and Swift programming languages will be used to convey the relevant concepts, in a comparative fashion.
-
Course learning outcomes
On successful completion of this course, students are capable to: Analyse problem descriptions of average size. Assess software designs in several terms, including extensibility, reusability, and maintainability. Apply fundamental principles of object-orientation to come up with a sound software design. Create robust implementations in both the Swift and Java programming languages. -
Description
The course discusses and illustrates the following topics using a hands-on approach:Value and reference typesFunctions and closuresProtocols and extensionsFrom object-oriented to protocol-oriented programmingAdvanced error handling techniquesAdvanced generic programmingSerialisation and persistence -
Organisation
-
Note
Prerequisite to sitting the final exam is the completion of all intermediate deliverables.Literature: Relevant literature and various resources will be announced on the course website.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-109
- Module(s): Module 2.4
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Computer Graphics is a very important field of computer science. Its use today spans virtually all scientific fields and is utilized for design, presentation, education and training. In this course, an introduction into basics of computer graphics theory and practice is given with an applied approach based on open-source tools like Gimp, Inkscape, or the Java 2D API.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain core techniques and data representation for the creation and manipulation of two-dimensional images. apply these techniques to three-dimensional graphical objects. use popular graphics-related open-source tools like Gimp or Inkscape for simple image processing tasks. develop simple graphics-related programs with the help of the Java 2D API or JavaFX. -
Description
Raster versus vector graphicTwo-dimensional graphics:Pixel, coordinate systems, colorsBasic graphical Shapes: line segments, circles, ellipsis, polygonsAffine transforms like translation, rotation, scaling, shearingImage manipulation with convolution filtersImage manipulation based on statistical informationPractical introduction to the Java 2D API and the open source programs Gimp and InkscapeIntroduction to three-dimensional graphics:Similarities and differences between 3D and 2DRepresentation of three dimensional objects, texture, material, …Introduction into light and shadow handling and ray tracing -
Organisation
-
Note
Literature: Main literature: "Introduction to Computer Graphics", David Eck, 2018, free online version available at https://math.hws.edu/graphicsbook/ . "Introduction to Computer Graphics – Using Java 2D and 3D", Frank Klawonn, 2012, Springer, online version available via https://a-z.lu. The Java Tutorials – 2D Graphics, available at https://docs.oracle.com/javase/tutorial/2d/index.html. Additional literature and online resources will be provided on the course website.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-121
- Module(s): Module 2.4
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course teaches the fundamental ideas of cleaning, manipulating, processing, and analyzing data. Students will work on data analysis problems encountered in various data-intensive applications. The course includes many in-class programming exercises where students are expected to work on various case studies. Through these exercises, the course will also serve as an introduction to data analysis and modern scientific computing using the Python programming language.
-
Course learning outcomes
On successful completion of this course, students are capable to: Understand the fundamentals of data analysis, Use the Python programming and its libraries NumPy, Pandas, and Matplotlib/Seaborn, Pose questions, collect relevant data, analyze data, interpret data and provide insights, Present data-driven insights using data visualization. -
Description
Introduction: What is data analysis?Python basics, Build-in Data Structures, Functions, and FilesNumPy basics: Arrays and Vectorized ComputationData Acquisition, Preparation and Management Data VisualizationTime SeriesIntroduction to Modeling Libraries in PythonData Analysis Examples -
Organisation
-
Note
Literature: Python for Data Analysis, O’REILLY, ISBN-10: 1491957662 Python Data Analysis, Steve Eddison, ISBN: 1709888989 Introduction to Data Science with Python: Basics of Numpy and Pandas, Mark Smart, ISBN-10: 1731036841 Lectures slides and any supplemental course content will be provided on the course web site.
Course offer for Semestre 3
-
Details
- Number of ECTS: 5
- Course number: F1_BAINFOR-59
- Module(s): Module 3.1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course provides an introduction to front-end web development. The course covers the foundational building blocks of the Web and user interface design fundamentals for building websites and web applications. After the course, students will be able to understand and develop the front-end of any kind of websites and web applications.
-
Course learning outcomes
By the end of the course students will be able to:1.Understand the foundations of front-end development.2.Identify the key components of web technologies.3.Judge and support best practices in web development. -
Description
1. Getting started 1.1. Front-end roles: Design, develop, create, and animate.1.2. Languages: HTML, CSS, JS.1.3. Setup: OS, browsers, editors.2. How the web works 2.1. History: Internet, web browsers.2.2. URIs: Scheme, conventions.3. Key concepts to know 3.1. Methodologies: Progressive enhancement, graceful degradation, and RWD.3.2. Accessibility: Types of impairments.4. HTML Overview 4.1. Defaults: Formatting, doctypes, stylesheets.4.2. Semantic markup: Microdata, microformats.4.3. Entities: Tags, attributes.5. Marking up text 5.1. Structural elements: Metadata, sections, text, lists, tables, form, media.6. Adding links 6.1. Working with URLs: Link types, attributes, fragments7. Adding images 7.1. Concepts: Formats, raster/vector, resolution, interlacing, transparency7.2. Optimization: Compression, dithering7.3. SVG: Animation, filters8. Tables 8.1. Markup notation: Semantics, controlling structure.9. Forms 9.1. Markup notation: Elements, attributes9.2. Sending data: GET, POST, encodings.10. HTML510.1. Overview: Features, browser wars10.2. APIs: Media Player, History, Storage, Drag and Drop, Canvas11. Cascading Style Sheets 11.1. Authoring: Formats, structure11.2. Inheritance: Tree matching, specificity11.3. Selectors: IDs, classes, conflicting styles, contextual and pseudo-selectors12. Formatting text 12.1. Fonts: Properties, family, style, colour12.2. Measurement units: Absolute (px, pt) and relative (em, ex)13. Colours and backgrounds 13.1. Colour models: RGB, RGBA, HSV, opacity13.2. Images: Properties, notation13.3. Gradients: Linear and radial gradients14. Thinking inside the box 14.1. Box model: Sizing, overflow, margin, padding, borders15. Floating and positioning 15.1. Layout flow: Containers, clears, stacking order.16. Page layout 16.1. Types: Fixed, fluid, elastic, hybrid16.2. Methodologies: Common patterns, Flexbox, Grid system17. Transitions, transforms, and animation 17.1. Fundamentals: Functions, keyframes, properties18. CSS techniques 18.1. Tips: Resets, sprites18.2. Pre-processors: Variables, functions18.3. Responsive web design: Media queries -
Organisation
-
Note
Syllabus ⊠Yes ☐No Remarks: Available on Moodle Literature list ⊠Yes ☐No Remarks: Reference texbook:J. Robbins. 2012. Learning Web Design. O’Reilly Media, 4th ed. Recommended books: R. Anquetil. 2019. Fundamental Concepts for Web Development, 1st ed.M. Haverbeke. 2018. Eloquent JavaScript, 3rd ed.S. Krug. 2000. Don't Make Me Think, 3rd ed. Moodle page ⊠Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=5689 Other, please specify: Class attendance is not required but highly encouraged.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-85
- Module(s): Module 3.1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The aim of this course is to familiarize the students with the basics of graphical user interface (GUI) programming with two different popular frameworks and related programming paradigms like event-driven programming and multi-threading.
-
Course learning outcomes
On successful completion of this course, students are capable to: develop event-driven programs for Swing-based desktop applications or Android mobile phones; apply multi-threading in programming tasks; explain design patterns commonly used for mobile application development; extend their knowledge on relevant techniques in mobile programming independently with literature research. -
Description
This course addresses the theory and practice of graphical user interface (GUI) programming. Topics include:event-driven programming,multi-threading, andrelated design patterns (Model-View-Controller, …).We examine various practical examples inJava Swing for desktop applications, andAndroid for mobile phones. -
Organisation
-
Note
Literature: Online documentation of the different toolkits.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-69
- Module(s): Module 3.2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course builds on and extends some topics covered in Algorithms 1 and is mainly intended for deepening students' knowledge and understanding of essential non-linear data structures. Recursivity as a crucial concept both in the definition and the utilization of such data structures will be discussed in detail, further familiarizing students with the underlying idea. The course focuses on the C programming language in examples and for most implementation work.
-
Course learning outcomes
On successful completion of this course, students are capable to: describe the usage of tree data structures and their main operations; use these data structures in practical programming problems. -
Description
Binary and m-way search trees, (weight-)balanced trees, B/B*-trees, tries.Implementation and analysis of fundamental tree operations, their applications and libraries (also in other programming languages, e.g. Java or C#).Algorithms and data structures for Interpreters and Virtual machines.Compilation schemes and some basics of optimization for Compilers. -
Organisation
-
Note
Literature: Introduction to Algorithms, Thomas H. Cormen et al., MIT Press, 978-0262033848 The Art of Computer Programming – Volume 1: Fundamental Algorithms, Donald E. Knuth, Addison Wesley, 0-201-89683-4 Compilers: Principles, Techniques and Tools, Alfred V. Aho et al., Addison Wesley, 978-0321547989 Programming Languages – An Interpreter-Based Approach, Samuel N. Kamin, Addison Wesley, 0-201-06824-9
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-20
- Module(s): Module 3.2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course deepens the understanding of the concepts of operating systems together with the abstractions provided for developers.
-
Course learning outcomes
On successful completion of this course, students are capable to: identify and explain the responsibilities of an operating system; compare and evaluate the properties of different operating systems; designate the abstractions operating systems provide; properly use those abstractions from within applications; handle heterogeneity appropriately. -
Description
Operating systems represent sophisticated runtime platforms for all types of software. Their primary purpose is to mediate between applications and different kinds of resources. The internal workings of modern operating systems as well as the abstractions they provide for application programmers will be introduced throughout this lecture. Practical experiments will illustrate the theoretical concepts in the context of the Windows and Linux operating systems. Topics covered include:Memory managementProcesses and threadsSchedulingSynchronisationResource managementFile systems. -
Organisation
-
Note
Literature: Andrew S. Tanenbaum: “Modern Operating Systems”. 4th Edition, Pearson Education, ISBN 978-1292061429 William Stallings: “Operating Systems”. 8th Edition, Pearson Education, ISBN 978-1292061351 Abraham Silberschatz et al.: “Operating System Concepts”. 9th Edition, Wiley & Sons, ISBN 978-1118093757 Additional material will be announced during the lecture.
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-83
- Module(s): Module 3.3
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The goal of the course is to introduce students to the Unified Modeling Language (UML) for the analysis and design of software systems. The course will provide students with the necessary and essential theoretical and practical understanding of UML. The course focuses on the most important diagrams that can be employed to design and describe the structure and the behaviour of software systems.
-
Course learning outcomes
After successful completion of the course, students are capable to: understand the role of UML in object-oriented design; understand static and dynamic design modelling; understand and explain the role and the use of the UML models and diagrams; use UML modelling tools; use the appropriate diagram notations and create diagrams according to the corresponding development phase; identify use cases, create a use case diagram and describe different use case scenarios; create a domain model and model associations and attributes; elaborate interaction diagrams, e.g. sequence and communication diagrams for use case scenarios; elaborate class diagrams and introduce advanced associations like aggregation, composition and generalization; design state machine diagrams. -
Description
Introduction to UMLA notation to support iterative and incremental Software Development.Use case diagramsActor, Use cases, Assocations, Notations.Class Diagrams and Object DiagramsClasses, Attributes, Operations, Associations;Aggregation, Composition;Objects and Links.State Machine DiagramsStates, Transitions, Events;Composite States.Sequence DiagramsLifelines and messages.Activity DiagramsActions, Control flows, Object flows.The supervised exercise sessions are devoted to:the elaboration of UML diagrams;the use of UML modelling tools. -
Organisation
-
Note
Literature: Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel, “UML @ Classroom: An Introduction to Object-Oriented Modeling”. Springer 2015. Craig Larman,"Applying UML and Patterns: An Introduction to object-oriented Analysis and Design and iterative development”, Third Edition, Pearson Education, 2005, ISBN: 978-8-177589795. Grady Booch, James Rumbaugh, Ivar Jacobson, “The Unified Modeling Language User Guide”. Pearson Education. Christoph Kecher, Alexander Salvanos, "UML 2.5, Das umfassende Handbuch", Rheinwerk computing, ISBN: 978-3836249362. Laurent Debrauwer, Fien Van der Heyde, "UML 2.5 – Initiation, exemples et exercices corrigés", Editions ENI, ISBN: 978-2-409-02408-5.
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-102
- Module(s): Module 3.3
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course aims to prepare a future software engineer to run a software engineering project in practice with a team following a development methodology. Common methodologies for software engineering and its constituent parts are combined with student presentations on (usually open-source) tools important for software engineering in practice.
-
Course learning outcomes
On successful completion of this course, students are capable to: understand common software engineering processes including waterfall (linear) development, iterated and incremental approaches, and agile approaches. apply the principles and techniques of software engineering in the architectural design, detail design, and implementation of software applications. use basic features of the practical tools explained in the group presentations in a practical software engineering project. -
Description
Common software development process methodologies (waterfall model, incremental approaches, and agile approaches) and its constituent parts are covered in the theoretical part of the course. The principles behind requirement analysis, design, implementation, testing and maintenance will be explained. In addition, the course is centered around the realization of a group project in which the students will give a detailed presentation on how to use (usually open-source) tools important for software engineering in practice:Introduction to DockerSource code version control with gitBuild automation systems: maven, gradleUsing an IDE like Eclipse or IntelliJ – refactoring, syntax checking with checkstyle, using a debugger Source API Documentation tools: javadoc, doxygenStatic Code analysis: findbugsProfiling Java code: VisualVM, load testing with JMeterTesting frameworks: junit, selenium, mockitoCode review with Gerrit Continuous delivery with JenkinsProject Management with OpenProject -
Organisation
-
Note
Literature: Genuine literature will be provided during the course on the course website.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-22
- Module(s): Module 3.4
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course aims to give an introduction to databases, especially concentrating on data modeling techniques and data retrieval from data sources.
-
Course learning outcomes
On successful completion of this course, students are capable to: apply semantic data modeling for practical problems; create queries in SQL for relational database systems; interpret an XML schema for a XML database design correctly. -
Description
Early existing problems regarding the processing of data (in the 1960s) have been the motivation to define a novel (hierarchical) concept to manage data. Because of many disadvantages regarding the multi-use of the system, security, or data organization, this original concept has been improved step-by-step and finally found its triumphal procession by the works of E. F. Codd (1970s), who proposed the use of the Relational Data Model and Relational Algebra as fundamental concepts. Since this time, Relational Database Systems have been established and are still the most popular data management systems in almost any application domain. The course covers the following topics:Semantic Data Modeling with the Object Definition Language and Entity Relationship Model.Relational Algebra and Schema Design (1NF, 2NF, 3NF, BCNF, 4NF)SQL: Queries, Constraints, Programming & TriggersXML Database Design: DTDs & XML-Schema -
Organisation
-
Note
Literature: R. Elmasri, S. Navathe: Fundamentals of Database Systems. 5th Edition. Pearson Addison Wesley. 2006. H. Garcia-Molina, J. D. Ullman, J. Widom: Database Systems – The Complete Book. Prentice Hall International. 2008. R. Ramakrishnan, J. Gehrke: Database Management Systems. Mcgraw- Hill Professional. 2002. J. Ullman: Principles of Database Systems. W. H. Freeman & Co Ltd. 1982.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-103
- Module(s): Module 3.4
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course aims to provide an introduction to the TCP/IP networking protocols and architectures, including practical application of network analysis tools.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain the different protocol layers of the TCP/IP protocol; develop a computer program in the Java programming language that realizes TCP/IP connections; explain different protocols for routing. use some network analysis tools like Wireshark for traffic analysis. -
Description
The class uses the layout of networking classes introduced by J.Kurose and K.Ross. This model is strongly adhered to by many universities in the USA and Europe.The class will follow a top-down approach to introducing the TCP/IP protocols. It will introduce the functioning and protocol elements of popular protocols (HTTP/SMTP/SIP) and continue with the routing algorithms in TCP/IP networks.A selected set of TCP/IP specific mechanism (retransmission, state machine) will be also shown in class. The class will address also Layer 2 protocols and show the cross-layer interactions between protocols. Multimedia protocols, the QoS related parameters and security protocols for TCP/IP networks are also covered in the class. The class will also address basic TCP/IP programming. Students will be introduced to single/multithreaded client server programming using Java. At the end of the class, the student is expected to master network analysis tools (like TcPDump, Wireshark), understand the basic routing protocols (RIP, OSPF, BGP) and be able to write simple UDP/TCP client server applications. -
Organisation
-
Note
Literature: J. Kurose and K. Ross, “Computer Networking: A Top-Down Approach”, ISBN-13: 978-0132856201.
Course offer for Semestre 4
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-86
- Module(s): Module 4.1
- Language: FR, EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Sensibiliser l'étudiant aux aspects juridiques liés à l'informatique.
-
Course learning outcomes
Après avoir suivi ce cours, les étudiants seront capables : de réfléchir sur des questions juridiques de l'informatique; de décrire les aspects différents de la criminalité informatique. -
Description
Introduction générale au droitPropriété intellectuelle et informatiqueContrats et informatique (développement, maintenance, etc.)Communications électroniques et preuveInformatique et vie privéeAspects de droit de la responsabilitéCriminalité informatique -
Organisation
-
Note
Ouvrage de référence: Les références seront annoncées lors de la cours.
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-26
- Module(s): Module 4.1
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Comprendre et se familiariser avec les différents aspects du travail en groupe (psychologie et dynamique affective des groupes, biais cognitifs, prise de décision en groupe, gestion des conflits) tant dans le monde physique de l'entreprise que dans le monde numérique et les relations de travail médiées par les technologies et dispositifs numériques. Apports théoriques, conceptuels, approche éthique et mise en pratique par une étude de cas en groupe (dossier de groupe).
-
Course learning outcomes
Après avoir suivi ce cours, les étudiants seront capables :• de comprendre et analyser les différents aspects psychosociologiques du travail en groupe ; • de l’appliquer à une étude de cas réelle, de travail en groupe, en vue de s’approprier la démarche critique-réflexive comme méthode et posture éthique -
Description
Partie I. Des biais algorithmiques aux biais cognitifs1. C’est quoi un biais algorithmique ?2. La notion de biais cognitif3. Les principaux biais cognitifs4. Comment lutter contre les biais cognitifs ?Partie II. La prise de décision en groupe1. Les enjeux de la prise de décision2. L’effet Groupthink en psychologie3. La notion de « décision absurde » en sociologie4. Etude de cas réels documentés5. Comment éviter les « décisions absurdes » dans les groupes ?Partie III. La dynamique des groupes1. Caractéristiques d'un groupe en psychologie sociale : dynamique et dimension affective2. Leader vs Chef : La notion d'influence ; phénomènes de leadership et charisme; le leader comme « entrepreneur d'identité »3. Le pouvoir : Pouvoir et soumission/obéissance ; contre-pouvoir4. L'efficacité d'un groupe au travail : notion d'efficacité : approche quanti/quali ; rôle de la tâche ; phénomène de paresse sociale (Social Loafing) ; approche cognitive (modèles mentaux, mémoire transactive) ; intelligence collective : vers la coopération/coopétition ?5. La recherche du consensus dans le groupe : notion de consensus ; influence des minorités activesPartie IV. Gestion des conflits1. Approche nouvelle des conflits2. Causes/origines des conflits3. Types de conflits4. Méthodes de gestion des conflits/ Approche éthique+ Exercices pratiques : apprentissage de l'écoute active/empathie (technique d’écoute non-directive et de reformulation de C. ROGERS pour la régulation/négociation des conflits)Préparation du dossier en GROUPE : analyse d’un conflit éditorial dans l’écriture collaborative de Wikipédia (apports théoriques et méthodologiques : comprendre la gouvernance de Wikipédia, notion de biens communs, vigilance participative et régulation, gestion des conflits) -
Organisation
-
Note
Bibliographie (succincte)• Anzieu D., Martin J.-Y., 2007, La dynamique des groupes restreints, Paris, PUF.• Aubert Nicole, 2010, Le culte de l’urgence, Paris, Flammarion.• Audebert Patrick, 2005, Bien négocier, Paris, Ed. Organisation.• Augustinova M., Oberlé D., 2013, Psychologie sociale du groupe au travail, Bruxelles, De Boeck.• Bellenger L., 2009, Réussissez toutes vos négociations, Paris, ESF.• Blanchet A., Trognon A., 2008, La psychologie des groupes, Paris, A. Colin.• Cardon D., Levrel J., 2009, « La vigilance participative. Une interprétation de la gouvernance de Wikipédia », Réseaux, 2, n° 154, p. 51-89.• Cardon D., 2013, Dans l'esprit du PageRank. Une enquête sur l'algorithme de Google, Réseaux (dossier Politique des algorithmes. Les métriques du Web), 1, 177, p. 63-95.• Cardon D., 2015, A quoi rêvent les algorithmes. Nos vies à l’heure des big data, Paris, Seuil.• Casilli A., 2019, En attendant les robots. Enquête sur le travail du clic, Paris, Seuil.• Casilli A., 2022, Plateformes numériques, p. 185-201, in Didier Fassin (dir.), La société qui vient, Paris, Seuil.• Hellrieçer D., Slocum J.W., 2006, Management des organisations, Bruxelles, De Boeck Université, 2ᵉ éd. (chapitre 16 : la gestion des conflits).• Jean A., 2019, De l’autre côté de la machine. Voyage d’une scientifique au pays des algorithmes, Paris, Ed. L’Observatoire.• Magakian J.-L., Barmeyer C., Bouziat X., Hounounou A., Le Loarne S., 2003, 50 fiches pour aborder la gestion stratégique des ressources humaines, Paris, Bréal.• Morel C., 2002, Sociologie des décisions absurdes. Sociologie des erreurs radicales et persistantes, Paris, Seuil. • Morel C., 2012, Les décisions absurdes II. Comment les éviter ? Paris, Gallimard.
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-70
- Module(s): Module 4.2
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Study data link and network layer protocols, wireless and mobile networks. Understand security in computer networks. Intensive hands-on experience with networking in the labs.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain the basics of data link and network link layer protocols; apply practical experience gained about networking in a lab environment; describe security-related aspects of networking. -
Description
Network layer: Routing algorithmsLink Layer and LAN, Ethernet, ARPOrganization of internet standards and RFCsWireless and mobile networks CDMA, GSM, 3GPPMultimedia networking RTSPSecurity in Computer Networks: PGP, IPSec, SSL/TLS -
Organisation
-
Note
Literature: Kurose/Ross textbook and slides: https://www-net.cs.umass.edu/kurose-ross-ppt-6e/
-
Details
- Number of ECTS: 5
- Course number: BPINFOR-108
- Module(s): Module 4.2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Prepare the future software engineer to run a software engineering project in a team following a development method. Teaching is centered on the realization of a group project (including homework) in which the students will engineer a software system of low complexity that should educate them concerning problems, principles, methods and techniques of software engineering. The main knowledge fields are: requirements analysis, GUI prototyping, Software engineering environments, software processes, project management, and teamwork.
-
Course learning outcomes
On successful completion of this course, students are capable to: describe experiences made during the running of a development project in a team. prove experience with several practically relevant tools used in software engineering. reflect on the practical difficulties during software development in a team and how to tackle these problems. -
Description
The detailed description of the planned project will be given in the course. The course will be mostly based on active student participation in a project related with software engineering. The following parts are foreseen:Introduction into important aspects and tools used in Software Engineering (similar to the respective course in semester 3).Software development in a team of 4-5 students2-3 sprints; after each sprint, a presentation on the current status of the project with discussion must be given before the other students. -
Organisation
-
Note
Literature: Course material (student presentations) from course "Software Engineering (Semester 3) Additional literature from the Internet will be announced in class.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-71
- Module(s): Module 4.3
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course builds on and extends topics covered in "Algorithms 1" and "Algorithms 2", primarily aiming at a practical point of view. Based on real-world examples using different programming languages, selected data structures and algorithms will be discussed. Their functional as well as non-functional properties such as performance, memory consumption and concurrency issues will be investigated, guiding the selection process of different alternative approaches.
-
Course learning outcomes
On successful completion of this course, students are capable to: use popular data structures in practice with Java and C++. describe how generics work in the Java programming language; explain exact and heuristic algorithms for optimization problems. -
Description
After a thorough discussion of Java generics, data structures and algorithms provided by the Java Collections Framework will be closely examined. C++ templates will be introduced. The basics concepts of the C++ Standard Template Library will be covered, elaborating on its general design and performing a comparative analysis. Additional kinds of algorithms will be investigated, including exact algorithms as well as heuristics for optimisation. -
Organisation
-
Note
Literature: Introduction to Algorithms, Thomas H. Cormen et al., MIT Press, ISBN 978-0262033848 Java Generics, Maurice Naftalin and; Philip Wadler, O'Reilly Media, ISBN 978-0596527754 Generic Programming and the STL, Matthew H. Austern, Addison-Wesley Professional, ISBN 978-0201309560
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-33
- Module(s): Module 4.3
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course is the second part of the Database Trilogy. While the first part discussed data modeling, the relational concept (including SQL and normal forms) and XML, the second part deals with selected advanced aspects of modern database technology, for example database authorization concepts, privacy issues, concepts for handling parallel user requests, overview of Business Intelligence, and others. The course is mainly a lecture, but we will have exercises in order to reflect the content.
-
Course learning outcomes
On successful completion of this course, students are capable to: apply the techniques related with DB security in a practical situation; explain the basics of DB concurrency control and transactions; explain the core ideas of data warehouses and data mining; describe the differences between relational DB systems and NoSQL databases. -
Description
Database SecurityTransactionsConcurrency ControlData Warehousing, ETL, OLAP, OLTP, and Data MiningMapReduceNoSQL Databases -
Organisation
-
Note
Literature: R. Elmasri, S. Navathe: Fundamentals of Database Systems. 6th Edition. Pearson Addison Wesley. 2011. (Main reference) Silberschatz, Henry F. Korth, S. Sudarshan. Database System Concepts. Sixth Edition.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-35
- Module(s): Module 4.4
- Language: FR, EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The objective of the course is to present the three classical stages for software testing, namely unit, integration and system testing. The course is focusing on OO Java programming, as a basis for unit testing. The concepts, methods and techniques seen during the course are illustrated by recent testing frameworks widely used in the industry.
-
Course learning outcomes
On successful completion of this course, students are capable to: reflect on the classical stages of software testing; describe the different techniques and issues for the different stages; apply the learned techniques for software testing in practical scenarios. -
Description
The course will be divided into 2 parts:Part I: Software Testing principles and practice(1) Software testing : presents the overall view of the testing process, the definitions and the main issues related to the software life-cycle. Some classical testing techniques are presented.(2) Unit, (3) integration and (4) system testing are the three remaining modules, going in depth into the issues and techniques specific to each of these life cycle stages.Part II. Towards certification: Certified Tester – Foundation Level (CTFL)Nowadays, software testing is identified as a key role in a company that requires specific knowledge on which we can get a certification.The goal of this part is to go through the ISTQB (International Software Testing Qualifications Board) standard and prepare the first level of qualification.The student will then be free to go through the official ISTQB certification exam to be certified (https://www.istqb.org/). -
Organisation
-
Note
The course includes the preparation for the CTFL certification. This preparation counts for 12 hours, included in the total of 37 hours for CM.Literature:Introduction to Software Testing – Paul Ammann and Jeff Offutt – ISBN-13: 9780521880381 – Cambridge Press, 2008.Foundations of Software Testing – Aditya Mathur – Addison-Wesley Professional – 2007.Software testing techniques – B. Beizer – Van Nostrand Reinhold, 1992.Le test des logiciels – S. Xanthakis et Co – Editions Hermes, 2000.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-36
- Module(s): Module 4.4
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The overall objective of this course is to help deepen students’ knowledge and skills in user interface and interaction design.
-
Course learning outcomes
On successful completion of this course, students are capable to: describe, explain, and use a standard analysis and design process, and standard analysis and design terminology. recognize several basic design patterns and common software techniques, and be able to use them in product design. generate alternative solutions for analysis and design problems, evaluate them, choose a good alternative, and explain and defend this choice. -
Description
The Interaction Design course follows the following core topics. Many of these combine lectures with studio time in the classroom.Introduction to Interaction DesignUnderstanding UsersNeeds, Requirements and Hierarchical Task AnalysisPrototypingConceptual DesignPhysical DesignEvaluation -
Organisation
-
Note
Literature: Interaction Design: Beyond Human-Computer Interaction (2nd Edition), by Preece, Rogers, and Sharp. Wiley, 2007.
Course offer for Semestre 5
-
Details
- Number of ECTS: 2
- Course number: BPINFOR-87
- Module(s): Module 5.1 * N.C.
- Language: FR
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
La fin des études et l’entrée dans la vie professionnelle marquent un tournant essentiel dans la vie. Le cours vise à aider l’étudiant à passer de la vie universitaire à la vie active de manière professionnelle. Cette transition sera facilitée par la présentation de la réalité du monde du travail et des différentes démarches pour décrocher un emploi épanouissant.
-
Course learning outcomes
Après avoir suivi ce cours, les étudiants seront capables : de comprendre les spécificités du marché du travail luxembourgeois. d’avoir une vision globale de l’entreprise. d’être bien préparé dans leur recherche d’emploi. de bien intégrer leur future entreprise. -
Description
Paysage économique luxembourgeoisCaractéristiques du marché du travail luxembourgeoisAperçu des principaux secteurs d’activitésFonctionnement d’une entrepriseMissions des principaux départementsImpact de la transformation digitale des entreprisesTechniques de recherche d’emploiDescription du processus de recrutement d’une entrepriseIdentification des attentes du recruteurRédaction de la lettre de motivation et du CVPréparation de l’entretien d’embaucheLe droit du travailComposantes du contrat de travailDifférents types de contrat de travailPériode d’essai et fin du contratL’entrepreneuriatAperçu des différents types d’entreprisesVade-mecum des démarches à effectuer -
Organisation
-
Note
Ouvrage de référence: La gestion des talents – C. Dejoux, M. Thévenet (Editions Dunod) Les 100 schémas du management – D.Autissier, K.Johnson, L.Giraud (Editions Eyrolles) L’art de la reconnaissance au travail – L.Becker (Editions InterEditions) Ressources Humaines – J-M Peretti (Editions Vuibert) La boîte à outils des soft skills – N. Van Laethem, J-M Josset (Editions Dunod) Management : L’essentiel des concepts et pratiques – S. Robbins, D. DeCenzo, M. Coulter, C-C Rüling (Editions Pearson)
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-57
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
To provide the student with basic knowledge of the banking environment and organisation and give them insight into the possibilities of banking IT and banking networks, both in a theoretical and practical approach.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain the different components commonly used in banking environments; compare the theoretical descriptions about banking environments with practical experiences made during a site visit; reflect about the learned lessons in relation with a potential future professional career. -
Description
General introduction to the financial domain.IT architecture for financial services.Banking information systems.Payment systems.Management of banking IT.Acquisition of banking IT systems.IT-audit.Strategic financial information systems.Visit of a computer center of a bank. -
Organisation
-
Note
Literature: Will be given during the lecture.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-88
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course introduces students to the concepts and the best practices of software engineering centred on Design Patterns. Several individual Design Patterns and some of their possible combinations will be discussed in detail from both theoretical and practical points of view, further familiarizing students with the underlying ideas. The course focuses on the Java programming language in examples and for implementation work.
-
Course learning outcomes
On successful completion of the course, students are capable to: explain best practices of software engineering centred on Design Patterns; apply several individual design patterns and their combination in practice; explain the underlying ideas of specific design patterns. -
Description
In the lectures, the following Design Patterns are explained, grouped with respect to usage themes:Theme #1: Creation of objects SingletonFlyweightPrototypeBuilderFactory methodTheme #2: Hierarchical structures CompositeVisitorTheme #3: Events and notifications ObserverChain of responsibilityTheme #4: Coordinating objects at run time CommandMediatorStrategyTheme #5: Connecting objects FacadeAdapterProxy.The supervised exercises sessions are devoted to:the implementation of individual Design Patterns;the composition of multiple Design Patterns into the same code;the re-engineering of existing code with the help of Design Patterns. -
Organisation
-
Note
Literature: "Design patterns: elements of reusable object-oriented software", E. Gamma, R. Helm, R. Johnson & J. Vissides, Addison-Wesley. "Design Patterns for dummies", Steve Holzner, Wiley Publishing. "Design Patterns pour Java", Laurent Debrauwer, ENI. “Design Patterns in Java”, Steven J. Metsker & William C. Wake, Addison-Wesley. “Head First Design Patterns”, Eric Freeman & Elisabeth Freeman, O'Reilly, 2004. “Object-Oriented Software Construction”, Bertrand Meyer, Prentice Hall. [version française : “Conception et programmation orientées objet”, Eyrolles].
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-82
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The course is about (classical and new) techniques that are involved in the Big Data paradigm. The main goal is to spark the discussion about the tradeoffs between the classical data processing techniques and the upcoming ones for big data. In addition, students should get basic knowledge on how to automatically process and analyze huge amount of data.
-
Course learning outcomes
On successful completion of this course, students are capable to: demonstrate the ability to understand how to model a database system and the tradeoffs when the database goes big data, such as: consistency versus scalability and performance; explain the database technologies for big data and analyze their pros and cons for proper usage; design and develop big data solutions by adapting existing tools, designing new ones or a combination of both; explain the concepts and the limits of the automated processing of data; differentiate supervised and unsupervised learning and when one technique should be applied; describe the concept of features and the importance of choosing discriminating ones; select among basic algorithms for extracting information from a large data set and apply them. -
Description
The course is about (classical and new) techniques that are involved in the Big Data paradigm. The course combines two of the key dimensions of Big Data, namely:Part I – Design and development for big data The first part of the course will discuss databases and distributed computing algorithms for hosting and processing very large amounts of data:Conceptual modeling (ER Model), Relational Model (Algebra and SQL), Schema design (ER to Relational)Files and Access methods (except DHT)Distributed Databases, Data Warehouse and C-StoreNewSQL, Distributed Hash Tables, MapReduce, NoSQLThe main goal of the first part is to spark the discussion about the tradeoffs between the classical data processing techniques and the upcoming ones for big data.Part II – Data mining, classification and aggregation The objectives of Part II are to guarantee that the students have a basic knowledge to automatically process and analyze huge amount of data. In particular, the two main objectives are to 1) extract information from a data set and 2) transform and store the data in a convenient way for further use (data mining, classification and aggregation):Classification (random forest, …)Clustering (k-means, …)Outlier and anomaly detection (local outlier factor, …)Regression (least squares, …) -
Organisation
-
Note
Literature: Relevant literature will be provided during the course.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-55
- Module(s): Module 5.2 * N.C.
- Language:
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The students learn an overview and advantages of business software systems, especially ERP systems, and where these systems are used in business.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain the role of business software systems in professional environments; understand the purpose of business software systems, especially enterprise resource planning (ERP) systems; clarify the role of business processes and apply basic techniques about modeling of business processes; know the core business processes supported by business software systems; understand the term Business Intelligence (BI) and know the components of a business intelligence system. -
Description
Overview of business software systemsIntroduction: business software systems, especially ERP-Systems, as basis of enterprise information processingClassification of business software systemsHistory, market review of ERP systemsArchitectures of ERP systems (client-server-architectures, layer models, interfaces)Business Process Management (BPM) and its relation to business software systemsBPM cycleModeling Techniques: BPMN, ARISMain business processes and their support by business software systems:Finance and accountingManufacturingSupply Chain ManagementCustomer Relationship ManagementManagement information systems / Business IntelligenceCase studies are analyzed in the class and assignments with practical exercises with BPM tools are given to the students. -
Organisation
-
Note
Literature: Kenneth Laudon, Jane P. Laudon: Management Information Systems: Global Edition, 13th ed., Pearson Education, 2014. K. Ganesh et. al.: Enterprise Resource Planning – Fundamentals of Design and Implementation, Springer International Publishing, 2014. M. Dumas, M. La Rosa, J. Mendling, H. A. Reijers: Fundamentals of Business Process Management, 2nd ed., Springer. 2018. B. Silver: BPMN Quick and Easy Using Method and Style: Process Mapping Guidelines and Examples Using the Business Process Modeling Standard, Cody-Cassidy Press. 2017
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-111
- Module(s): Module 5.2 * N.C.
- Language: FR
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Conception des circuits intégrés numériques à l'aide du langage VHDL et réalisation d'un petit microprocesseur simple sur un circuit programmable de type FPGA.
-
Course learning outcomes
Après avoir suivi ce cours, les étudiants seront capables : d'appliquer langage VHDL pour la réalisation d'un petit microprocesseur; de programmer un circuit programmable de type FPGA. -
Description
Langage VHDL: définition du langage, concepts de base et méthodologieLogiques combinatoires et séquentiellesAutomates à états finis et modes de synchronisationDéfinition et spécification d'un microprocesseur basiqueArchitecture de Von Neuman, constituants d'un CPU et jeu d'instructions ALU et arithmétique des ordinateursPipeline, architecture de Harvard et RISCAméliorations successives apportées à l'architecture de base -
Organisation
-
Note
Les étudiants devront obligatoirement participer aux TP et remettre les rapports qui leur sont demandés.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-116
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The course provides an introduction to both the theoretical foundations and practical applications concerning the broad area of "Cloud Computing". The course covers both the practical development and deployment of cloud-based computing applications as well as current tools and respective application-programming interfaces (APIs) in the context of the Apache Hadoop and Spark ecosystems (cloud-based "big data" processing).
-
Course learning outcomes
On successful completion of this course, students are capable to: explain both the theoretical foundations and the practical usage of current cloud-computing architectures. explain concepts on virtualization and application deployment into the cloud. describe how different concepts concerning the modeling and management of large data collections are implemented on top of these architectures. prove first-hand experience about usage of the introduced tools in AWS / Google Cloud. -
Description
The course will cover two important aspects of cloud-based applications, compute-centric and data-centric applications. Some of the practical examples discussed during the course will be interactively deployed by using the Amazon Web Services (AWS) platform as our infrastructure. The course covers in particular the following topics:Infrastructures for Cloud ComputingVirtualization vs Containers – DockerContainer orchestration with KubernetesPractical Cloud examples: AWS, Google Cloud, RedHat OpenShift Distributed file systems (GFS & HDFS)Distributed computing principles (MapReduce), replication, fault tolerance, backup tasks, custom combiners and partitioners, local aggregation, linear scalabilityApache Pig: first dataflow language (Pig Latin), translation into MapReduce and optimizationApache HBase: distributed key-value store for very large tabular data, columns and column families, indexing and lookupsApache Hive: SQL-like query language on top of Hadoop, translation into MapReduceMongoDB: API overview, JSON processing, user-defined functionsApache Spark: distributed resilient data objects (RDDs), overview of streaming and machine-learning extensionsAn introduction to High Performance Computing (HPC) -
Organisation
-
Note
Literature: The course will rely on genuine documentation available on the web, which will be made available on the course Moodle website.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-113
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
This course introduces Machine Learning (ML) principles and its three main learning paradigms (supervised, unsupervised, and reinforcement learning). For each learning paradigm, it presents some of its most typical foundational models and discuss them from the perspective of representation, evaluation, and optimization. A special attention is given to a basic introduction into deep learning techniques and generalization. The course mixes theoretical concepts with vanilla implementations of various ML models.
-
Course learning outcomes
At the end of the course the student will be able to:•define Machine Learning and differentiate the terms AI, Machine Learning, and Deep Learning.•describe the differences among the three Machine Learning paradigms: supervised, unsupervised, and reinforcement learning.•determine which of the three Machine Learning paradigms is appropriate to a particular type of problems.•derive, implement, and evaluate some of the most typical Machine Learning models. •derive, implement, and evaluate some basic Deep Learning models and their learning algorithms.•explain proper ML evaluation procedures, including the differences between training and testing performance.•apply Machine Learning models to real-world problems.•identify overfitting in the context of a problem and describe solutions to overfitting.•evaluate the performance of a Machine Learning algorithm on a real-world dataset. -
Description
The following topics are covered in the course:• Basics – ML Introduction • Basics – Data preparation for ML • Supervised Learning – Regression • Supervised Learning – Classification• Unsupervised Learning – Dimensionality reduction• Unsupervised Learning – Clustering• Reinforcement Learning – Preliminaries• Reinforcement Learning – Basic methods• Deep Learning – Learning Deep Representations• Deep Learning – Models• Deep Learning – Deep Reinforcement Learning• Generalization• Research – Glimpse on state-of-the-art research• Engineering – ML and the real-world -
Organisation
-
Note
Syllabus ☒Yes ☐No Remarks: Available on Moodle. Literature list ☒Yes ☐No Remarks: Bishop, C.: Pattern Recognition and Machine Learning, 2006 Goodfellow, I., Bengio, Y. & Courville, A.: Deep Learning, 2016 Sutton, R., Barto, A.: Reinforcement Learning: An Introduction, second edition, 2018 Hastie, T, Tibshirani, R. & Friedman, J.: The Elements of Statistical Learning, 2009 Zhang, A., Smola, A.J., Lipton, Z., Li, M.: Dive into Deep Learning, 2023 Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3920 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-51
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The general goal of the course is to increase awareness for IT security. The course explains a broad range of common algorithms and techniques used in IT security including IT security management. By the end of the course, the students will have: A good understanding of the role of security and the importance of security in IT systems; A good understanding of security properties and the mechanisms used to enforce such properties; Familiarity with techniques for modelling and evaluating secure systems against given security requirements; A vision of the management of the IT securities and the related regulatory that we need to manage as IT responsible of a firm.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain the role of security and the importance of security in IT systems; describe security properties and the mechanisms used to enforce such properties; apply techniques for modelling and evaluating secure systems against given security requirements; describe common techniques used for the management of IT security. -
Description
Introduction – IT security conceptsOverviewKey concepts and definitions (confidentiality, integrity, authentication, privacy, security dilemmas)First part:Introduction to basic cryptographic tools (symmetric/asymmetric cryptography, hash functions, signatures)Identification and authenticationAccess control and security models: Authorization, policies and enforcement mechanismsDatabase and datacenter securities and kind of attacksMalicious softwareTrojansDOSIntrusion detection and firewallsSoftware and Network securities and Trusted systemsWeb securityEmail securitySecurity protocolsSecond part: Administering securityCybersecurity policies and risk management approachesRisk management and policies according with ISO 27KIT security managementData privacy managementSelection of topics from: Digital forensics, Digital Rights Management, Trust management, RFID security -
Organisation
-
Note
Literature: W. Stallings, L. Brown: Computer Security Principles and Practice, Pearson, 4th edition, 2018, ISBN: 978-0-13479435-8. B. Schneier: Applied Cryptography: Protocols, Algorithms, and Source Code in C, Wiley, 2nd edition, 1996, ISBN: 978-1-119-09672-6 .
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-110
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The students will learn how Jakarta EE (formerly Java EE – Java 2 Enterprise Edition) provides a component-based approach to the design, development, assembly, and deployment of enterprise applications. The different components of Jakarta EE will be examined in theory and practice, with special focus on the value of Web services for realizing service-oriented architectures. The students will also get practical experience with Wildfly, a free Jakarta EE application server (closely related with the popular, but commercial JBoss application server). In addition, a practical introduction to the competitive framework SpringBoot will be given.
-
Course learning outcomes
On successful completion of this course, students are capable to: explain the main ideas behind the Jakarta EE framework; develop views with the help of JSF and named beans; explain the practical significance of the most important APIs in the framework; develop Jakarta EE-based applications of medium-level difficulty with the application server Wildfly; implement web services and web applications with SpringBoot; extend their knowledge on Jakarta EE and SpringBoot by autonomously reading the specifications and other documentation available. -
Description
Introduction to the Docker containerization framework and its usage in this course.General Jakarta EE concepts.Traditional Java-based web applications: Java Servlets / Java Server Pages (JSP) / Custom tags / JSTL.Java Server Faces and Named Beans as view technology in Jakarta EE.Session Beans: stateless, stateful, and singleton beans.Context Dependency Injection (CDI) and its benefits.The Java Persistence API.Dedicated APIs of the Jakarta EE framework (XML, JSON, batch jobs, …).The Java Message Service (JMS) and Message-Driven Beans.Develop web services with Jakarta EE.Introduction to Jakarta EE Security.Introduction to SpringBoot, especially REST web services, SpringBoot persistence, and MVC web applications with SpringBoot.SpringBoot with relational databases (MariaDB), NOSQL databases (MongoDB) and with GraphQL.Comparison of advantages and disadvantages of Jakarta EE and SpringBoot. -
Organisation
-
Note
Literature: The course mainly uses the various Jakarta EE component specifications available online. A detailed list of references is made available on the Moodle course website.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-117
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Many applications and systems extend beyond the boundaries of a single process, often being deployed on multiple machines. The main objective is to provide a solid understanding of the theoretical background and general principles on how to compose a single coherent system composed of multiple distributed components. Modern system architectures are presented and discussed, including cloud computing, peer-to-peer, grid, ad-hoc and mobile systems. Diverse issues in terms of the design and implementation of such systems are explored, with a strong emphasis on practical aspects, including performance. Real-world distributed systems are examined as case studies.
-
Course learning outcomes
On successful completion of this course, students are capable to: prove a solid understanding of the general principles used in distributed systems; explain the usage of distributed systems in real-world situations; practically realize a distributed system. -
Description
Distributed system architecturesTime in distributed systemsDistributed processesInterprocess communicationDistributed synchronisationFault tolerance (reliability, replication)Peer-to-peer systemsGrid computingRPC, RDMA, MPIReal-time streaming storage and processingPartitioning, Scaling, PerformanceLatency, Throughput -
Organisation
-
Note
Literature: Distributed Systems, Tanenbaum as optional reading. Lecture notes and papers are based on MIT's 6.824
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-122
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course covers advanced topics in back-end Web development, including API design, implementation using different languages and frameworks, and integration of databases. Proper use of asynchronous programming together with concurrency handling to tackle scalability is discussed extensively based on several case studies.
-
Course learning outcomes
On successful completion of this course, students are able to Assess Web development technologies and frameworks. Design and develop scalable back-ends for Web apps. Properly use asynchronous programming while dealing with concurrency issues. -
Description
The course covers the following topics using a hands-on approach:BasicsAsynchronous and reactive programmingRESTful API design and useOpenAPIGraphQLInteraction between front- and back-endJavaScript-based Web developmentNode.jsExpressPython-based Web developmentFlaskDatabases and persistenceMySQLMongoDB -
Organisation
-
Note
Literature: References will be announced in the class.
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-124
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Students will be equipped with competences for the development of applications for the Internet of Things (IOT): Know the challenges of IoT networks considering the various specificities and application constraints (e.g. QoS, scalability, real-time application, operational safety, etc.). Master the basics of IoT communication protocols (Application layer). Master the selection and implementation of different IoT communication protocols. Design, analyze and criticize different data collection, storage and processing data architectures, both their possibilities and their limits. Design one or more IoT applications using machine learning modules based on the collected data.
-
Course learning outcomes
On successful completion of this course, students are capable to: Define and develop the functional and technical specifications of a network and telecom equipment (hardware, software, implementation, etc.). Determine architecture components, technologies, equipment, tools supports and integrate them according to the specifications. -
Description
Introduction to issues relating to the interoperability of IoT networks/protocols (application layer – OSI)Real-time networks: Profibus, Modbus, Modbus-TCPIOT protocols on application layer: HTTP (REST API), MQTT, CoAP, OneM2M, O-MI/O-DFNOSQL databases: MongoDB, ElasticSearchGetting started with Node-Red (visual programming tool – open source – developed by IBM)for IoT application development:data collection: Arduino, & sensors, Cloud API endpoints…data storage: databases (SQL, NoSQL)data treatment: Node-Red (JavaScript)publication of data via dashboard (H2M) and machine interfaces (M2M): Implementation of an HTTP server (REST API specification, server deployment) -
Organisation
-
Note
Literature: Relevant literature will be provided during the lecture.
Course offer for Semestre 6
-
Details
- Number of ECTS: 27
- Course number: BPINFOR-58
- Module(s): Module 6.1
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The main objective of the Bachelor project is the practical application of the learned technical expertise and a professional attitude that the students have acquired during their BINFO study by participating in an IT-project realized in a host institution. The technical aspects and results of the project and the experiences made during the project must be documented in a report, the Bachelor thesis.
-
Course learning outcomes
On successful completion of this course, students are capable to: integrate into a team working in the IT domain of a professional institution; show maturity in working in the IT domain, at least equivalent to regular junior level staff; prove the acquired expertise for a practical problem in the information technology context; reflect on the experience made during this practical work. -
Description
In the Bachelor project students shall apply the technical and inter-personal expertise achieved during their previous study within a practical project of at least 12 weeks with a close relationship to Information Technology. The realized project can consist of developing a new or extending an existing software product (e.g. a prototype / proof-of-concept, (part of) an application, an API, …), a hardware-related development (e.g. prototype used in a feasibility study, a controller, a data-acquisition device,…), or a contribution to the management of an IT project (e.g. specifications of technical requirements, study of state-of-the art technology, study of suitable hardware / software for a future system). The project must contain a substantial contribution from the student. The three key elements of a Bachelor project are:the Bachelor project and the expected result must be clearly defined before the start of the internship and feasible for a 12-weeks long work;The student must be mentored by a “local supervisor” within the host institution. Additionally, an “academic supervisor” from within the university supports the scientific learning process of the student in the context of the project.The work done during the Bachelor project must lead to a Bachelor thesis, a written report that documents the complete work done and describes the technical background, all IT related aspects (including problem analysis and design, implementation aspects, ….) and the achieved results. This report will be evaluated by a jury.The Bachelor project must be done in one of two possible variants:A profession-oriented Bachelor project is done within a professional institution in Luxembourg. The student shall apply and extend his IT technical expertise and soft skills within in a professional environment. This variant of a Bachelor project is strongly recommended for students that plan to start a professional career directly after graduation.A research-oriented Bachelor project is done within a research group of the University of Luxembourg. The student shall apply and extend his IT scientific expertise for a research-focused question. This variant of a Bachelor project is only recommended for students that plan to continue their academic training within a Master program. -
Organisation
-
Note
-
Details
- Number of ECTS: 3
- Course number: BPINFOR-59
- Module(s): Module 6.1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The main objective of the Bachelor project defense is the presentation of the done project work and achieved results in front of a jury, to get a fair evaluation of the work.
-
Course learning outcomes
On successful completion of the Bachelor project defense, students have gained some experience to: present the results of a 12-week-long project in a structured and clear way in front of a jury; design a pedagogically well-structured and clear presentation of a project; answer to questions of a jury and explain the technical and non-technical background of the project (decisions on design, implementation, algorithms, …); show maturity in defending their own ideas and practical work in front of a jury. -
Description
The Bachelor project defense evaluates the achieved results of a Bachelor project. The evaluation is done by a jury that consists of both supervisors of the Bachelor project together with at least one more academic lecturer from the university. In the defense, both the scientific and technical quality of the Bachelor project and the professional appearance of the students are assessed. The defense consists of two parts:The student presents the work done during the bachelor project in a presentation of about 20 minutes.The student answers to questions by the jury members for about 30 minutes. These questions cover both the given presentation and the provided Bachelor project report. -
Organisation
-
Note