[Arch Classroom](https://bbs.archlinux.org/viewtopic.php?id=143671) is a project to host classes for people to learn new skills and knowledge on various technical topics. The classes are taught by volunteers from the Arch Linux community. Classes are held on IRC and anyone is welcome to attend regardless of their level of expertise.

## Contents

*   [1 Classes](#Classes)
    *   [1.1 Upcoming classes](#Upcoming_classes)
    *   [1.2 Previous classes](#Previous_classes)
    *   [1.3 Requested classes](#Requested_classes)
*   [2 Teaching](#Teaching)
    *   [2.1 Create content](#Create_content)
    *   [2.2 Scheduling](#Scheduling)
    *   [2.3 Announcing the class](#Announcing_the_class)
*   [3 See also](#See_also)

## Classes

Classes are held in the IRC channel **#archlinux-classroom** on the [Freenode](http://www.freenode.net/) network.

### Upcoming classes

Classes are announced on the mailing list arch-general, the forums, and other broadcasting places like twitter. The following table lists classes being developed and classes announced. The stages for class development are drafting, scheduling, and canceled. Once a class has been announced, the date and time are given.

| **Stage / Date** | **Class Title** | **Instructor(s)** | **Announcements and Notes** |
| 2018-06-27 07:00 UTC | *Python for Beginners* | pulec | [https://github.com/archclassroom/python-beginners](https://github.com/archclassroom/python-beginners) |
| drafting | *C Programming* | HalosGhost | [https://ptpb.pw/r/~alcclass](https://ptpb.pw/r/~alcclass) |

### Previous classes

Classes that have already happened. (Maybe students and teachers could write up some info on the experience, similar to the arch con pages.)

| **Date** | **Class Title** | **Instructor(s)** | **Logs** |
| 2017-06-04 | *The Beginner's Guide to Arch Linux Package Management* | Eschwartz | [17:00 UTC](https://archwomen.org/media/project_classroom/classlogs/2017-06-04-the_beginners_guide_to_arch_linux_package_management.txt) |
| 2016-12-11 | *Getting started with Arch Linux packaging* | HalosGhost and meskarune | [19:00 UTC](https://archwomen.org/media/project_classroom/classlogs/2016-12-11-getting_started_with_arch_linux_packaging.txt) |
| 2016-07-16 | *Git for Gits* | polyzen and meskarune | [16:00 UTC](https://archwomen.org/media/project_classroom/classlogs/2016-07-16-git_for_gits.txt) |
| 2015-05-17 | *An Imperfect Introduction to Static Typing* | HalosGhost | [23:00 UTC](https://archwomen.org/media/project_classroom/classlogs/2015-05-17-an_imperfect_introduction_to_static_typing.txt) |
| 2014-09-05 | *Introduction to Scheme and Functional Programming* | nisstyre | [20:00 UTC](https://archwomen.org/media/project_classroom/classlogs/2014-09-05-introduction_to_scheme_and_functional_programming.txt) |
| 2014-05-31 | *A First Look at the Linux Kernel* | jy2wong | [16:00 UTC](https://archwomen.org/media/project_classroom/classlogs/2014-05-31-a_first_look_at_the_linux_kernel.txt) |
| 2014-04-19 | *PKGBUILD Class* | CalimeroTeknik | [9:30 UTC](https://archwomen.org/media/project_classroom/classlogs/2014-04-19-pkgbuilds_09%3a30-UTC.txt) and [16:00 UTC](https://archwomen.org/media/project_classroom/classlogs/2014-04-19-pkgbuilds_16%3a00-UTC.txt) |
| 2013-09-14 | *Beginners Guide to Package Maintaining* | gtmanfred and KaiSforza | [16:45 UTC](https://archwomen.org/media/project_classroom/classlogs/2013-09-14-beginner_pkgbuilds1.txt) |

### Requested classes

If you are interested in taking a class on a particular topic, list it below.

*   programming: bash scripting basics, AWK/GAWK, C++, Python, Ruby, Rust, Java 8, Haskell, makefiles or other build systems, debugging
*   VCS: Git basics, Mercurial, Darcs, Subversion, introduction VCS and general concepts
*   security: using GPG (basic concepts, etc.), how to configure SELinux/AppArmor/TOMOYO, managing SSH keys
*   shell: prompt creation, zsh or bash configuration, zsh or bash completions
*   Pacman - An Introduction
*   Using [ABS](/index.php/ABS "ABS") - For new users of Arch.
*   Finding an answer / creating a bug report - How and where to search when you have a problem.
*   Creating backups - Different methods of creating backups of your files.
*   History of Linux and F/LOSS
*   understanding makepkg, understanding [AUR helpers](/index.php/AUR_helpers "AUR helpers")

## Teaching

If you want to teach a class, the first thing you need is a topic. There is no limit other than it should be interesting to Arch Linux users and that it can be presented over IRC. See the list of requested classes on this page for ideas. You can also teach the same topic as one of the previous classes.

If you are interested in teaching, contact one of the [coordinators](https://archwomen.org/wiki/projects:classroom:admin#coordinators), or [User:Meskarune](/index.php/User:Meskarune "User:Meskarune") who will guide you in creating a class. The following sections outline the process. Also see the [administration page](https://archwomen.org/wiki/projects:classroom:start) on the Arch Women wiki.

### Create content

The class requires a lesson plan which at a minimum outlines the topics the class covers. It will serve as your notes and guide you through your class. Give it as much detail as you like. It will later be published to help students who missed the class as well as future instructors.

Start your lesson plan with a goal or objective in mind. What will students be expected to learn in this class? Decide what sort of students you are targeting — beginning Linux users, people familiar with particular software, and so on. (Many past classes targeted both beginners and advanced users.) Make a list with all the software requirements the class will need, and a list of prerequisites with the knowledge students should have before taking the class.

Create additional materials to aid the students. Diagrams and code listings can help students visualize the concepts taught. Essays can further delve into details not covered in a class and also help students who have difficulty following the tumultuous IRC format. You may also want to create a reading list of outside sources.

Plan for the class to run for 1-1.5 hours. Expect the students to interrupt with comments and questions. If the subject can not be reasonably covered in that time, the class can be broken into segments, e.g. part one today and part two in a week.

All materials and lesson plans are hosted in the [classroom-media](https://github.com/archwomen/classroom-media) git repository and made available on the website of Arch Women.

### Scheduling

Decide on a date and time (UTC) which best works for you. Since Arch Linux has a global reach, hold multiple sessions to accommodate the different timezones. Perhaps one session in the morning for Asia and Oceania and another in the evening for Europe, Africa, and the Americas.

Classes are scheduled a month beforehand to give time to make announcements.

### Announcing the class

Announcements are made on the arch-general mailing list, the Arch Linux forums and Arch Women's twitter a few weeks before the class is held.

The following information is required:

*   title and description of the class
*   prerequisites (if any)
*   date and time
*   biography of instructor(s)

## See also

*   [Ubuntu Classroom](https://wiki.ubuntu.com/Classroom)
*   [Arch Linux forum discussion](https://bbs.archlinux.org/viewtopic.php?id=143671)
*   [Administration page on Arch Women wiki](https://archwomen.org/wiki/projects:classroom:start)
*   [Teaching materials git repository](https://github.com/archwomen/classroom-media)
*   [Open Source Society University](https://github.com/open-source-society/computer-science#introduction-to-computer-science)