CS 252 Syllabus - Fall 2020

Steven Zeil

Last modified: Jul 6, 2020

1 Course Description

CS 252 is an introduction to Unix with emphasis on the skills necessary to be a productive programmer in Unix, Linux, and related environments.

The focus of this course is on learning enough Unix for students to function productively in CS courses at the 300 level and beyond. Because working directly from a workstation console in a CS Dept lab is no longer the dominant mode of interacting with our Unix systems, this course will emphasize connecting via the Internet from a remote PC to our Unix systems. Both text-based (ssh/shell) and window-based (X) connections will be covered.

This is a self-paced course delivered via the Internet and may be taken for P/F grades only. There are no regularly-scheduled class meetings. Students will be able to work through the material at any time,1 including taking automatically graded assignments. At the end of the semester, a final exam will be issued. Students who have successfully completed a sufficient number of assignments and achieved a sufficient grade on the exam will be given a grade of P. More detailed information is in the Grading section of this document.

1.1 Topics Covered

  1. Getting started
  1. The Basics: Working in Text Mode

    • Working at the command line, the Unix File System, absolute and relative paths, basic file manipulation commands, wildcards and quoting,
    • editing files (nano, emacs, & vim)
    • file permissions
    • file transfer (sftp, scp)
    • regular expressions (grep, sed)
    • redirection and pipelines
  2. Program Development

    • compiling and executing programs (g++, gcc, java)
    • project management (make)
    • compiling in editors
  3. Working in Graphics Mode (X)

    • X and X2Go
    • editing in X
    • IDEs for program development (emacs, vim, Code::Blocks, Eclipse)
    • Debugging (gdb and IDEs, nemiver)
  4. Scripting

    • Environment variables, customizing the Unix environment, writing shell scripts

A more detailed outline is available on the course website.

2 Basic Information

2.1 Instructor

Steven J. Zeil E&CS 3208
(757) 683-4928 Fax: (757) 683-4900

When sending e-mail to the instructor, please put include the course number (“CS252”) as part of your Subject line. Messages with that in the subject are flagged by my email program for faster attention and are less likely to be lost amid my daily dose of spam messages.

2.1.1 Office Hours

