Open Source Comes to Campus/Curriculum/Saturday: Difference between revisions

From OpenHatch wiki
Content added Content deleted
imported>Paulproteus
imported>Paulproteus
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Note well: This is just a draft; work in progress.'''
'''Note well: This is just a draft; work in progress.'''


== Linux and the command line ==
== The command line, packages, and dependencies ==


* [[/CLI]]
'''Pre-requisites''': Have some Linuxy distro and a terminal open, or Terminal on a Mac, or GitBash on Windows.


== Communicating as a user: finding the community and getting help ==
'''Learning objectives''': Have a general understanding of what paths mean (/usr /usr/bin /home etc.). Understand the purpose and basic use of package management tools. Understand how to "cd" and "ls" around in a terminal. Have familiarity with passing arguments to CLI programs (e.g., tar). Preferably, understand that a text terminal can display "graphical" (e.g. via ncurses) programs. Understand enough history of the command line to mknow it came "first." Have enough understanding of the command line to succeed at the rest of the day's activities. Become familiar with different ways of quitting command-line programs.


* [[/User communication|User communication]]
'''Group discussion'''

* Use a photo of teletypes connected to a serious UNIX server to explain what a "terminal" means.
* Ask people what their experiences with the command line have been so far. (If necessary, skip pieces of the discussion.)
* With a diagram of a directory hierarchy, discuss different paths like /home and /usr.
* Explain the concept of "PATH". Point out that "." is usually not in the path by default.
* Split the screen into half Nautilus, half Terminal, and show how they are different views of the same thing.
* Explain that programs like "apt-get" install software, and to demonstrate this, use apt-get on the presentation machine to install something. Demonstrate where the resulting files went with dpkg -L. (Try to include a surprise /usr/sbin program.) Try executing a binary that got installed, and point out its location. Use apt-get remove to remove it. Point out that "yum" and "port" are similar tools.

'''Individual work'''

* Have students go through the "tar" training mission, which shows them mkdir and moving files around and tar.
* It would be nice to have a training mission called "Six ways to quit" that showed you ^C, ^D, q (for less), :q (for vi-like), ^X (for pico-like), C-x C-c (for emacs-like)


'''Assessment elements'''

* The "tar" training mission includes elements of running programs.
* The "Six ways to quit" mission includes its own assessment.

'''Possible problems'''

* Some students might already be extremely familiar with this material. It'd be nice to have some "extra credit".


== Ethics and history of open source; and economics and licensing that support it ==
== Ethics and history of open source; and economics and licensing that support it ==


* [[/Ethics and history|Ethics and history]]
== Communication tools (IRC, mailing lists) ==


== Getting, modifying, and verifying open source software (getting code; local patching) ==
== Getting, modifying, and verifying open source software (getting code; local patching) ==

* [[/Getting modifying and verifying]]


== Project organization (bug trackers; git format-patch; github; people's roles in a project) ==
== Project organization (bug trackers; git format-patch; github; people's roles in a project) ==

* [[/Project organization]]

Latest revision as of 22:29, 23 February 2012

Note well: This is just a draft; work in progress.

The command line, packages, and dependencies

Communicating as a user: finding the community and getting help

Ethics and history of open source; and economics and licensing that support it

Getting, modifying, and verifying open source software (getting code; local patching)

Project organization (bug trackers; git format-patch; github; people's roles in a project)