6 ECTS credits
150 h study time
Offer 1 with catalog number 4018841FNR for all students in the 1st semester at a (F) Master - specialised level.
This is an advanced course on concepts, techniques, and tools for cloud computing and big data processing. The goal is to introduce the foundational concepts and techniques, and motivate and illustrate their usage within frameworks and tools related to cloud computing and big data. Students are made aware of how these concepts are situated in larger, connected research domains such as distributed programming, reactive programming, metaprogramming, and so on.
Topics of this course include: (1) asynchronous programming with promises, generators, and async/await; (2) static and dynamic security for web applications; (3) data replication and consistency; (4) modern web proposals and their underpinnings (TypeScript, web workers, React, …); (5) properties of big data; (6) MapReduce and other Hadoop-related technologies; (7) distributed and resilient collection data structures in Spark; (8) cluster-computing with Spark: data locality, partitioning, and shuffling.
This course is not a basic introduction to every research domain related to cloud computing or big data processing. Familiarity with web-related and data processing technologies is a big plus. Basic knowledge of programming languages theory is assumed.
The computing landscape is changing drastically, with technologies like cloud computing and big data entering the mainstream. While most students after completion of a Bachelor degree are already acquainted with the basics of mainstream programming languages, innovative software projects and companies today require expertise in the topics introduced in this course.
Knowledge and Insight: Successful completion of the course results in students that have gained knowledge about various topics, concepts, and technologies that lie at the basis of cloud computing and big data processing. The goal of the course is to introduce students to programming techniques that are used in modern and innovative software projects that tackle challenging problems. On the other hand, it is our purpose to introduce students to the scientific challenges that are a consequence of the specific context of the course contents (e.g., distributed nature of software, possibility of failure, the scale of operations and data) .
The use of knowledge and insight: Students will gain practical experience in putting the concepts underlying cloud computing and big data processing into practice by means of the practical sessions in which they are required to apply tools and develop small programs. After successful completion of the course, the students are able to put the knowledge and insights they gained into practice in software projects that require this type of knowledge.
Judgement ability: Complementary to the application of the topics of this course, the student will be able to provide a critical analysis and comparison of existing languages, tools, techniques, and frameworks described in scientific literature or offered as commercial products.
Communication: students will be able to clearly and critically express themselves both orally and in written form about the topics that are covered by the course.
Learning Skills: The course acquaints the student with two important emerging computing technologies, namely cloud computing and big data. Within these technologies, we identify a number of important topics that are sufficiently representative to provide the student with the necessary skills to absorb, classify, and disseminate knowledge of other, related concepts and techniques. Students will be capable of performing a more in-depth treatment of each of the covered topics.
The final grade is composed based on the following categories:
Oral Exam determines 40% of the final mark.
PRAC Practical Assignment determines 60% of the final mark.
Within the Oral Exam category, the following assignments need to be completed:
Within the PRAC Practical Assignment category, the following assignments need to be completed:
The exam consists of a theoretical and a practical part. The theoretical part consists of an oral exam about the topics discussed. The practical part consists of programming projects that validate the student’s ability in applying the concepts introduced during the lectures. Absence for one of the constituents implies absence for the entire course.
This offer is part of the following study plans:
Master in Applied Sciences and Engineering: Computer Science: Profile Artificial Intelligence (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Profile Multimedia (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Profile Software Languages and Software Engineering (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Profile Web & Information Systems (only offered in Dutch)
Master of Applied Sciences and Engineering: Computer Science: Profile Artificial Intelligence
Master of Applied Sciences and Engineering: Computer Science: Profile Multimedia
Master of Applied Sciences and Engineering: Computer Science: Profile Software Languages and Software Engineering
Master of Applied Sciences and Engineering: Computer Science: Profile Web & Information Systems