CMSC 216
Introduction to Computer Systems


CMSC 216
Syllabus

Information
Projects
Readings
Lectures
Exams
Dates
Changes

Submit server
Grades system

 

 

 Announcements (use the scroll bar to see older ones)

May 22
  • Please refrain from sending email asking what your course grade was; course grades will be available as soon as Testudo is updated.  Check Testudo later tonight or tomorrow.

  • Dr. Sussman's students (sections 010X): if you have questions while Dr. Sussman is out of the country, you may contact Larry Herman, who will do his best to answer them in the interim.  Larry Herman has the finals from your sections as well, in case you would like to see yours while Dr. Sussman is away.

  • The Project 7 secret tests are in the public Grace directory, all of the results for all projects should now be visible on the submit server, and all of the grades for all coursework should now be visible on the grade server.

  • The final exam statistics were:

    average:
    130.8/200 (65.4%)
    standard deviation:
    27.3

    Final exam distribution:

    90-100% (180-200):
    5
    80-89% (160-179):
    30
    70-79% (140-159):
    45
    60-69% (120-139):
    64
    50-59% (100-119):
    44
    40-49% (80-99):
    15
    < 40% (< 80):
    10

  • Have a great summer!
May 10

Project 6 secret tests are in public Grace directory and results are visible on submit server.

May 9

Practice final exam answers posted.

The instructors will have office hours on Friday and Saturday, before the final exam. Hours are:
  • Friday: 11AM–1PM – L. Herman
    2PM–4PM – A. Sussman
  • Saturday: 1:30PM–3PM – L. Herman
May 8

Hyun will have some extra office hours this afternoon, from 5:00-6:30 p.m., so if you have any last-minute questions you can get them answered then.

May 6
  • Practice final exam posted.

  • Project 5 secret tests are in public Grace directory and results are visible on submit server.
May 3

Dr. Sussman's office hours today are from 2-3PM instead of 3-4PM.

May 2
  • The final deadline for submitting any projects in order to satisfy the requirement of having at least half the public tests working, for all projects, by the end of the semester, so as to be eligible to pass the course, will be Thursday, May 17, 8:00:00 p.m.  Such submissions will not be worth any additional credit.  See the course syllabus for full details about this requirement.

  • Project 7 public tests are in the public Grace directory and the submit server is open for submissions.

  • Exam 2 answers are posted. For grading questions, see the course instructors in office hours.
May 1

Project 7 is posted, and the project tarfile is in the public Grace directory.

April 30
  • For project 6, due today, there is a clarification about error messages you have to print. We will not test cases where processes run in background have errors when they are running, because it is not always possible to determine the exit status of a background process in a timely way.
  • If you are having trouble with the campus wireless network today (we have heard reports that it is unreliable), you can go to any of the OIT workstation labs to work on your project. The locations of the OIT labs are listed at www.oit.umd.edu/wheretogo/showLoc.cfm.
April 28

Ran will have some extra office hours late Monday afternoon, from 5:00-6:30 p.m., so if you have any last-minute questions you can get them answered then.

April 26

For Project 6, there has been some confusion about output file redirection. Either form, truncating with ">" or appending with ">>", creates the output file if it does not already exist.

April 21

Project 6 public tests are in the public Grace directory and the submit server is open for submissions.

April 19

Dr. Sussman's office hours today will start at 3:30 instead of 3:00

April 17

Practice Exam 2 answers posted.

Project 4 secret tests are in public Grace directory and results are visible on submit server.

April 16

Project 6 is posted, and the project tarfile is in the public Grace directory.

April 15

Practice Exam 2 is posted

April 12

If you would like to help a fellow undergraduate by completing a three-minute survey about Ethical Hacking click here.

April 11

Matthew will have some extra office hours late tomorrow afternoon (Thursday the 12th), from 5:00-6:30 p.m., so if you have any last-minute questions you can get them answered then.

April 6

Project 5 public tests are in the public Grace directory and the submit server is open for submissions.

April 3

Project #5 is posted, and the project tarfile is in the public Grace directory.

April 2
  • Many students have a large number of unnecessary files, that take up a great deal of disk space.  These are files whose names end in .gch.  Please go through all of your project directories, and remove any files whose names have the extension .gch, to free up much of the course disk space.
  • Note the extra office hours for this afternoon mentioned below.
April 1

Mohammed will have some extra office hours late tomorrow afternoon (Monday the 2nd), from 5:00-6:30 p.m., so if you have any last-minute questions you can get them answered then.

