ISE-311: Course Information (Spring 2010)

Course Objectives and Description

This course covers practical techniques to manage information systems, also known as IT Systems Administration. The official course goals are:

It is impossible to cover 25 years of IT experience in just one course. Therefore, in this course we will cover many topics briefly. We will cover two important topics in greater depth: security and data storage. Those two tends to be the most critical to any site: security protects the site from the outside, whereas a properly setup data-storage protects the site from internal failures. Your homework assignments will focus heavily around these topics.

We will use Linux and Windows as our case-study operating systems. The principles you will learn with those two are applicable to many other OSs, including Solaris, BSD, Mac OS-X, HP-UX, Irix, AIX, etc.

If you follow the course readings and homeworks, you will come out of this course with a basic understanding of how to manage modern computing systems. You will be able to debug IT problems, configure storage services, secure your system, install and configure Internet services, write small shell scripts to help you do your tasks, and find solutions to problems online.

Prerequisites

  1. The officially published prerequisites for this class are CSE-214, or CSE-230, or ISE-208. If you have not taken any of these classes, then you cannot take this class. Besides, you will find it very hard to succeed in this class without the proper background.
  2. You should have some experience with programming already. Although you won't do a lot of programming in this class, you will be writing shell scripts and CGIs; those will likely be in new languages you have never used before, so it is important that you've seen enough programming/scripting languages before, to allow you to learn a new one quickly.
  3. Much of system administration requires good analytical and logic skills. Setting up a good IT system and debugging it often needs similar skills to those a programmer uses to debug a program (form a hypothesis, setup a test to prove/refute it, and find the source of a problem or eliminate something else as definitely not a problem).
  4. You should already have basic exposure to Unix commands. You should know what ssh, gcc, ls, rm, mv, cp, man, vi/emacs, and other such commands do. We will cover some Unix and shell scripting principles in class, but a lot of it you'd have to learn on your own.
If you do not fulfill the above requirements, you should consider very strongly taking other classes first before taking this course.

There are other recommendations which would greatly help you in this class. Note, these are optional. I don't expect you to have accomplished any of these things on your own. But it helps if you have:

Who Can Take This Class

CS undergraduate-level courses are generally intended only for CS under-graduate students in the ISE or CSE degree programs!

If you do not fulfill the class prerequisites, you may not take this class without instructor permission.

Unfortunately, the university registration system does not always validate prerequisites or enforce registrations based on degree programs or department affiliations. Furthermore, we have limited resources available for this class: seating with computers, teaching staff, and laboratory facilities. Therefore, at my discretion, I will collect information about each student who wants to take this class and correlate it with university records. Then I will decide who can take the class. Note that this is independent of whether you are already registered for the class or not. Priority will be given to CS under-graduate students.

In either case, barring classroom size limits, I will endeavor to allow everyone who has the proper background to take this class, including non-CS majors.

Finally, the lab resources of this class are limited and thus reserved only for registered students. No auditors are allowed in this class.

Examinations

There will be two exams in this course: a midterm exam, to be held in-class, and a final exam, which will be held during Finals Week at the officially scheduled date/time. See the course calendar for specific exam times and locations. Both exams will be closed book.

Textbooks

There are no textbooks for this class. IT information changes so quickly, that by the time a textbook is written, it is already obsolete. Your best source of information is the Internet, Google, man pages, online manuals, etc. In this class you will spend a lot of your own time reading online information and experimenting with it. Because there are no textbooks for this class, it is vital that you attend all lectures; if you miss one, get class notes from any classmate you can.

The book publisher O'Reilly has published many excellent IT-related books. Stony Brook's libraries include an online subscription to it, which you can get from here. Feel free to review book on Apache, Linux, etc.

Handouts and Other References

Besides the course text, during the semester we may study some research papers from industry and academia. We will also read documents and shell scripts, and possibly even source code of applications, to understand what they really do. These references will be made available via the course home page, at the following URL:

http://www.cs.sunysb.edu/~ise311/

Homework

The homework in this course will consist of three types of activities:

  1. Reading from online sources, manuals, assigned papers, and even source/scripting code. You obviously won't be graded on this part of the homework, but the exams will contain questions to try to determine whether you have done the reading and integrated the reading material into your own understanding of operating systems. Note also that you are responsible for reading all of the posts on the class mailing list. The list will be an invaluable informational resource for you throughout the class (that's why you must subscribe to it).

  2. Assignments in which you will install, configure, test, and debug various software and hardware features, as well as an assortment of useful Internet services.

  3. Class Project which will span the latter part of the semester. You can consider it a "large homework assignment."

Reading will take place on an ongoing basis throughout the semester. Assignments will be given regularly, with each assignment due three to four weeks after it is issued. There are 3-4 assignments, with the last assignment often being a larger project conducted in a team. I feel that actual IT experience is extremely important in this field, and so I have assigned a fairly high weight to the assignments portion of the grade (see Grading below) to help motivate you. You must work on your assignments alone, unless otherwise specified.

For homeworks 1 and 2 you must work alone. For the class project you may work in a team of at most two students total. Larger partnerships will not be permitted.

