Attached is the latest work-up to improving the Linux intro course I have going here at DATC. It's in HTML, but I also have the original Star Office (.sdw) format as well. All criticism and comment more than welcome - Regd's, TJ Miller jrTitle:
Linux class syllabic breakdown:
Intro To GNU/Linux Course:
Focus - as a typical user, either at home or at work. Students will learn the basic principles of the Linux/UNIX OS, and to handle basic tasks within Linux. There is no need to get too extensive, since the student will be quite busy with just learning the basics. Much of the class will cover theory, and will introduce the student more to UNIX principles and practical usage than to any set of complex or comprehensive tasks.
Tasks and breakdowns -
Task - Learn Linux' History and Politics
While at first this wouldn't look as if it would apply to DATC's mission at all, learning the history of *ix will help answer a vast majority of student questions as to why a condition exists in Linux. Also, it will help the student to understand that what is learned here can be transferred to almost every flavor of UNIX with only a minimum of adaptation.
Politics is kind of sticky, since it invokes controversy. However, it is very important that the student be made aware of the prevailing political mood within the Linux community. I assure one and all that there is no, repeat no governmental politics involved. Instead, the student will be made aware of the politics of the Open Source movement in general, and the GNU GPL in particular. This is because:
The GNU GPL involves licensing and other legal obligations for both user and programmer, and -
Linux is a community as well as an operating system, therefore it would be vastly unfair to inject a student into said community without some sense of what to expect.
Task - Learn basic system software components
This lays out the basic bits of software such as the kernel, devices, modules, shells, etc. This isn't going to dive into any one component in detail, but will provide an overview of "what the pieces are, what each piece does, and how each piece interact with all the other pieces." "Pieces" discussed and taught will include the kernel, shells, device files (which will be broken down further), character files, swap files, modules, and the concept of how UNIX treats everything as a file.
Task - Learn basic filesystem concepts
First and foremost, there is no such thing as a C: drive - so 'windows-ingrained' students will get lost very easily if they don't know how the kernel handles files and how those files are organized. This section concentrates on the data storage aspect of Linux, and how that data is stored. Here, we will cover things like partitioning, mount-points, inodes, mounting/unmounting, /dev/null and /dev/zero, swap files/partitions, deletions and etc.
Task - Install system
Preferably they should use something graphical in the way of an install, with a basic understanding of what most common installers will ask for, and an understanding of the most common options presented (disk partitioning, peripherals initial setup, package options, date/time, X configuration, etc.)
Task - Learn to adjust peripherals
Fairly self-explanatory. The student will learn to adjust and configure his or her system with respect to sound, video resolution, mount and fstab settings, printer setup, etc.
Task - Learn about workspace
This brings the basic concept of where a user's personal data are kept and managed. Topics covered include familiarization with the home folder, permissions within a given folder, permissions on a given file, storing and moving files, etc.
Task - Learn basic command concepts
Here, we will begin to introduce the student to the concept of how to issue commands, While it seems fairly obvious initially, UNIX allows for more flexibility in how one can issue a command. Also, it is helpful if a student learns about how a command is handled, via STDIN, STDOUT and STDERR.
Task - Learn about shells
This section will familiarize a student with how to navigate various shells, and how a shell works. Students will also learn ways to customize their shells.
Task - learn about security and permissions
Linux is a multi-user system, often found on a network. Since a user isn't "alone" on a given system, it is helpful that a student learn how files and system resources are secured, and get a general idea of how permissions to resources are granted or held back. Also covered here is a general idea of where files that handle security can be found, and how they can be viewed (and in the case of a home user, manipulated.)
Task - learn how to get help and to find things
Linux, like it's parent operating system UNIX, can be a bit demanding in the knowledge department, to the point where even experienced programmers sometimes get lost. Here, two things will occur - first the student learns that there is no shame in keeping reference material handy and accessible, and second, the student will learn that asking for help on occasion will be a permanent part of his or her computer career (at least for the successful professionals it is.)
Aside from the concepts themselves, students will learn how to find items and help within his or her machine (through help, man, apropos, HTML), online (web, newsgroups, mailing lists), through reference materials (books, magazines and whitepapers) or through social interaction with peers (for example, users' groups.) While only the online and in-system portions will be covered with any detail, the others will be included in a general sense.
Task - Use an editor
Configuration files, texts, and a plethora of other tasks will require the use of an editor. Here, we will introduce and familiarize the student with the most universal and primary of editors, vi.
Task - Learn an overview of X-Windows
Task - Learn about windows managers
KDE, Gnome, Window Maker, FVWM.... lots of variety here. To make things simpler , we will concentrate on KDE and Gnome, the two largest of the windows managers. Configuration, customization, use, and basic troubleshooting are the main lessons to be taught here.
Task - Learn to install programs
Here, we will cover three types of installation routines:
Install via script (Star Office),
Install from rpm, and
Install from source code.
While we're at it, this would be a great time to introduce students to archival routines like tar, zip (CLI), and Gzip... not as a backup, but as a means to pack and extract files.
Task - learn about Linux on the Internet
To start with, some basic networking concepts are needed here. However, just enough is needed to teach students how to set up their modem/DSL/Cable setups, and how to connect to their ISP. More comprehensive networking concepts will be covered in the Sysadmin course.
Then, students will learn basic setup and usage of FTP, e-mail, and the Web. This isn't so much a section designed to teach the concepts behind the three,since students should already know them, but instead it is designed to teach students how the three functions are performed in Linux. Two of the three will involve X-Windows, but FTP will be taught from the command line, so that students can learn how to get critical files without a GUI.
Task - Perform a final test
A written exam will be given and assessed. Students must demonstrate knowledge and proficiency in each of the above Tasks as listed. However, an exception will be that there will be no questions involving philosophy or politics. Questions from the first task will strictly cover history and the legal structure of the GNU GPL. This is to prevent even the slightest scent of proselytization.