CS 160B, Sec
831:
Unix/Linux Shell Scripting (2 Units)
CRN 76123, 8/17-10/14
Syllabus
Instructor:
Peter
Wood
Contact
Info: e-mail: pwood@ccsf.edu (usually the
best way to reach me), web: http://fog.ccsf.edu/~pwood
phone:
415.239.3229, office: Science
35B,
office hours: usually the hour after my classes in
Cloud 218,
by phone using Skype, or by appt.
Course
Description:
Analyze, create, write, and debug Unix shell scripts.
Students review basic scripting techniques and develop scripting skills
needed for Unix System Administration courses.
Prerequisite:
CS 160A, Introduction to Unix.
I assume that you
have
a basic knowledge of user level Unix/Linux. If you have not
passed
CS 160A (or CIS 167) at CCSF and want to challenge the prerequisite,
you may need to take a short exam that tests your knowledge of basic
Unix. Here is a more detailed list of CS 160A Exit
Skills.
Course
Objectives: In CS 160A students learn the history of Unix, the
directory
structure, commands & utilities to move around, create, edit, and
remove
files & directories, and to work with text files. All
this
is done from the Unix shell command line. In CS 160B you
learn
about Unix shell scripting. Unix shell scripts are simply
groups
of Unix commands collected together into a file that can be run as a
batch.
They are very useful whenever you need to repeat tasks.
Shell
scripting is a kind of programming. You learn all the shell
script commands you need to be able to write and document your own
scripts
to solve common unix administration problems. Equally
important is the ability to read the scripts of others. You
are given some scripts to read, analyze, and sometimes
fix.
The purpose of this class is to give you enough conceptual knowledge
and
practice with shell scripting to prepare you for your later
classes
in Unix System and Network Administration. In this one half
semester
course students write ten or more shell scripts of varying degrees
of difficulty.
Methodology:
The course
is an Online class. It has no required face-to-face class
meetings. Online
notes supplement the textbook. Most of your time is spent
reading, practicing exercises from the
book & notes, and writing scripts to solve problems. The book is
chosen
to
provide a structured, largely self-paced, opportunity for you to
systematically
study Unix Shell Scripting. As you practice your scripts, sometimes you
get stuck. At that point I (or your fellow students) will help
you.
By the end of the class, I expect that you will be able to read and
write
Unix scripts with more confidence.
Weekly
Effort: My assumption is that everyone who is motivated and
adequately
prepared can succeed in this class. (If you passed CS 160A then
you have adequate preparation.) We do not meet face-to-face
each week. It takes time to do the reading, practice, and
complete
the labs. The amount of time needed varies widely
between
students and topics. How much is this?
One
guideline is 1 - 3 hours/week outside of class for every hour in
class.
A 2 unit, 1/2 semester class meets 4 hours per week. So in order
to have a good chance for success, I
suggest you plan to spend 8 to
16 hours per week for this class.
Accounts:
Each student in the class will get two
computer accounts. One is
on
a web server running Insight (insight.ccsf.edu).
Insight is a Learning Management System built on the Moodle Open Source
software. Insight is where you find the class notes,
assignments, discussions, and grades. The other account is a Unix
command line account on the CCSF student server (hills.ccsf.edu).
This is
where
you can practice Unix. (You can also use your own Unix or Linux
computers,
but the assignments must also run under HP-UX
.) If you are adding the
class,
do so as soon as possible. You CCSF accounts are created a few
days after you finish the enrollment process. Your Insight
username & password are emailed to the email address that you have
in WebStars (where you register for classes).
Grading:
This
is mostly a skill-building class, so your grade is based mostly on
your completed assignments. There are weekly lab assignments. I
usually
post these on the class Web page, and you turn them in by placing them
in a special directory or through e-mail. There is also a
participation component. This comes from logging into WebCT each
week, reading the bulletin board, and making at least 5 posts or
replies during the class. In addition there are
several
short, online quizzes and a comprehensive final exam. The Quizzes and
Final Exam are
given online and are open book. (Please note that
this is the first time an in-person Final Exam is not required!)
|
Final
grades will be determined in the following manner:
|
|
Quizzes
|
20%
|
Labs
|
50%
|
| Class Participation |
10%
|
Final Exam
|
20%
|
|
Quiz
and Assignment Deadlines: The quizzes are open
book,
but they are available only for a limited amount of
time.
You get two chances to take the quizzes. Questions may change
between quiz attempts. The lowest quiz score
will be dropped. There are six lab assignments
that
include a total of about a dozen scripts and functions.
There
is extra credit available as part of some of the labs. Due Dates: Labs & Quizzes
are due by 11:55pm on the date listed in the Class Calendar. (Due
dates are usually on Mondays.) Check the Class Calendar
periodically for updates. Extending
Due Dates: Due Dates are
extended if we have a problem on the CCSF network that prevents
you from doing the work. This does NOT include problems
with
your home computer or ISP. I encourage you to identify
& get familiar with a backup computer in advance. This could
be at the CCSF Computer Labs, your local library, work, or a
friend. Grade timing:
Your Quiz scores are available immediately. Your Lab scores will
be available about one week after the due date. Late Labs &
Quizzes: Quizzes & Labs can be completed late, but
there is a 10% penalty per week up to a maximum of 3 weeks.
The window for completing Quizzes and Labs late ends if I post answers
online, but will always be at least one week.
Attendance:
You need to
login
at least once each week to the class website. If you do not
login
during
the first week or for any two weeks in a row after that, I may drop you
from the class. If you need to miss several weeks in a row due to an
emergency,
please let me know so that I can try to help you with your class work.
If you decide to drop the course, it is your responsibility to do so by
the deadlines. Please do not depend on me to drop you. Add/Drop Deadlines: Last Day
to Add: 8/26/09. Last
Day to Drop with a Refund: 8/20/09.
Last Day to Drop without a "W": 9/02/09.
Last Day to Drop with a "W": 9/30/09.
Plagarism:
Since this is largely an online class, it is difficult to determine who
has really done an assignment or taken an exam. Mostly I rely on your
honesty
and integrity, and that you are taking this class in order to improve
your
own skills. However, if you are tempted to copy someone else’s work,
remember
that when you copy someone’s assignment you also usually copy their
mistakes.
If I find plagarism, then everyone with the same submission will
receive
no credit for that assignment. If you really want to help a friend
with
an assignment, then instead of
giving
them the answers or letting them just copy your work, help them learn how to figure it out for themselves!
Communications:
We communicate mostly
through
a class website, e-mail and a class bulletin board. When you have a
question
about what the book is saying or about an assignment, post it to the
class
bulletin board. I respond to the bulletin board. That way everyone
can see the question, suggest answers, and see my answer. It is a
lot like asking a
question
in class. Also, if someone else has the answer, I hope they post it so
you can get an answer more quickly. When you have a
personal question regarding your grade or
other
matters, then please send it to my regular e-mail address. If you
prefer to discuss an issue face-to-face, then you may come to my
regular
office hours or make an appointment to meet with me. We can also
setup a phone or video office hour using Skype.
Please
remember the limitations of
online
communication. Take the time to re-read your questions or answers
before
actually posting them. It is very easy when you are tired or in a hurry
to say things that you do not mean. As usual, offensive
language or other breaches
of
CCSF Computer Policy are not acceptable. If you
like to talk a lot, please do not talk too often or too long before
giving
others a chance to respond. If you are a quieter person, please
take
a chance and ask or answer some questions.