CS 252 Syllabus - Spring 2024

Nisha Polawar

Last modified: Aug 29, 2023
Contents:

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)
    • security (file permissions, SSH keys)
    • 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, VSCode, 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

Nisha Polawar DRGS 1103A
(757) 683-7740 Fax: (757) 683-4900
npolawar@odu.edu

When sending e-mail to the instructor, please 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

In person: M, W 1.00 pm - 3.00 pm T, R 10.00 am - 12.00 pm zoom hours: F 2.30 pm - 4.30 pm (please email me in advance so that I can schedule a meeting during this time). If any of the above times dont’t work please email me so that we can meet via zoom at some other time.

2.2 Location

This course is hosted on ODU’s Canvas 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 any of these:

However, to take the final exam you will need access to a PC running Windows or macOS. See Respondus, below.

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.

Web Browser

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.

Respondus

The Respondus Lockdown Browser will be required for the final exam. The webcam option (also known as Respondus Monitor) will not be required.

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 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.1 Requirements

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

Points are awarded as follows:

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

Exam scores are rounded up to the next integer. So, for example, a student with 12 assignments completed who scores 59.1% on the final exam will pass the course. A student with 12 assignments completed who scores 58.9% on the final exam will not pass the course.

Students who fail to achieve the required 180 points will be given an F*, except for students who have never completed a single assignment, who will be given a WF*. (The ’*’ designation on the grade indicates that, because this is a P/F course, the grade does not affect the student’s grade point average.)

3.2 Grade History

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
minimum exam score
required to pass
% of students
that pass
< 8 (not possible) 0%
8 100% 0%
9 90% 0%
10 80% 10%
11 70% 33%
12 60% 60%
13 50% 85%
14 40% 95%

Partly this is because students who have scored more points from the assignments need fewer points on the exam.

It is also because completing, or at least attempting, the assignments is an essential component of preparation for the exam.

4 Course Policies

4.1 Meeting Times

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

4.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.

4.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.

4.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.

4.5 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 Quizzes area on Canvas.

4.6 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.

4.6.1 Requests for Extensions Late in the Semester

Increasingly, I am finding that most of the requests that I receive for extensions come from students who have left all or most of the assignments until the final one or two weeks of the semester.

If there are less than two weeks remaining until the end of the semester and you have more than half of the assignments unfinished, do not even bother asking for an extension unless you have written documentation of exceptional circumstances that explain, not only why you are unable to finish the assignments, but why you left them until so late in the semester.

5 Getting Started

A typical work session for this course starts by entering the course via the course Canvas site 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.

6 Educational Accessibility:

Old Dominion University is committed to ensuring equal access to all qualified students with disabilities in accordance with the Americans with Disabilities Act (ADA). The Office of Educational Accessibility (OEA) is the campus office that works with students who have disabilities to provide and/or arrange reasonable accommodations.

The Office of Educational Accessibility is located at 1021 Student Success Center, and their phone number is (757)683-4655. Additional information is available at the OEA website.


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.