Programme


The Bachelor in Applied Information Technology offers a structured pathway for progressive specialisation within the realm of computer science professions:
During the first study year, students are immersed in the fundamentals of Information Technology, establishing a robust groundwork that encompasses essential principles in mathematics and computer programming.
In the second year of study, students build upon the foundational knowledge acquired in the first year. The curriculum delves into various advanced topics, including databases and data science, network technologies, the principles and practices of software engineering, and the development of web and mobile applications.
In the concluding year of study, the fifth semester offers students the opportunity to tailor their specialisation by selecting from a diverse portfolio of optional courses spanning various domains such as enterprise applications, machine learning, cloud and big data technologies, advanced programming and more. The ultimate semester is dedicated to a culmination of their academic journey, with students opting for either a research-based Bachelor project within a University research group or a professionally-focused internship in a Luxembourg-based institution, providing invaluable hands-on professional experience.
Academic Contents
Course offer for Semestre 1 (2024-2025 Winter)
-
Details
- Course title: Introduction à l'informatique
- Number of ECTS: 4
- Course code: BPINFOR-2
- Module(s): Module 1.1
- Language: FR, EN
- 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 -
Assessment
Un examen écrit (100%). -
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
- Course title: Technical English
- Number of ECTS: 3
- Course code: BPINFOR-1
- Module(s): Module 1.1
- Language: EN
- 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. -
Assessment
Continuous evaluations during the course (50%) and a final written exam (50%). -
Note
Literature: Online references will be announced on the course website.
-
Details
- Course title: Calculus
- Number of ECTS: 4
- Course code: BPINFOR-3
- Module(s): Module 1.2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course aims to ensure that all students have a solid understanding of basic calculus, including the analysis of elementary real functions of one variable and the use 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 induction;Convergence of infinite sequences and their limits;Convergence of finite and infinite series and applications in computer science;Basic definitions and properties of real-valued functions in one variable;Elementary functions (polynomials, logarithm, exponential, trigonometric functions) and their properties;Derivatives and integration of real-valued functions and applications;Applications of real-valued functions in one variable to problems in computer science. -
Assessment
One single final exam (100 %) for both first-time and repeating students. -
Note
Literature: Franck Leprévost: What counts? A Hands-On Tutorial on Calculus, Ed. Amazon (2022).
-
Details
- Course title: Mathématiques discrètes 1
- Number of ECTS: 4
- Course code: 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 -
Assessment
Contrôle des connaissances pendant le semestre et examen écrit en fin de semestre. La note finale à la fin du semestre d'hiver est la meilleure valeur entre la note de l'examen écrit de fin de semestre, la moyenne pondérée entre le résultat du contrôle de mi-semestre et la note de l'examen écrit de fin de semestre (l'examen final comptant pour 3/4 des points dans cette moyenne pondérée). Cette note peut-être légèrement améliorée d'1/2 point en fonction des résultats aux quiz et aux exercices proposés durant le semestre. -
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
- Course title: Statistiques
- Number of ECTS: 3
- Course code: 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 -
Assessment
Un contrôle des connaissances pratiques (50%) et un examen écrit (50%). -
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
- Course title: Operating Systems 1
- Number of ECTS: 4
- Course code: 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) -
Assessment
Midterm exam (40%) Final exam (60%) -
Note
Literature: Books and other inputs given in the lecture.
-
Details
- Course title: Programming 1
- Number of ECTS: 8
- Course code: BPINFOR-100
- Module(s): Module 1.3
- Language: EN, FR
- 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. -
Assessment
Winter semester: First session students: closed book written midterm exam (30%), individual programming project (30%), closed-book final written exam (40%) Resitting students: closed-book written final exam (100%) Summer semester: Closed-book written final exam (100%) -
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 (2024-2025 Summer)
-
Details
- Course title: Academic Writing
- Number of ECTS: 2
- Course code: BPINFOR-125
- Module(s): Module 2.1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Academic writing is a formal style of writing used in universities and scholarly publications. This course teaches the fundamental basics of academic writing and presentations in the academic context. Some basics on promotional video preparation are also covered.
-
Course learning outcomes
On successful completion of this course, students are capable to: Understand the fundamentals of academic writing. Understand basic rules to prepare and give presentations. Know how to record and manipulate videos for promotion of academic ideas. Apply the theoretical knowledge on academic communication in practice. -
Description
Basics of "Academic writing".Using LaTeX to write academic documents.Using Microsoft Word to write reports.Skills to prepare and hold presentations.Guidelines on creating slides.Creating videos for promotion of scientific ideas. -
Assessment
A language course in which the participants begin with widely varying levels of competence must strive to balance the demonstration of minimum levels of competence in order to pass the course with the chance to earn credit for significant improvement. Therefore, this course combines both elements by dividing course work and credit awarded into minimum required output demonstrating a minimum competency and output which is above the minimum to garner more credit as measured in class points. The latter includes demonstrating marked improvement in competence. There is a total of 20 class points potentially awarded which are divided into four categories, each receiving a possible total 25% or 5 class points each: Participation: Attendance is 4 points out of 5 and asking good questions or other valuable class participation may be awarded with up to another point. — 25%; 5 class points Following instructions and attention to detail: Turning in/presenting completed assignments on time while carefully fulfilling the instructions which include format; topics; specified lengths and composition; minimum levels of clarity, conciseness and thoroughness. Late submissions will have increasing numbers of points deducted as time passes from the due date until a final date when zero points will be awarded. – 25%; 5 class points Exemplary submissions may be awarded additional points in this category for clarity, conciseness, thoroughness and extra utilization of the format as will those assignments awarded minimum points from category 2 which are subsequently improved and re-submitted within the specified time frame. — 25%; 5 class points. Demonstration of competence: Written final exam which will recapitulate various competencies developed during the course. — 25%; 5 class points which means students cannot fail to attend class and turn in only a few assignments then pass the course by taking the final. See additional note below. A spreadsheet combining attendance for each class and points awarded for assignments submitted will be displayed in each class and regularly posted on Moodle for students to keep track of their accumulated points throughout the semester as well as validate it within one week, pointing out any data entry errors which might occur. Nota Bene: University students are adults, freely participating in a course of study which they are equally free to leave at any time. Each may choose to fail, merely pass or excel in this course depending on their desires and each will be awarded the appropriate class points for the work they choose to perform. If you have any questions regarding how your work will be evaluated, please ask me in class so everyone can benefit from my response and if you are still unsure, feel free to contact me at matthew.kahn@education.lu. -
Note
Literature: Online references will be provided on the Moodle course page.
-
Details
- Course title: Linear Algebra
- Number of ECTS: 4
- Course code: 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 -
Assessment
Final written exam (100%). -
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
- Course title: Mathématiques discrètes 2
- Number of ECTS: 3
- Course code: BPINFOR-11
- Module(s): Module 2.2
- Language: EN
- 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/pdZ 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 phi-function(Z/nZ)* and phi(n)Exercises : Computing in Z/pd 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 -
Assessment
Final exam (100%). -
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
- Course title: Probabilités
- Number of ECTS: 3
- Course code: 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. -
Assessment
La note finale est composée : à 25% des notes obtenues pour les travaux personnels réalisés à domicile, et à 75% de la note obtenue à l'examen final.
-
Details
- Course title: Algorithms 1
- Number of ECTS: 4
- Course code: 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. -
Assessment
Evaluation of homeworks and practicals (50%), final written exam (50%). -
Note
Literature: Relevant literature and online resources will be announced on the course website.
-
Details
- Course title: Programming 2
- Number of ECTS: 6
- Course code: BPINFOR-14
- Module(s): Module 2.3
- Language: EN
- 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 -
Assessment
Summer semester: First session students: software project (40%) + final written exam (60%) Resitting students: final written exam (100%) Winter semester: final written exam (100%) -
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
- Course title: Introduction to Data Analysis with Python
- Number of ECTS: 4
- Course code: 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 -
Assessment
Quiz – 20% Homework and practical – 30% Final Exam (Practical and Written) – 50% -
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.
-
Details
- Course title: Introduction to Graphics
- Number of ECTS: 4
- Course code: 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 -
Assessment
Final exam (65%), 4 graded exercises (30%), regular participation (5%). -
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.
Course offer for Semestre 3 (2024-2025 Winter)
-
Details
- Course title: Web Development: Front-End
- Number of ECTS: 5
- Course code: BPINFOR-127
- Module(s): Module 3.1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course provides an introduction to front-end web development, from a software engineering perspective. The course will cover the foundational building blocks of the Web, user interface design fundamentals, command line tools, and popular frameworks for building websites and web applications. After the course, students will be able to build the front-end of any kind of websites and web applications.
-
Course learning outcomes
On successful completion of this course, students are capable to: Identify the key components of web technologies Recognize the importance of software engineering for web development Understand classic and modern tools for front-end development Compare alternatives between frameworks, coding standards, and design patterns Design and develop front-end systems for websites and web applications -
Description
The course provides an introduction to front-end web development, from a software engineering perspective. The course will cover the foundational building blocks of the Web, user interface design fundamentals, command line tools, and popular frameworks for building websites and web applications. After the course, students will be able to build the front-end of any kind of websites and web applications.HTML: The structural layer of the WebHistory – web browser wars, architectures, ACID testDocument typesXML, DTDs, quirks modeMarkup notationtags, microformats, accessibilityCSS: The presentation layer of the webCSS Object Modelbox model, selectors, specificity levelsStandards & PreprocessorsLess, Sass, BEMFrameworksBootstrap, Material UIJavaScript: The behavioral layer of the WebDocument Object Modelparsers, implementationsES5, ES6, typescriptjQuery, mootoolsUI design fundamentalsLayoutnavigation, formsResponsive web designmedia queriesCallbacksevent-driven programmingDatabase integrationTransport protocolsJSON, XML, textServerlessRESTful APIs, SPAsToolingCommand line interfaceCLI fundamentalsDependency managementbower, browserify, webpackBuilding systemsgrunt, gulpVersion controlgit, subversionWeb app frameworksFundamentalsN-way binding, MVC, virtual DOMExamplesAngular, Vue, ReactPerformanceMinifiersuglifyjsMonitoringinspectors, debuggersAuditingPageSpeed, LighthouseTestingFundamentalsunit testing, integration testing, end-to-end testing -
Assessment
First-time participants: Practical work in TPs: 30% Participation in class: 5% Final exam (multiple-choice quiz): 65% Redoing session: The final exam can be re-taken in the next exam session. Grades from the coding exercises will be retained until the student passes the course. -
Note
Literature: 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.
-
Details
- Course title: Programming 3
- Number of ECTS: 4
- Course code: 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. -
Assessment
Final exam (100%). -
Note
Literature: Online documentation of the different toolkits.
-
Details
- Course title: Algorithms 2
- Number of ECTS: 4
- Course code: 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. -
Assessment
Mini-project (25%, part 1), homework assignments (25%, part 2), final exam (50%). -
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
- Course title: Operating Systems 2
- Number of ECTS: 4
- Course code: 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. -
Assessment
Winter semester: First session students: closed-book written midterm exam (40%) + closed-book written final exam (60%) Resitting students: closed-book written final exam (100%) Summer semester: closed-book written final exam (100%) -
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
- Course title: Modelling with UML
- Number of ECTS: 3
- Course code: 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. -
Assessment
First-time students: Continuous assessment during the practical sessions (40%), attendance (5%), and written final examination (55%). Repeaters: Final written exam (100%). -
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
- Course title: Software Engineering
- Number of ECTS: 3
- Course code: 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 -
Assessment
The final grade of the course for first-time students is composed of four parts: Presentation of the group project (25%); Deliverables of the group project (video 25%, paper 25%); Final written exam (25%). Repeating students will be re-evaluated only with a final written exam (100%). -
Note
Literature: Genuine literature will be provided during the course on the course website.
-
Details
- Course title: Databases
- Number of ECTS: 4
- Course code: 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 -
Assessment
Final written exam: 100% -
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
- Course title: Networks 1
- Number of ECTS: 4
- Course code: 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. -
Assessment
First time students: Practical exam (20%), practical project (20%), written exam (60%). Repeaters: Practical project (50%), written exam (50%). -
Note
Literature: J. Kurose and K. Ross, “Computer Networking: A Top-Down Approach”, ISBN-13: 978-0132856201.
-
Details
- Course title: Web Development: Front-End
- Number of ECTS: 5
- Course code: BPINFOR-127
- Module(s): Module compensation interne
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The course provides an introduction to front-end web development, from a software engineering perspective. The course will cover the foundational building blocks of the Web, user interface design fundamentals, command line tools, and popular frameworks for building websites and web applications. After the course, students will be able to build the front-end of any kind of websites and web applications.
-
Course learning outcomes
On successful completion of this course, students are capable to: Identify the key components of web technologies Recognize the importance of software engineering for web development Understand classic and modern tools for front-end development Compare alternatives between frameworks, coding standards, and design patterns Design and develop front-end systems for websites and web applications -
Description
The course provides an introduction to front-end web development, from a software engineering perspective. The course will cover the foundational building blocks of the Web, user interface design fundamentals, command line tools, and popular frameworks for building websites and web applications. After the course, students will be able to build the front-end of any kind of websites and web applications.HTML: The structural layer of the WebHistory – web browser wars, architectures, ACID testDocument typesXML, DTDs, quirks modeMarkup notationtags, microformats, accessibilityCSS: The presentation layer of the webCSS Object Modelbox model, selectors, specificity levelsStandards & PreprocessorsLess, Sass, BEMFrameworksBootstrap, Material UIJavaScript: The behavioral layer of the WebDocument Object Modelparsers, implementationsES5, ES6, typescriptjQuery, mootoolsUI design fundamentalsLayoutnavigation, formsResponsive web designmedia queriesCallbacksevent-driven programmingDatabase integrationTransport protocolsJSON, XML, textServerlessRESTful APIs, SPAsToolingCommand line interfaceCLI fundamentalsDependency managementbower, browserify, webpackBuilding systemsgrunt, gulpVersion controlgit, subversionWeb app frameworksFundamentalsN-way binding, MVC, virtual DOMExamplesAngular, Vue, ReactPerformanceMinifiersuglifyjsMonitoringinspectors, debuggersAuditingPageSpeed, LighthouseTestingFundamentalsunit testing, integration testing, end-to-end testing -
Assessment
First-time participants: Practical work in TPs: 30% Participation in class: 5% Final exam (multiple-choice quiz): 65% Redoing session: The final exam can be re-taken in the next exam session. Grades from the coding exercises will be retained until the student passes the course. -
Note
Literature: 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.
Course offer for Semestre 4 (2024-2025 Summer)
-
Details
- Course title: Droit pour informaticiens
- Number of ECTS: 3
- Course code: 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 -
Assessment
Un examen écrit (100%). -
Note
Ouvrage de référence: Les références seront annoncées lors de la cours.
-
Details
- Course title: Psychologie du travail en groupe
- Number of ECTS: 3
- Course code: BPINFOR-26
- Module(s): Module 4.1
- Language: FR
- 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, gestion, négociation et techniques de résolution 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 TIC. Apports théoriques, conceptuels 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 cognitifs C’est quoi un biais algorithmique ? La notion de biais cognitif Les principaux biais cognitifs Comment lutter contre les biais cognitifs ?Partie II. La prise de décision en groupeLes enjeux de la prise de décision L’effet Groupthink en psychologie La notion de « décision absurde » en sociologie Etude de cas réels documentés Comment éviter les « décisions absurdes » dans les groupes ? Partie III. La dynamique des groupes Caractéristiques d'un groupe en psychologie sociale: dynamique et dimensionaffectiveLeader vs Chef: La notion d'influence ; phénomènes de leadership et charisme; le leader comme « entrepreneur d'identité » Le pouvoir: Pouvoir et soumission/obéissance ; contre-pouvoir L'efficacité d'un groupe au travail: notion d'efficacité : approche quanti/quali ; rôlede la tâche ; phénomène de paresse sociale (Social Loafing) ; approche cognitive(modèles mentaux, mémoire transactive) ; intelligence collective : vers lacoopération/coopétition ? La recherche du consensus dans le groupe: notion de consensus ; influence desminorités actives **Partie IV. Gestion des conflits **Approche nouvelle des conflitsCauses/origines des conflitsTypes de conflitsMé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**) -
Assessment
Cours et Examen en français : devoir individuel sur table : coefficient 1/2 (questions de cours et études de cas, en français ; online si besoin) ; dossier à réaliser en petit groupe (3-4 pers.) étude de cas avec cahier des charges : coefficient 1/2 (dossier en français) ; analyse d’un cas de conflit éditorial de groupe, dans l’écriture collaborative en ligne de Wikipédia ; Présence obligatoire aux cours (1 joker ; puis 0,5 pt par séance manquée sans justificatif – maladie, etc.– sur la note du devoir individuel). -
Note
Ouvrage de référence: Anzieu D., Martin J.-Y., 2007, La dynamique des groupes restreints, Paris, PUF Quadrige. 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., Réussissez toutes vos négociations, Paris, ESF, 2009. Blanchet A., Trognon A., 2008, La psychologie des groupes, Paris, A. Colin. Cardon D., 2013, Dans l'esprit du PageRank. Une enquête sur l'algorithme de Google, Réseaux « Politique des algorithmes », 1, no 177, pp. 63-95. Cardon D., Levrel J., 2009, « La vigilance participative. Une interprétation de la gouvernance de Wikipédia », Réseaux, 2, no 154, pp. 51-89. Cardon D., Levrel J., 2009, « La vigilance participative. Une interprétation de la gouvernance de Wikipédia », Réseaux, 2, no 154, pp. 51-89. Cardon D., 2010, La démocratie internet. Promesses et limites, Paris, Seuil. 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, 63-95. Flichy P., 2001, L'imaginaire d’internet, Paris, La Découverte. Hellrieger D., Slocum J.W., 2006, Management des organisations, Bruxelles, De Boeck Université, 2e éd. (chapitre 16 : la gestion des conflits). 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. Mucchielli R., 2008, La dynamique des groupes, Paris, ESF. Origgi G., 2013, Communications (Dossier La réputation), no 93, Seuil. Sekiou L., Blondin L., Fabi B. et al., 2001, Gestion des ressources humaines, Bruxelles, De Boeck Université, 2e éd. (chapitre 25 : La gestion des dysfonctionnements).
-
Details
- Course title: Networks 2
- Number of ECTS: 3
- Course code: BPINFOR-70
- Module(s): Module 4.2
- Language: EN
- 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 -
Assessment
Practicals and homeworks (100%). -
Note
Literature: Kurose/Ross textbook and slides: https://www-net.cs.umass.edu/kurose-ross-ppt-6e/
-
Details
- Course title: Software Engineering Project
- Number of ECTS: 5
- Course code: 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. -
Assessment
Proven usage of important tools in software engineering as demanded in project description (30%), active participation during the sprints and their evaluations, including the intermediate presentations (30%), result of the software development process (40%). -
Note
Literature: Course material (student presentations) from course "Software Engineering (Semester 3) Additional literature from the Internet will be announced in class.
-
Details
- Course title: Algorithms 3
- Number of ECTS: 4
- Course code: BPINFOR-71
- Module(s): Module 4.3
- Language: EN
- 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. -
Assessment
Summer semester: First session students: two practical projects (30%+20%) + final written exam (50%) Resitting students: final written exam (100%) Winter semester: final written exam (100%) -
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
- Course title: Data Science
- Number of ECTS: 4
- Course code: 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 -
Assessment
2 intermediate tests (40%); final exam (60%). -
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
- Course title: Interaction Design
- Number of ECTS: 4
- Course code: 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 -
Assessment
Two exams during the semester (30% each), a group final project (30%), and participation in the classroom (10%). -
Note
Literature: Interaction Design: Beyond Human-Computer Interaction (2nd Edition), by Preece, Rogers, and Sharp. Wiley, 2007.
-
Details
- Course title: Software Testing
- Number of ECTS: 4
- Course code: 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/). -
Assessment
The grading will be based on a combination of two written exams (Part I: 60-70% and Part II: 30-40%). The practical exams may be taken into account for the final grade. -
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.
Course offer for Semestre 5 (2024-2025 Winter)
-
Details
- Course title: Introduction à la vie professionnelle
- Number of ECTS: 2
- Course code: 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 -
Assessment
Un examen écrit final (100%). -
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
- Course title: Design Patterns
- Number of ECTS: 4
- Course code: BPINFOR-88
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
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. -
Assessment
Continuous assessment during the practical sessions (30%) and written final examination (70%). -
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
- Course title: Big Data
- Number of ECTS: 4
- Course code: 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 Trade Offs 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 Trade Offs 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 dataThe 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 Trade Offs between the classical data processing techniques and the upcoming ones for big data.Part II – Data mining, classification and aggregationThe 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, …) -
Assessment
Practical exercises, homework, continuous evaluation. -
Note
Literature: Relevant literature will be provided during the course.
-
Details
- Course title: Business Software Systems
- Number of ECTS: 4
- Course code: BPINFOR-55
- Module(s): Module 5.2 * N.C.
- Language: EN
- 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. -
Assessment
Written examination (70%) Control of homework/assignments (30%) -
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
- Course title: Circuits numériques
- Number of ECTS: 4
- Course code: 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 -
Assessment
Un examen écrit ou oral (50%), rapport et présentation orale du projet réalisé en TP (50%). -
Note
Les étudiants devront obligatoirement participer aux TP et remettre les rapports qui leur sont demandés.
-
Details
- Course title: Cloud-Based Applications
- Number of ECTS: 4
- Course code: 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) -
Assessment
First time students: The final grade is based on 2 graded exercises (25% each) and a final written exam (50%). Repeaters: The final grade is based only on the final exam (100%). -
Note
Literature: The course will rely on genuine documentation available on the web, which will be made available on the course Moodle website.
-
Details
- Course title: Introduction to Machine Learning
- Number of ECTS: 4
- Course code: 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 -
Assessment
o Three take-home assignments – 40% of the final grade in total split as follows: 10%, 10%, and 20%o Written exam – 60% of the final grade o Students having failed the course will have to retake the exam at the next exam session. This exam will count for 100% of the final grade. -
Note
Literature: • 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
-
Details
- Course title: Introduction to IT Security
- Number of ECTS: 4
- Course code: 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 -
Assessment
Weighted average of written exam (60%) and practical exercises (40%). -
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
- Course title: Java for Enterprise Applications
- Number of ECTS: 4
- Course code: 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. -
Assessment
Four bi-weekly graded assignments (60%) Final written exam (40%) -
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
- Course title: Parallel and Distributed Systems
- Number of ECTS: 4
- Course code: 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 -
Assessment
50% project (half is practical solution, half is written project exam) 20% quizzes 20% individual paper presentation (5 slides, 1 minute per slide, and extended abstract 2 pages) 10% class participation -
Note
Literature: Distributed Systems, Tanenbaum as optional reading. Lecture notes and papers are based on MIT's 6.824
-
Details
- Course title: Backend Software Development
- Number of ECTS: 4
- Course code: BPINFOR-122
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
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 capable 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 -
Assessment
** Winter Semester:** First session students: continuous evaluation (30%), three closed-book written exams (70%). Resitting students: closed-book written final exam (100%). ** Summer Semester:** Closed-book written final exam (100%) -
Note
Literature: References will be announced in the class.
-
Details
- Course title: Introduction to IOT
- Number of ECTS: 4
- Course code: 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) -
Assessment
First time students: 40%: practical group project 60%: final written exam Repeating students: 100% final written exam -
Note
Literature: Relevant literature will be provided during the lecture.
-
Details
- Course title: IT in a Real organization
- Number of ECTS: 4
- Course code: BPINFOR-126
- Module(s): Module 5.2 * N.C.
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The students will learn how IT is structured, driven and operated in a real financial organization – based on an example of a bank in Luxembourg. The course will cover different IT job families, IT project governance and lifecycle, practical hints for system design, insights into the hiring and job onboarding process.
-
Course learning outcomes
On successful completion of this course, students are capable to: understand the place, the role, the priorities and the driving factors of IT in a real organization; differentiate between different IT job families; understand how IT projects are structured and executed; implement practical system designs; navigate through the hiring and job onboarding process. -
Description
A structure of a typical bank in Luxembourg and a place of IT in it.IT job families – from a software engineer to quality assurance, system analysis, user experience and project management.IT project governance and project execution.System design – DOs and DONTs.Hiring process – job search, interview preparation, interview types (live coding, brain teaser, tech vs HR), interview follow-up, first days at job. -
Assessment
First time students: End-cource evaluation lab team-work (30%): Design and build a demo system Structure project – scope, governance, timelines, planning; Execution phases – launch, planning, analysis, design, implementation, deployment, landing; Project roles and their responsibilities – lead, analyst, engineers etc Individual student presentation (30%) Final written exam (30%) Participation in course (10%) Repeating students: Final written exam (100%) -
Note
Literature: Lecture slides and supporting materials provided on Moodle
Course offer for Semestre 6 (2024-2025 Summer)
-
Details
- Course title: Research-oriented Bachelor Project
- Number of ECTS: 30
- Course code: BPINFOR-129
- Module(s): Module 6.1
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The main objective of the research-based 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 within a research project done in a research group of the Department of Computer Science at the University of Luxembourg. 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 research team working in the IT domain of an academic institution; show maturity in working in the IT research domain; prove the acquired expertise for a practical problem in the research-related 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 research-based project of at least 12 weeks, done in a research group at the Department of Computer Science. The project must contain a substantial research contribution from the student. The Bachelor project should prepare students for continuation of their study within a CS Master programme. The three key elements of a Bachelor project are:an academic supervisor and the study director must support the acceptance of the student, based on prior academic results; the Bachelor project and the expected research question must be clearly defined before the start of the project and feasible for a 12-weeks long work;The student must be mentored by an “academic supervisor” (and possibly a local supervisor) from within the department that 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.Note that a research-based Bachedlor project is an unpaid academic activity of the student. -
Assessment
The evaluation of the Bachelor project and the respective project report (the Bachelor thesis) is done before a Bachelor project jury based on the results achieved during the project. This jury consists of both the local and the academic supervisor and at least one additional member of the academic body.
-
Details
- Course title: Professional Internship
- Number of ECTS: 30
- Course code: BPINFOR-130
- Module(s): Module 6.1
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The main objective of a final professional internship 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 professional 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 host 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 professional internship, 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 intership 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.Note that by the Luxembourgish labor law an internship student is obliged to follow the guidance of his/her superior. This type of internship must be paid. -
Assessment
The evaluation of the professional internship is done by a internship jury consisting of both the local and the academic supervisor of the internship project together with at least one additional member from the academic body. The jury evaluates the clearness and preciseness of the presentation and the quality of the answers given to the jury's questions.