You must turn the homeworks in on the day they are due and on the time they are due as listed in the course calendar. Since the homeworks will include some programming/scripting exercises, students are urged to plan ahead to avoid congestion of the computer facilities at the last minute. If your code is incomplete or is not working by the due date, turn in whatever you have. Any homeworks that are submitted after the due date might or might not be graded, at the convenience of the course staff; if we grade them, we may elect to deduct a number of points for lateness, at our discretion. (My typical policy is to deduct 2 points for every hour that the assignment is late, rounded up.) Late homeworks that are not graded will be held until the end of the semester, in which case I will have a look at them to decide whether you will be receiving a fair final grade. Generally speaking, if your homework assignment is not graded due to late submission, at my discretion you will receive either a zero for that assignment or you will receive a score equal to the average grade you received on all your homeworks that were graded. If some sort of emergency prevents you from submitting your homework on time, supplying me with suitable documentation might influence the choice I make, but please do not ask me to tell you that it is ``OK'' to submit your homework late. It is never ``OK'' to submit your homework late, but you will benefit more from submitting a late homework than if you submit nothing at all.

Academic Dishonesty

For the assignments and the project, you will work alone and submit your own work. You may discuss the programming assignments with other classmates. In fact, we encourage participation in the class mailing list. However, you may not share code with anyone! The code you submit must be your own work, and only your own work. Any evidence that source code has been copied, shared, or transmitted in any way between students (this includes using source code written by others in previous semesters, or by persons outside of the class or SUNYSB!) will be regarded as evidence of academic dishonesty. (BTW, there are some wonderful tools out there to compare N programing assignments and correlate those that have a shared code basis, even if the code had been changed significantly!)

I am very serious about not tolerating academic dishonesty. In any class, when I am able to establish that academic dishonesty has occurred, I generally assign the student in question a grade of "F" for the course and forward the particulars to the Graduate Program Director for inclusion in the student's folder. If the student is a repeat offender, I ask that the ISE/CSE Program Director initiate proceedings to dismiss the student from the degree program. Besides, we're here to learn. Do you want to get a good job and impress your peers with your IT skills, or get fired by your boss for failing to get the job (or worse, get sued for copying someone else's work).

For more information, see the Academic Judiciary Web site.

The following is an official statement required by the Undergraduate Council to be included in any undergraduate syllabi:

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Any suspected instance of academic dishonesty will be reported to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the academic judiciary website at http://www.stonybrook.edu/uaa/academicjudiciary/.

Grading

The final grade will be determined as follows: The raw scores obtained by all students on each assignment and exam will be standardized for that particular assignment or exam either (at my discretion) by converting them to percentile scores, or else by applying a linear transformation to map the scores to a standard [0, 100] scale. A weighted sum of the resulting standardized scores will then be formed (with weights as shown below) to obtain a composite score for each student. Finally, the composite scores will be ranked, and I will apply a subjective method of my choice to determine the cutoffs for each grade category. Absolute performance standards, the distribution of composite scores, information derived from late homeworks, and class participation are factors likely to contribute to this decision.

Generally speaking, to get at least a B in this class, your overall numeric grade in this class must be above 75% of the total possible number of points (not counting extra credit). Note that this does not mean that everyone who gets less than 75% will automatically get a grade less than B.

To pass this course, you have to get at least 50% of the total numeric cumulative grade, not counting extra credit. Note that if you get less than 50%, it does not mean an automatic failing grade, but the grade will not be a good one either.

Attendance and participation in classes, in particular, will be factors that can offset borderline grades. This includes conversations with the instructor and TA over email, using the class mailing list, and so on.

So that you can get an idea of how you are doing as the term progresses, I will report rough percentile information when I hand back each assignment. Final percentile scores will not be computed until after all grade changes and corrections have been taken into account at the end of the term.

Grading of Assignments: To help you understand how your assignments are graded, we will post a detailed grading criteria for each assignment shortly after the assignment is handed out. This will help you focus your efforts based on what we plan to test and grade, as well as ensure equitable grading.

Re-grading: after each grade is given out, you will have a chance to discuss it with the grader and the instructor. You must first discuss your grade with the grader, within the first 48 hours after the grade has been handed back. It's highly recommended that you take some time to review your entire grade before discussing it with the grader. After discussing your grade with the grader, if you wish, you may discuss it with the instructor during office hours or by appointment.

Extra credit: In some instances I may assign extra questions or problems, designated as "extra credit." These will be optional additional points given to students based on extra credit work performed. Any extra credit points accrued by any student will be used as follows. The final course grade will be assigned as a letter grade which excludes all extra credit points. Then I will apply a subjective method to determine how much value to assign to extra credit points. Extra credit points can only be used to raise your final course letter grade. In other words, you are not obligated to do any of the extra credit work, and you can still get an A in this course.

Graduate Students: Graduate students taking this class are required to do more work. Generally the extra work I will assign will be to complete the "extra credit" part of the assignments. Graduate students will be graded separately (different curve) than the undergraduates taking this class.

P/NC: The Pass/No Credit (P/NC) option is not available for this course.

Special Assistance

The Provost has required that all faculty include the following statement in their syllabus handouts:
If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), Room 133 Humanities, 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

Schedule of Topics

This is a new course, and the precise topics that will be covered and how much time will be spent on each are still somewhat in a state of flux. The topics and pace also depend on the level of preparation of the students in the class. If nearly everybody has some prior C/Unix experience, then we can pursue more advanced topics at a more rapid rate. If not, then we have to go slower and do more basic things.

The list of topics I expect to cover in class (not in this order), time permitting, are as follows:


Last Updated: 2010-01-25