Students may meet with the instructor in person, by telephone, or via internet-conferencing (Hangouts). A week-by-week schedule of available meeting times can be found by going to the instructor’s home page (http://www.cs.odu.edu/~zeil) and clicking on “Office Hours and Appointments”.

2.2 Location

This course is hosted on ODU’s Blackboard server.

2.3 Texts

The readings for this course available on-line.

Everything you need to complete the assignments and successfully pass the exam is in the Lecture Notes.

The Lecture Notes include Try This exercises to give you practice with the commands and concepts covered in the course.

If a command or option is not covered in the Lecture Notes, and you have not practiced with it in a Try This exercises, you don’t need it to complete the assignments. Unless you really, really understand what you are doing, don’t use it!

2.4 Course Prerequisites

Students are also expected to be familiar with the use of standard Internet-based tools including email and web browsers.

2.5 Hardware and Software Requirements

Because this course is hosted on the Internet, you will need to make sure that you have access to the appropriate computing equipment and software to participate in the course activities.

2.5.1 Computing Devices

You will not need your own access to a Unix or Linux machine. The CS Dept provides such machines, and learning how to use them from both on and off-campus locations is a major theme of the course.

You will need hands-on access to a PC of some kind. These do not need to be particularly powerful machines, as you will be using them as entry points for remote connections to the CS Dept. machines on which you will be doing your “real” work.

Your PC for this course may run:

You will need to install some software on your PC. All such software is available in free, open-source distributions and will be introduced as it becomes relevant during the course.

2.5.2 Software

Software requirements are fairly relaxed. You will need a reasonably up-to-date version of the Edge, Firefox, or Chrome web browser. Other browsers or older versions of these may also be acceptable, but cannot be guaranteed so, because the course materials are not tested with other and older browsers.

As noted above, you may be installing other software to support this course.

2.5.3 Internet Access

You will need a good quality internet connection. Again, be wary of planning to use PCs at work, libraries, etc., with this course. Many of these places will run firewalls that heavily restrict access to network services.

If you are working form home, your home internet probably allows the access you need by default. If you need to check with the systems staff at some location, tell them that you need to make outgoing connections to

  1. web servers using the http and https protocol. If you can view web pages like this one, you are probably OK.

  2. secure shell servers using the ssh protocol (port 22). Although rare, some companies and public libraries (including at least one city library in the local Hampton Roads area) do block this.

3 Course Policies

3.1 Meeting Times

This is a self-paced Internet-delivered course. There are no regularly scheduled class meetings.

3.2 Computer Accounts

All students taking this course will need a login account on the CS Dept.’s Unix network. (This is distinct from any Midas or other account you may have from the general University computer center – the ODU ITS).

You may have a CS account already if you were registered for a CS class last semester. If not, you will need to create a new account. Instructions on how to do so are in the course materials for the first module of the course.

3.3 Communications

Because this course does not have traditional lectures, most communication between instructor and students will need to be conducted electronically. Options include email and Forum postings. Details can be found in the Communications Policy.

When sending email related to this course, please remember to include “CS252” as part of the email subject line. This will flag your email for my attention and may also help avoid its getting lost amid my daily spam.

As noted earlier, I will hold regular office hours. Off-campus students can contact the instructor by telephone or by network conferencing during these times.

3.4 Academic Honesty

Everything turned in for grading in this course must be your own work.

Violations will be reported to the office of Office of Student Conduct and Academic Integrity for consideration for punitive action.

Students who contribute to violations by sharing their code/designs with others are subject to the same penalties as those who misrepresent such work as their own.

3.5 Grading

This is a Pass/Fail course. No letter grades are assigned. The only possible grades are P, F, and WF. (This course does not affect your grade point average — only letter-graded courses can do that.)

3.5.1 Requirements

To obtain a pass (P) grade, students must accumulate 18 points out of a possible 24.

Points are awarded as follows:

For example, a student who completes all 14 points need score only 40% on the final exam. A student who completes 12 assignments must score a 60% on the final exam.

Students who fail to achieve the required 18 points will be given an F, except for students who have never completed a single assignment, who will be given a WF.

It is worth noting that the course is designed with the assumption that students will make a serious attempt to complete all assignments, even though this is not strictly required. The assignments give you practice with and help to reinforce the lessons tested by the exam.

Historically, there is a strong correlation between the number of assignments completed and the chances of scoring high enough on the exam to pass the course:

# assignments completed % of students passing the course
< 8 mathematically impossible to pass
8 0%
9 0%
10 10%
11 33%
12 60%
13 85%
14 95%

3.5.2 Due Dates

Assignments are due by the end of the day announced in the outline/schedule. Typically this is the final day of classes for the Fall and Spring semesters and the day prior to the opening of the final exam for the Summer semester.

The final exam will be available on-line. Refer to the outline/schedule for the dates. Detailed instructions will be posted in the Exams area on Blackboard.

3.5.3 Extensions, Exceptions, and Incomplete (I) Grades

Exceptions to the due dates or grading policy will only be granted under the conditions defined by the ODU policy on Incomplete (I) grades: “exceptional circumstances beyond the student’s control”. Except in such circumstances, students who fail to complete the course in the time allowed will not be permitted to resume the course without re-registering, and would then be expected to complete all assignments from the beginning of the course.

Reasons that are most likely to justify an exception include extended illness, military deployments, or job transfer/relocation, but you should be prepared to document these if requested.

The following are usually not valid reasons for an extension:

Requests for an “I” grade or extended time to complete the course should be made before the actual end of the semester, whenever possible. Requests made after grades have been submitted will need to include an explanation of why the request was delayed.

3.5.4 Fourth-Week Grade Report

University regulations require that all instructors of 100 or 200-level courses provide students with an interim grade report by the end of the 4th week of the semester. Obviously, such a report is of questionable utility in a self-paced course like this one.

Students may obtain this report from Leo Online (the same system used to retrieve end-of-semester grades). Students who, by the end of the 4th week of the semester, have completed at least 4 assignments are considered to be “on a pace” to successfully finish the course by the end of the semester.

4 Getting Started

A typical work session for this course starts by entering the course via the course BlackBoard site (linked at the bottom of this page) to check for announcements. Then click on “Outline” to reach the course Outline page.

On the Outline page, you will see the list of topics, with on-line lecture notes, textbook readings, and assignments. You can then begin working through the course material, or pick up from wherever you last left off.

1: Although there are few deadlines associated with CS 252 itself, other CS courses may list CS 252 as a co-requisite, and instructors in those other courses may impose their own deadlines as to when they expect portions of CS 252 to have been completed.

For example, a CS 250 instructor may want to give an assignment on October 15 in which the g++ compiler will be used, and so may inform CS 250 students that they must have completed the CS 252 assignment on “compiling using g++” by October 7.