8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
Course Syllabus
Jump to Today
CS 30B Linux Shell Programming
Foothill College, Computer Science Department
Course Description
Linux shell script programming using the Bourne Again shell programming language (bash) and Linux utilities
to create practical shell scripts. Topics covered include customizing the environment, running and writing
scripts, variables, loops, functions, text processing and debugging
General Informa on
Advisory CS30A or equivalent.
Prerequisite Good comprehension in reading and writing in English is strongly advised.
Good comprehension of simple algebra.
Rabun Kosar and you can email me at: kosarrabun AT [Link]
Instructor: Typically you will ask questions through the private or public messaging here in Canvas and
only use email if you have trouble logging in.
Module Reading – about five hours. This includes time at the Linux command
line typing in shell scripts and trying them out.
Lab Assignment – about two – four hours. The lab assignments include answering weekly
Weekly topic questions as well as a programming component. The time required to complete the lab
Time varies greatly with individuals, depending on the level of background experience with
Estimate: programming. Some students take one hour, some longer.
All sections of this class is conducted online. The amount of time you spend varies greatly with
the individual. Some students take 7 hours, some take 15 hours.
Laboratory: Lab Objectives:
The purpose of the labs is to provide students hands-on independent practice at problem solving
using the operating system principles covered in the lessons. The lab component is a critical part
of the learning tool for this course.
CS Support:
The Ion Georgiou STEM Success Center ([Link] : The “STEM
Center”, located in the 4200
building, room 4213, will have qualified CS tutors at various times each day.
There is also a dedicated Computer Science lab located in the 4200 building, room
[Link] 1/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
4204.
Hours and Locations:
STEM Center – Room 4213:
Monday - Thursday 7:30 AM - 9:00 PM
Friday 7:30 AM - 4:00 PM
Saturday 10:00 AM - 5:00 PM
CS Lab - Room 4204 (Outside these hours students can seek help at the STEM center.)
Monday - Thursday 9:30 AM - 8:00 PM
Friday 9:30 AM - 4:00 PM
Saturday 10:00 AM - 5:00 PM
CS Online Support: (Note – the online classroom opens Sunday 1/15).
Sunday Noon - Midnight
Monday - Thursday 8PM – Midnight
Shell Programming in Unix, Linux and OS X, 4 th edition byStephen G. Kochan and Patrick Wood,
Textbook:
ISBN 9780134496009
We will be using Canvas for this term. You can log in to Canvas two different ways:
Website:
1. the Foothill College Canvas login webpage.
2. through MyPortal
Log In Through Foothill College Login Webpage
1. Go to [Link]
2. Type in your ID number and password that you use to log into MyPortal
Log In Through MyPortal
1. Login to MyPortal ([Link]
([Link] ) using your Student ID Number and
Password
2. Click on the Students tab
[Link] 2/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
3. Look for My Online Courses
4. Click on "Log into Canvas"
Your user id is (all lower case):
the first 2 letters of your first name +
the first 2 letters of your last name +
the last 5 digits of your alternative student id (not SSN!)
For example: For the student John Lennon with student ID 123-45-678, the User ID would be
jole45678.
If you are new to Canvas, Your password is: mmdd of your birthday.
For example, if your birthday is Jan 12, your password is "0112"
So ware needed for this course
You will need access to a Linux Operating System (OS). To obtain a Foothill College Linux account, go to this
site:
[Link] ([Link]
Popular Linux distributions to be configured on your own computer include:
Ubuntu ([Link]
[Link] 3/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
openSUSE ([Link]
centOS ([Link]
fedora ([Link]
To access a Linux server remotely you’ll need a secure terminal program for remote login and file transfer.
Linux, Max OS X, and other UNIX Varieties: Open SSH is already integrated into the base system of major
distributions of Linux and BSD UNIX, including Mac OS X.
On Mac OS X: Finder – Applications – Utilities – Terminal
Windows: SSH Downloads (PuTTY) ([Link]
WinSCP (For file transfer)
Windows ([Link]
Mac ([Link]
For further information regarding software setup for this course see module Software Setup. If you need help
with your Foothill Linux account access contact Luis Barreto:
barretoluis@[Link] ([Link] .
Communica on
Announcements and important reminders will be posted to help keep
students on track with where we are in the course. If you are not receiving
an email after I send out an Announcement from Canvas, check that you
have provided the correct email.
Announcements:
Other general topics of course interest will be posted throughout the week
to the course site Announcements window – when you log in to the course
site you will want to make sure that you regularly check the
Announcements page.
The first week an introduction is required.
Questions and comments should be posted to the Discussions,which you
can reach by clicking on Discussions on the left menu.
Unless a question is of a private nature (i.e. grades, registration issues),
please use the public Discussions. Also, feel free to answer your fellow
student questions, even if you only have a guess as to what the answer is.
Public Forum: It's great to engage in conversation with each other in this manner.
If you have a new topic, please start a new discussion. If you want to add to
or ask about an existing topic, Post a Reply to that discussion.
No points are awarded for contributions, and there are no weekly
requirements, but it’s collegial form to participate, inquire and assist.
According to the college requirements you must post an introduction in the
first week of class or you will be dropped as a “no show”
Please use public Discussions for any question or comment that relates to
[Link] 4/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
Private the class. If you have a confidential question (grades or registration) use
Messages: the Private Message.
Do not post entire programs and ask "what's wrong?" or "is this good?" or
paste numerous sections of the reading and ask "please explain page X of
reading". That's frivolous and indicates you have not tried to narrow down
the problem. Find exactly what you want to know about and post only the
problematic code or unclear reading section.
To avoid plagiarism, do not share code code which is required to complete
an assignment (see exception). This includes sharing via Canvas
Posting Program Discussion section and email.
Code: You can post to the public discussions topics that do not directly answer
questions from programming assignment. If you are asking or answering a
question post pseudo-code of fragments
When posting code fragments (i.e., portions of your program) into
questions, make sure these code fragments are perfectly indented and that
they are properly formatted.
Exception: The exception is unless the code was already provided in the
course material.
Be specific. Show exactly where you seem to be faltering so that qualified
others can know how to help you. This holds true if you are posing your
question to the public forums, the STEM center or me directly. Questions are
encouraged. The engagement of questioning helps everyone learn. Just be
sure to have wrestled with the problem first so that you can show you have
How to Ask a tried to solve it. If unclear or stuck you then have narrowed down your question
Question: specifically. Knowing exactly where you are uncertain allows for incremental
progress on each assignment task.
Start your labs early – this allows time for the question, answer and progress
cycle to
happen most successfully.
Course Site Informa on
Format of lectures: Weekly topic material is released on Mondays at 8:00 AM. The first few weeks there are
additional resource modules to help you get set up for the course.
Lab assignments: are assigned each week. Assignment specifications will open on Wednesdays at 8:00 AM
and are due on Tuesdays at 11:59 PM (2nd week onwards).
Exams: There will be a one hour midterm exam on Thursday of the 6th week and a comprehensive two hour
Final exam on Tuesday of the 12th week.
[Link] 5/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
Discussions: Student forum discussion opportunities and private communication are supported by posting to
the Discussion and Messaging (Inbox link) tools.
Grades: Displays current course grades for all students per each assessment.
Supplementary course support materials are provided in these course menu on the right hand side.
Policy Accessing and Saving Material
All course material (see exception) is available on Canvas.
Can I print the material? Yes, you may print a hard copy for your own use.
Can I share the material? To avoid copyright infringement do NOT share or post the material via
hardcopy, file transfer, posting online outside of this course, etc.
To see if there are any exceptions, contact the instructor via Private Message on Canvas.
Exception: source code and documentation related to practice problems and programming assignments.
A Few Course Policies In Brief—more details later
Attendance and Participation Weekly attendance and participation is assessed through our lab
submissions. Students who are enrolled in the class but who do not submit the first assignment will be
dropped for non-attendance. After the first week, students may be dropped if they miss or receive a 0 on
two consecutive assignments.
You must also post an introduction in the first week to avoid being dropped as a no-show.
Students who do not take the midterm will be dropped.
You must take the exam within the specific date and time interval (see Topics).
If you have a documented medical necessity or family emergency and will miss submitting a substantial
portion of the course work when it is due:
you MUST HAVE specific written permission prior to the exam date, assignment, or presentation dates,
and (unless a medical emergency) you MUST CONTACT me and receive confirmation that you have
permission to make alternate arrangements.
Otherwise, it is within my rights to give you a failing grade on any work you miss as a result, and will NOT
make any accommodations for you. This includes exam(s).
Briefly on collaboration...
Collaboration is only permitted when specifically allowed for—otherwise, you must do your own work.
If there are collaboration assignments you may collaborate with at most one other person (who must be
named).
However, the work you turn in MUST BE YOUR OWN. Your solution must have your "thumbprint" on it and
not be the same as any other student's. If two students turn in identical papers, both students receive zero.
Grading Policy
[Link] 6/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
Course grades are based on programming lab assignments (20 x 9 = 180 points = 75%), and exams (midterm
+ final = 20 + 40 = 60 points = 25%). There is an optional 10th bonus assignment that can be used to swap out
a low lab score
Please note that, Canvas grade page can show a incorrect overall grade than your actual grade. Canvas
calculates the overall grade based on your partial grades only, without setting the missing ones to 0. So to get
your real grade, either make your own calculation by setting the missing grades to 0 or wait until all your
grades are available on Canvas.
To determine your final letter grade, I will calculate all parts: projects + exams. I will then use the following
table:
To earn this letter grade % needed
A 93
A- 90
B+ 87
B 83
B- 80
C+ 77
C 73
C- 70
D 60
F weighted course average below 60 OR weighted exam average below 50
Curving - The grade scale above represents the minimum letter grade you will be assigned. At the instructor's
discretion, the grading scale may be altered in the students' favor if this will better reflect the students' mastery
of the material. Thus, if there is a "curve", it will be applied at the end, not to individual assignments.
Exam format:
[Link] 7/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
The midterm and final exams cover everything prior to the exam date.
1) The questions will have a variety from multiple choice, fill in the blank to writing portions of code. However,
most of the questions will require you to write code. So, it's good to start practicing in class.
If you have any questions about the course policy, ask the instructor. Better yet…feel free to ask in class. In
this way perhaps you’ll help your fellow students in clarifying something they might be uncertain about as well.
Assignment Submission
Programming project assignments - Please submit to your assigned repository only the version that
successfully compiles and run.
Late Submission Policy - This class moves at a demanding pace so getting even a few days behind will be
hard to recover from resulting in a domino effect. If for some reason, you are not able to complete all tasks by
the specific due date, you should submit your best effort by the deadline.
With this said:
You may turn in programming assignments 24 hours late for a 10% penalty. After one day late, they will
not be accepted.
NOTE: I only grade one submission and that is the last submission you make.
You may submit up to 24 hours late, but I will not be able to assist you, if your submission is not
between Monday through Friday.
However, plan for unforeseen incidents such as slow network, network outage, repository conflicts, etc. So,
do not wait until the last minute. Make sure to check that the latest submission is actually available in your
repository. Last minute requests may not be answered or taken to consideration by me, so make sure you have
a working copy before the due date
Late exams are not accepted.
Midterm Exam:
There is a midterm exam in the sixth week. The midterm is a one hour timed exam. The exam will open at 6:00
PM on Wednesday, May 17th at 6pm and must be completed by 11:59 PM on Thursday, May 18th within a one
hour uninterrupted window.
Final Exam:
There is a comprehensive final exam in the twelfth week. The final is a two hour timed exam. The exam will
open at 6:00 PM on Monday, June 26th and must be completed by 11:59 PM on Tuesday, Jun 27th within a
two hour uninterrupted window.
Participation:
Regular weekly participation is required by College regulation. To continue in this class you must participate
[Link] 8/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
weekly in all assessment areas: lab assignments, and exams. This is part of the class participation requirement
that online classes must enforce to maintain their transfer-ability and accreditation.
Attendance Guidelines:
You are expected to sign on and follow the lecture and assignments. If you need to drop the class, this will be
your responsibility.
Drops and Withdrawal
For a complete reference of all withdrawal dates and deadlines, refer to the Foothill College registration page
at the college web site here:
[Link] ([Link]
I reserve the right to drop you for any of the following:
Missing a scheduled test without prior notice will result in an automatic drop or a zero, depending on the
situation and my judgment.
If you do not login or I do not hear from you by email for 10 consecutive days I may drop you. (see
exception)
If you receive a zero on, or fall behind in, two consecutive weekly assignments, I will drop you. (see
exception)
If you do not contribute to discussions weekly by asking (or better yet answering) a question in the current
week's forum(s) at least once in any 7 day period, I will drop you. (see exception)
Exception to Above Policies:
If the non-participation that has just been described occurs partially beyond the last date to drop (with a W), I
may not be able to drop you, and you will receive whatever grade that your points dictate. Therefore don't
assume that you can simply stop participating late in the quarter and you will be dropped. If you intend to drop
please do so yourself, so you don't accidentally end up with an unintended "F."
If you decide to drop the class, please let me know. I cannot allow anyone who has dropped to continue to
have access to the material.
Please ensure you have no conflicts with midterm or final exam dates; there will
be no make-ups.
Student Learning Objectives
You can see the SLOs for this class here:
[Link] 9/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
[Link]
([Link]
Accomodations
To obtain disability-related accommodations, students must contact Disability Resource Center (DRC) as early
as possible in the quarter. To contact DRC, you may:
Visit DRC in Room 5400
Email DRC at adaptivelearningdrc@[Link]
Call DRC at 650-949-7017 to make an appointment
If you already have an accommodation notification from DRC, please contact me privately to discuss your
needs.
Where everything is?
Access the various areas of your course through Canvas menu on the left.
Assignments: View from Assignments.
Tests Taken through the Canvas Quizzes module
Questions or comments: posted using the Discussion.
Typical Week:
Here is the day-by-day breakdown of a proposed typical week to help you understand
approximately what you are facing on a weekly basis.
Mondays Module Reading is assigned
Wednesdays Lab Assigned
Tuesdays (starting 2nd week) Lab Assignment Due (11:59 PM)
The first few weeks there are additional reference modules that you’ll need to read to get started. The lab
assignments are based on the previous week’s topic materials allowing you the flexibility to choose when is
most convenient for your schedule to read the current week’s lecture materials.
[Link] 10/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
Disclaimer
This syllabus is as accurate as possible, but is subject to change at the instructor's discretion, within the
bounds of campus policy.
Next Steps
With all that said, let’s begin. Look at the course summary and see that in the first week you are supposed to:
Read this syllabus
Post an Introduction in the Class Discussion
Check your email setting in your Canvas profile
Read Lesson Modules
Software setup: Obtain access to Linux account
Select an editor: Suggest vi/vim or emacs
Course Summary:
Date Details
Assignment 1
Tue Apr 18, 2017 due by 11:59pm
([Link]
Assignment 2
Tue Apr 25, 2017 due by 11:59pm
([Link]
Assignment 3
Tue May 2, 2017 due by 11:59pm
([Link]
Assignment 4
Tue May 9, 2017 due by 11:59pm
([Link]
Assignment 5
Tue May 16, 2017 due by 11:59pm
([Link]
CS 30B Midterm Exam
Thu May 18, 2017 due by 11:59pm
([Link]
Assignment 6
Tue May 23, 2017 due by 11:59pm
([Link]
[Link] 11/12
8/27/2018 Syllabus for S17 Linux Shell Programming Sections 01W
Date Details
Assignment 7
Tue May 30, 2017 due by 11:59pm
([Link]
Assignment 8
Tue Jun 6, 2017 due by 11:59pm
([Link]
Assignment 9
Tue Jun 13, 2017 due by 11:59pm
([Link]
Assignment 10
Tue Jun 20, 2017 due by 11:59pm
([Link]
CS 30B Final Exam
Tue Jun 27, 2017 due by 11:59pm
([Link]
[Link] 12/12