Course Syllabus

Course Description

Analyze, design, write, test, and debug Unix shell scripts. Students learn basic shell scripting techniques and develop scripting skills needed for Unix/Linux System Administration courses. The bash shell is used. UC/CSU
ADVISORY: CS 160A or demonstration of CS 160A exit skills. 

This course Satisfies core requirement for CS Unix/Linux administration certificate.

Upon completion of this course, the student will be able to:

  1. Identify and describe the components of a well-written and documented shell script.
  2. Create sequences of Unix commands that use regular expressions and standard Unix text filters 10 filter text.
  3. Use conditional statements to control the execution of shell scripls.
  4. Write shell scripts to perform repetitive tasks using while and for loops.
  5. Analyze existing shell scripts.
  6. Apply redirection in a script to read from and write to files, to interact with the user, and to control standard output and standard error.
  7. Design and implement shell functions with limited side-effects for use in existing code and shell function libraries.
  8. Use arithmetic and command substitution and quoting rules to create complex commands and to assign data to variables.
  9. Analyze common problems, identify solutions, and create scripts to solve them.Describe the main features of PHP.

Lectures

This course will be taught completely online using CCSF's Insight system. The main page is: https://insight.ccsf.edu/. You will not be required to be online at any specific time(s). I will log into the course at least once a day, most probably later in the evening. I will not be logging in on Saturdays, Sundays or holidays. 

Communicating

The preferred method of communication should be the discussion "forums" which will be public to all students. For private matters you should email me via the Insight email. I will also be available to talk to directly if need be. Office hours are TBD.. 

Books 

Pro Bash Programming, Second Edition: Scripting the GNU/Linux ShellThere is no required textbook for the course. You can use textbook you wish. If you want a physical reference you can order, Pro Bash Programming (click on the icon to the left to order from Amazon. 

Computing

A computer/server with a bash shell (Assignments and examples assume you will use the CCSF provided server: hills.ccsf.edu but you may use any other server which allows you to use bash -- on Windows you can use the CygWIN bash shell, on a Mac use "terminal")

You may use another system or application to do your homework, however it is your responsibility to ensure that the assignments are correctly submitted to Insight. Also, if you use another system or application and you run into problems, my ability to help you will be much more limited. 

Homework

There will be seven homework assignments. Homework will be mainly programming assignments. Homework will be due on Sunday nights at 11:55pm. Late assignments will be accepted but will be penalized 10% per day (including Saturdays, Sundays and holidays), up to five days. After five days 50% credit will be given until a solution to the homework is provided after which no credit will be given. Solutions to the homework assignments will be provided one or two weeks after the due date. For make-ups please see Medical Exceptions below.

Quizzes

There will be seven online quizzes. The quizzes will be timed and will be also due on Sunday nights at 11:55pm. Once you begin taking the quiz you must complete it in one sitting. You will not be able to start the quiz then log off and restart it. You will have one hour to complete the quiz and you will be allowed only one attempt. The quizzes are open book and open notes. Late quizzes will not be accepted at all. See me for medical exceptions. 

Final Exam

The final exam will be a take home exam and will encompass all the semester’s material. You will be given one week to complete and submit the exam. You will not be allowed to discuss the exam with anyone besides me. You will not be able to use the internet, a PHP compiler or a PHP interpreter. For exceptions please see Medical Exceptions below.

Grading

The various course activities will contribute to your grade as follows.

Activity Percent of total grade
Homework 50%
Quizzes 30%
Final Exam 20%

Your letter grade will be determined by total course percentage, as shown in the following table:

Percentage Grade
>=90% A
80% - 89% B
70% - 79% C
60& - 69% D
<60% F

In other words, there is no curve; your grade will depend only on how well you do, not on how well everyone else does.

Incomplete grades will be granted only for dire medical or personal emergencies that cause you to miss the final exam, and only if your work up to that point is satisfactory.

Medical Exceptions 

If you have a medical reason for not being able to complete a homework assignment or exam then I will consider allowing you to make it up if you supply a written note, signed from a licensed medical professional stating the period of time the condition prevented you from completing the work. However, I want to make it clear that I am not asking you or the medical professional to disclose the name or nature of the medical condition. 

Cheating

Copying someone else’s work, allowing someone to copy your work, or presenting another person’s work as your own are just a few things that I consider cheating. There are other forms of cheating. If you are not sure what you’re doing is considered cheating then see me first and I will clarify it for you. Cheating will be penalized by a zero on the work in question and I will notify the administration. You are responsible for complying with all of the Colleges Rules and Regulations.  

Class Attendance

It is the student’s responsibility to drop or withdraw from this class. If you simply stop attending class, you may receive a failing grade for the course. If you do not submit any quizzes or homework for two consecutive weeks I may drop you from the class.

I reserve the right to change any of these policies as necessary during the semester and will inform you of any changes.