6 ECTS credits
150 h study time

Offer 2 with catalog number 4023871FNW for working 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 Sciences and Bioengineering 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) blockchain; (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.

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 50% of the final mark.
PRAC Practical Assignment determines 50% of the final mark.

Within the Oral Exam category, the following assignments need to be completed:

  • Original essay with a relative weight of 50 which comprises 50% of the final mark.

    Note: For the first test (contributing for 75% to the total mark for the course), the student has to write an original essay in which a critical comparison is given of two object-oriented programming languages. The student will have to orally defend her/his essay.

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

  • Implementation project with a relative weight of 50 which comprises 50% of the final mark.

    Note: The second test (contributing for 25% to the total mark for the course) consists of the implementation of a small object-oriented system in Smalltalk in which the student demonstrates to having fully grasped the concepts of object-oriented programming. This implementation has to be complemented with a short report in which the student explains the use of OO concepts in the system.

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.

 
Allowed unsatisfactory mark
The supplementary Teaching and Examination Regulations of your faculty stipulate whether an allowed unsatisfactory mark for this programme unit is permitted.

Academic context

This offer is part of the following study plans:
Master of Applied Sciences and Engineering: Computer Science: Artificial Intelligence
Master of Applied Sciences and Engineering: Computer Science: Multimedia
Master of Applied Sciences and Engineering: Computer Science: Software Languages and Software Engineering
Master of Applied Sciences and Engineering: Computer Science: Data Management and Analytics
Master of Teaching in Science and Technology: computerwetenschappen (120 ECTS, Etterbeek) (only offered in Dutch)