Programme

The Bachelor in Computer Science is a 3 years full-time programme with 6 semesters (180 ECTS), with one semester of mobility exchange.
Academic Contents
Course offer for Semestre 1
-
Details
- Number of ECTS: 5
- Course number: F1_BAINFOR-6
- Module(s): Analysis 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course is an introductory analysis course, covering basics on numbers, sequences, and functions. The course aims to introduce students to these notions, including formal proofs, techniques and to give them necessary tools for the understanding of mathematics and the mathematical language of science.
-
Course learning outcomes
At the end of the course the student will: remember further mathematical knowledge. apply analytic and critical thinking. understand and practice deep mathematical concepts that will be used throughout their scientific career. apply techniques from calculus to compute. -
Description
This course is an introductory analysis course, covering basics on numbers, sequences, and functions. There is both a calculus component (computations of limits of sequences, derivatives, function approximations, limits of sequences) and more theoretical analysis.This latter portion is sizeable part of the course where the students are introduced to proof techniques and the importance of rigorous arguments which are foundational and transversal in mathematics and science. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Written exam 20 points (0-20) 60 Objectives Test concepts learned during the year Assessment rules Students cannot use calculators, electronic devices, or notes. Assessment criteria Graded out of 20 with points for each exercise Task 2 Written exam 20 points (0-20) 20 Objectives Test concepts learned during the year Assessment rules There is one partial exam during the semester. Students cannot use calculators, electronic devices, or notes. Assessment criteria Graded out of 20 with points for each exercise Task 3 Take-home assignment 20 points (0-20) 10 Objectives Practice concepts Assessment rules Students work from home and can use course materials. Assessment criteria Graded out of 20 with points for each exercise Task 4 Written exam 20 points (0-20) 10 Objectives Quizzes Assessment rules There are 2 mandatory quizzes. Students cannot use calculators, electronic devices, or notes. Assessment criteria Graded out of 20 with points for each exercise Task 5 Written exam 20 points (0-20) 100 Objectives Retake: The final grade, in case of a retake exam, is based 100% on the exam grade. (Performance on quizzes, homework, midterms, and exercises is not taken into account.) Assessment rules Students cannot use calculators, electronic devices, or notes. Assessment criteria Graded out of 20 with points for each exercise -
Note
Syllabus ☒Yes ☐No Remarks: Literature list ☒Yes ☐No Remarks: Course notes Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=322 Other, please specify:
-
Details
- Number of ECTS: 5
- Course number: F1_BAINFOR-10
- Module(s): Bachelor Semester Project 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course is a preparation to the Bachelor Semester Projects (BSP) that a BiCS student will have to do individually during semester 2 to semester 6 of his studies. During a standard BSP, students discover research and development domains, produce concrete artefacts related to computer science knowledge areas covered in the BICS, collaborate with UL employees in a project context, learn new technologies related to computer science, learn new knowledge related to computer science, apply the scientific and technical knowledge learned during the BICS, apply the primary and secondary languages knowledge learned during the BICS.During this 1st semester course, the students are introduced to research and development projects. The objective is to get the students trained on: -Group Dynamics and Psychology, -Initiation and Scope Definition, -Intellectual Property, -Problem Solving Techniques, -Professional Communication, -Professional Ethics, Review and Evaluation,-Software Project Management, -Software Project Planning, Tools, and Environments.
-
Course learning outcomes
•LO1/Discuss common behaviours that contribute to the effective functioning of a team.•LO2/Create and follow an agenda for a team meeting.•LO3/Identify and justify necessary roles in a software development team.•LO4/Understand the sources, hazards, and potential benefits of team conflict.•LO5/Apply a conflict resolution strategy in a team setting.•LO6/Use an ad hoc method to estimate software development effort (e.g., time) and compare to actual effort required.•LO7/Describe how the choice of process model affects team organisational structures and decision-making processes.•LO8/Create a team by identifying appropriate roles and assigning roles to team members.•LO9/Track the progress of some stage in a project using appropriate project metrics. •LO10/Use a project management tool to assist in the assignment and tracking of tasks in a software development project. •LO11/Identify both functional and non-functional requirements in a given requirements specification for a software system.•LO12/Describe the mechanisms that typically exist for a professional to keep up to date.•LO13/Describe the consequences of inappropriate professional behaviour.•LO14/Justify uses of copyrighted materials.•LO15/Evaluate the ethical issues inherent in various plagiarism detection mechanisms.•LO16/Write clear, concise, and accurate technical documents following well-defined standards for format and for including appropriate tables, figures, and references.•LO17/Evaluate written technical documentation to detect problems of various kinds.•LO18/Develop and deliver a good quality formal presentation.•LO19/Plan interactions (e.g., virtual, face-to-face, shared documents) with others in which they are able to get their point across and are also able to listen carefully and appreciate the points of others, even when they disagree, and are able to convey to others what they have heard.•LO20/Describe the strengths and weaknesses of various forms of communication (e.g., virtual, face-to-face, shared documents).•LO21/Examine appropriate measures used to communicate with stakeholders involved in a project.•LO22/Compare and contrast various collaboration tools.•LO23/Discuss ways to influence performance and results in cross-cultural teams.•LO24/Evaluate personal strengths and weaknesses to work remotely as part of a multinational team. -
Description
• Problem analysis. • Definition of problem solving.• Dealing with multicultural environments.• Dealing with problem complexity. • Dealing with uncertainty and ambiguity.• Individual cognition.• Communicating professionally with stakeholders.• Dynamics of oral, written, and electronic team and group communication.• Reading, understanding and summarising technical material, including source code and documentation. • Writing effective technical documentation and materials.• Community values and the laws by which we live.• Keeping up to date as a computing professional in terms of familiarity, tools, skills, legal and professional framework as well as the ability to self-assess and progress in the computing field.• The nature of professionalism including care, attention and discipline, fiduciary responsibility, and mentoring.• Intellectual property rights (cross-reference IM/Information Storage and Retrieval/intellectual property and protection).• Plagiarism.• Reading, understanding and summarising technical material, including source code and documentation. • Utilising collaboration tools.• Dealing with cross-cultural environments.• Trade-offs of competing risks in software projects, such as technology, structure/process, quality, people, market and financial.• Accountability, responsibility and liability (e.g. software correctness, reliability and safety, as well as ethical confidentiality of cybersecurity professionals).• Team participation: Team processes including responsibilities for tasks, meeting structure, and work schedule; roles and responsibilities in a software team; team conflict resolution; risks associated with virtual teams (communication, perception, structure).• Effort Estimation (at the personal level).• Team management: Team organisation and decision-making; role identification and assignment; individual and team performance assessment.• Release management.• Determination and negotiation of requirements.• Feasibility analysis.• Process for the review and revision of requirements.• Determining satisfaction of requirements.• Determine deliverables.• Process Planning. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Other, please specify: Report submission. 20 points (0-20) 40% Objectives Assess the capacity to write a detailed project description according to the professional communication standard learned for defining a description of a scientific and technical Bachelor Semester Project. Assessment rules Time constrained submission. Assessment criteria Abstract & Introduction – 3 points Scientific deliverable – 6 pointsTechnical deliverable – 6 pointsScientific & Technical state of the art – 5 points Task 2 Other, please specify: Report and video submission. 20 points (0-20) 60% Objectives Assess the capacity of the student as a team member to understand, evaluate and improve a Bachelor Semester Project previously produced. Assessment rules Time constrained submission. Assessment criteria Detailed reviewing report – 14 points Video presentation of the detailed reviewing report – 6 points Task 3 Other, please specify: RETAKE 20 points (0-20) 100% Objectives Assess to which extend the course learning outcomes have been acquired for a student having ALREADY FAILED ONCE TO THE COURSE using the assessment tasks 1 and 2. Assessment rules Time constrained submissions. Assessment criteria Previous Task 1 grade is kept – 8 pointsSubmission of a new reviewed report – 8 points Submission of a new video presentation of the reviewed report – 6 points -
Note
Syllabus ☒Yes ☐No Remarks: Accessible from the Moodle course page Literature list ☒Yes ☐No Remarks: Accessible from the Moodle course page Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=325 Other, please specify:
-
Details
- Number of ECTS: 5
- Course number: F1_BAINFOR-7
- Module(s): Discrete Mathematics 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Discrete structures are foundational material for computer science. Relatively few computer scientists will be working primarily on discrete structures, but many other areas of computer science require the ability to work with concepts from discrete structures. The discrete structures covered in this introduction include important material from such areas as set theory, logic, graph theory, and number theory.
-
Course learning outcomes
By the end of the course students will be able to:-Use logical notation to define and reason about fundamental mathematical concepts, such as sets, relations, functions, and integers.-Evaluate elementary mathematical arguments and identify fallacious reasoning (not just fallacious conclusions).-Synthesise induction hypothesis and simple induction proofs.-Prove elementary properties of modular arithmetic and explain their applications in Computer Science, for example, in cryptography.-Apply graph theory models of data structures and state machines to solve problems of connectivity and constraint satisfaction, for example, scheduling.-Apply the method of invariants and well-founded ordering to prove correctness and termination of processes and state machines.-Efficiently work on problems in a small team with fellow students. -Manage their time and tasks in a responsible way. -
Description
• Week 1 – Week 4: Proof techniques • Week 5 – Week 6: Introduction to Logic• Week 7 – Week 8: Sets, Relations, and State Machines • Week 9 – Week 11: Graph Theory • Week 11 – Week 13: Number Theory and modular Arithmetic • Week 14: Exam Preparation -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Written exam 20 points (0-20) 100% Objectives Main test for assessing proficiency of students. Assessment rules They will get 6 exercises and get to choose 4 of them to hand in for a grade. Assessment criteria The answers to the exercises are graded based on correctness completeness and clarity. Task 2 Take-home assignment Bonus points13 HomeWorksMax 260 points2.6-point bonus 20 points (0-20) 10% Objectives To get the students familiar with the material. Assessment rules The students make the assignment in groups and have one week of time. Assessment criteria The answers to the exercises are graded based on correctness completeness and clarity. Task 3 Other, please specify: Retake Exam 20 points (0-20) 100% Objectives The student receives a second chance at passing the course after failing the exam. Assessment rules The bonus points do not apply. They will get 6 exercises and get to choose 4 of them to hand in for a grade. Assessment criteria The answers to the exercises are graded based on correctness completeness and clarity. -
Note
Syllabus ☒Yes ☐No Remarks: Available on the Moodle page. Literature list ☒Yes ☒No Remarks: Available on the Moodle page. Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=323
-
Details
- Number of ECTS: 5
- Course number: F1_BAINFOR-8
- Module(s): Linear Algebra 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Fundamental notions of Linear Algebra.
-
Course learning outcomes
The students recall and are able:•To formulate the basic notions of linear algebra. •To solve small linear algebra problems by performing calculations and applying algorithms.•To understand small proofs and to look for examples and counterexamples. -
Description
Systems of linear equations and matrices; determinants; Euclidean vector spaces (especially in dimension 2 and 3); general vector spaces (linear independence, span, basis). -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Written exam Midterm exam 1 20 points (0-20) 15 Objectives Written test with exercises. Assessment rules Only 6 pages of personal notes are allowed. No calculators. Assessment criteria The tests are graded. The average of the two best midterms counts as mark. Task 2 Written exam Midterm exam 2 20 points (0-20) 15 Objectives Written test with exercises. Assessment rules Only 6 pages of personal notes are allowed. No calculators. Assessment criteria The tests are graded. The average of the two best midterms counts as mark. Task 3 Written exam Midterm exam 3 20 points (0-20) 15 Objectives Written test with exercises. Assessment rules Only 6 pages of personal notes are allowed. No calculators. Assessment criteria The tests are graded. The average of the two best midterms counts as mark. Task 4 Written exam Final exam 20 points (0-20) 70 Objectives Written test with exercises. Assessment rules Only 6 pages of personal notes are allowed. No calculators. Assessment criteria The test is graded. Task 5 Oral exam 20 points (0-20) optional Objectives Oral exam (in case of justified absence to >1 midterms or as additional evaluation in case of fraud suspicion) Assessment rules Discussion with questions (theoretical questions and exercises) Assessment criteria Correct and partially correct answers contribute positively to the grade. Task 5 Written exam RETAKE 20 points (0-20) 100 Objectives Written test with exercises. Assessment rules Only 6 pages of personal notes are allowed. No calculators. Assessment criteria The test is graded. -
Note
Syllabus ☒Yes ☐No Remarks: Moodle page Literature list ☒Yes ☐No Remarks: Moodle page Moodle page ☐Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=324 Other, please specify:
-
Details
- Number of ECTS: 5
- Course number: F1_BAINFOR-9
- Module(s): Programming Fundamentals 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course introduces the fundamentals of programming using the Python programming language. This is not primarily a Python programming course but rather a discussion of the fundamental concepts underlying computation using Python code examples as illustration. At the same time enough of the Python language is covered for the students to be able to tackle non-trivial problems (e.g., in the context of projects). This introductory course forms the basis for more advanced courses on algorithms and object-oriented programming.
-
Course learning outcomes
Upon completion of this course the student should be able to:•move from a problem description to a Python program by successively reducing the level of abstraction with the help of pseudo-code.•document the implementation choices. •make use of available data types and program libraries.•extend and adapt code written by other programmers.•test and debug computer programs. -
Description
1. Introduction to computational problem solving and the Python programming language.2. Basic syntax and semantics of Python.3. Functions and modules.4. Problem solving and recursion.5. Structured types and function objects.6. Files and exceptions.7. Testing.8. Debugging.9. Iterators and generators.10. Floating-point numbers.11. Introduction to object-oriented programming in Python.12. Introduction to popular libraries: mathplotlib, NumPy and Pandas.13. Introduction to software engineering. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Written exam 20 points (0-20) 50% Objectives The objective of this final exam is to test the student’s understanding of the course material. Assessment rules The student has to answer questions with pencil and paper. This is a closed-book exam. No cheat sheet allowed. Assessment criteria The student must answer the stipulated questions in a way that clearly demonstrates understanding of underlying concepts. Task 2 Written exam 20 points (0-20) 50% Objectives To test the student’s ability to implement Python programs for concrete problems. Assessment rules The student has to solve programming tasks with pencil and paper. This is a closed-book exam. One page of A4 hand-written cheat sheet is allowed. Assessment criteria The exam consists of two parts: mid-term evaluation and final evaluation, each of which counts 25%. Task 3 Written exam RETAKE 20 points (0-20) 100% Objectives The objective of this final exam is to test the student’s understanding of the course material. Assessment rules The student has to answer questions with pencil and paper. This is a closed-book exam. No cheat sheet allowed. Assessment criteria The student must answer the stipulated questions in a way that clearly demonstrates understanding of underlying concepts. -
Note
Syllabus ☐Yes ☒No Remarks: Literature list ☐Yes ☒No Remarks: Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=321
-
Details
- Number of ECTS: 5
- Course number: F1_BAINFOR-59
- Module(s): Web Development 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course provides an introduction to front-end web development. The course covers the foundational building blocks of the Web and user interface design fundamentals for building websites and web applications. After the course, students will be able to understand and develop the front-end of any kind of websites and web applications.
-
Course learning outcomes
By the end of the course students will be able to:1.Understand the foundations of front-end development.2.Identify the key components of web technologies.3.Judge and support best practices in web development. -
Description
1. Getting started 1.1. Front-end roles: Design, develop, create, and animate.1.2. Languages: HTML, CSS, JS.1.3. Setup: OS, browsers, editors.2. How the web works 2.1. History: Internet, web browsers.2.2. URIs: Scheme, conventions.3. Key concepts to know 3.1. Methodologies: Progressive enhancement, graceful degradation, and RWD.3.2. Accessibility: Types of impairments.4. HTML Overview 4.1. Defaults: Formatting, doctypes, stylesheets.4.2. Semantic markup: Microdata, microformats.4.3. Entities: Tags, attributes.5. Marking up text 5.1. Structural elements: Metadata, sections, text, lists, tables, form, media.6. Adding links 6.1. Working with URLs: Link types, attributes, fragments7. Adding images 7.1. Concepts: Formats, raster/vector, resolution, interlacing, transparency7.2. Optimization: Compression, dithering7.3. SVG: Animation, filters8. Tables 8.1. Markup notation: Semantics, controlling structure.9. Forms 9.1. Markup notation: Elements, attributes9.2. Sending data: GET, POST, encodings.10. HTML510.1. Overview: Features, browser wars10.2. APIs: Media Player, History, Storage, Drag and Drop, Canvas11. Cascading Style Sheets 11.1. Authoring: Formats, structure11.2. Inheritance: Tree matching, specificity11.3. Selectors: IDs, classes, conflicting styles, contextual and pseudo-selectors12. Formatting text 12.1. Fonts: Properties, family, style, colour12.2. Measurement units: Absolute (px, pt) and relative (em, ex)13. Colours and backgrounds 13.1. Colour models: RGB, RGBA, HSV, opacity13.2. Images: Properties, notation13.3. Gradients: Linear and radial gradients14. Thinking inside the box 14.1. Box model: Sizing, overflow, margin, padding, borders15. Floating and positioning 15.1. Layout flow: Containers, clears, stacking order.16. Page layout 16.1. Types: Fixed, fluid, elastic, hybrid16.2. Methodologies: Common patterns, Flexbox, Grid system17. Transitions, transforms, and animation 17.1. Fundamentals: Functions, keyframes, properties18. CSS techniques 18.1. Tips: Resets, sprites18.2. Pre-processors: Variables, functions18.3. Responsive web design: Media queries -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Coding assignments 10 points (0-10) 50% Objectives Students will learn how to implement business requirements through hands-on exercises using JavaScript, HTML, and CSS. Assessment rules Every week, students must submit a simple programming exercise based on the contents taught in the course. Students must follow a series of specifications about each exercise, provided in Moodle. Students have up to 1 week to submit. Exercises must be submitted only via Moodle. No late submissions are allowed, unless “force majeure” causes; e.g. sickness, accident, etc. for which an authoritative certificate must be provided (e.g. a certificate signed by a medical doctor or a police representative). Assessment criteria There are 10 coding assignments in total, and each will be graded using a 0-10 point scale via an automated testing platform. Students can access such a platform at any time before each submission deadline. Students must get an average grade of at least 4.5 points (out of 10) in this part in order to qualify for the final exam. If a student scores less that 4.5 points in this part, the final grade in the course will be the minimum grade achieved in either the coding assignments or the final exam. Any form of cheating or plagiarism will be penalized with a grade of 0 in this part, which will make the student to fail the whole course. The grade in this part will be retained until the student passes the final exam, unless the student decides to repeat the course in the next academic year. There is no retaking option for this part, which means that a student who fails this part must enroll again in the course in the next academic year. Task 2 Final exam 10 points (0-10) 50% Objectives Students will demonstrate that they have acquired the required competencies according to the theory covered in the course. Assessment rules Only students who got at least 4.5 points in the coding assignments should take the final exam, otherwise they are advised to de-enrol from the final exam in order to avoid missing an official attempt. Students can bring an A4 paper “cheat sheet” written on both sides. No other supporting material is allowed, i.e. no books, no mobile devices, no laptops, etc. Assessment criteria The exam is a paper-based quiz with 30 questions that must be solved in 1 hour. Each question comes with 4 possible answers, among which only one is the right one. A student must get at least 4.5 points (out of 10) in the final exam in order to pass the course. If a student scores less that 4.5 points in this part, the final grade in the course will be the minimum grade achieved in either the coding assignments or the final exam. Any form of cheating or plagiarism will be penalized with a grade of 0 in this part, which will make the student to fail the whole course. The grade in this part will not be retained for the next year. Failing students can retake the exam in the next examination period. Any student can improve their grade in the retaking exam, if desired. -
Note
Syllabus ⊠Yes ☐No Remarks: Available on Moodle Literature list ⊠Yes ☐No Remarks: Reference texbook:J. Robbins. 2012. Learning Web Design. O’Reilly Media, 4th ed. Recommended books: R. Anquetil. 2019. Fundamental Concepts for Web Development, 1st ed.M. Haverbeke. 2018. Eloquent JavaScript, 3rd ed.S. Krug. 2000. Don't Make Me Think, 3rd ed. Moodle page ⊠Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=5689 Other, please specify: Class attendance is not required but highly encouraged.
Course offer for Semestre 2
-
Details
- Number of ECTS: 10
- Course number: F1_BAINFOR-29
- Module(s): Bachelor Semester Project 2
- Language: EN, FR, DE
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
During this project the students will: discover research and development domains, produce concrete artefacts related to computer science knowledge areas covered in the BICS, collaborate with UL employees in a project context, learn new technologies related to computer science, learn new knowledge related to computer science, apply the scientific and technical knowledge learned during the BICS, apply the primary and secondary languages knowledge learned during the BICS.At the end of the first bachelor semester project it is expected that the student is autonomous in finding a subject and a tutor for his next bachelor semester project. MOBILITY: This course is NOT open for incoming students.
-
Description
1. Software Engineering Management1.1. Initiation and Scope Definition1.1.1. Determination and Negotiation of Requirements1.1.2. Feasibility Analysis1.1.3. Process for the Review and Revision of Requirements1.2. Review and Evaluation1.2.1. Determining Satisfaction of Requirements1.3. Software Project Planning1.3.1. Determine Deliverables1.3.2. Process Planning2. Social Issues and Professional Practice2.1. Professional Communication2.1.1. Communicating professionally with stakeholders2.1.2. Dynamics of oral, written, and electronic team and group communication (cross-reference HCI/Collaboration and Communication/group communication; SE/Project Management/team participation)2.1.3. Reading, understanding and summarizing technical material, including source code and documentation2.1.4. Writing effective technical documentation and materials2.2. Professional Ethics2.2.1. Community values and the laws by which we live2.2.2. Keeping up-to-date as a computing professional in terms of familiarity, tools, skills, legal and professional framework as well as the ability to self-assess and progress in the computing field2.2.3. The nature of professionalism including care, attention and discipline, fiduciary responsibility, and mentoring2.3. Group Dynamics and Psychology2.3.1. Dealing with Multicultural Environments2.3.2. Dealing with Problem Complexity2.3.3. Dealing with Uncertainty and Ambiguity2.3.4. Individual Cognition3. Computing Foundations3.1. Problem Solving Techniques3.1.1. Analyze the Problem3.1.2. Definition of Problem Solving4. Digital Technologies4.1. various4.1.1. Digital technologies will be learned or applied depending on the project subject5. Computer Sciences5.1. various5.1.1. Sciences will be learned or applied depending on the project subject -
Assessment
FIRST SESSION: The Bachelor Semester Projects (BSP) is evaluated using a combined control in the following way:IF the Phase 1 continuous evaluation status is FAILURETHEN the final grade is zeroELSE the final grade is computed from the deliverables.REDOING SESSION: First and redoing sessions are evaluated in the same wayAll details for evaluation are in the official bachelor semester project (BSP) reference document accessible from the Moodle Course page.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-56
- Module(s): Computing Infrastructure 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Computing professionals should not regard the computer as a black box that executes programs by magic. This course first aims to develop a deeper understanding of the hardware and software environment upon which all computing is based, and the interface it provides to higher software layers. Students should acquire an understanding and appreciation of a computer system's functional components, their characteristics, performance, and interactions. In particular, it will be taught how data are represented in memory and how they are manipulated during computations. An operating system defines an abstraction of hardware and manages resource sharing among users. This course provides a basic knowledge of operating systems such as the concept of processes and the difference between the kernel and user modes.
-
Description
1. Systems Fundamentals1.1. Computational paradigms1.1.1. Basic building blocks of a computer1.1.2. Sequential vs parallel processing, threads, processes, multicore architectures1.2. Cross-layer communications1.2.1. Programming abstractions, interfaces, use of libraries1.2.2. Layered architecture: Hardware, VM, OS and applications1.3. Ressource allocation and scheduling1.3.1. Kinds of ressources: processor, memory, disk, etc1.3.2. Kinds of scheduling: FIFO, priority2. Architecture and Organization2.1. Machine Level Representation of Data2.1.1. Bits, bytes, and words2.1.2. Numeric data representation and number bases2.1.3. Fixed- and floating-point systems2.1.4. Signed and two-complement representations2.2. Assembly Level Machine Organization2.2.1. Control unit; instruction fetch, decode, and execution2.2.2. Instruction formats2.3. Memory System Organization and Architecture2.3.1. Main memory organization and operations2.3.2. Cache memories and storage systems2.3.3. Virtual memory 2.3.4. Fault handling and reliability2.4. Interfacing and Communication2.4.1. direct-memory access (DMA)2.5. Multiprocessing and Alternative Architectures2.5.1. Example SIMD and MIMD instruction sets and architectures3. Operating Systems3.1. Overview of Operating Systems3.1.1. Role and purpose of the operating system3.2. Operating System Principles3.2.1. Abstractions, processes, and resources3.2.2. Concepts of application program interfaces (APIs)3.2.3. The evolution of hardware/software techniques and application needs3.2.4. Device organization3.2.5. Interrupts: methods and implementations3.2.6. Concept of user/system state and protection, transition to kernel mode3.2.7. Process scheduling3.3. Concurrency3.3.1. Structures: ready list, process control block3.3.2. The role of interrupts3.3.3. Dispatching and context switching3.3.4. Implementing synchronization primitives3.4. Real-Time and Embedded Systems3.4.1. Specificities of real-time and embedded systems -
Assessment
– Assignments including programming exercises: 40%.- Final exam: 60%.- Students having failed the course will have to re-sit the final exam at a next exam session, which will then count for 100% of the grade.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-14
- Module(s): Linear Algebra 2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course belongs to the set of mathematics courses of the program that covers basic techniques to identify a set of rules for reasoning in the context of the system under study.In this course the focus is advanced notions of linear algebra.
-
Description
1. Mathematics1.1. Eigenvectors and eigenvalues1.1.1. Eigenvalues and eigenvectors1.2. Polynomials1.2.1. Basics on polynomials1.2.2. Euclidean division and factorization1.3. Characteristic and minimal polynomials1.3.1. Characteristic polynomial1.3.2. Minimal polynomial1.4. Direct sums of vector spaces1.4.1. Direct sums of vector spaces1.5. Diagonalisability1.5.1. Diagonalisation1.5.2. Non-diagonalisable matrices1.6. Euclidean vector spaces1.6.1. Euclidean vector spaces1.7. Self-adjoint and normal endomorphisms1.7.1. Self-adjoint and normal endomorphisms1.7.2. Diagonalisation of self-adjoint endomorphisms -
Assessment
• 3 midterms during the semester, graded with the average of the two best grades • compulsory final written exam Final grade: 1/3 midterms grade + 2/3 final written exam -
Note
The main reference will be book by Anton and Rorres "Elementary linear algebra – Applications version 11-th edition (notice that this edition can also be found in electronic form as pdf). Additional references will be given at the begining of the course. New material and the homework assignments will be uploaded on Moodle.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-57
- Module(s): Network and Communication
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The Internet and computer networks are now ubiquitous and a growing number of computing activities strongly depend on the correct operation of the underlying networks. Many computing applications that are used today would not be possible without networks. The objective of the course is to give an introduction to networking at large, and TCP/IP networks specifically. The course will provide an introduction to current network architectures, application level protocols (e.g., http), transport protocols (TCP/UDP), routing and IP. The course will introduce Medium Access Control techniques as well as quantitative performance measures for networks. The course will also give a first introduction to mathematical concepts of networks.The course will consist of approx. 28 hours of teaching and 28 hours of practical exercises.
-
Description
1. Computer Networks and the Internet1.1. What is the Internet?1.2 The Network Edge1.3 The Network Core1.4 Performance: Delay, Loss and Throughput in Computer Networks1.5 Protocol layers and Their Service Models1.6 Networks under attack1.7 History of Computer Networking2. The Application Layer2.1 Principles of Network Applications2.2 The Web and HTTP2.3 Email2.4 The Domain Name Service: DNS2.5 Peer-to-Peer File Distribution2.6 Video Streaming and Content Distribution Networks2.7 Socket Programming: Creating Network Applications3. The Transport Layer3.1 Introduction and Transport-layer Services3.2 Multiplexing and Demultiplexing3.3 Connectionless Transport: UDP3.4 Principles of Reliable Data Transfer3.5 Connection-oriented Transport: TCP3.6 Principles of Congestion Control3.7 TCP Congestion Control3.8 Evolution of Transport Layer Functionality4. The Network Layer: the Data Plane4.1 Network Layer Overview4.2 Whats Inside a Router?4.3 The Internet Protocol4.4 Generalized Forwarding4.5 Middleboxes5. The Network Layer: the Control Plane5.1 Introduction to the Network-layer control plane5.2 Routing Algorithms5.3 Intra-AS Routing in the Internet: OSPF5.4 Routing Among the ISPs: BGP5.5 The SDN Control Plane5.6 ICMP: The Internet Control Message Protocol5.7 Network Management and SNMP, NETCONF/YANG6. The Link Layer6.1 Introduction to the Link Layer6.2 Error-Detection and -Correction Techniques6.3 Multiple Access Links and Protocols6.4 Switched Local Area Networks6.5 Link Virtualization: A Network as a Link Layer6.6 Data Center Networking -
Assessment
– Practicals: 40%.- Final exam / written: 60%.- Students having failed the course will have to re-sit the final exam at a next exam session, which will then count for 100% of the grade.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-15
- Module(s): Programming Fundamentals 2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Programming is a craft rather than an exact science. Therefore, we need a set of programming tools and guiding principles to develop reliable applications. The main purpose of Programming Fundamentals 2 is to learn how to design and implement programs above 500 lines of code. We give emphasis on clean and beautiful code, well-thought architectures, and a disciplined programming workflow. To achieve our goals, we will rely on the object-oriented paradigm and the Java programming language, as well as various programming tools (e.g., an editor, terminal, bash, Maven, git and Github).This class is designed to be self-paced, you will watch video of the lectures and complete assignments at your own pace. Moreover, we provide automated and personalized feedback on your projects (quick assessment, code analysis session). In-class, the professors and assistants will help you strive through the class by answering your questions and re-explaining concepts as needed. In short, PF2 is your class.
-
Description
1. Core1.1. Basics of Java1.1.1. Basics of Java syntax1.1.2. Object and class1.1.3. Composition (has-a relation)1.1.4. Inheritance (is-a relation)1.2. Polymorphisms1.2.1. Ad-hoc polymorphism (overloading)1.2.2. Sub-type polymorphism I (overriding)1.2.3. Sub-type polymorphism II (interactions with ad-hoc)1.2.4. Sub-type polymorphism III (interface and abstract class)1.2.5. Casting polymorphism1.2.6. Parametric polymorphism1.3. Principles1.3.1. Introduction to design patterns (e.g., factory, adapter, visitor)1.3.2. The Liskov Substitution Principle (LSP)1.3.3. The Single-Responsibility Principle (SRP)1.3.4. The Open-Closed Principle (OCP)2. Algorithmic2.1. Data structures2.1.1. Dynamic array2.1.2. Linked list2.1.3. Binary Tree2.1.4. Hash Table2.1.5. Graph3. Programming environment3.1. Shell3.1.1. UNIX simple commands, Bash3.2. Tools3.2.1. Editor (Sublime Text)3.2.2. Command line (Shell)3.2.3. Source code control (Git)3.2.4. Build automation tool (Maven) -
Assessment
Continuous evaluation (a grade C between 0 and 20) with a final oral examination (a weight W between 0.8 and 1.2). The final grade is C * W.Redoing students resume the class at the point they arrived the previous semester.Feedback and grades are only provided during the summer semester.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-11
- Module(s): Theoretical Computer Science 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course covers basic principles and techniques in theoretical computer science. More specifically, automata theory, decidability and Turing machines will be the core part of the course. The course is structured into two main parts. In the first part, we introduce the basic concepts of automata theory such as deterministic and non-deterministic automata, regular and context-free languages. We then move to more advanced concepts of automata theory and computation (Turing machines and undecidable problems to name a few).The languages and methods covered in the course are the building blocks of the scientific foundation of computer science. The ultimate goal of the course is to provide a general understanding of the theoretical structures behind the implementation of reasoning techniques and programs in general.
-
Description
1. Foundations of Computing (FC)1.1. Basic Automata Theory and Computability1.1.1. Automata Theory: introduction, context, motivation, history, notation, basic concepts1.1.2. Motivation and history, Deterministic finite automata1.1.3. Non-deterministic finite automata, equivalence of deterministic and non-deterministic automata1.1.4. Regular expressions, closure properties of regular languages1.1.5. equivalence of regular languages and finite automata, Non-regular languages1.1.6. Pumping lemma for regular languages, Context-free languages, context-free grammars, parsing, ambiguity1.1.7. Pushdown automata1.2. Advanced Automata Theory and Computability1.2.1. Inclusion of regular languages in context-free languages, equivalence of pushdown automata and context-free grammars1.2.2. Chomsky normal forms, pumping lemma for context-free languages1.2.3. Turing machines1.2.4. Turing-decidability, Turing machine variants1.2.5. Church-Turing thesis, decidable problems1.2.6. Undecidability, halting problem1.3. Application of Automata Theory1.3.1. Application: compiler design1.3.2. Wrap up and wider perspective -
Assessment
Final exam (written): 80%Practical exercises: 20%Redoing exam:Final exam (written): 80%Grade for practical sessions from the first exam session: 20%
Course offer for Semestre 3
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-21
- Module(s): Algorithms and Complexity
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course presents fundamental algorithms and data structures that are required to solve common problems. The notion of computational complexity of algorithms will be introduced, and mathematical techniques will be presented to analyse the complexity of the algorithms presented in the course. Finally an introduction to problem complexity will be given.
-
Course learning outcomes
Upon completion of this course the student should be able to:- design and analyse an algorithm for a given problem- evaluate the computational complexity of an algorithm- reason about the correctness of an algorithm- classify an algorithm according to the basic approach it uses -
Description
1.The notion of algorithm and its computational complexity2. Basic sorting algorithms 3. Advanced sorting algorithms: Quicksort and HeapSort 4. The complexity of sorting 5. Elementary data structures: stacks, queues, linked lists 6. Advanced data structures: binary search trees and balanced trees 7. Hashing 8. Graph algorithms: depth-first search, topological sorting, Prim's and Dijkstra's algorithms 9. Classification of algorithms 10. Problem complexity -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Written final exam 20 points (0-20) 50% Objectives Test the student’s understanding of the course material Assessment rules The student has to answer questions with pencil and paper. This is a closed-book exam. No cheat sheet allowed. Assessment criteria The student must answer the stipulated questions in a way that clearly demonstrates understanding of underlying concepts. Task 2 Active participation 6 Quizzes in Class 20 points (0-20) 30% Objectives To track and test the student’s understanding for each topic. Assessment rules The student must answer questions with pen/pencil. Each quiz will be 10 minutes. No cheat sheet allowed. Assessment criteria The student must answer the stipulated questions in a way that clearly demonstrates understanding of underlying concepts Task 3 Take-home assignment 2 Assignments 20 points (0-20) 20% Objectives Check the abilities of the students in analytic thinking and in group collaboration Assessment rules The assignments are group based. For each assignment there will be a weekly track where each member must write his/her related task in this worksheet. Assessment criteria Students must be separated into several groups. Evaluation will be individual. Task 4 Written exam RETAKE 20 points (0-20) 100% Objectives Test the student’s understanding of the course material Assessment rules The student has to answer questions with pencil and paper. This is a closed-book exam. No cheat sheet allowed. Assessment criteria The student must answer the stipulated questions in a way that clearly demonstrates understanding of underlying concepts. -
Note
Syllabus ☒Yes ☐No Remarks: Available on Moodle. Literature list ☐Yes ☒No Remarks: Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3331 Other, please specify:
-
Details
- Number of ECTS: 10
- Course number: F1_BAINFOR-43
- Module(s): Bachelor Semester Project 3
- Language: EN, FR, DE
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
During a standard BSP, students discover research and development domains, produce concrete artefacts related to computer science knowledge areas covered in the BICS, collaborate with UL employees in a project context, learn new technologies related to computer science, learn new knowledge related to computer science, apply the scientific and technical knowledge learned during the BICS, apply the primary and secondary languages knowledge learned during the BICS.The course content and learning objectives are consistent with the BiCS programme content that the student is following.
-
Course learning outcomes
At the end of the BSP the student should have acquired specific learning outcomes defined on an individual basis between the project academic tutor and him/herself. The generic learning outcomes should be aligned with those stated in the BSP-S1 course description and any other previous course followed by the student before starting the BSP according to the study programme curricula. -
Description
Specific course content is defined on an individual basis between the project academic tutor and the student for each project. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Other, please specify: Report submission. Pass/Fail Objectives Assess the quality and quantity of work done during the first 6 weeks. Assessment rules Time constrained submission of the project description and the activity report made using the official templates.A fail grade implies the failure to the course. Assessment criteria Specific to each project subject.Based on the individual content and learning outcomes targeted for the first Phase of the project, the tutor decides if the quantity and quality of work is sufficient to continue the project. Task 2 Other, please specify: Report and video submission. 20 points (0-20) 100% Objectives Assess the quality and quantity of work done during the semester. Assessment rules Time constrained submissions. Assessment criteria The detailed criteria are specific to each project subject and applied on the following weighted deliverables:scientific content of the main report (25%)technical content of the main report (25%)scientific content of the oral video presentation (15%)technical content of the oral video presentation (15%)Language writing of the scientific & technical report written in the primary language (5%)Language speaking of the video oral presentation in the primary language (5%)Language writing of the summary written in the secondary language (5%)Language speaking of the video oral presentation in the secondary language (5%)The deliverables might be subject to the use of mandatory templates.The detailed activity report is mandatory and must provide an accurate and correct description of the tasks made by the student during the project. Task 3 Other, please specify: Retake 20 points (0-20) 100% Objectives Assess to which extend the course learning outcomes have been acquired for a student having ALREADY FAILED ONCE TO THE COURSE USING THE assessment tasks 1 and 2. Assessment rules All the same deliverables as the previously failed course must be resubmitted under the given time constrained. Assessment criteria Same as for task 1 and 2 -
Note
Syllabus ☒Yes ☐No Remarks: Accessible from the Moodle course page Literature list ☒Yes ☐No Remarks: Accessible from the Moodle course page Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3334 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-18
- Module(s): Discrete Mathematics 2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Discrete structures are foundational material for computer science. Relatively few computer scientists will be working primarily on discrete structures, but many other areas of computer science require the ability to work with concepts from discrete structures. Second part of the course focuses on the data analysis. Methods used come from combinatorics, probability theory and statistics.
-
Course learning outcomes
At the end of the course the student will be able to:-Find cardinalities of discrete structures.-Use counting for proofs.-Compute probabilities of events based on observations, and independence.-Take decisions via probabilities.-Analyse and interpret data using descriptive statistics. -Perform statistical inference to draw conclusions and make decisions.-Solve practical problems in data analytics. -
Description
1. Discrete Structures (DS)1.1. Basics of Counting1.1.1. Counting arguments: Set cardinality and counting, Sum and product rule, Inclusion-exclusion principle.1.1.2. The pigeonhole principle1.2. Permutations and combinations, Pascal's identity, The binomial theorem1.3. Solving recurrence relations (cross-reference: AL/Basic Analysis): An example of a simple recurrence relation, such as Fibonacci numbers.2. Discrete Probability2.1. Finite probability space, events2.2. Axioms of probability and probability measures2.3. Conditional probability, Bayes' theorem2.4. (Conditional) Independence2.5. Expectation and its Properties, Mean and Variance2.6. Integer Random Variables (Bernoulli, Binomial, etc..)2.7. Continuous Random Variables (Gauss, Poisson, etc..)2.8. Law of Large Numbers, Central Limit Theorem3. Data Analysis3.1. Descriptive Statistics: Measures of central tendency and measures of dispersion for discrete data.3.2. Statistical Inference: Sampling techniques, sampling distributions, and confidence intervals for discrete data.3.3. Hypothesis Testing: Formulating and testing hypotheses, p-values, and type I and type II errors for discrete data.3.4. Contingency Tables: Analysis of categorical data using chi-square tests, measures of association, and independence testing.3.5. Regression Analysis: Simple linear regression, interpretation of results, and model diagnostics. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Written exam 20 points (0-20) 25% Objectives Check, evaluate if the students are capable of formalisation, and computation of counting problems. Furthermore, algebraic methods are expected to be known by then. Prepare for the second part probabilities Assessment rules One A4 handwritten cheat sheet. Possibly needed tables are provided. The exam is based on both questions and longer problems. Assessment criteria Correctness, and chosen path to a solution Task 2 Written exam 20 points (0-20) 50% Objectives Final exam counting and Probabilities Assessment rules One A4 handwritten cheat sheet. Possibly needed tables are provided. The exam is based on both questions and longer problems. Assessment criteria Correctness, and chosen path to a solution Task 3 Other, please specify: Project 20 points (0-20) 25% Objectives Evaluate if students are capable of applying data analysis techniques on real-world datasets and present the outcomes. Assessment rules Individual projects. AI Generated submissions are not allowed. Assessment criteria Project submission 70% and presenting the project on site 30%. Task 4 Oral exam RETAKE 20 points (0-20) 100% Objectives Retake students will undergo evaluation to determine their proficiency in formalization and computation of counting problems, as well as their grasp of fundamental concepts in data analysis. Assessment rules Oral exam Assessment criteria 75% CPE 1 and 25% CPE 2 -
Note
Syllabus ☒Yes ☐No Remarks: Available on the Moodle page. Literature list ☒Yes ☐No Remarks: Based on the lecture notes from MIT, see https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2005/pages/lecture-notes/ Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3329 Other, please specify: All the lecture slides and old videos are shared in Moodle page.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-41
- Module(s): Information Management 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Information Management is primarily concerned with the capture, digitization, representation, organization, transformation, and presentation of information; algorithms for efficient and effective access and updating of stored information; data modelling and abstraction; and physical file storage techniques. The student needs to be able to develop conceptual and physical data models, determine which IM methods and techniques are appropriate for a given problem, and be able to select and implement an appropriate IM solution that addresses relevant design concerns including scalability, accessibility, and usability.
-
Course learning outcomes
At the end of the course, students will be able to:-design data models in different representations (object-oriented, hierarchical, network-based, relational)-avoid redundancies and inconsistencies in the resulting models.-use different query languages to create and query large databases.-solve and implement individual information-management use-cases. -
Description
1. Information Management (IM) 1.1. Information Management Concepts 1.1.1. Information systems as socio-technical systems 1.1.2. Basic information storage and retrieval (IS&R) concepts. 1.1.3. Information capture and representation 1.1.4. Supporting human needs: searching, retrieving, linking, browsing, navigating1.1.5. Information management applications 1.1.6. Declarative and navigational queries, use of links 1.1.7. Content analysis and indexing 1.1.8. Quality issues: reliability, scalability, efficiency, and effectiveness 1.2. Relational Databases 1.2.1. Mapping conceptual schema to a relational schema 1.2.2. Keys and foreign-keys, referential integrity 1.2.3. Relational algebra and relational calculus 1.2.4. Relational database design 1.2.5. Functional dependencies 1.2.6. Decomposition of a schema; lossless-join and dependency-preservation properties of a decomposition. 1.2.7. Candidate keys, super keys, and closure of a set of attributes 1.2.8. Normal forms (2NF, 3NF BCNF) 1.2.9. Multi-valued dependencies (4NF) 1.2.10. Join dependencies (PJNF, 5NF) 1.2.11. Representation theory 1.3. Query Languages 1.3.1. Overview of database languages 1.3.2. SQL (data definition, query formulation, update sublanguage, constraints, integrity) 1.3.3. Select-project-join queries. 1.3.4. Aggregations and group-by 1.3.5. Over-operator and sliding windows. 1.3.6. Subqueries in SQL 1.3.7. Constraints and triggers 1.3.8. Stored procedures and PL/SQL1.3.9. QBE and 4th-generation environments 1.3.10. Different ways to invoke non-procedural queries in conventional languages. 1.3.11. Overview of other major query languages (e.g., XPATH, SPARQL) -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Other, please specify: Written or oral midterm exam 20 points (0-20) 50% Objectives Reproduction and application of the course contents Assessment rules Closed book written exam (whole class) or 30 minutes individual oral exam. Assessment criteria Exam results are based on the correctness of the provided answers. Task 2 Other, please specify: Written or oral final exam 20 points (0-20) 50% Objectives Reproduction and application of the course contents Assessment rules Closed book written exam (whole class) or 30 minutes individual oral exam. Assessment criteria Exam results are based on the correctness of the provided answers. Task 3 Active participation Presentation of exercise solutions 20 points (0-20) Up to 2 bonus points Objectives Solution of exercise problems Assessment rules A correct presentation (in class) of the solution to one problem of an exercise sheet yields one bonus point. Up to two bonus points can be achieved per student this way per semester. Bonus points are added on top of the points the student has achieved through the exams. At most 20 points can be achieved in altogether. Assessment criteria Correctness of the provided solutions. Task 4 Written exam Retake 20 points (0-20) 100% Objectives Reproduction and application of the course contents Assessment rules Closed book written exam (whole class) or 30 minutes individual oral exam. Assessment criteria Solution of exercise problems -
Note
Syllabus ☒Yes ☐No Remarks: Available on Moodle Literature list ☒Yes ☐No Remarks: Database Systems: The Complete Book (ISBN: 978-0131873254) Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3332 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-17
- Module(s): Programming Fundamentals 3
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Programming fundamentals 3 is a two parts course where you will learn functional programming and parallel programming. The first part focusses on the foundation of the functional language OCaml. We show that functional programs are often shorter and more elegant than their imperative counterparts. In the second part, we introduce concurrent and parallel programming. We discuss general synchronisation issues of concurrency models such as deadlock, livelock and starvation. We present the shared state and message-passing programming models aiming at solving these issues. Moreover, we connect both paradigms as the full class will be in the newest OCaml 5.0 language, which includes a new multicore extension.
-
Course learning outcomes
At the end of the course the student will:-Know how to program and reason about programs in a purely functional programming style. -Solve problems in Haskell in a concise, yet expressive, manner.-Decompose complex problems into smaller, manageable subproblems.-Think recursively, make use of higher-order functions, understand the benefits of type systems, and learn how some programming languages like Haskell avoid unnecessary computations via lazy evaluation.-Know common data structures (like stacks, queues, trees, self-balancing trees, and graphs) and how these can be implemented in a functional language with data immutability. -Know how to analyse the run-time complexity of operations on these data structures. -Understand advanced concepts and abstractions of functional programming such as functors, applicative functors, and monads.-Understand how to approach and solve classic computer science problems in Haskell with essential techniques such as recursion, permutation generation, brute-force and binary search. -
Description
1. Introduction to FP and Haskell 1.1. Programming languages paradigms 1.2. Basic Haskell syntax 1.3. Polymorphism and typeclasses 1.3.1. Types, type inference and polymorphism 1.3.2. Typeclasses 1.4. Recursion 1.4.1. Thinking recursively 1.4.2. Sorting algorithms 1.5. Functions 1.5.1. Pointfree style and infix functions 1.5.2. Composition 1.5.3. Lambda expressions 1.6. Higher order functions 1.6.1. Maps and filters 1.6.2. Folding 1.6.3. Currying and partial function application 1.7. Data types 1.8. Input/Output 1.9. Functional styles in other programming languages 2. Purely functional data structures 2.1. Data immutability 2.2. Trees 2.2.1. Binary search tree2.2.2. Self-balancing tree (AVL) 2.3. Lazy evaluation of infinite data structures 2.4. Graphs and common graph algorithms in FP3. Arithmetic problems 4. Advanced concepts in FP 4.1. Functors 4.2. Applicative functors 4.3. Monads 4.3.1. Maybe, Either 4.3.2. IO 4.3.3. State 5. Solving classic computer science problems, using Haskell -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Take-home assignment 20 points (0-20) 10% Objectives Develop basic algorithms that avoid assigning to mutable state using recursion. Assessment rules Homework assignments are required to be submitted individually through Moodle. Each student must complete the homework assignments on their own. Assessment criteria Successfully solves the stated problem with computational efficiency. Code demonstrates conciseness, clarity, and adherence to a functional programming style. Task 2 Take-home assignment 20 points (0-20) 10% Objectives Solve classic computer science problems with compositional reasoning and higher order functions. Assessment rules Homework assignments are required to be submitted individually through Moodle. Each student must complete the homework assignments on their own. Assessment criteria Successfully solves the stated problem with computational efficiency. Code demonstrates conciseness, clarity, and adherence to a functional programming style. Task 3 Take-home assignment 20 points (0-20) 10% Objectives Understand AVL trees and analyze the worst-case time complexity of each operation. Assessment rules Homework assignments are required to be submitted individually through Moodle. Each student must complete the homework assignments on their own. Assessment criteria Successfully solves the stated problem with computational efficiency. Code demonstrates conciseness, clarity, and adherence to a functional programming style. Additionally, provides analysis of the run-time complexity of operations. Task 4 Take-home assignment 20 points (0-20) 10% Objectives Understand and apply abstract concepts of FP, namely monads. Assessment rules Homework assignments are required to be submitted individually through Moodle. Each student must complete the homework assignments on their own. Assessment criteria Successfully solves the stated problem with computational efficiency. Code demonstrates conciseness, clarity, and adherence to a functional programming style, showcasing proficiency in advanced topics such as monads. Task 5 Written exam 20 points (0-20) 60% Objectives Evaluate the students' comprehension of the course's material. Assessment rules Students are permitted to bring a single “cheat sheet” consisting of an A4-sized paper, on which they can include any necessary notes. A minimum grade of 8/20 in the final written exam is required to pass the course. Assessment criteria Each question has a stipulated mark clearly indicated on the exam. Task 6 Written exam Retake 20 points (0-20) 100% Objectives Students having failed the course may re-sit the final exam at a next exam session. The objective is to reassess the students' comprehension of the course's material. Assessment rules Students are permitted to bring a single “cheat sheet” consisting of an A4-sized paper, on which they can include any necessary notes. For re-sits, the exam constitutes 100% of the final grade. Assessment criteria Each question has a stipulated mark clearly indicated on the exam. -
Note
Syllabus ☐Yes ☒No Remarks: Literature list ☒Yes ☐No Remarks: [1] Programming in Haskell, 2nd Edition, by Graham Hutton. September 2016, Cambridge University Press, ISBN-13 978-1316626221.[2] Learn You a Haskell for Great Good!, by Miran Lipovaca. April 2011, No Starch Press, ISBN-13 978-1593272838. Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3330 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-42
- Module(s): Security 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The first half of the class will expose students to different aspects of security in information systems (both on the technical and process aspects), and the different frameworks to help secure information systems. This course is not a hacking class, but a showcase of the different security considerations, as well as an introduction to modern encryption principles.The second half of the class will introduce students to basics of modern cryptography and its mathematical grounds, as well as to modern primitives used nowadays. Finally, a connection between cryptography and security will be made.
-
Course learning outcomes
Learning outcomesAt the course, the student will:•Understand basic principles of security and cryptography. •Understand how different parts of security are linked together. •Understand the mathematical grounds of cryptography. •Apply common security frameworks in their designated context. -
Description
1. Introduction to information security1.1. CIA principles1.2. Vulnerabilities, threats1.3. Gordon-Loeb model1.4. Attack vectors, general culture on security2. Access Control Lists2.1. Principle of Least privilege, confused deputy2.2. Bell Lapadula, Biba, Chinese walls models2.3. Linux ACL2.4. Shortcomings of perimetric defence, defence in depth3. Authentication and Passwords3.1. Authentication methods, MFA3.2. Entropy and min-entropy3.3. Considerations on password design and storage4. Secure Software4.1. Principles, ethics, and law4.2. Bug, vulnerability, exploit, malware, backdoor4.3. Malware, Social Engineering4.4. Program Security: Web security (XSS/SQL injections, sanitization, CSRF, session stealing), Software security (Buffer overflow, use after free, Heartbleed, mitigations)5. Introduction to cryptography (Caesar cipher, Kerckhoffs, Steganography, OTP, Modern Crypto, …)6. Symmetric cryptography6.1. Symmetric encryption 6.1.1. security notions6.1.2. bloc ciphers6.1.3. modes of operations6.1.4. stream ciphers6.2. Message Authentication Codes (MAC) 6.3. Cryptographic Hash functions7. Public key cryptography7.1. groups, operation in finite groups7.2. Symmetric vs public key crypto7.3. Security models7.4. Key exchange7.5. Encryption7.6. Digital signatures8. Cryptography in Security8.1. PKI, web of trust8.2. TLS, Signal protocol8.3. Side Channel Attacks8.4. IPSec. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Take-home assignment 20 points (0-20) 33% Objectives Ability to implement notions viewed in security class Assessment rules Students will be given time to work on their own. Plagiarism, even between students, is not allowed. Assessment criteria Produced code and report will be examined Task 2 Written exam 20 points (0-20) 33% Objectives Assess that the students master the content of the course. Assessment rules Partial exam 1, one A4 manually written cheat sheet allowed Assessment criteria Correctness of the answers. Task 3 Written exam 20 points (0-20) 33% Objectives Assess that the students master the content of the course. Assessment rules Partial exam 2, one A4 manually written cheat sheet allowed. Assessment criteria Correctness of the answers Task 4 Written exam 20 points (0-20) 100% Objectives Assess that the students master the content of the course. Assessment rules Final exam, one A4 manually written cheat sheet allowed. Final grade is Max(Average(task1, task2, task3), task4) Assessment criteria Correctness of the answers Task 5 Written exam Retake 20 points (0-20) 100% Objectives Retake: Assess that the students master the content of the course. Assessment rules Retake exam, one A4 manually written cheat sheet allowed. The retake grade is 100% from this exam. Assessment criteria Correctness of the answers -
Note
Syllabus ☒Yes ☐No Remarks: On Moodle Literature list ☒Yes ☐No Remarks: This list is not mandatory, but useful for personal culture and further work.- Book: Introduction to Computer Security, by Matt Bishop ISBN: 0-321-24744-2 Chapters of interest: 1, 8, 11, 12, 14.- Blog: Schneier on Security https://www.schneier.com/- Book: Introduction to modern cryptography, by Jonathan Katz and Yehuda Lindell. – Book: Handbook of applied cryptography, Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3333 Other, please specify:
Course offer for Semestre 4
-
Details
- Number of ECTS: 10
- Course number: F1_BAINFOR-55
- Module(s): Bachelor Semester Project 4
- Language: EN, FR, DE
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
During this project the students will: discover research and development domains, produce concrete artefacts related to computer science knowledge areas covered in the BICS, collaborate with UL employees in a project context, learn new technologies related to computer science, learn new knowledge related to computer science, apply the scientific and technical knowledge learned during the BICS, apply the primary and secondary languages knowledge learned during the BICS.At the end of the first bachelor semester project it is expected that the student is autonomous in finding a subject and a tutor for his next bachelor semester project. MOBILITY: This course is NOT open for incoming students.
-
Description
1. Software Engineering Management1.1. Initiation and Scope Definition1.1.1. Determination and Negotiation of Requirements1.1.2. Feasibility Analysis1.1.3. Process for the Review and Revision of Requirements1.2. Review and Evaluation1.2.1. Determining Satisfaction of Requirements1.3. Software Project Planning1.3.1. Determine Deliverables1.3.2. Process Planning2. Social Issues and Professional Practice2.1. Professional Communication2.1.1. Communicating professionally with stakeholders2.1.2. Dynamics of oral, written, and electronic team and group communication (cross-reference HCI/Collaboration and Communication/group communication; SE/Project Management/team participation)2.1.3. Reading, understanding and summarizing technical material, including source code and documentation2.1.4. Writing effective technical documentation and materials2.2. Professional Ethics2.2.1. Community values and the laws by which we live2.2.2. Keeping up-to-date as a computing professional in terms of familiarity, tools, skills, legal and professional framework as well as the ability to self-assess and progress in the computing field2.2.3. The nature of professionalism including care, attention and discipline, fiduciary responsibility, and mentoring2.3. Group Dynamics and Psychology2.3.1. Dealing with Multicultural Environments2.3.2. Dealing with Problem Complexity2.3.3. Dealing with Uncertainty and Ambiguity2.3.4. Individual Cognition3. Computing Foundations3.1. Problem Solving Techniques3.1.1. Analyze the Problem3.1.2. Definition of Problem Solving4. Digital Technologies4.1. various4.1.1. Digital technologies will be learned or applied depending on the project subject5. Computer Sciences5.1. various5.1.1. Sciences will be learned or applied depending on the project subject -
Assessment
FIRST SESSION: The Bachelor Semester Projects (BSP) is evaluated using a combined control in the following way:IF the Phase 1 continuous evaluation status is FAILURETHEN the final grade is zeroELSE the final grade is computed from the deliverables.REDOING SESSION: First and redoing sessions are evaluated in the same wayAll details for evaluation are in the official bachelor semester project (BSP) reference document accessible from the Moodle Course page.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-51
- Module(s): Information Management 2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Information Management is primarily concerned with the capture, digitization, representation, organization, transformation, and presentation of information; algorithms for efficient and effective access and updating of stored information; data modeling and abstraction; and physical file storage techniques. The student needs to be able to develop conceptual and physical data models, determine which IM methods and techniques are appropriate for a given problem, and be able to select and implement an appropriate IM solution that addresses relevant design concerns including scalability, accessibility and usability.
-
Description
1. Information Management (IM)1.1. Data Modeling1.1.1. Data modeling principles1.1.2. Conceptual models (e.g., entity-relationship, UML diagrams)1.1.3. Spreadsheet models1.1.4. Relational data models1.1.5. Object-oriented models (cross-reference PL/Object-Oriented Programming)1.1.6. Semi-structured data model (DTDs and XML Schema)1.1.7. XQuery and XSLT1.2. Database Systems1.2.1. Approaches to and evolution of database systems1.2.2. Components of database systems1.2.3. Design of core DBMS functions (e.g., query mechanisms, transaction management, buffer management, access methods, recovery)1.2.4. Database architecture and data independence1.2.5. Use of a declarative query language1.2.6. Approaches for managing large volumes of data (e.g., noSQL database systems, use of MapReduce).1.2.7. Systems supporting semi-structured and/or streaming content1.3. Indexing1.3.1. Basic index structures1.3.2. Creating indexes with SQL1.3.3. Multi-dimensional and text indices1.3.4. Physical query operators and buffer management1.3.5. Query- and join-order-optimization1.3.6. Indexing the web (e.g., web crawling) -
Assessment
First session examinations:- intermediate exam / written or oral: 30%- final exam / written or oral: 60%- online assignments: 10%- up to 2 bonus grade points from exercise presentationsRedoing sessions examination:- exam / written or oral: 100%- up to 2 bonus grade points from exercise presentations if previously gained
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-54
- Module(s): Intelligent Systems 1
- Language:
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Artificial intelligence (AI) is the study of solutions for problems that are difficult or impractical to solve with traditional methods. It is used pervasively in support of everyday applications such as email, word-processing and search, as well as in the design and analysis of autonomous agents that perceive their environment and interact rationally with the environment. The solutions rely on a broad set of general and specialized knowledge representation schemes, problem solving mechanisms and learning techniques. They deal with sensing (e.g., speech recognition, natural language understanding, computer vision), problem-solving (e.g., search, planning), and acting (e.g., robotics) and the architectures needed to support them (e.g., agents, multi-agents). The study of Artificial Intelligence prepares the student to determine when an AI approach is appropriate for a given problem, identify the appropriate representation and reasoning mechanism, and implement and evaluate it.
-
Description
1. Intelligent Systems (IS)1.1. Fundamental Issues1.1.1. Overview of AI problems, examples of successful recent AI applications1.1.2. What is intelligent behavior? The Turing test, Rational versus non-rational reasoning1.1.3. Problem characteristics: Fully versus partially observable, Single versus multi-agent, Deterministic versus stochastic, Static versus dynamic, Discrete versus continuous1.1.4. Nature of agents: Autonomous versus semi-autonomous, Reflexive, goal-based, and utility-based, the importance of perception and environmental interactions1.1.5. Philosophical and ethical issues. [elective]1.2. Basic Search Strategies1.2.1. Problem spaces (states, goals and operators), problem solving by search1.2.2. Factored representation (factoring state into variables)1.2.3. Uninformed search (breadth-first, depth-first, depth-first with iterative deepening)1.2.4. Heuristics and informed search (hill-climbing, generic best-first, A*)1.2.5. Space and time efficiency of search1.2.6. Two-player games (introduction to minimax search)1.2.7. Constraint satisfaction (backtracking and local search methods1.3. Basic Machine Learning1.3.1. Definition and examples of broad variety of machine learning tasks, including classification1.3.2. Inductive learning1.3.3. Simple statistical-based learning, such as Naive Bayesian Classifier, decision trees1.3.4. The over-fitting problem1.3.5. Measuring classifier accuracy -
Assessment
First session:40% project work, 40% written exam, 20% participationRedoing rule: 100% written exam
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-26
- Module(s): Online Course (OL)
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The BiCS program offers in the list of optional courses the possibility to follow selected "Online Courses" (OL Courses). The list of possible online courses (accessible on the Moodle university education platform) can change each semester and is communicated to the students at semester start.
-
Description
1. Computer Science1.1. Data Science: Statistics and Machine Learning Specialization1.1.1. https://www.coursera.org/specializations/data-science-statistics-machine-learning1.2. Self-Driving Cars1.2.1. https://www.coursera.org/specializations/self-driving-cars2. Development2.1. Full Stack Web and Multiplatform Mobile App Development Specialization2.1.1. https://www.coursera.org/specializations/full-stack-react2.2. Google IT Automation with Python Professional Certificate2.2.1. https://www.coursera.org/professional-certificates/google-it-automation#courses3. Arts and Humanities3.1. Become a Journalist: Report the News! 3.1.1. https://www.coursera.org/specializations/become-a-journalist3.2. Electronic Music Production Specialization3.2.1. https://www.coursera.org/specializations/electronic-music-production3.3. Game Design: Art and Concepts Specialization3.3.1. https://www.coursera.org/specializations/game-design3.4. Graphic Design Specialization3.4.1. https://www.coursera.org/specializations/graphic-design3.5. Photography Basics and Beyond: From Smartphone to DSLR Specialization3.5.1. https://www.coursera.org/specializations/photography-basics4. Business4.1. Advanced Business Analytics Specialization4.1.1. https://www.coursera.org/specializations/data-analytics-business4.2. Effective Communication in the Globalised Workplace Specialization4.2.1. https://www.coursera.org/specializations/effective-communication4.3. Essentials of Corporate Finance4.3.1. https://www.coursera.org/specializations/learn-finance4.4. Foundations of Positive Psychology4.4.1. https://www.coursera.org/specializations/positivepsychology4.5. International Business Essentials Specialization4.5.1. https://www.coursera.org/specializations/mba4.6. Leading: Human Resource Management and Leadership4.6.1. https://www.coursera.org/specializations/hr-management-leadership4.7. Negotiation, Mediation and Conflict Resolution Specialization4.7.1. https://www.coursera.org/specializations/negotiation-mediation-conflict-resolution4.8. Solving Complex Problems Specialization4.8.1. https://www.coursera.org/specializations/solving-complex-problems4.9. Strategising: Management for Global Competitive Advantage Specialization4.9.1. https://www.coursera.org/specializations/strategic-management-competitive-advantage4.10. Understanding Modern Finance Specialization4.10.1. https://www.coursera.org/specializations/understanding-modern-finance4.11. Value Creation Through Innovation Specialization4.11.1. https://www.coursera.org/specializations/value-creation-innovation5. General IT Technology5.1. Excel Skills for Business Specialization5.1.1. https://www.coursera.org/specializations/excel6. Health6.1. Bioinformatics6.1.1. https://www.coursera.org/specializations/bioinformatics6.2. Systems Biology and Biotechnology Specialization6.2.1. https://www.coursera.org/specializations/systems-biology7. Personal Development7.1. Dynamic Public Speaking Specialization7.1.1. https://www.coursera.org/specializations/public-speaking8. Physical Science and Engineering8.1. CAD and Digital Manufacturing Specialization8.1.1. https://www.coursera.org/specializations/cad-design-digital-manufacturing9. Social Sciences9.1. Virtual Teacher9.1.1. https://www.coursera.org/specializations/virtual-teacher -
Assessment
First and redoing sessions:- Personal Technical Report: 50%- Video presentation of the Personal Technical Report: 40%- Work Time Report: 10%The electronic version of the Coursera Certificate(s) are mandatory to be included in the final submission documents.The workload is approximately distributed as follows:- 90 hours to proceed to ALL THE COURSES the specialization- 30 hours to prepare the requested deliverablesIt is highly advised to evaluate one's own capability to proceed to the execution of all the courses in 90 hours before registering to an online course.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-53
- Module(s): Programming Languages
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
A program is a written representation of a computation, in a formal language. An interpreter is a program whose input is a program P and some input data x; it executes P on x. It’s usually too expensive and not runtime-efficient to use interpreters for high-level languages, so we generally translate them into something more easily interpretable. A translator (compiler) is a program which takes as input a program P in some language L1 and outputs a program P' in another language L2 such that P and P' have the same semantics, ie compute the same results from the same input data.This course aims to make you understand programming language implementation in an as easy as possible way through concrete examples. It will guide you through all the main phases of the design and the implementation of an interpreter and of a compiler. To be able to design and implement interpreters and compilers will:- make you a better programmer in general, as you will better understand a language’s intricacies.- make you a better computer scientist, because programming technologies span so many areas of the discipline, including formal language theory, grammars, computability, semantics, virtual machines and all the advanced concepts in modern programming languages, to cite a few.- allow you to practice software engineering principles and tools seen in previous semesters, for interpreters and compilers are generally large and complex software. Due to the approach chosen in this course- an interleaved mix of lectures and exercice sessions, practical work is an essential part of the course and will be assessed- you will get very quickly into the business of actually implementing a programming language and running programs written in it.
-
Description
1. Programming Languages (PL)1.1. Program Representation1.1.1. Programs that take (other) programs as input such as interpreters, compilers, type-checkers, static code analyzers, documentation generators.1.1.2. Abstract syntax, grammars, semantics tree.1.1.3. Main data structures for execution or translation of programs.1.2. Program Execution1.2.1. Interpretation vs. compilation to native or intermediate code.1.2.2. Program execution pipeline: lexing, parsing, type-checking, analysis/optimization, computation/translation.1.2.3. Runtime representation of core language constructs.1.3. Program Translation1.3.1. Compilation schemes. Execution as native code or within a virtual machine.1.3.2. Scope and binding resolution. Sub-program calls and passing of parameter values.1.4. Program Analysis1.4.1. Static analysis and formal validation/verification. -
Assessment
continuous control in mandatory homework assignments / submission: 100%Redoing session: individual remote video oral examination: 100%
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-69
- Module(s): Software Foundations
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
1. Introduction to FP and Haskell1.1. Programming languages paradigms1.1.1. Programming languages paradigms1.2. Basic Haskell syntax1.2.1. Basic Haskell syntax1.3. Polymorphism and typeclasses1.3.1. Types, type inference and polymorphism1.3.2. Typeclasses1.4. Recursion1.4.1. Thinking recursively1.4.2. Sorting algorithms1.4.3. Mutual recursion1.5. Functions1.5.1. Pointfree style and infix functions1.5.2. Composition1.5.3. Lambda expressions1.6. Higher order functions1.6.1. Maps and filters1.6.2. Folding1.6.3. Currying and partial function application1.7. Data types1.7.1. Data types1.8. Input/Output1.8.1. Input/Output1.9. Transitioning from/to other programming languages1.9.1. Transitioning from/to other programming languages2. Purely functional data structures2.1. Data immutability2.1.1. Data immutability2.2. Stacks & queues2.2.1. FILO2.2.2. FIFO2.3. Trees2.3.1. Binary search2.3.2. Self-balancing2.3.3. Heap2.4. Lazy evaluation of infinite data structures2.4.1. Lazy evaluation of infinite data structures3. Arithmetic problems3.1. Primality test3.1.1. Sieve of Erastothenes (deterministic)3.1.2. Miller-Rabin test (randomized)3.2. Extended Euclidean algorithm3.2.1. Extended Euclidean algorithm3.3. RSA encryption3.3.1. RSA encryption4. Advanced concepts in FP4.1. Functors4.1.1. Functors4.2. Applicative functors4.2.1. Applicative functors4.3. Monads4.3.1. Maybe4.3.2. IO5. Solving classic computer science problems5.1. Solving classic computer science problems5.1.1. Solving classic computer science problems
-
Course learning outcomes
1. Introduction to FP and Haskell: Learn how to program and reason about programs in a purely functional programming style. Solve problems in Haskell in a concise, yet expressive, manner. Think recursively, make use of higher-order functions, understand the benefits of type systems and learn how some progamming languages like Haskell avoid unnecessary computations via lazy evaluation. 2. Purely functional data structures : Learn about common data structures and how these can be implemented in a functional language with data immutability. In particular, the goal is to understand and be able to implement stacks, queues, binary search trees, self-balancing trees and heaps. The student is also expected to learn how to analyse the run-time of operations on these data structures. 3. Arithmetic problems : Learn Haskell and mathematical reasoning in practice by implementing concrete arithmetic algorithms. Study deterministic and non-deterministic primality testing methods, and understand its significance to the field of cryptography. 4. Advanced concepts in FP: Grasp advanced concepts of functional programming such as functors, applicative functors and monads. Learn how to formulate software specifications in the form of properties that programs should satisfy, and be able to test these properties against a large number of randomly generated cases. 5. Solving classic computer science problems : Learn how to approach and solve classical computer science problems in Haskell with essential techniques such as recursion, permutation generation, brute-force and binary search. Examples of such problems include the eight queens problem, the knight's tour, sudoku solver and the change-making problem. -
Description
Different programming paradigms lead to different ways of solving problems and organizing code. Most programming languages have unique characteristics that encourage a certain programming style, whether it be imperative, object oriented, functional or logical. Software Foundations introduces functional programming in Haskell, a purely functional language where programs are constructed by applying and composing functions (with no side-effects) and immutable data structures, which results in more succinct solutions, less prone to errors and an easier to maintain codebase.Haskell encourages to think recursively, take advantage of higher-order functions, write type signatures and use lambda expressions. The programming language is closer in nature to protocol specifications, and therefore it is generally easier to translate specifications into code. Learning a functional programming language improves reasoning skills. This course will teach Haskell by combining an introductory and structured approach to the key concepts of functional programming languages with examples of notorious algorithms and functional data structures. Students will tackle classical programming challenges and learn how to analyze the computational complexity of different solutions. -
Assessment
Evaluation:- 5 homework assignments with programming problems (40%)- 1 final written exam (60%)A minimum grade of 8/20 in the final written exam is required to pass the course.Students having failed the course may re-sit the final exam at a next exam session, which will then count for 100% of the final grade. -
Note
Programming in Haskell, 2nd Edition, by Graham Hutton. September 2016, Cambridge University Press, ISBN-13 978-1316626221.Purely Functional Data Structures, by Chris Okasaki. September 1999, Cambridge University Press, ISBN-13 978-0521663502.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-52
- Module(s): Theoretical Computer Science 2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course covers basic techniques that have been devised for formal modelling and verification of computer systems. It starts with introducing models for concurrent systems and the explanation of the state-space explosion problem. This is followed by a study of linear-time properties and regular properties. Later, both linear-time and branching time temporal logics (LTL and CTL), and their model checking algorithms will be introduced. The course also covers techniques that deal with the state-space explosion problem, if possible.
-
Description
1. Theoretical Computer Science1.1. Introduction1.1.1. Introduction, motivation, overview1.2. Syntax and Semantics1.2.1. Concurrency and communication1.2.2. Labeled transition systems1.3. Transition systems1.3.1. States, Sets and predicates in First Order Logic1.3.2. Linear temporal logic (LTL) and computation tree logic (CTL)1.3.3. Linear-time properties and regular properties1.3.4. State generation (over-approximation)1.4. Model Checkers1.4.1. The state-space explosion problem1.4.2. LTL and CTL model checking algorithms1.4.3. Abstraction, equivalences, partial order reduction2. Software Engineering (SE)2.1. Formal Methods2.1.1. Model checking2.2. Software Reliability2.2.1. Software reliability models -
Assessment
First exam session:Class participation (20%), practical exercises (40%), and a written exam (40%)Retake exam:A written exam (100%)
Course offer for Semestre 5
-
Details
- Number of ECTS: 10
- Course number: F1_BAINFOR-30
- Module(s): Bachelor Semester Project 5
- Language: EN, FR, DE
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
During a standard BSP, students discover research and development domains, produce concrete artefacts related to computer science knowledge areas covered in the BICS, collaborate with UL employees in a project context, learn new technologies related to computer science, learn new knowledge related to computer science, apply the scientific and technical knowledge learned during the BICS, apply the primary and secondary languages knowledge learned during the BICS.The course content and learning objectives are consistent with the BiCS programme content that the student is following.
-
Course learning outcomes
At the end of the BSP the student should have acquired specific learning outcomes defined on an individual basis between the project academic tutor and him/herself. The generic learning outcomes should be aligned with those stated in the BSP-S1 course description and any other previous course followed by the student before starting the BSP according to the study programme curricula. -
Description
Specific course content is defined on an individual basis between the project academic tutor and the student for each project. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Other, please specify: Report submission. Pass/Fail Objectives Assess the quality and quantity of work done during the first 6 weeks. Assessment rules Time constrained submission of the project description and the activity report made using the official templates.A fail grade implies the failure to the course. Assessment criteria Specific to each project subject.Based on the individual content and learning outcomes targeted for the first Phase of the project, the tutor decides if the quantity and quality of work is sufficient to continue the project. Task 2 Other, please specify: Report and video submission. 20 points (0-20) 100% Objectives Assess the quality and quantity of work done during the semester. Assessment rules Time constrained submissions. Assessment criteria The detailed criteria are specific to each project subject and applied on the following weighted deliverables:scientific content of the main report (25%)technical content of the main report (25%)scientific content of the oral video presentation (15%)technical content of the oral video presentation (15%)Language writing of the scientific & technical report written in the primary language (5%)Language speaking of the video oral presentation in the primary language (5%)Language writing of the summary written in the secondary language (5%)Language speaking of the video oral presentation in the secondary language (5%)The deliverables might be subject to the use of mandatory templates.The detailed activity report is mandatory and must provide an accurate and correct description of the tasks made by the student during the project. Task 3 Other, please specify: Retake 20 points (0-20) 100% Objectives Assess to which extend the course learning outcomes have been acquired for a student having ALREADY FAILED ONCE TO THE COURSE USING THE assessment tasks 1 and 2. Assessment rules All the same deliverables as the previously failed course must be resubmitted under the given time constrained. -
Note
Syllabus ☒Yes ☐No Remarks: Accessible from the Moodle course page Literature list ☒Yes ☐No Remarks: Accessible from the Moodle course page Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3334 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-47
- Module(s): Computational Science
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
Numerous problems in engineering, physical and economical industries and application domains essentially boil down to minimising a single function: the objective function in optimization terminology. Minimisation is not only the basis of many simulation tools, but also the basis of many parameter identification approaches. Unfortunately, there is not one minimisation method that outperforms the others. In this module, the student will therefore become familiar with three numerical minimisation techniques, each with its own advantages and disadvantages. Furthermore, three ways to deal with constraints in minimisation problems will be considered, also each with its own advantages and disadvantages. The student will implement the minimisation techniques herself/himself in a programming language of her/his choice, hereby effectively implementing her/his own simulations. In this way, the student will truly be exposed to the methods’ advantages and disadvantages, and she/he will capture the relevant technical complexities of the methods. Thus, the aim of the module is to teach the student a variety of unconstrained and constrained minimisation approaches and understand their beneficial and disadvantageous differences.
-
Course learning outcomes
At the end of the course, the student will be able to:•Understand and be able to work with descent methods. •Understand and be able to work with Newton’s method in optimization. •Understand and be able to work with quasi-Newton methods in optimization. •Understand and be able to incorporate constraints in objective functions using substitution. •Understand and be able to incorporate constraints in objective functions using the penalty method. •Understand and be able to incorporate constraints using the method of Lagrange multipliers. -
Description
1. Descent methods: steepest descent method, line search using the Armijo rule, conjugate gradient method, compute multivariate derivatives, implement the methods.2. Newton’s method: Compute multivariate second-order derivatives, solve linear systems, implement the method.3. Quasi-Newton methods: line search using the Wolfe conditions, implement the BFGS method and the L-BFGS method.4. Implement constraints in previous unconstrained objective functions using substitution.5. Implement constraints in previous unconstrained objective functions using the penalty method.6. Implement constraints in previous unconstrained objective functions using the method of Lagrange multipliers. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Written exam 20 points (0-20) 20% Objectives Assess the student’s understanding of (1) descent methods and (2) Newton’s method. Assessment rules The lecture notes and even the internet may be used. However, any means of communication is forbidden. Assessment criteria The student must use its own implementations, made during the semester, to calculate some minimization problems. Open questions may also be posed, which require a textual response. Task 2 Written exam 20 points (0-20) 20% Objectives Assess the student’s understanding of (3) quasi-Newton methods. Assessment rules The lecture notes and even the internet may be used. However, any means of communication is forbidden. Assessment criteria The student must use its own implementations, made during the semester, to calculate some minimization problems. Open questions may also be posed, which require a textual response. Task 3 Written exam 20 points (0-20) 60% Objectives Assess the student’s understanding of (1) descent methods, (2) Newton’s method, (3) quasi-Newton methods, (4) constraint incorporation using substitution, (5) constraint incorporation using the penalty method, (6) constraint incorporation using the method of Lagrange multipliers. Assessment rules The lecture notes and even the internet may be used. However, any means of communication is forbidden. Assessment criteria The student must use its own implementations, made during the semester, to calculate some minimization problems. Open questions may also be posed, which require a textual response. Task 4 Written exam Retake 20 points (0-20) 100% Objectives Assess the student’s understanding of (1) descent methods, (2) Newton’s method, (3) quasi-Newton methods, (4) constraint incorporation using substitution, (5) constraint incorporation using the penalty method, (6) constraint incorporation using the method of Lagrange multipliers. Assessment rules The lecture notes and even the internet may be used. However, any means of communication is forbidden. In principle, again the resit exams consist of 2 midterm exams and one final exam – with the same weights for the final grade as for the standard exams. Assessment criteria The student must use its own implementations, made during the semester, to calculate some minimization problems. Open questions may also be posed, which require a textual response. -
Note
Syllabus ☒Yes ☐No Remarks: Available on the Moodle page. Literature list ☒Yes ☐No Remarks: Lecture notes are provided by the instructor. Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=4194 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-31
- Module(s): Human-Computer Interaction (HCI)
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
This course aims to provide students with a comprehensive understanding of the fundamental principles and concepts underlying Human-Computer Interaction. Through this course, students will learn to design user-friendly and innovative interactive systems by placing users at the centre of the design process. They will explore different user research methods and various interaction techniques, modalities, and aesthetics. The course also emphasizes the importance of accessibility and inclusive design, ensuring that interfaces cater to diverse user needs. Students will delve into evaluation methodologies, such as user testing, evaluation scales, and field deployment, equipping them with practical skills to assess and refine interface designs. Ethical considerations, privacy regulations, and value-sensitive design will also be explored, fostering responsible and empathetic design practices.
-
Course learning outcomes
At the end of the course students will be able to:•Understand the fundamental principles and theories of Human-Computer Interaction and its role in designing interactive systems.•Explain the importance of placing users at the centre of the design process and apply user-centred design methodologies.•Compare and contrast different user research methodologies and explain their applications in understanding user behaviour and needs.•Recognize the ethical and societal implications of HCI, including privacy, security, and the responsibility of designers in shaping technology's impact on individuals and society.•Identify accessibility challenges faced by people with disabilities and appropriate inclusive design approaches.•Evaluate interfaces through various user evaluation methods.•Conduct a user‐centred design process that is integrated into a project -
Description
Course content Computational systems not only enable users to solve problems, but also foster social connectedness and support a broad variety of human endeavors. Thus, these systems should interact with their users and solve problems in ways that respect individual dignity, social justice, and human values and creativity. Human‐computer interaction (HCI) addresses those issues from an interdisciplinary perspective that includes psychology, business strategy, and design principles. Each user is different and, from the perspective of HCI, the design of every system that interacts with people should anticipate and respect that diversity. This includes not only accessibility, but also cultural and societal norms, neural diversity, modality, and the responses the system elicits in its users. An effective computational system should evoke trust while it treats its users fairly, respects their privacy, provides security, and abides by ethical principles. These goals require design‐centric engineering that begins with intention and with the understanding that design is an iterative process, one that requires repeated evaluation of its usability and its impact on its users. Moreover, technology evokes user responses, not only by its output, but also by the modalities with which it senses and communicates. This knowledge area heightens the awareness of these issues and should influence every computer scientist.Following the CS living curriculum, this course includes the following Knowledge Units (KU):- KU1: Understanding the User: Individual goals and interactions with others- KU2: Accountability and responsibility in Design: ethics, privacy, and persuasive interfaces- KU3: Accessibility and Inclusive design- KU4: Evaluating the design, methods for evaluation with users- KU5: System Design- KU6: Trends in HCI research and practice -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Active participation 20 points (0-20) 20% Objectives Active participation to the course and the project. Assessment rules The presence at the course will be observed, as well as the fact of delivering on time the weekly formative assignments to the project mentor. Assessment criteria Weekly classroom presence, constructive in-class input and project assignments Task 2 Take-home assignment Report 20 points (0-20) 60% Objectives Delivering a group report on the UCD project, following the provided template. Assessment rules Group grade, including an individual component Assessment criteria See rubrics developed for the project Task 3 Presentation 20 points (0-20) 20% Objectives End of the semester presentation of the project Assessment rules Group presentation, including individual questions Assessment criteria See the Rubrics, section presentation Task 4 Take-home assignment Retake 20 points (0-20) 100% Objectives In the case the student has failed to pass the class, he/she will be given a written retake assignment. Assessment rules The retake assignment will be a part of the project deliverable, determined by the assessors as relevant to address the learning outcomes that the students failed to demonstrate in the initial assessment. Assessment criteria See rubrics developed for the project -
Note
Syllabus ☐Yes ☒No Remarks: Literature list ☒Yes ☐No Remarks: Reading material can be found here (the folder will be updated during the course s we share additional material): https://bit.ly/bicshci2324reading M ain textbook for the course (see reading material folder) : Lazar, J., Feng, J. and Hochheiser, H. (2017) Research methods in Human-Computer Interaction. Morgan Kaufman. Further recommended or mandatory reading will be provided after some sessions. When self-study reading /video material is required , students are expected to read /watch and write down 3 tips or worthwhile topics from this reading in the shared course notes . Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3917 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: BPINFOR-113
- Module(s): Introduction to Machine Learning
- 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
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Take-home assignment 20 points (0-20) 10% Objectives Derive, implement, train, and evaluate simple supervised and unsupervised learning algorithms. The students have to deliver the developed code and a written report in pdf format. Assessment rules Students work in group (3 students/group) during the course. Assessment criteria No minimum passing grade is required. Task 2 Take-home assignment 20 points (0-20) 10% Objectives Derive, implement, train, and evaluate simple reinforcement learning algorithms. The students have to deliver the developed code and a written report in pdf format. Assessment rules Students work in group (3 students/group) during the course. Assessment criteria No minimum passing grade is required. Task 3 Take-home assignment 20 points (0-20) 20% Objectives Derive, implement, train, and evaluate simple multi-layer perceptron models. The students have to deliver the developed code and a written report in pdf format. Assessment rules Students work in group (3 students/group) during the course. Assessment criteria No minimum passing grade is required. Task 4 Written exam 20 points (0-20) 60% Objectives The exam is a combination of multiple-choice questions and open questions. Assessment rules Open-book exam (i.e., course material allowed). Assessment criteria The minimum passing grade for the Written exam (Task 4) is 10/20. The minimum passing final grade for the course (computed as 0.1*Task 1 + 0.1*Task 2 + 0.2*Task 3 + 0.6*Task 4) is 10/20. Task 5 Other, please specify: Retake 20 points (0-20) 100% Objectives Students having failed the course will have to re-sit the final written exam at the next exam session (i.e., in the Summer semester exams period). The exam will count for the entirety of the final grade. Assessment rules Open-book exam (i.e., course material allowed). Assessment criteria The minimum passing grade is 10/20. -
Note
Syllabus ☒Yes ☐No Remarks: Available on Moodle. Literature list ☒Yes ☐No Remarks: Bishop, C.: Pattern Recognition and Machine Learning, 2006 Goodfellow, I., Bengio, Y. & Courville, A.: Deep Learning, 2016 Sutton, R., Barto, A.: Reinforcement Learning: An Introduction, second edition, 2018 Hastie, T, Tibshirani, R. & Friedman, J.: The Elements of Statistical Learning, 2009 Zhang, A., Smola, A.J., Lipton, Z., Li, M.: Dive into Deep Learning, 2023 Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3920 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-40
- Module(s): Natural Language Processing
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
This course focuses on the theoretical and practical foundations of Natural Language Processing (NLP), an interesting domain at the intersection of computer science and artificial intelligence. Covering language representation, syntax, semantics, and advanced techniques like deep learning and transformers, the course explores how NLP enables communication with chatbots and other artificial systems. By understanding language models and machine learning's role, students will gain insights into NLP's applications, including sentiment detection, chatbots, and text comprehension. The course aims to equip students with a comprehensive understanding of NLP's significance and motivate them to tackle complex language-related challenges in the field of computer science and AI.
-
Course learning outcomes
The learning outcomes of this course are summarized as follows:Comprehension of the theoretical foundations of Natural Language Processing (NLP).Familiarity with language representation techniques in NLP.Hands-on experience in solving real-world problems using NLP tools and libraries.Proficiency in using Python as the primary programming language for NLP tasks.Familiarity with frameworks like PyTorch and TensorFlow for NLP applications.Ability to work with Jupyter Notebooks, NLTK, and spaCy for essential "classical" NLP tasks.Ability to use some machine learning and deep learning algorithms to solve NLP applications. Application of NLP techniques to more advanced tasks, such as sentiment analysis, text summarization, and question answering systems.Exploration of natural language understanding, including ChatGPT prompting and engineering applications with Langchain. -
Description
– Week 1: Introduction to Natural Language Processing- Week 2: Text Preprocessing- Weeks 3-5: Text Classification- Week 6: Vector Semantics- Week 7: Language Modeling- Week 8: Text Representation- Week 9: Introduction to Neural Networks- Weeks 10-12: ChatGPT prompting- Weeks 13- 14: Projects Presentation and Exam preparation -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Written exam 20 points (0-20) 50% Objectives Main test for assessing proficiency of students. Assessment rules Students will get exercises that test their understanding of the course. Only open books and cheat sheets are permitted; no electronic devices are allowed. Assessment criteria The answers are graded based on correctness, completeness, and clarity. Task 2 Take-home assignment 20 points (0-20) 20% Objectives To familiarize the students with the material and NLP libraries and applications. Assessment rules Students will receive Jupyter notebooks with various NLP applications and will need to complete the required source code and execute the final notebook. Assessment criteria The answers are graded based on correctness, completeness, and clarity. Task 3 Other, please specify: Final Project 20 points (0-20) 30% Objectives Choose and implement an NLP application. Assessment rules Students need to choose the topic of their project, implement it, and present it. Assessment criteria The grade is based on the relevance and the oral presentation of the project. Task 4 Written exam Retake 20 points (0-20) 100% Objectives Test for assessing proficiency of students and help them pass the NLP course Assessment rules Students will get exercises that test their understanding of the course. Only open books and cheat sheets are permitted; no electronic devices are allowed. Assessment criteria The answers are graded based on correctness, completeness, and clarity. -
Note
Syllabus ☒Yes ☐No Remarks: Available on Moodle Literature list ☒Yes ☐No Remarks: Available on Moodle Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3921 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-36
- Module(s): Software Engineering 1
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Software engineering is the discipline concerned with the application of theory, knowledge, and practice to effectively and efficiently build reliable software systems that satisfy the requirements of customers and users. This discipline is applicable to small, medium, and large-scale systems. It encompasses all phases of the lifecycle of a software system, including requirements elicitation, analysis and specification; design; construction; verification and validation; deployment; and operation and maintenance. Whether small or large, following a traditional plan-driven development process, an agile approach, or some other method, software engineering is concerned with the best way to build good software systems. Software engineering uses engineering methods, processes, techniques, and measurements. It benefits from the use of tools for managing software development; analyzing and modeling software artifacts; assessing and controlling quality; and for ensuring a disciplined, controlled approach to software evolution and reuse. The software engineering toolbox has evolved over the years. For instance, the use of contracts, with requires and ensure clauses and class invariants, is one good practice that has become more common. Software development, which can involve an individual developer or a team or teams of developers, requires choosing the most appropriate tools, methods, and approaches for a given development environment. [CS 2013]
-
Course learning outcomes
At the end of the course, the student will be able to:•LO1/(MF) Apply consistent documentation and program style standards that contribute to the readability and maintainability of software. •LO2/(M) Describe the relative advantages and disadvantages among several major process models (e.g., waterfall, iterative, and agile).•LO3/(M) Describe the different practices that are key components of various process models.•LO4/(M) Differentiate among the phases of software development.•LO5/(M) Explain the concept of a software lifecycle and provide an example, illustrating its phases including the deliverables that are produced.•LO6/(M) Compare several common process models with respect to their value for development of classes of software systems taking into account issues such as requirement stability, size, and non-functional characteristics.•LO7/(M) Define software quality and describe the role of quality assurance activities in the software process.•LO8/(M) Describe the intent and fundamental similarities among process improvement approaches.•LO9/(M) Use project metrics to describe the current state of a project.•LO10/(M) Using a particular software process, describe the aspects of a project that need to be planned and monitored, (e.g., estimates of size and effort, a schedule, resource allocation, configuration control, change management, and project risk identification and management). •LO11/(MF) Track the progress of some stage in a project using appropriate project metrics. •LO12/(MF) List the key components of a use case or similar description of some behaviour that is required for a system.•LO13/(M) Describe how the requirements engineering process supports the elicitation and validation of behavioural requirements. •LO14/(MF) Interpret a given requirements model for a simple software system.•LO15/(M) Describe the fundamental challenges of and common techniques used for requirements elicitation. •LO16/(MF) List the key components of a data model (e.g., class diagrams or ER diagrams).•LO17/(MF) Identify both functional and non-functional requirements in a given requirements specification for a software system.•LO18/(MF) Conduct a review of a set of software requirements to determine the quality of the requirements with respect to the characteristics of good requirements. •LO19/(MF) Apply key elements and common methods for elicitation and analysis to produce a set of software requirements for a medium-sized software system.•LO20/(MF) Use a common, non-formal method to model and specify the requirements for a medium-size software system.•LO21/(MF) Translate into natural language a software requirements specification (e.g., a software component contract) written in a formal specification language. •LO22/(MF) Create a prototype of a software system to mitigate risk in requirements. •LO23/(MF) Understand and apply the Messir requirement engineering to a small size application development process.•LO24/(M) Understand and apply the Messir use-case model in the context of the development methodology.•LO25/(M) Understand and apply the Messir environment model in the context of the development methodology.•LO26/(MF) Understand and apply the Messir concept model in the context of the development methodology.•LO29/(F) Understand and apply the UML use-case diagram.•LO30/(F) Understand and apply the UML sequence diagram.•LO31/(MF) Understand and apply the UML class diagram.•LO32/(MF) Understand and apply the Messir operation model at definition level in the context of the development methodology.•LO33/(MF) Understand and apply the Messir operation model at specification level in the context of the development methodology.Remark: the letter M indicates that the learning outcome will be assessed at midterm exam, F at final exam assessment task, and MF at both). -
Description
• Program correctness: types of errors (syntax, logic, run-time), the concept of a specification, defensive programming (e.g., secure coding, exception handling), code reviews, testing fundamentals and test-case generation, the role and the use of contracts (including pre- and post-conditions), unit testing.• Simple refactoring. • Modern programming environments: Code search, Programming using library components and their APIs.• Documentation and program style. • Introduction to software process models (e.g., waterfall, incremental, agile); activities within software lifecycles. • Programming in the large vs. individual programming. • Evaluation of software process models. • Software quality concepts. • Process improvement. • Software process capability maturity models. • Software process measurements.• Software quality assurance and the role of measurements. • Release management. • Requirements analysis and design modelling tools.• Describing functional requirements using, for example, use cases or users’ stories. • Properties of requirements including consistency, validity, completeness, and feasibility. • Software requirements elicitation.• Describing system data using, for example, class diagrams or entity-relationship diagrams. • Non-functional requirements and their relationship to software quality (cross-reference IAS/Secure Software Engineering).• Evaluation and use of requirements specifications. • Requirements analysis modelling techniques.• Acceptability of certainty/uncertainty considerations regarding software/system behaviour.• Prototyping. • Basic concepts of formal requirements specification.• Requirements specification.• Requirements validation. • Requirements tracing. • System design principles: levels of abstraction (architectural design and detailed design).• Structural and behavioural models of software designs.• Relationships between requirements and designs: transformation of models, design of contracts, invariants. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Oral exam 20 points (0-20) 40% Objectives Assess to which extend the course learning outcomes have been acquired Assessment rules no document allowed – no electronic device allowed Assessment criteria FIVE questions will be asked to the student on a subset of the learning outcomes targeted by the assessment task (cf. learning outcomes). Each question is graded over 4 points. The student has 3 minutes to answer for each question. Task 2 Oral exam 20 points (0-20) 60% Objectives Assess to which extend the course learning outcomes have been acquired Assessment rules no document allowed Assessment criteria FIVE questions will be asked to the student on a subset of the learning outcomes targeted by the assessment task (cf. learning outcomes). Each question is graded over 4 points. The student has 3 minutes to answer for each question. Task 3 Written exam RETAKE 20 points (0-20) 100% Objectives Assess to which extend the course learning outcomes have been acquired for a student having ALREADY FAILED ONCE TO THE COURSE USING THE assessment tasks 1 and 2. Assessment rules no document allowed – no electronic device allowed Assessment criteria A set of written questions will be asked to the student on a subset of the learning outcomes. -
Note
Syllabus ☒Yes ☐No Remarks: Accessible from the Moodle course page Literature list ☒Yes ☐No Remarks: Accessible from the Moodle course page Moodle page ☒Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=3916 Other, please specify:
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-70
- Module(s): Web Development 2
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
The course covers advanced topics in back-end web development, ranging from database management, REST APIs, testing, documentation, performance assessment, deployment, monitoring, and software localization. After the course, students will be able to develop and manage essential back-end services for any kind of websites and web applications.
-
Course learning outcomes
At the end of the course the student will:•Understand the foundations of back-end development.•Identify the key components of web technologies.•Judge and support best practices in web development. -
Description
1. Getting started1.1. Back-end roles: Design, Development, Testing, Deployment, Maintenance1.2. Languages: Bash, JS, Python1.3. Setup: OS, browsers, editors2. JavaScript on the server side2.1. Async programming: Nodejs2.2. Dependency management: NPM2.3. Modules3. Tooling3.1. Command line interface: CLI fundamentals3.2. Build systems: NPM scripts, Grunt, Makefile3.3. Web servers: Nginx, Apache3.4. Queues: pub/sub, Redis3.5. Process management: PM24. Database management4.1. Relational: MySQL, normalization4.2. Non-relational: MongoDB5. REST APIs5.1. Design: Syntax, verbs, codes5.2. Security: Principles, best practices5.3. Documentation: Standards, examples5.4. Testing: Scenarios, examples, formats6. Software localization6.1. Fundamentals: i18n, L10n, workflow6.2. Exchange formats: XLIFF, TMX, JSON6.3. Implementations: Gettext7. Testing7.1. Concepts: Terminology, examples7.2. Black & White box testing7.3. Approaches: TDD, BDD7.4. Typology: Unit, integration, and functional tests7.5. Implementations: Jasmine, Puppeteer8. Performance8.1. Guidelines: Perception, bottlenecks8.2. Optimization: Caching, compression, minification8.3. Measurements: Core Web Vitals, PageSPeed8.4. Profiling & Benchmarking: Browser inspectors8.5. Debugging: Browser debuggers, mobile emulation9. Coding standards9.1. Linting: Code analysis, format, quality9.2. Style guides: eslint, pep89.3. Standardization bodies: ISO, IEEE, ANSI, BSI10. Documentation10.1. Categorization: User, technical, program10.2. Approaches: Tutorial, guides, FAQs10.3. Implementations: jsdoc, docstrings10.4. Literate programming11. Deployment11.1. Methodologies: WaterFall, Agile, DevOps11.2. Pipelines: Automation, CI/CD11.3. Environments: VMs, containers12. Security12.1. OWASP12.2. Common attacks: Examples12.3. Authentication & Authorization The course covers advanced topics in back-end web development, ranging from database management, version control, REST APIs, testing, documentation, performance assessment, deployment, monitoring, and software localization. After the course, students will be able to develop and manage back-end services for any kind of websites and web applications. -
Assessment
Assessment tasks Type of assessment Grading scheme Weight for final grade Task 1 Coding assignments 10 points (0-10) 50% Objectives Students will learn how to develop back-end applications using JavaScript, Bash, and Python. Assessment rules Every week, students must submit a simple programming exercise based on the contents taught in the course. Students must follow a series of specifications about each exercise, provided in Moodle. Students have up to 1 week to submit. Exercises must be submitted only via Moodle. No late submissions are allowed, unless “force majeure” causes, e.g., sickness, accident, etc. for which an authoritative certificate must be provided (e.g., a certificate signed by a medical doctor or a police representative). Assessment criteria There are 10 coding assignments in total, and each will be graded using a 0-10 point scale via an automated testing platform. Students can access such a platform at any time before each submission deadline. Students must get an average grade of at least 4.5 points (out of 10) in this part in order to qualify for the final exam. If a student scores less that 4.5 points in this part, the final grade in the course will be the minimum grade achieved in either the coding assignments or the final exam. Any form of cheating or plagiarism will be penalized with a grade of 0 in this part, which will make the student to fail the whole course. The grade in this part will be retained until the student passes the final exam unless the student decides to repeat the course in the next academic year. There is no retaking option for this part, which means that a student who fails this part must enroll again in the course in the next academic year. Task 2 Final exam 10 points (0-10) 50% Objectives Students will demonstrate that they have acquired the required competencies according to the theory covered in the course. Assessment rules Only students who got at least 4.5 points in the coding assignments should take the final exam, otherwise they are advised to de-enrol from the final exam to avoid missing an official attempt. Students can bring an A4 paper “cheat sheet” written on both sides. No other supporting material is allowed, i.e., no books, no mobile devices, no laptops, etc. Assessment criteria The exam is a paper-based quiz with 30 questions that must be solved in 1 hour. Each question comes with 4 possible answers, among which only one is the right one. A student must get at least 4.5 points (out of 10) in the final exam in order to pass the course. If a student scores less that 4.5 points in this part, the final grade in the course will be the minimum grade achieved in either the coding assignments or the final exam. Any form of cheating or plagiarism will be penalized with a grade of 0 in this part, which will make the student to fail the whole course. The grade in this part will not be retained for the next year. Failing students can retake the exam in the next examination period. Any student can improve their grade in the retaking exam, if desired. -
Note
Syllabus ⊠Yes ☐No Remarks: Available on Moodle Literature list ⊠Yes ☐No Remarks: Recommended books: M. Haverbeke. Eloquent JavaScript. No Starch Press, 3rd edition.D. Beazley, B. K. Jones. Python Cookbook. O'Reilly Media, 3rd edition.B. Griggs. Node cookbook. Packt, 4th edition.R. Martin. The Clean Coder. Pearson, 1st edition. Moodle page ⊠Yes ☐No Remarks: https://moodle.uni.lu/course/view.php?id=5696 Other, please specify: Class attendance is not required but highly encouraged.
Course offer for Semestre 6
-
Details
- Number of ECTS: 10
- Course number: F1_BAINFOR-50
- Module(s): Module A
- Language: FR
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
During this project the students will: discover research and development domains, produce concrete artefacts related to computer science knowledge areas covered in the BICS, collaborate with UL employees in a project context, learn new technologies related to computer science, learn new knowledge related to computer science, apply the scientific and technical knowledge learned during the BICS, apply the primary and secondary languages knowledge learned during the BICS.At the end of the first bachelor semester project it is expected that the student is autonomous in finding a subject and a tutor for his next bachelor semester project. MOBILITY: This course is NOT open for incoming students.
-
Description
1. Software Engineering Management1.1. Initiation and Scope Definition1.1.1. Determination and Negotiation of Requirements1.1.2. Feasibility Analysis1.1.3. Process for the Review and Revision of Requirements1.2. Review and Evaluation1.2.1. Determining Satisfaction of Requirements1.3. Software Project Planning1.3.1. Determine Deliverables1.3.2. Process Planning2. Social Issues and Professional Practice2.1. Professional Communication2.1.1. Communicating professionally with stakeholders2.1.2. Dynamics of oral, written, and electronic team and group communication (cross-reference HCI/Collaboration and Communication/group communication; SE/Project Management/team participation)2.1.3. Reading, understanding and summarizing technical material, including source code and documentation2.1.4. Writing effective technical documentation and materials2.2. Professional Ethics2.2.1. Community values and the laws by which we live2.2.2. Keeping up-to-date as a computing professional in terms of familiarity, tools, skills, legal and professional framework as well as the ability to self-assess and progress in the computing field2.2.3. The nature of professionalism including care, attention and discipline, fiduciary responsibility, and mentoring2.3. Group Dynamics and Psychology2.3.1. Dealing with Multicultural Environments2.3.2. Dealing with Problem Complexity2.3.3. Dealing with Uncertainty and Ambiguity2.3.4. Individual Cognition3. Computing Foundations3.1. Problem Solving Techniques3.1.1. Analyze the Problem3.1.2. Definition of Problem Solving4. Digital Technologies4.1. various4.1.1. Digital technologies will be learned or applied depending on the project subject5. Computer Sciences5.1. various5.1.1. Sciences will be learned or applied depending on the project subject -
Assessment
FIRST SESSION: The Bachelor Semester Projects (BSP) is evaluated using a combined control in the following way:IF the Phase 1 continuous evaluation status is FAILURETHEN the final grade is zeroELSE the final grade is computed from the deliverables.REDOING SESSION: First and redoing sessions are evaluated in the same wayAll details for evaluation are in the official bachelor semester project (BSP) reference document accessible from the Moodle Course page.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-44
- Module(s): Module B
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
Software engineering is the discipline concerned with the application of theory, knowledge, and practice to effectively and efficiently build reliable software systems that satisfy the requirements of customers and users. The purpose of this course is two address the fundamentals and practicals of two key areas of software engineering:Part 1. Testing and Validation Testing is the predominant technique used by the software industry to make software reliable, making software testing a challenging and exiting research field. The goal of testing and validation is to assess the consistency/conformity of a product with respect to its specification. These activities are thus crucial and costly activities for software companies, and eventually aim at providing a controlled level of trust in the final product, before it is delivered to the client (and then during maintenance). Testing is related to all the design stages of the development process and must deal with many application contexts (embedded systems, mobile applications, information systems …) and various dimensions of complexity (programming-in-the-small, in-the-large and in-the-duration). Besides the fundamentals of software testing, the focus will be on practical techniques that can be applied in real-world modern software development cycles (agile, continous integration).Part 2. Big Data and AI-based software development The race for developing efficient decision-support services and prescriptive recommendation systems is challenging, but inescapable due to the emergence of new societal and technical paradigms, such as IoT, CPS, Smart systems, Industry 4.0, Fintech. The course will focus on processing very large amounts of data as well as on devising a machine-learning based system. The course will study how to develop software that manipulate a potentially huge amount of complex, heterogeneous data streams for analytics purpose, leveraging machine learning algorithms. The use cases that we will study will be taken from, or inspired by, real-world industrial software.
-
Description
1. Part 11.1. Software Testing and Validation1.1.1. Software Testing and Validation: fundamentals1.1.2. Unit Testing and Diagnosis1.1.3. Integration Testing1.1.4. Requirements and System Validation1.1.5. Transversal aspects to functional testing2. Part 22.1. Big Data and AI-based software development2.1.1. Introduction to Big Data Processing2.1.2. Batch Processing, Stream Processing2.1.3. Machine Learning Overview2.1.4. Hands-on data collection and feature engineering2.1.5. Hands-on model training, validation, and deployment2.1.6. Assuring the machine learning lifecycle2.1.7. Visualization and dashboarding -
Assessment
The evaluation will be done through a final exam (70%) and evaluation through practical exercises (30%).
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-45
- Module(s): Module B
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
This course allows students to obtain in-depth knowledge from a selection of areas in the field of information security. This year, the focus will be on the following topics:1) Public-key cryptography – Introdution to public-key cryptography: RSA encryption, signatures and DH key exchange (recap) – Security models in cryptography. How to encrypt and sign securely with RSA. OAEP and PSS – Public-key infrastructure. Certificates, SSL protocol2) Blockchain protocols – Basics of Bitcoin and of the crypto blockchain – Bitcoin / blockchain privacy and scalability – Multi-party computation3) General cryptographic protocols – Authenticated key-exchange (AKE) and password-based authenticated key-exchange (PAKE) – Zero-knowledge protocols – Authentication/identification protocols – Secure voting schemes – Quantum key establishment4) System security and trusted computation – Operating system security mechanisms and policies – Trusted execution and authenticated boot
-
Description
1. Information security1.1. Public-key cryptography1.1.1. Introdution to public-key cryptography: RSA encryption, signatures and DH key exchange (recap) 1.1.2. Security models in cryptography. How to encrypt and sign securely with RSA. OAEP and PSS1.1.3. Public-key infrastructure. Certificates, SSL protocol1.2. Blockchain protocols1.2.1. Basics of Bitcoin and of the crypto blockchain1.2.2. Bitcoin / blockchain privacy and scalability1.2.3. Multi-party computation1.3. General cryptographic protocols1.3.1. Authenticated key-exchange (AKE) and password-based authenticated key-exchange (PAKE)1.3.2. Zero-knowledge protocols1.3.3. Authentication/identification protocols1.3.4. Secure voting schemes1.3.5. Quantum key establishment1.4. System security and trusted computation1.4.1. Operating system security mechanisms and policies1.4.2. Trusted execution and authenticated boot -
Assessment
The evaluation will be based on 4 homeworks corresponding to the 4 parts of the course. Redoing sessions will also be based on homework.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-46
- Module(s): Module B
- Language: FR
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The course is multi-disciplinary and concerns selected aspects of Data Science as a preparatory step towards the application of intelligent methods for questions related to Digital History and Humanities. For this reason, the course will contain guest lectures as well as interdisciplinary exercises. As a learning outcome, each participant should understand the interdisciplinarity of data science and should understand how intelligent methods should be applied. Selected aspects of the data life-cycle will be concerned, for example Data Quality, Data Visualisation, Data mining, Data management, and Data retrieval. The course is organised as a lecture and is accompanied by a training sessions.
-
Description
1. Data Science for Humanities1.1. Introduction1.1.1. Course Overview; Contents; Aims and Goals1.2. Management of data1.2.1. Structured, semi-structured, unstructured data; Relational system; XML-based systems1.3. Retrieval of data1.3.1. XPATH, XQuery; SQL; Alternative ways of Retrieval1.4. Quality Aspects1.4.1. Data Preprocessing Techniques: Data Cleaning, Data Transformation, Data Discretistation, Data Sampling, and others1.4.2. Selected Statistics: Probability; Precision, Recall, F-score, BoxPLots, and others1.4.3. Privacy aspects for Data Publishing: k-anonymity; l-diversity; t-closeness1.5. Data + Text Mining1.5.1. Link Analysis; Collocations; n-grams; Text Classification, Clustering; Training 1.6. Visualisation Aspects1.6.1. Cognitive Aspects of Visualisation; Effectiveness and Expressiveness; Lie factor; selected techniques1.7. Research stories1.7.1. Researchers from C2DH, Computer Science Dept, or others talk about their Data Science projects.1.8. Project or Exercises1.8.1. Programming and Project Report -
Assessment
Summer semester: 50% (oral or written) exam + 50% Practical StudiesRedoing session:- Winter semester: 100% oral or written exam- Summer semester: the course has to be redone entirely (50% Practical studies + 50% Final (oral or written) examination)
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-48
- Module(s): Module B
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The course starts with a gentle introduction to Software Engineering emphasizing the current state of the profession concerning the constant presence of errors that cause malfunctions in a variety of software systems. It shows how formal methods can help to overcome this situation.After that, the B formal notation is introduced by means of several practical, real-world examples. This allows to introduce set theory, binary relations, predicate calculus and how state machines can be described by using these mathematical tools. It is also shown that state machines are a suitable way of describing a large class of software systems. In particular, it is explained the concept of state invariant and how it can be proved or disproved (informally).As a third step, a tool named Set Log is introduced, and it is emphasised the fact that B specifications can be easily translated into Set Log. Then, it is shown how the translated specification becomes both a formula and a program. As a program, it can be executed thus allowing engineers to have a prototype of the system. Besides, it is shown how Set Log can automatically and formally prove or disprove state invariants.Therefore, the course will show how the mere fact of writing a formal specification enables a chain of verification activities that help to increase the quality of the final product.
-
Description
1. Introduction to formal methods1.1. Introduction to formal methods1.1.1. Introduction to formal methods2. B formal notation2.1. B formal notation2.1.1. Set theory2.1.2. Binary relations2.1.3. Predicate calculus2.1.4. State machines3. Set Log3.1. Introduction3.1.1. Fundamentals of Set Log3.2. Specification3.2.1. From B specification to Set Log4. Verification4.1. State invariants4.1.1. Prove4.1.2. Disprove -
Assessment
Evaluation = mid term (30%) + final exam (70%)Redoing evaluation: exam (100%) -
Note
Litterature : communicated during lecture.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-49
- Module(s): Module B
- Language: FR
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The BiCS program offers in the list of optional courses the possibility to follow selected ""Online Courses"" (OL Courses). The list of possible online courses (accessible on the Moodle university education platform) can change each semester and is communicated to the students at semester start.
-
Description
1. Computer Science1.1. Data Science: Statistics and Machine Learning Specialization1.1.1. https://www.coursera.org/specializations/data-science-statistics-machine-learning1.2. Self-Driving Cars1.2.1. https://www.coursera.org/specializations/self-driving-cars2. Development2.1. Full Stack Web and Multiplatform Mobile App Development Specialization2.1.1. https://www.coursera.org/specializations/full-stack-react2.2. Google IT Automation with Python Professional Certificate2.2.1. https://www.coursera.org/professional-certificates/google-it-automation#courses3. Arts and Humanities3.1. Become a Journalist: Report the News! 3.1.1. https://www.coursera.org/specializations/become-a-journalist3.2. Electronic Music Production Specialization3.2.1. https://www.coursera.org/specializations/electronic-music-production3.3. Game Design: Art and Concepts Specialization3.3.1. https://www.coursera.org/specializations/game-design3.4. Graphic Design Specialization3.4.1. https://www.coursera.org/specializations/graphic-design3.5. Photography Basics and Beyond: From Smartphone to DSLR Specialization3.5.1. https://www.coursera.org/specializations/photography-basics4. Business4.1. Advanced Business Analytics Specialization4.1.1. https://www.coursera.org/specializations/data-analytics-business4.2. Effective Communication in the Globalised Workplace Specialization4.2.1. https://www.coursera.org/specializations/effective-communication4.3. Essentials of Corporate Finance4.3.1. https://www.coursera.org/specializations/learn-finance4.4. Foundations of Positive Psychology4.4.1. https://www.coursera.org/specializations/positivepsychology4.5. International Business Essentials Specialization4.5.1. https://www.coursera.org/specializations/mba4.6. Leading: Human Resource Management and Leadership4.6.1. https://www.coursera.org/specializations/hr-management-leadership4.7. Negotiation, Mediation and Conflict Resolution Specialization4.7.1. https://www.coursera.org/specializations/negotiation-mediation-conflict-resolution4.8. Solving Complex Problems Specialization4.8.1. https://www.coursera.org/specializations/solving-complex-problems4.9. Strategising: Management for Global Competitive Advantage Specialization4.9.1. https://www.coursera.org/specializations/strategic-management-competitive-advantage4.10. Understanding Modern Finance Specialization4.10.1. https://www.coursera.org/specializations/understanding-modern-finance4.11. Value Creation Through Innovation Specialization4.11.1. https://www.coursera.org/specializations/value-creation-innovation5. General IT Technology5.1. Excel Skills for Business Specialization5.1.1. https://www.coursera.org/specializations/excel6. Health6.1. Bioinformatics6.1.1. https://www.coursera.org/specializations/bioinformatics6.2. Systems Biology and Biotechnology Specialization6.2.1. https://www.coursera.org/specializations/systems-biology7. Personal Development7.1. Dynamic Public Speaking Specialization7.1.1. https://www.coursera.org/specializations/public-speaking8. Physical Science and Engineering8.1. CAD and Digital Manufacturing Specialization8.1.1. https://www.coursera.org/specializations/cad-design-digital-manufacturing9. Social Sciences9.1. Virtual Teacher9.1.1. https://www.coursera.org/specializations/virtual-teacher -
Assessment
First and redoing sessions:- Personal Technical Report: 50%- Video presentation of the Personal Technical Report: 40%- Work Time Report: 10%The electronic version of the Coursera Certificate(s) are mandatory to be included in the final submission documents.The workload is approximately distributed as follows:- 90 hours to proceed to ALL THE COURSES the specialization- 30 hours to prepare the requested deliverablesIt is highly advised to evaluate one's own capability to proceed to the execution of all the courses in 90 hours before registering to an online course.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-58
- Module(s): Module B
- Language: EN
- Mandatory: No
-
Lecturer
Coming soon -
Objectives
The UCD (user-centred design) course will revisit some of the concepts touched during the HCI course. In contrast to this previous course, students will practically apply user experience design and research methods to solving a user problem during the UCD course. The lectures will provide the theoretical basics required to use several user-centred design techniques that students will implement to understand the target audience, design, evaluate and improve design solutions. The students will work individually or in pairs on their project throughout the course. They can either choose a problem of their own interest or work on a given problem: Designing a digital solution to sensibilize users to resist dark patterns in user interfaces.
-
Description
1.1. Introduction, course organisation and structure1.1.1. Introduction of lecturer, overview of course structure, learning goals, deliverables, warm-up exercise, team assignment.2. Discover phase2.1. Interview2.1.1. Interview2.2. Survey2.2.1. Survey3. Define phase3.1. Personas, experience maps3.1.1. Personas, experience mapping3.2. HMW, story boarding3.2.1. How might we, brainstorming, story boarding4. Develop phase4.1. Brainstorming, user story mapping4.1.1. User story mapping, user story cards4.2. User story cards, prototyping4.2.1. Prototyping5. Deliver phase5.1. UI design5.1.1. Libraries, design guides, inspirational resources5.2. Evaluation5.2.1. User testing5.2.2. UX scales, heuristic evaluation5.3. Reporting5.3.1. Reporting, goals, roles and stakeholders6. Wrap-up6.1. Project Presentations6.1.1. Team presentation6.2. Feedback session6.2.1. Lessons learned and additional resources -
Assessment
1. IntroductionThroughout the course, students will work individually or collaboratively on their projects. Each group must show their week-to-week homework during the course to demonstrate how they applied the methods, what worked well or what did not and iteratively improve their deliverables.The final evaluation will be based on each group's presentation of the design process undertaken during the semester. If the delivered homework assignments do not meet the expected learning objective, the student will be asked to rework the deliverable.
-
Details
- Number of ECTS: 4
- Course number: F1_BAINFOR-68
- Module(s): Module B
- Language: EN
- Mandatory: Yes
-
Lecturer
Coming soon -
Objectives
While pattern matching is an important dimension of intelligent behaviour, the heart of human intelligence are correct reasoning and expressive communication. These are prerequisites for understanding, explanation, and justifiable rational action. Knowledge representation is the area concerned with the formal modeling of this second dimension by advanced symbolic/logical techniques. To reach the ambitious goals of Artificial Intelligence in the coming decades, both dimensions, machine learning and reasoning will be essential. The present course will give a broad survey of relevant subareas and techniques in Knowledge Representation, starting with a refresh in Logic.
-
Description
1. Intelligent Systems II (IS2)1.1. Logical foundations1.1.1. Propositional logic1.1.2. First-order logic1.1.3. Modal logic1.2. Modeling agents1.2.1. Belief and preference states1.2.2. Belief dynamics1.2.3. Action logics1.2.4. Multi-agent systems1.3. Nonmonotonic reasoning1.3.1. Classical approaches1.3.2. Valuation-based approaches1.3.3. Formal Argumentation1.4. Probabilistic reasoning1.4.1. Probabilistic logics1.4.2. Inductive probabilistic inference1.4.3. Causal reasoning1.5. Practical knowledge representation1.5.1. Practical knowledge representation -
Assessment
Final Examination (written): 70%Continuous evaluation (participation/homework/in-class exercises/presentations): 30%Redoing:- The grades of the continuous evaluation are conserved (30%) – The final exam will be rewritten (70%). For a second redo it may become oral.