===== FreeBSD Developer Summit: Teaching Working Group ===== Friday Aug 4 2017 10:00 to 12:00 in FW26 ==== Overview ==== This session is for people interested in teaching operating systems with %%FreeBSD%%. We'll discuss current efforts (i.e. teachbsd.org), curriculum work, sharing materials, creating workshops for conferences, etc. We'll have a number of professors and teachers attending, which also provides a chance to start collaborations between universities and people with shared interests. ===== Topics ===== ==== Audiences ==== * undergraduates * graduates * pre-university (young) ==== Objectives/motivations ==== * device driver * FPGA ==== TODO/ideas ==== * post-edit the videos of gnn's undergraduate teachbsd course * materials of "using %%FreeBSD%% as software developing platform" (?) * Make RPi0 W work. It's currently stuck at the U-Boot prompt, see [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220041|PR 220041]]. The RPI Zero is a cheap teaching platform for universities in countries who can't afford the current teaching platform (Beaglebone Black). * Debugging course to teach students the tools, methods, and approaches for students to help them work with big/complex code bases and solve problems * Sysadmin-centric course (systems management, automation) * %%EdX%%/Coursera online class (would reach a much wider audience) * %%FreeBSD%%-based summer school (in Cambridge?); We need to evaluate costs and the right marketing for it. * Evaluate LLVM as teaching tool as it is part of the base system (no need to build it first, which takes a long time). We also need debug build of packages (not only debug symbols, assertions enabled) ==== IDEs for talking to FreeBSD ==== IDEs are becoming more and more the main interface for programmers to interact with the OS or do development on. Teaching not only software, but also how the hardware is involved is important to know of students if they want to get into engineering. * http://fritzing.org/home/ ==== Hardware Targets ==== * [[https://www.raspberrypi.org/products/raspberry-pi-zero/|RPI Zero]], [[https://www.raspberrypi.org/products/raspberry-pi-zero-w/|RPI Zero W]] * [RPI/3%%](%%[[https://www.raspberrypi.org/products/raspberry-pi-3-model-b/]]) * hardware/software platforms * [%%TerASIC%% %%SoCkit%%%%](%%[[http://sockit.terasic.com]]) * [%%TerASIC%% DE10-Nano%%](%%[[http://de10-nano.terasic.com]]) * ''%%http://www.lemaker.org/product-guitar-specification.html%%'' ==== Materials that are available ==== * OS: * http://teachbsd.org * https://www.linuxcbt.com/ * https://cooltrainer.org/a-freebsd-desktop-howto/ * https://web.archive.org/web/20200530033425/https://www.freebsdfoundation.org/freebsd/how-to-guides/ * System & network administration w/ %%FreeBSD%%: * https://nasa.cs.nctu.edu.tw * Network Engineering & Security Analysis (2010) - [Unix Administration 2%%](%%[[http://www.studybsd.com/comp10020/]]) - [Unix Security%%](%%[[http://www.studybsd.com/comp10032/]]) - A modern version might look like this: === Week 1 === * VM Configuration and Setup * Installing %%FreeBSD%% * Network Configuration * Installing Applications === Week 2 === * Basic Configuration * User Management * Syslog and Logging * Observability (top, gstat, vmstat, etc) * Management (sysrc, sysctl) === Week 3 === * Controlling Processes * Service Management * Web Servers * Basic Configuration (SSH, etc) === Week 4 === * Package Management * Ports and Building Software * Upgrading * Building %%FreeBSD%% from Source === Week 5 === * Automation and Provisioning * Puppet, Ansible, and Salt === Week 6 === * Advanced Networking (VLANs, etc) * Firewalls * Routing * Dyamic Routing === Week 7 - Midterm === === Week 8 === * Disk Management * Partitioning * File Systems * Intro to ZFS === Week 9 === * ZFS === Week 10 === * NFS * Samba * NIS * LDAP === Week 11 === * DNS * Email === Week 12 === * Jails * VIMAGE * Security * Resource Limiting and Accounting (RCTL) === Week 13 === * Performance * Tracing and Debugging === Week 14 - Exam === ==== Who is Doing What? ==== * Robert Watson L41 con't * Rpi 0 completion * teaching@ mailing list to be created (gnn@) * Teaching VMs (creation) * Allan Jude Tutorial Videos for ZFS * George Neville-Neil: Updating all undergrad and pracitioner course material to PPT * Benedict Reuschling teaching an undergraduate [[https://web.archive.org/web/20180218114653/https://www.fbi.h-da.de/organisation/personen/reuschling-benedict/unix-for-software-developers.html|"Unix for developers"]] course in english, slides and materials available. ==== Notes ==== [[https://hackmd.io/KwFgpmBMCGCcCMBaA7AEwMYDZElZSiARsgAzSLSRgDMwAZgBzS3rRA==|HackMD Notes]]