|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Policies |
|
CSCE 313
Introduction to Computer Systems Course Syllabus Spring 2011 Instructor:
Ronnie Ward, PhD Time and Place: MW 4:10 pm-5:25 pm; Room: 113
HRBB Lab Section 503: M 1:50
pm-3:40 pm, HRBB 203 Lab Section 504: W
9:35 am-11:25 am, HRBB 203 Teaching
Assistant: Daniel
Miller Office: HRBB 502D Office
Hours: Monday
9-11 AM, Thursday 2-4 PM email:
dmiller@neo.tamu.edu Peer
Teacher: TDB Office: TBD Office
Hours:
TBD email: TBD Credit
Hours: CSCE 313 is a four credit hour
course Course
Description: Introduction to system support
for application programs, both on single node and over network: OS application
interface, inter-process communication, introduction to system and network
programming, and simple computer security concepts; hands-on lab assignments. Course
Objectives: The objective of this course is
to provide you with a general understanding of what system software is involved for an application program to run, both on a
single node and over a network, and how this system software is to be used.
In support of this, the course will prepare you to do system-level and
network programming. This course will teach you how to "use" (as
opposed to "design") system components, such as memory, file
systems, process control, inter-process communication, and networking. By the
end of this course you will have an understanding of the problems and
pitfalls typically encountered in the design and implementation of
multithreaded and networked applications and system More
specifically, by the end of this course you will be proficient at making full
use of the services provided by the underlying operating system by
programming directly at the operating system interface level, POSIX over UNIX
in our case. At
the end of this course you will understand the following aspects of a
computer system, in no particular order: * Execution of a program; function calls;
interrupts. * Memory layout of a running program. * What is an operating system; its
components; why system calls; etc. * The OS application interfaces; file
system; memory control; process control; etc. * Run-time environments; interaction of
compilers, linkers, loaders to run a program. * Concurrency, process synchronization,
inter-process communication * Network Programming; Berkeley sockets;
RPC; pitfalls in networks.
* Security threats in centralized and distributed systems;
authentication, authorization, confidentiality; security mechanisms. Prerequisite: CSCE
312 or co-requisite CSCE 350 Required Text:
UNIX
Systems Programming: Communication, Concurrency and Threads, 2/E , by Kay and Steve Robbins, Prentice Hall, 2004. Other Interesting Reading: Computer Systems · Computer Systems: A Programmer's Perspective, by Randal E.
Bryant and David R. O'Hallaron Operating
Systems · (hands-on) Operating Systems, Operating Systems, A Modern
Perspective, by Gary Nutt (Addison Wesley) · (not-so hands-on) Modern Operating Systems A.S. Tanenbaum (Prentice Hall) · (similar) Operating System Concepts by Silberschatz,
Galvin, Gagne, John Wiley and Sons, Inc., New York, 2004. Systems Programming · Advanced Programming in the UNIX Environment, by W.
Richard Stevens (Addison Wesley) · Advanced UNIX Programming, by Marc J. Rochkind,
(Addison-Wesley Professional Computing Series) OS Internals · (Windows) Inside Microsoft Windows 2000, by D.A. Solomon
and M.E. Russinovich (Microsoft Press). · (Unix V) The Magic Garden Explained: The Internals of Unix
System V Release 4 by B. Goodheart and J. Cox
(Prentice Hall) · (BSD Unix) The Design and Implementation of the 4.4 BSD
Operating System, by McKusick, K. Bostic, M.J. Karels, J.S. Quarterman (Addison Wesley). · (build-your-own; old, but excellent) “Operating System
Design - The XINU Approach”, by D.E. Comer, 1984 (Prentice Hall). General Programming · "The Practice of Programming," by Brian W.
Kernighan and Rob Pike (Addison-Wesley Pub Co; ISBN: 020161586X) These optional books complement the textbook. Perusing
them may help you better understand some issues discussed in class. A good
selection will be made available at the Reference Desk in the Library. Lectures: During lectures we will be covering OS concepts and case
studies. The material covered in the lectures will provide the background and
foundation for you to appreciate the lab assignments and to succeed in them.
Reading of assigned portions in the textbook and other related material is
your responsibility. You are also expected to follow instructions and be
aware of announcements made during lectures. (See Communication Policy
below.) Labs: A very important part of this course is the Lab, where you
will put into practice some of the material learned in the lectures, and
where you will acquire a working knowledge of one widely used application
interface (POSIX) to and operating system (UNIX). We will meet weekly for an
in-lab session, where we will be presenting and discussing new material, or
go over problems you may be encountering. After an introductory session to
familiarize you with the particular environment that we will be using, there
will be a series of machine problems with various difficulties, which will
exercise different parts of the operating system: file system, process and
thread management, memory management, networked execution, and so on. In
order to maximize the learning experience, we will not have groups of
students work on the machine problems. Instead, each student will have to
turn in their own solution. While we encourage you to collaborate during the
Inquiry phase of the machine problem, the design and implementation of the
machine problem solution has to be your own. You are not allowed to copy from
other solutions of the machine problem, nor are you allowed to make solutions
available to other students. Machine
problems are supposed to be handed in on CSNET. Details are available in the Lab Manual. Note:
Some of the lab assignments are quite demanding, and will require some
dedication and some time. Expect that you won't be able to finish them during
the allocated lab time! Lab Grading scheme
Components of
Your Grade:
Grading
Scale:
Policies Late-Submission Policy: All the submission deadlines have included extra time for
the consideration of accidental events such as (not limited to) unavailable
resource (machines are down,) sickness of students, stock market collapse,
distress due to the Aggies losing a game, etc. This means that additional
extensions are generally not granted. The rule of the game: START EARLY! Both
homework and projects will be submitted on CSNET. Unless stated otherwise,
lateness is penalized with 1/5 of the earned points of the item per calendar
day. Examinations: There will be two midterm exams and one final
examination. The midterms will be in-class, and the final will be during the
allocated time during Final's Week. All tests will be closed-book. You will
be allowed one hand-written "cheat sheet" of size 8.5in x 5.5in. No
other aids will be allowed, except for writing utensils. Communication Policy: Instructor, Teaching Assistants, and Peer Teachers for
this course will do their best to communicate relevant administrative
information (deadlines, information about posted material, details about
projects, locations of tutorials, and so on) in an effective and timely
manner. We will be using announcements in class, postings on the web site,
material on CSNET, and occasionally e-mails to students. Having said that, keep in mind that this is not a distance
education course! You are expected to be current with the material covered in
class and with any announcements made in class. In fact, announcements in
class will override whatever information has been made available through the
other channels. Note on e-mail accounts: Over the years we have been having problems with off-site
e-mail accounts used by students. We will therefore be sending CSCE-313
related e-mail to the accounts listed on TAMUDirect
only. (These are typically of the form xxxx@neo.tamu.edu, xxxx@cs.tamu.edu,
or xxxx@tamu.edu.) Make sure that you have access to these e-mails, and
forward them appropriately if needed. Note on e-mail etiquette: E-mail is a very convenient and potentially effective way
to communicate with instructor and TA, but only if used in a professional
manner. Keep in mind that -- in particular when a deadline is looming -- we
are receiving many e-mails, and all senders expect an immediate turn-around.
Therefore, keep your e-mail short and to the point; indicate that you have
done some thinking *before* typing the e-mail; provide necessary support
documentation (e.g. code sections) when needed (don't attach huge amounts of code!);
follow standard basic rules for courteous and professional communication;
proofread your e-mail before sending it out. We will not answer e-mail that
does not follow these rules. Repeated offenders will be added to the spam
filter. Absences:
Lecture and lab attendance is
expected. Attendance at exams is required. Infrequent unavoidable absences
are understood, but each student is responsible for any missed material. For excused absences, students will not be
penalized. See Section 7 of
the Student Rules for the excused absence policy. Confirmation from your medical provider
containing the date and time of the visit is required for all excused
absences that are due to illness or injury. The Texas A&M University
Explanatory Statement for Absence from Class form will not be accepted. You
may not make up an exam unless your absence is official and excused. For
unexcused absences, a grade of zero will be assigned for missed work. Americans
with Disabilities Act (ADA) Policy Statement Academic
Integrity: “An Aggie does not lie, cheat, or
steal or tolerate those who do.” Upon
accepting admission to Texas A&M University, a student immediately
assumes a commitment to uphold the Honor Code, to accept responsibility for
learning, and to follow the philosophy and rules of the Honor System.
Students will be required to state their commitment on examinations, research
papers, and other academic work. Ignorance of the rules does not exclude any
member of the TAMU community from the requirements or the processes of the
Honor System For
additional information please visit: www.tamu.edu/aggiehonor Student
Rules: You are responsible for
complying with all provisions of the Texas
A&M University Student Rules. Schedule: TAMU Academic Calendar Spring 2011 Final Exam Schedules
Handing
in Homework: You are to submit your homework through the
department's turn-in
system. Proceed as follows:
Notes
on Handing in Labs and Homework: 1. Submit soft copy of everything that you should submit. The soft copies should be submitted using the CS department turn-in system before the deadline. For turn-in instruction see the course/lab webpage. The late penalty policy is as put in the course syllabus. 2. Compose the report in a Microsoft Word or Adobe PDF document and submit. Given the nature in addition to this word document you may have to submit text and C/C++ program files (with makefile). Without the makefile or compiling method described, any failure of compilation or running can cause points off. When submitting a lab assignment using turn-in system, pack all these files in a zip file and upload the zip file in the turn-in system. For turn-in system instructions see - turn-in. Prepared
by Dr. Riccardo Bettati, Zhongwei
Jiang and Daniel Miller In
the CPSC 313 Lab we will be solving a number of increasingly more challenging
system-programming machine problems. They will exercise our skills in making
use of system resources and services, such as the file system, process
control, process intercommunication, and networking and distributed
computation. We will be using Solaris for this lab, which is a derivative of
UNIX SVR4. In the following, you find a list of FAQ's for this lab, which
should address most of the issues you may encounter when getting started with
the lab. (If you should notice something missing in this document, please let
us know, and we will address it.) Lab Presentation: Basic
Unix/Linux Programming CPSC
313 Lab FAQ: 1. Where can I find the course homepage? The
course home page for CPSC 313 can be found under http://faculty.cs.tamu.edu/ward/courses/313.s11/index.html.
The homepage has all relevant information for the course, such as contact
information of instructor and TA, links to slides and other information, and
a link to the lab website. Follow this link to access information about lab
assignments, resources, and other items. 2. What is my user name and password for the Lab machines? All
students who register for courses in the CS Department are given a CS
account. This account comes with a user name, and e-mail account and a home
directory with considerable amount of disk space reserved. Your e-mail
account will be of the type <xxx>@cs.tamu.edu,
where <xxx> is your user id. Your user name and password to login to the Unix system
will be the same as your email account. Details about claiming your CS account can be found at https://csnet.cs.tamu.edu/helpdesk/docs/view.php?doc_id=19
. 3. How do I turn in my labs? Turn in your lab source code and other files
using the submission system on CSNET. Details about this can be found at https://csnet.cs.tamu.edu/helpdesk/docs/view.php?doc_id=24
. Each submission will typically consist of a Lab report, a
directory with one or more source files, and a directory with one or more
output files. Please follow the following structure and naming convention
when submitting your Lab assignments:
- labreport.doc (or .pdf) - src (directory) - xxxx.c(or .cpp
or .C) - xxxx.h (or .H) - ... - output (directory) Compress all the files and directories into one file with
the name: <lastname>_<firstname>_<LabNo>.zip and then upload when you hand in your lab
assignment. For example, if your name is John Roberts, and you are
going to submit Lab 3, your compressed file name would be
Roberts_John_Lab3.zip. 4. Can I edit my files from my Windows account? Yes; your home directory on your Windows account is the
same as on your UNIX account. If you are more comfortable, you can edit the
source files in a Windows environment, using any of the development
environments such as Visual Studio, Borland C/C++ Builder, Eclipse and
others. Any changes to the files will be visible from your UNIX
account, where you compile and run your program. 5.
How do I compile and run my
program on the UNIX machines? 6. I
want to complete my assignments from home! How can I access the CS VPN from
off-campus? 7.
How can I access the
UNIX lab machines remotely? 8.
How do I use a UNIX
system? 9.
UNIX has so many commands,
functions, and system calls! Where can I find documentation?
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Department
of Computer Science and Engineering TAMU
3112 Texas
A&M University, College Station, Texas 77843-3112 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||