Course Syllabus

CS 160b, Unix/Linux Shell Scripting
Section 37206, Spring 2017, Course Syllabus

Course Description

Analyze, design, write, test, and debug shell scripts. Students learn basic shell scripting techniques and develop scripting skills needed for Unix/Linux System Administration courses. The bash shell is used.

Prerequisites/corequisites/advisories

ADVISE: CS 160A or demo of exit skills.

Student Learning Outcomes

After successful completion of this course, students will be able to:

  • Outcome 1: Use command substitution to capture program output.
  • Outcome 2: Use conditional statements to control the execution of shell scripts.
  • Outcome 3: Write shell scripts to perform repetitive tasks using while and for loops.
  • Outcome 4: Design and implement shell functions.
  • Outcome 5: Identify and process command-line arguments.

Class Meetings

Classes are conducted on-line and on your own time.   Assignments & quizzes will be due approximately weekly

Instructor Contact

Keith Freedman

Email: kfreedman@ccsf.edu

CCSF Phone: (415) 902-0586

Office Hours: Wed 5-6PM

The instructor will respond to all course email within 48 hours Monday-Friday, exclusive of school holidays.

Course Web Site

Students will use the Canvas Learning Management system for assignment instructions, submitting assignments, taking quizzes/exams, viewing classmates' work, sharing resources, and viewing grades.

Textbook

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.

Required Software

You will need the following software for this course. 

  • A browser capable of running Canvas learning system.
  • 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")

Required Materials

The book is NOT required.  It will come in very handy but I'll provide many on-line resources which should be sufficient to pick up the material.

Important Dates

NOTE: Some of these dates may not be accurate for late start courses (denoted with ?)

Day Class Begins:  March 20

Day Class Ends:  May 22nd

Last Day to Add without instructor's approval:? February 3

Last Day to Drop with refund:? January 30

Last Day to Add with instructor's approval:? February 3

Last Day to Drop without a 'W' symbol:? February 9

Last Day to Opt for Pass/No Pass:? February 16

Last Day to Drop with a 'W' symbol: April 13

Final Exam Date: Between May 16th and 22nd - Due 10:00 PM May 22nd, 2016

Dropping the Class

If you decide to discontinue this course, it is your responsibility to officially drop it to avoid getting no refund (after 10% of course length), a W symbol (after 20%), or a grade (after 60%). Also, for several consecutive, unexplained absences, the instructor may drop a student.

Pass‐NoPass (P/NP)

You may take this class P/NP. You must decide before the deadline, and add the option online with web4 or file the P/NP form with Admissions and Records. With a grade of C or better, you will get P.

You must file for the P/NP option by date. Once you decide to go for P/NP, you cannot change back to a letter grade. If you are taking this course as part of a certificate program, you can probably still take the class P/NP. Check with a counselor to be sure.

Instructor Announcements and Q&A Forum

The instructor will post announcements on the “Instructor Announcements” page in Canvas throughout the semester. Canvas notifies students according to their preferred Notification Preferences as soon as the instructor creates an Announcement. A “Q&A Forum” is also on Canvas to ask for assistance of your classmates or of instructor.

Attendance

Students who fail to attend the first class (face-to-face courses) or do not log-in to an online class after the second week will be dropped from the class. It is strongly advised that if you need to miss more than one class/homework deadline in a row that you contact me to avoid being dropped from the class.

Late Policy

All assignments are due at 6PM PST on the due date. A late submission will receive a 20% penalty. Submissions more than one week late are not accepted without prior arrangement. Late work will not be graded unless the student sends the instructor an email with URL for late work.

Methods of Evaluation

Course work will be weighted to determine your final course grade as follows:

7 Individual Assignments 50%
7 Quizzes 30%
1 Final Exam 20%

Exams

There will be online quizzes and a final exam. The material comes from the textbook, class lectures and supplemental materials. If any exam is missed, a zero will be recorded as the score. It is your responsibility to take the online exams by the due date.

Grading Policy

Visit the “Grades” in Canvas to keep track of your grades. I grade once a week and post grades and comments on the online Canvas gradebook.

Grades will be assigned as follows:

A

90%

90 points or more

B

80%

80 to 89 points

C

70%

70 to 79 points

D

60%

60 to 69 points

F or FW

<60%

SEE NOTES BELOW 

If taking Pass/No Pass you need at least 70% of the total class points and complete the

midterm exam and the final exam to pass the class.