March 29

Before submitting, you should execute the command "make clean" followed by "make public01 public02 public03 public04 public05 driver" to ensure that your makefile builds all the public tests correctly.  (Note: the names must appear in this order in the command.)

March 28

Project 4 public tests are in the public Grace directory and the submit server is open for submissions.

March 27

For Project #4, anything from Project #3 that does not have different behavior specified in this project should apply exactly as was specified for Project #3. One example of this rule is for the return values for rm() and re_name(), which should both return 0 if no error condition occurs, just as for the functions written for Project #3.

March 25

For Project #4, the specification for re_name() was incomplete. If either the first or second argument are empty strings, the function should return -2. The posted specification has been updated.

We have also noticed that the error message printed by the driver for re_name() may be somewhat confusing in the case where -3 is returned, but as long as your function returns the correct value for each case specified, your function is correct.

March 18

Project #4 is posted, and the project tarfile is in the public Grace directory.

March 17

Project #3 secret tests are in the public Grace directory and results are visible on the submit server.

March 15

Exam #1 answers are posted.

March 9

Please note that the Project #3 assignment says, in several places, that arrays may not be used to store the components of a Filesystem.  You must use some type or combination of linked structures.  We noticed that a few students are not following this restriction, which will lead to a very poor result on the project.  Linked structures vs. arrays were discussed in CMSC 132 (some examples of linked data structures are linked lists and binary trees), and although arrays are obviously very useful, the purpose of this project is to use linked structures in C.

Character strings may be used to store file and directory names, but as the project assignment says there is no maximum size for names, so nothing in your definition of a Filesystem can assume any type of limit.  The only time that you know the size of a name is when the functions mkdir() and touch() are called.

If you have any questions about how to design your data structure feel free to ask in office hours.

March 7

For technical reasons, we have to give you the source file driver.c instead of the object file driver.o (as well as an updated Makefile for the public tests). The original driver.o may not work correctly with your code, so don't use it. You can either copy the new files from the 216public/project3 directory, or get the new project tarfile and public tests tarfile and and extract the files from there (only driver.o and the Makefile have changed, but it's OK to extract the tarfiles again). If your project worked with driver.o, it will still work with driver.c . And driver.c uses some I/O features that have not been discussed in class, so you don't have to read the code in driver.c or understand it, to use it.

March 5

Dr. Sussman's office hours for today are cancelled.

March 4

Project 3 public tests are in the public Grace directory and the submit server is open for submissions.

March 3

Practice Exam 1 is posted

February 29

Larry Herman's Thursday morning office hours (Thursday 10:30-11:30) will be cancelled tomorrow (March 1), and will be shifted to 11-12 next Thursday (March 8) due to a conflict.  All of his other office hours remain unchanged (including his Thursday afternoon office hours 4-5).

February 28

Project 3 is posted, and the project tarfile is in the public Grace directory.

February 25
  • The graded Project #1 style results have been emailed as described in class, the secret tests are available on the Grace machines, and the secret test results are visible on the submit server.
  • Larry Herman's office hours will begin on Monday, according to the schedule below and on the office hours handout.
February 18
  • Project 2 public tests are in the public Grace directory.  The submit server will be open for submissions shortly.
  • Note that there is only one Project #2 public test source file, public01.c, which is used for all nine public tests.  The program is the same, and only the input data file is different for each test.  Type the command make to build the executable public01, then run that same executable with input redirected from publicXX.input, comparing the results to publicXX.output, for all nine tests.  Note that the public test uses a function compare_arrays(), which is defined in the provided file testutils.c.
  • If your tests are in a file with a name of the form test*.c (for example test1.c, test02.c, etc.) the included Makefile will build your test executable if you give a command like make test1 or make test02.  Your tests can also use the function compare_arrays().  Or you may want to just use our public01.c test for all of your own tests, and only vary the input files, as we did, if you're sure you can test all the behavior that way.
February 15

Project 2 is posted, and the project tarfile is in the public Grace directory.
February 12

When we set the midterm dates on the syllabus we were basing things on an inaccurate date that had been on the University's website.  Since it will be helpful to have a little more time before exams, we moved the two midterm dates back by a week each; they will be on March 8 and April 19 rather than the dates that originally appeared.  Apologies for any confusion, and let us know if you have a problem taking the exams on the new dates..

February 8

