CSCI 331 Syllabus

Meetings: People and times

The course instructor for CSCI 331 is J Dean Brock. The course will meet on Tuesday and Thursday from 4:10 PM to 5:50 PM in RRO 217 or RRO 223.

If UNC Asheville is following its Late Start Schedule, the class will meet from 4:30 PM to 5:50pm PM.

Class home page

All class handouts, including homework assignments, can be found through the following URL:

Textbook and readings

There is no required textbook but there is a course reading list consisting of public domain Internet references, sections of “electronic” books from Ramsey Library, articles from the ACM Digital Libary, and information-filled blogs such as Bruce Schneir’s. Traditionally, a significant part of an operating systems course is taught using classic references. Don’t be suprised if you are asked to read an article from the 70’s.

Catalog Course Description

Concepts of operating systems: processes, synchronization, memory management, filesystems and security. Prerequisites: CSCI 202, 255.

Learning objectives

In 2008, the Association for Computing Machinery and the IEEE Computer Society published Computer Science Curriculum 2008 (CS2008), a collection of recommendations for undergraduate computer science programs.

The CS2008 recommended that all computer science students should have a study of operating systems and contained the following definition of the field:

An operating system defines an abstraction of hardware behavior with which programmers can control the hardware. It also manages resource sharing among the computer.s users. The topics in this area explain the issues that influence the design of contemporary operating systems. Courses that cover this area will typically include a laboratory component to enable students to experiment with operating systems. Over the years, operating systems and their abstractions have become complex relative to typical application software. It is necessary to ensure that the student understands the extent of the use of an operating system prior to a detailed study of internal implementation algorithms and data structures. Therefore these topics address both the use of operating systems (externals) and their design and implementation (internals). Many of the ideas involved in operating system use have wider applicability across the field of computer science, such as concurrent programming. Studying internal design has relevance in such diverse areas as dependable programming, algorithm design and implementation, modern device development, building virtual environments, caching material across the web, building secure and safe systems, network management, and many others.

Learning objectives in theory

CS2008 calls for at least 20 “core” hours of study in operating systems with the following required areas:

We are also going to look at three elective areas of operating systems.

CS2008 also recommends coverage of “Net Centric Computing” (a term that seems rather dated after only four years), and we will also cover the two non-introductory required areas in that subject.

Learning objectives in practice

Within these dozen or so areas there are about one hundred learning objectives which we are not going to enumerate fully here. However, four of these learning objectives will be very appropriate for the hands-on lab portion of this course.

Additionally, I am going to add three of my own hands-on learning objectives.

Well those are the goals. We’ll see how it all works out. Clearly many of these projects will be done in groups.


The following weights are used in computing the course grade.

Grade component Weight
Homework 1/2
Projects 1/3
Presentations 1/6


Students will complete frequent assignments to be turned in at class or submitted via the UNCA moodle system.

Generally homework assignments will be simple “finger” exercises applying topics recently covered in class. It is acceptable to talk with other students about a homework assignment, but you must turn in your own exercise.

A strict late policy will be applied to homework; however, you will be allowed to drop your two lowest homework grades.


About once every three weeks a group project assignment will be given. These will be done in groups of three or four students. To promote student interaction, no two students may be in the same group more than once.

The details of the project will be specified in classroom negotiations held at the beginning of the term. However, I suggest they resemble some of the pratical learning objectives mentioned above.


Each student will make three Pecha Kucha style presentations during the course. The final presentations will be during the final exam period.


The following numerical scale will be used in assigning grades based on Score, the score computed using the weights described above.

Score ≥ 93A
Score ≥ 90 & Score < 93A-
Score ≥ 87 & Score < 90B+
Score ≥ 83 & Score < 87B
Score ≥ 80 & Score < 83B-
Score ≥ 77 & Score < 80C+
Score ≥ 73 & Score < 77C
Score ≥ 70 & Score < 73C-
Score ≥ 67 & Score < 70D+
Score ≥ 63 & Score < 67D
Score ≥ 60 & Score < 63D-
Score < 60F

There will no “rounding-up” in computing the final grade. A score of 69.95 is less than 70 and results in a grade of D+.

Accommodations for Students with Disabilities

University of North Carolina at Asheville is committed to making courses, programs and activities accessible to persons with documented disabilities. Students requiring reasonable accommodations must register with the Disability Services Office by providing supporting documentation. All information provided will remain confidential. For more information please contact the Disability Services Office at (828)232-5050 or or visit them in the OneStop Student Services Center.

Email Communication

Academic administrators at UNCA have told instructors that information protected by the Family Educational Rights and Privacy Act should only be sent to official university email addresses. Information related to recorded grades is clearly protected, as is any discussion that would allow a reader to draw conclusions about your performance or attendance in class.

For more information

The best way to get in touch with me is to send email to If you need to see me, send me email to arrange an appointment.

I get lots of email, so please include CSCI 331 in the subject line.