Skip to content

Latest commit

 

History

History
152 lines (115 loc) · 5.88 KB

syllabus.md

File metadata and controls

152 lines (115 loc) · 5.88 KB

Apache Kafka Course Syllabus

References:

How to write one: https://citl.illinois.edu/citl-101/teaching-learning/resources/teaching-strategies/creating-a-syllabus

Example: https://home.uncg.edu/cmp/faculty/srtate/100.f17/syllabus.php

How to be inclusive: https://cse.umn.edu/cs/cs-idea/inclusive-syllabus

Course Web Page:

Description

Apache Kafka is an open source message streaming platform. Because Kafka is widely supported by many open source projects as an input and output channel for message data, it is often easy to deploy into an infrastructure with minimal investment. The multiple producer/consumer model allows multiple applications to read and write data, ensuring a loose coupling between applications while still ensuring high availability and high throughput.

In this course, students will learn how to deploy a multi-node Kafka cluster on Linux virtual machines. The course provides an overview of what Kafka is and how it can be used as the backbone for event stream processing within an organization. By the end of the course students will have a basic understanding of how to configure a Kafka cluster, publish and consume messages, and how to manage and upgrade a cluster over time.

Prerequisites

  • Linux administration
  • Access to a computer capable of running multiple virtual machines

Target Audience

This course is designed for Operations or Site Reliability Engineers who support Kafka environments or who wish to use Kafka as part of their Observability infrastructure. It may also be useful for developers who want to understand the architecture and basic functionality of Kafka.

Student Learning Outcomes

Upon completion of this course students will be able to:

  • Deploy a multi-node high availability Kafka cluster on virtual machines
  • Implement basic authentication and security
  • Perform routine maintenance such as patching and upgrades
  • Execute performance benchmarks to evaluate cluster throughput
  • Configure data replication between Kafka clusters
  • Monitor cluster health using Prometheus

Teaching Methods and Assignments

Course Structure

This course is broken into 12 weeks. Each week there are 2 to 3 lectures and 1 lab. A weekly summary will be provded prior to the start of each week. The summary will provide the following:

  • an overview of the upcoming lecture content
  • a list of prerequisite reference material (if any)
  • a list of homework and labs due at the end of the week

Lab Exercises

Each lab provides students with an opportunity to gain hands-on experience working with Apache Kafka. Labs usually build on one or more of the previous labs, so it is important to stay up-to-date with the assigned work. Students can work alone or in small groups of 2 or 3. If working in a group, each member must be able to demonstrate the contribution they made to the completion of the lab.

Each lab will be composed of the following:

  • pre-lab work which must be completed before coming to class
  • a short quiz to check the understanding of the pre-lab material
  • an overview of the learning objectives of the lab
  • a short quiz to demonstrate understanding of the lab concepts

Exercises are concrete demonstrations of the course material, and each lab session will start with a mini-lecture on relevant topics and an opportunity for students to ask questions about the pre-lab reading and exercises. Labs and quizes must be completed by the end of the week.

Homework and Quizes

Homework consists of independent student work and will be assigned at the beginning of each week. Assignments typically consist of research or analysis of the lecture material covered that week.

Final Project

A final project will be due at the end of the course. A short 1-page project proposal must be submitted 1 month prior to the end of the course. Students can work alone or in small groups of 2 or 3. If working in a group, each member must be able to demonstrate the contribution they made to the completion of the project. At the end of the course, students will present their project to the rest of the class. At the end of the presentations, students will have the opportunity to vote for their favorite project.

Participation

Students are expected to participate in course activities, including lectures, labs, and assignments. Students are encouraged to participate by asking questions and participating on-line and in lecture discussions. Students should prepare for each lecture by completing all previous lectures and labs, plus any prerequsite reference material listed in the class synopsys for that week.

Evaluation and Grading

Grading for the course is divided amoung the following categories:

  • Lab Exercises and Quizes (20%)
  • Homework and Quizes (20%)
  • Final Project (20%)
  • Mid-term Exam (15%)
  • Final Exam (20%)
  • Participation (5%)

While the objectives of this class deal with technical issues, students should at all times produce high quality, neat, and grammatically correct work. Spelling and grammar reflect substantially on your seriousness and professionalism, and sloppy or grammatically incorrect work will result in up to 10% being taken off the grade, even if all technical information is correct. Professional behavior is also expected in class, where you should exhibit the same behavior you would use if you were attending business meetings: you should be on time, engaged, and respectful of others.

The final weighted average will be assigned a letter grade according to the following table (exact borderline cases will be given the higher grade - for example, a student with a weighted average of 90 will earn an A-).

Percent Grade
97 - 100 A+
93 - 97 A
90 - 93 A-
87 - 90 B+
83 - 87 B
80 - 83 B-
77 - 80 C+
73 - 77 C
70 - 73 C-
67 - 70 D+
63 - 67 D
60 - 63 D-
Below 60 F