On a UNIX system users can have conversations via messages that show up on each others' terminals (they say something like "talk: connection requested"). A user can also write things that show up on everyone's terminal (they start with "Broadcast Message"). Very occasionally these are informative messages from the systems staff, but most often they are just people wasting everyone's time. To suppress these types of messages use the command mesg n. To have this take effect every time you log in add it to the end of the file ~/.cshrc.mine. (Be sure to press return or enter at the end of the line, otherwise it won't work.)

February 7

Project 1 public tests are in the public Grace directory, and the submit server is open for submissions.
February 6

Project 1 is posted, and the project tarfile is in the public Grace directory.
February 2
  • The course office hours are posted under Information (and are also listed at the bottom of this page). Note: Larry Herman will not have office hours until further notice.

  • The course syllabus is posted under Syllabus.  Be sure to read the syllabus carefully.
January 30

Welcome to the CMSC 216 webpage!

  • Make sure you always have a correct and working email address entered in the University's records on Testudo. Check and change it here if necessary.

  • If you don't have one already, apply for a TerpConnect account at www.oit.umd.edu/new. It will be used to do programming work for this course.

Web Accessibility

Hours

01 lecture
TTh 11:00-12:15, CSIC 2117, Alan Sussman
  • 0101 discussion - MW 9:00-9:50, CSIC 3118
  • 0102 discussion - MW 10:00-10:50, CSIC 3118
  • 0103 discussion - MW 12:00-12:50, CSIC 3120
02 lecture
TTh 12:30-1:45, CSIC 2117, Larry Herman
  • 0201 discussion - MW 11:00-11:50, CSIC 3118
  • 0202 discussion - MW 12:00-12:50, CSIC 3118
03 lecture
TTh 2:00-3:15, CSIC 2117, Larry Herman
  • 0301 discussion - MW 1:00-1:50, CSIC 3118
  • 0302 discussion - MW 2:00-2:50, CSIC 3118
  • 0303 discussion - MW 11:00-11:50, CSIC 3117

Prerequisites

CMSC 132  with a grade of C or better. 

Notes
Changes (correcting errors, clarifying ambiguities, etc.) to the web pages, projects, due dates, etc. will be placed on the recent changes web page.

Staff

Name Email Phone Office Office Hours
Alan Sussman als-at-cs.umd.edu

x53360

AVW 4145 Mon 3:00-4:00
Tue 4:00-5:00
Thu 3:00-4:00
Larry Herman larry-at-cs.umd.edu

x52762

AVW 1111 Mon 10:00-11:00
Tue 10:00-11:00
Wed 1:30-2:30
Thu 10:30-11:30, 4:00-5:00
Hyun Cho cho-at-cs.umd.edu   AVW 1112 Mon 10:00-11:30
Wed 10:00-11:30
Thu 2:00-3:00
Derek Juba juba-at-cs.umd.edu   AVW 1112 Wed 11:30-1:00
Fri 12:00-2:30
Rongjian Lan rjlan-at-cs.umd.edu   AVW 1112 Mon 1:00-3:00
Wed 1:00-3:00
Ran Liu ranliu-at-cs.umd.edu   AVW 1112 Tue 3:00-5:00
Fri 10:00-12:00
Matthew Mauriello mattm-at-cs.umd.edu   AVW 1112 Mon 11:30-1:30
Thu 3:00-5:00
Mohammed Salem mefathy-at-cs.umd.edu   AVW 1112 Tue 12:00-2:00
Thu 12:00-2:00
Chengxi Ye cxy-at-cs.umd.edu   AVW 1112 Tue 10:00-12:00
Thu 10:00-12:00
Alex Pinkus apinkus-at-umd.edu   AVW 1112 Mon 3:00-5:00
Wed 3:00-5:00
Fri 3:00-5:00

Schedule of topics (with approximate duration)

  • C/Unix Memory Model (1 week)
     
  • Moving from Java to C (3 weeks)
     
  • Pointers and dynamic data structures in C (2 weeks)
     
  • I/O, standard libraries (1 week)
     
  • Testing (0.5 weeks)
     
  • Assembly Language (1 week)
     
  • Process control (0.5 week)
     
  • Systems programming (1 week)
     
  • Program measurement and optimization (1 week)
     
  • Multithreaded programming with pthreads (1 week)
     
  • Libraries and linking (1.5 weeks)
     
  • Dynamic memory management (0.5 weeks)

 

   

Web Accessibility