CSCI 3294 (Seminar: UNIX Power Tools), Fall 2018:
Syllabus

Course description

In CSCI 1320 (CS1) we introduce students to the basics of traditional UNIX command-line tools. These tools may seem clunky and primitive compared to the GUI-based tools students are more apt to be familiar with. But behind the clunky-seeming interface there is a lot of power and flexibility, in part because this traditional environment includes a number of ``power tools'' that can be great timesavers for the not-so-novice user. In this course we will look at some of these tools and how they fit together, and also at the underlying UNIX philosophy/culture.

The following are some topics we will discuss; others will be included as time and students' interests permit.

Basic information

Class meeting times and location

Prerequisites

Instructor contact information

Office hours

A current schedule of office hours can be found on my home Web page (http://www.cs.trinity.edu/~bmassing). If I'm not in my office during office hours, I should be somewhere in the CSI, probably in one of the labs helping another student.

In addition to scheduled office hours, you're welcome to drop by and see if I'm in my office and free to talk, or you can make an appointment by sending me e-mail.

Also, e-mail is almost always a good way to reach me; I normally check it fairly often and reply to student questions promptly.

Course materials

Web site

Most course-related information (this syllabus, homework and reading assignments, etc.) will be made available via the course Web site. You can find it linked from my home page (http://www.cs.trinity.edu/~bmassing) or directly at http://www.cs.trinity.edu/~bmassing/Classes/CS3294_2018fall/HTML/; there is also a link in TLearn.

Textbook

There is no required textbook for this course. The course Web site will have links to on-line readings, parts of which you will be expected to read/skim/consult. If you want something hardcopy, here are two books I have recommended in past years:

I did not ask the bookstore to order copies, but they should be available from your favorite purveyor of technical books.

Other references

Any bookstore with a sizable technical-reference section will likely have many books on UNIX or Linux. Below are some classic books on UNIX philosophy/culture that make for interesting reading.

If you like the O'Reilly ``In a Nutshell'' books, you may want to acquire UNIX in a Nutshell or Linux in a Nutshell. O'Reilly also publishes many books on UNIX-related tools, which are good to have on one's bookshelf as one's interests and finances dictate.

Course requirements

Grading

Grades in this course will be determined by scores on several homework assignments, a project, and class attendance, weighted as follows.

Component Maximum points
Homework about 200
Project 50
Class participation 20

Numeric grades will be calculated as a simple percentage, by dividing total points earned on the above components by total points possible. These numeric grades will then be converted to letter grades in a way that takes into account the performance of all students, but in no case will the resulting letter grades be worse than you would receive based on the following scheme.

Numeric grade Letter grade
90 - 100 A-/A
80 - 89 B-/B/B+
70 - 79 C-/C/C+
60 - 69 D/D+
0 - 59 F

Homework assignments

Homework, mostly in the form of programming or programming-like assignments, is a crucial part of this course; much of what you learn will likely be learned in the course of completing these assignments. Detailed requirements will be provided as part of each assignment; due dates will be announced via the course Web site. You are strongly encouraged to use the department's network of Linux machines, but unless otherwise specified for individual assignments, you may use any other system that provides a suitable environment.

Project

As part of the course, students must also complete a project approved by the instructor and present it to the class. Detailed requirements for the project will be described separately and will include program code (or scripts, makefiles, etc.), a short written report, and a presentation to the class.

Note that although there are no exams in this course, we will use the time scheduled for a final (December 11 at noon) for project presentations. Please plan accordingly (i.e., avoid scheduling anything else for that time).

Attendance

Regular class attendance is strongly encouraged, and part of your grade is based on it. You can miss a week's worth of classes without penalty; after that, each unexcused absence reduces this part of your grade. If you must miss class for whatever reason, see the notes online for a summary of what you missed, including any announcements. It may also be helpful to check with a classmate for more about what we did in class.

E-mail

Course-related announcements will often be made by sending e-mail to the Trinity e-mail addresses of all registered students. Students are strongly encouraged to read mail sent to their Trinity addresses frequently.

Late and missed work

Unless otherwise stated for a particular assignment, homework will be accepted up to one class period late, but no more, at a penalty of 10 percent off per working day. This penalty will be waived if you submit a preliminary version of the assignment on time and a revised version no more than one class period later. It may also be waived or additional time allowed at the instructor's discretion in cases of illness or conflict with a university-sponsored activity or religious holiday.

If you have unusual circumstances (as we all sometimes do), please discuss these with me as far in advance as possible.

Academic integrity at Trinity

All students are covered by a policy that prohibits dishonesty in academic work. Under the Honor Code, a faculty member will (or a student may) report an alleged violation to the Academic Honor Council. It is the task of the Council to investigate, adjudicate, and assign a punishment within certain guidelines if a violation has been verified. Students are required to pledge all written work that is submitted for a grade: ``On my honor, I have neither given nor received any unauthorized assistance on this work'' and their signature. The pledge may be abbreviated ``pledged'' with a signature. You will be asked to do this explicitly on everything you turn in for this course.

Collaboration and academic integrity in this course

Unless otherwise specified, all work submitted for a grade (homework assignments and projects) must represent your own individual effort, except as discussed below. All submitted work will be considered pledged work.

Getting help is allowed and even encouraged, but not to the point where the helper is providing answers you just transcribe. Similarly, discussion of homework assignments among students is allowed, but not to the point where detailed answers are being written collectively. If you are working with other students in a lab, seeing another student's work may be unavoidable, but please do not share answers electronically.

However you get answers, you should write or type them up yourself. More importantly, you should completely understand everything you turn in, and by turning it in you are implicitly saying that you do.

Graded papers and sample solutions (to homeworks) from previous semesters, for this course or other courses I teach, are off limits.

Answers that are identical beyond coincidence (either to another student's work or to a sample solution from a previous semester) will be considered to be in violation of the Honor Code, and will result in appropriate action.

If you are uncertain about whether a particular level of collaboration is acceptable, please ask for clarification. You will be asked to document any collaboration; details will be provided with assignments.



Berna Massingill
2018-09-04