CSCI 3215 (Advanced UNIX Command-Line Tools), Fall 2022:
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

This semester I plan to have virtual office hours, probably via Zoom but possibly via the department's Gather space. Details, including times, can be found on my home Web page http://www.cs.trinity.edu/~bmassing. If none of the listed times work for you, please get in touch by e-mail and we can negotiate about other options.

Also, e-mail is almost always a good way to reach me (really probably the best way); I normally check it fairly often and reply to student questions as promptly as I can. To help me do that, use a subject line with the word “question” and something that identifies the course. Like a lot of people these days, I get a lot of e-mail, a lot of which goes directly into the “use to train the spam filter” bucket, and you don't want messages that are important to you -- and to me -- to get lost in the clutter.

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 (which is usually easy to find with a Web search on my full name) or directly at http://www.cs.trinity.edu/~bmassing/Classes/CS3215_2022fall/HTML/; there is also a link in TLearn. A request: If you spot something that doesn't seem right, such as a broken link, please tell me about it!

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.

Other references

Any bookstore with a sizable technical-reference section will likely have many books on UNIX or Linux. In particular, O'Reilly publishes books on specific topics (sometimes very specific) featuring animals on the cover; these can be nice to have on one's bookshelf if you like on-paper books. Below are also some classic books on UNIX philosophy/culture that make for interesting reading, plus one attempt to write a book that might make a good textbook for this course. (In fact I used it as a textbook for this course at one time, but it just wasn't quite a good enough fit.)

Course requirements

Grading

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

Component Perfect-score points
Reading quizzes about 100
Homework about 200
Project 40
Class participation 20

Numeric grades will be calculated as a simple percentage, by dividing total points earned on the above components by total perfect-score points. 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

Reading Quizzes

In addition to homework assignments, in which my intent is for you to apply and even extrapolate from material from reading and lectures, this semester I will also be assigning reading quizzes, to encourage you to actually read assigned material and understand it. These will consist of mostly short-answer or essay questions to be answered based solely on the reading (i.e., it's okay to find things with its index, but no Web searches). There will be several of these, one for every chapter or so of reading. Dates will be announced via the course Web site.

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. For programming assignments, you are encouraged to use the department's network of Linux machines, including ITS's new Linux virtual desktop, since everything you need is installed there, and that's the environment in which I test. However, unless otherwise specified for individual assignments, you may use any other system that provides a suitable environment.

Note that every assignment asks you to do two things in addition to the assigned problems: You must pledge the work and document any collaboration, as described in the assignment, and you must include a short essay (a sentence or two is enough) commenting on anything you found noteworthy about it.

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 generally include both “deliverables” (program code, 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 12 at 7pm) for project presentations.

Participation

Regular class attendance is strongly encouraged, but I'm not going to follow my usual policy of basing part of your attendance on it; if you're not feeling well, I don't want to give you any incentive to come to class anyway. Stay home! That was always a good idea, and even more so lately. If at all possible, I will put my lecture notes (presentation) online, so you can get some idea of what we did, and usually I advise students who are absent to check with a classmate as well.

When I was tracking attendance, I would end each class with a “minute essay” - one or two short questions that I ask you to answer by e-mail, and use those to track attendance. I'm going to continue to do that, because it's frequently useful to poll students about this or that, and this is a way to do so in a way that encourages participation.

E-mail

I frequently communicate important or useful course-related information by sending e-mail to the Trinity e-mail addresses of all registered students, almost always with a subject line that begins with the course number (e.g., “csci 3215”). I therefore strongly encourage you to keep up with your Trinity e-mail. If you find that these course-related messages get lost in your inbox, TMail allows setting up filters to put messages that match specified criteria into its equivalent of folders, and I encourage you to do that to help manage these messages.

Late and missed work

Unless otherwise stated for a particular assignment, assignments will be accepted up to one class period late, but no more, at a penalty of 10 percent off per working day. For homeworks only, 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, conflict with a university-sponsored activity or religious holiday, or other circumstances beyond your control. To quote a retired colleague:

If you have unusual circumstances (as we all sometimes do), please discuss these with me as far in advance as possible.
“Unusual circumstances” potentially covers a lot of ground, so if you think it applies to you, ask and I will try to work with you. Be advised, however, that being too busy with other classes does not count as “unusual circumstances”.

Academic integrity at Trinity

What Academic Affairs recommends that I say:

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. If this strikes you as burdensome and pointless, consider the following words, also from Academic Affairs:
Signing the pledge indicates that students have taken ownership of their intellectual property; like an artist signing a painting, the pledge signals pride in a job well done.
I like this perspective!

Collaboration and academic integrity in this course

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

For most assignments, 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, as it may be if you're working together via Zoom or Gather, but please do not share answers electronically in a way that would be make it too easy (and tempting) to just copy and paste. Specifically, please do not just mail each other whole code files.

For a few types of assignments (such as extra credit), the rules are stricter; these exceptional cases will be noted with individual assignments.

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 strictly off limits. For most assignments I will post a sample solution after the due date; these solutions are also off limits. (Normally this isn't an issue because of timing, but if for some reason you must turn in work very late, it could be.)

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

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

Computer and other resources

As most of you know, the department maintains a network of computers to be used for coursework and research; it includes machines in the classrooms, machines in the other labs, and several server machines housed by ITS. Machines in the classrooms and labs are available for in-person use whenever the room is not in use for a class or other event; all are also available for remote use whenever the appropriate operating system is running. Server machines should be available all the time. In addition, ITS has recently added to its VDI system a Linux virtual desktop. More information about these computers can be found at my Web site about department computers. For this course I strongly encourage you to use these computers for any homework that requires use of particular tools, since they provide a reasonably standard environment with the needed tools already installed. To report problems with the computers or with your account, it's probably best to get in touch with me (by e-mail usually works best); if I can't resolve the problem myself I'll pass it on to the appropriate person(s) in ITS.

Course Google Drive folders

I will use Google Drive to share with the class information that should not go on my publicly-accessible course Web site.

I also plan to use Google Drive as a platform for you to turn work in and for me to communicate grade information to you. To do this, I will set up for each student a folder shared only with that student, with one subfolder for me to share grade information and one for you to turn work in. Please do use this way of turning work in; it makes it easy for me to download everyone's work for an assignment in a semi-automated way.

More from Academic Affairs

Academic Affairs recommends that I tell you the following:

Title IX reporting

Text from Academic Affairs:

As a Responsible Employee who is committed to creating an environment where every member of our community can thrive, I want to let you know that I am a Mandatory Reporter. What that means is that I am required to report any instances of sexual misconduct, including sexual harassment, non-consensual sexual intercourse, non-consensual sexual contact, sexual exploitation, intimate partner violence, stalking, and related retaliation that I am aware of to the Title IX Coordinator. So, if you share information with me about any incidents that implicate the Sexual Misconduct or Anti-Harassment Policies, I am required to report all information to the Title IX Coordinator to make sure you have information about support resources and complaint resolution options. My report does not initiate the complaint process, and you are in control over how you choose to engage with our Title IX Coordinator. If you or someone you know has experienced sexual misconduct, including sexual harassment, I encourage you to share this information directly with the Title IX Coordinator or one of the individuals who has been designated as a confidential resource on campus.

Academic support

Text from Academic Affairs:

Trinity faculty hold students to the highest academic standards, but we also know that the very best students seek out help when necessary. The following resources are in place to support your academic success:

I encourage you to take advantage of any that look useful! (Some are irrelevant for this course, but you might want them for other courses.)

Electronic recordings of course instruction

Text from Academic Affairs:

Please be aware that all classroom instruction, including student participation in classroom activities, is subject to recording and dissemination on the Universityâs secure course management system (T-Learn). The recordings will be made available only to students enrolled in the course to facilitate online learning and review. Students are expressly prohibited from capturing or copying classroom recordings by any means; violations will be subject to disciplinary action. Instructors who wish to use a recording outside of class must obtain the written consent of any students who are personally identifiable in the recording.
Any recordings I make for this class will be made available via Google Drive rather than T-Learn, but as far as I know this is deemed acceptably secure.




2022-08-24