Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Oct 2013 17:20:49 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        freebsd-course@FreeBSD.org
Subject:   started to lecture in Moscow State University
Message-ID:  <20131003132049.GK89219@glebius.int.ru>

next in thread | raw e-mail | index | archive | help
  Hi, there!

  The list have been silent for almost a year. Nevertheless, I started
to lecture in MSU. Yesterday, just read an introduction lecture that
explains:

  - where does FreeBSD originate
  - where it is used now
  - how is it being developed

The goal of the lection was to advertise the upcoming course, and
just get students interested and curious.

I expected that above intro would consume 50-60 minutes, but
accidentially ended in 30 minutes. Later on my way home I understood
that I missed a lot I was initially planning to say. Tip for future:
make notes or lecture plan on a sheet of paper. Anyway, I hate long
introductions, so it might be everything went okay.

I committed my lame intro slides to SVN:

http://svnweb.freebsd.org/base/user/glebius/course/

After intro we spent another 30-45 minutes on introductory kernel
hacking. Most of students brought their laptops, so I provided
students with ssh access to a virtual machine, running under bhyve.

 - Reading module(9) we coded a module that just loads and unloads.
 - Then I suggested them to print something in kernel. We discussed:
   - Why adding printf() breaks compilation of module?
   - Why adding #include <stdio.h> would be an incorrect fix?
   - Noticed the difference between printf(3) and printf(9).
   - Finally printed stuff and found it in dmesg.
 - Then I suggested them to do smth bad in kernel mode. And we observed
   panic of virtual machine.

After that rest of the time was spent on answering questions. Why can't
we use libc? Syscalls? No FILE *? etc.


How do I see my future work. I plan to split every lecture into two
parts. The first part will be learning some new topic on kernel, with
slides and examples. And the second part would be coding some stuff
together with students, overcoming obstacles and failures together,
explaning why did this or that happened and how it works.


What I am lacking right now:

1) Experience on lecturing. Alas, can't borrow that from anyone :)
2) A good facility to provide students with virtual boxes. Bhyve rocks,
   but for kernel hacking we've got a serious limitation. When VM
   crashes, the console is available only in the host box and it
   requires root access. And I don't wont to give students root access
   on my personal box.
3) Poor TeX skills. I spent too much time to prepare slides in TeX.
   I do my best to not flee away from TeX to a WYSIWYG presentation
   tool. :)

-- 
Totus tuus, Glebius.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131003132049.GK89219>