To manage homework project preparation, distribution,
submission and grading, we use the Git distributed ver-
sion control system, already used by Android and Linux
for source code version control. Each homework assignment
consists of a single Git repository that typically contains a
complete Linux kernel tree, template user-space projects as
necessary, any additional tools needed to complete the as-
signment, and a Makele used to prepare the student's em-
ulator or device for project development. Instructional sta
prepare each project repository and push it to a central Git
server. The repository is then replicated such that all stu-
dent groups are given access to their own private repository
on the Git server. The central Git server also facilitates dis-
tributed group collaboration even when one or more students
are remote or distance learning students.