An “F” grade indicates that a student attended, participated and completed the course but failed to master the course curriculum.

An “FW” grade indicates the student stopped attending a course after the “last day to withdraw” deadline and subsequently did not submit any work or participate in any exams. Please check with your counselor and financial aid advisor for possible implications of the FW grade on residency and financial aid status.

Standards of Conduct

Students who register in CCSF classes are required to abide by the CCSF Student Code of Conduct. Violation of the code is basis for referral to the Student Conduct Coordinator or dismissal from class or from the College. See the Office of Student Affairs and Wellness.

Collaborating on or copying of tests or homework in whole or in part will be considered an act of academic dishonesty and result in a grade of 0 for that test or assignment. I encourage students to share information and ideas, but not their work. See these links on Plagiarism:

Encourage Academic Integrity and Prevent Plagiarism

Citing Information Sources

Collaboration Policy

Modern programming is a collaborative effort. With the advent of Agile development, pair programming and scrum teams have become the norm in the workplace. Learning to work with other programmers is an important goal, but not all academic coursework can be collaborative: there are activities that you alone are responsible for. The lists below clarify what coursework is collaborative and what is not.

Activities you can do with others

Unless I indicate otherwise, I encourage collaboration on some elements of the coursework. When you do collaborate on a project, you must credit work done by all collaborators.

You can work with others on the following activities:

  • Collaborate with others on the exercises, homework and labs outside of the class forums providing that you credit all work down by others.
  • Discuss with others general concepts and materials in each course.
  • Present ideas and written work to classmates or others for comment or criticism.

Activities you have to do on your own

The following activities are not collaborative. You must:

  • Complete all exams with your own work and only your own work, and not submit the work of any other person.
  • Not let anyone else use your username and/or password to access course material.
  • Not engage in any activity that would dishonestly improve your results, or improve or hurt the results of others.
  • Not post answers to problems that are being used to assess student performance. For example, do not post your lab solutions on the class forums. The class forums are not a place for collaboration on coding assignments. You can post your solutions once the assignment or exam due date has passed.
  • Not discuss any currently open exams. If you have questions or comments about the exams, send me an email at my CCSF email address. You can discuss exam on the forums once their due date has passed.

Class Discussion

All discussion about the course should be posted to the class forums so that everyone can be in the discussion. For that reason, I want all class discussion to be on the forums. If you email me questions about the coursework, I will refer you to the class forums where you question can contribute to the course discussion. With the course content entirely on Insight, it will be available to all students.

There are no face-to-face meetings in this course; all class discussion is through the Insight class discussion forums. It’s important to see the discussion forums as a study resource. When you have questions about the reading or about a coding assignment, post your questions to the class discussion forums where your classmates can join in the discussion. I will monitor the forum discussions during the weeks and respond when necessary.

If you have a personal question regarding your grade or other matters, please send it to my regular CCSF email address.

Forum etiquette

  • Before posting a question an assignment, do the assigned reading. The answers to many of your questions can be found in the reading assignments.
  • Search Google and Stack-Overflow for answers to your questions before posting them.
  • Take the time to re-read your questions or answers for errors before actually posting them.
  • When you post a question, then figure out the answer yourself, don’t leave your question hanging — post your answer to your own question.
  • Be patient. Posting a question to the forum doesn’t mean that you will get an instantaneous answer. Give others a chance to get home from work, have dinner, and watch some Community on Hulu before they respond.
  • Be patient, again. Don’t repost your question if it’s not answered immediately. Posting a question twice wastes mindspace. Don’t do it.
  • When you answer other students’ questions, don’t give your solutions to the assignments. Instead, try to be a mentor. Give general guidance; give links to helpful resources. Show clarifying examples.
  • Don’t post your lab code on the forums until after the assignment has been closed for two days. No code sharing is allowed on the forums. The forums are not for collaboration, but you can collaborate outside of the forums.
  • Offensive language or other breaches of CCSF Computer Policy are never acceptable.

Special Needs

If you need classroom or testing accommodations because of a disability, or have emergency medical information to share with me, or need special arrangements in case the building needs to be evacuated, please make an appointment with me as soon as possible. My office hours are xxx. Students seeking disability related accommodations are encouraged to also register with Disabled Students Programs and Services located in Room 323 of the Rosenberg Library (415) 452-5481. Please see the DSPS website for more information and alternate locations.

List of assignments

Note to students: the assignments listed below do not include all course content. To view all course content, go to Modules.

 

Course Summary:

Date Details Due