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.

Semester
1st semester
Enrollment based on exam contract
Impossible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Taught in
English
Faculty
Faculty of Science and Bio-engineering Sciences
Department
Computer Science
Educational team
Jens NICOLAY (course titular)
Joeri DE KOSTER
Activities and contact hours
26 contact hours Lecture
26 contact hours Seminar, Exercises or Practicals
150 contact hours Independent or External Form of Study
Course Content

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.

Course material
Digital course material (Required) : Lecture slides, code, and any additional documents will be provided to the students through Pointcarre., http://prog.vub.ac.be/POOL
Practical course material (Recommended) : Standard textbooks, software tools, and other resources are available and will be referred to during the lectures and exercise sessions., Freely available from the dedicated website of the course
Additional info

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.

Learning Outcomes

Algemene competenties

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.

Grading

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:

  • Oral examination with a relative weight of 40 which comprises 40% of the final mark.

    Note: The oral exam consists of a theoretical examination about the topics discussed in the course, and discusses the contents and results of the implementation projects. This discussion will be supported by a presentation by the student, followed by a Q&A session.

Within the PRAC Practical Assignment category, the following assignments need to be completed:

  • Implementation projects with a relative weight of 60 which comprises 60% of the final mark.

    Note: Implementation projects testing the programming skills of the students comprising 60% of the final mark. Consists of the implementation of small projects in which the student demonstrates to having fully grasped the concepts and techniques that are introduced and discussed during the lectures and practical sessions. These implementations have to be complemented with a short report in which the student motivates the choices made in their implementation.

Additional info regarding evaluation

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.

 

Academic context

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