Instructor Information

Dr. Hyrum D. Carroll

TSYS School of Computer Science
Columbus State University
CCT 442
(706) 507-8182

Office Hours

Monday: 10:30 AM - 12:30 PM
Tuesday: 1:30 - 3:00 PM
Wednesday:   10:30 AM - 12:30 PM
Thursday: 12:30 - 3:00 PM
Friday: 10:30 AM - 12:30 PM
and by appointment
 

Classes

Section 01 02
Days Mondays, Wednesdays & Fridays Tuesdays & Thursdays
Time 1:00 - 1:50 PM 4:30 - 5:45 PM
Room CCT 408 CCT 408
CRN 80901 80902

Textbooks

Required:
textbook cover Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Cost: Free (enhanced paid editions exist)

Required:
First page of Essential C Essential C by Nick Parlante
Cost: Free

Recommended:
C: A Reference Manual, 5th Edition
Samuel P. Harbison and Guy L. Steele Jr.
ISBN: 0-13-089592X

Recommended:
Linux Pocket Guide, 3rd Edition
Daniel J. Barrett
ISBN: 978-1449316693

Course Description

An introduction to basic operating system level software concepts. Course topics include processes, threads, symmetric multi-processing, thread synchronization and memory management techniques.

Prerequisite

CPSC 2105 and CPSC 2108, both with grades of "C" or better.

Learning Outcomes

Description

This course is sequence designed to introduce students to the fundamental concepts of modern operating systems (e.g., CPU scheduling, memory management, synchronization, deadlock, file systems). The course focuses on the principles that underlie these concepts and to help students understand the role(s) each plays. Non­trivial assignments using the C programming language provide students with a first-hand experience using these concepts. The course is also intended to give CS students:
  1. A broad general education assuring an adequate foundation in science and mathematics relevant to computing
  2. A solid understanding of concepts fundamental to the discipline of computer science
  3. Good analytic, design, and implementation skills required to formulate and solve computing problems
  4. The ability to function and communicate effectively as ethically and social responsible computer science professionals.

Major Topics

Topics for this course include, but are not limited to: Operating System Structure; Process Management; CPU Scheduling; Threads; Process/Thread Synchronization; Deadlock; Memory Management; Virtual Memory; Storage Management; File Systems; and Security.

Academic Objectives

  1. Students will be able to define and discuss terms and concepts regarding processes and threads;
  2. Students will demonstrate their ability to create multi­process/multi­thread programs and synchronize their actions;
  3. Students will be able to analyze CPU scheduling algorithms, and memory management techniques to describe their relative advantages and disadvantages; and
  4. Students will demonstrate basic skills in system programming.
  5. Strategies and Actions used to produce the outcomes:
    1. Lectures and classroom discussions
    2. Individual programming assignments
    3. ABET criteria covered: A, B, C, I, J, K
    4. Assessment methods: Written exams and programming assignments

Course Assessment

  1. The class will meet for three, 50-minute (section 01) or two, 75-minute (section 02) lecture / discussion periods each week. Class time will focus on instruction, solving problems, programming in C and other computer science topics. Class times will reinforce the readings that need to be completed BEFORE class.
  2. Each student is expected to attend all class lectures, to read the textbook chapters BEFORE CLASS and to take notes. Students will be expected to participate in classroom discussions. This means you MUST read the book before coming to class!!!!
  3. Students must have access to computers for doing assignments.
  4. The ACM recommends the following: "As a general guideline, the amount of out-of-class work is approximately three times the in-class time. Thus, a unit that is listed as requiring 3 hours typically entails a total of 12 hours (3 in class and 9 outside)." Students will be expected to spend this time outside class reading the book, online materials and other materials; writing solutions to homework exercises and programming projects.

Study actively. Ask yourself questions, review your notes regularly, create concept maps, and discuss key concepts with peers and your instructor. FACT: Association is a key to memory, and cognitive research has shown that you will remember 10 percent of what you read, 20 percent of what you hear, 30 percent of what you see, 50 percent of what you hear and see together, 70 percent of what you say, and 90 percent of what you do!

A word about learning to write computer programs:
You CANNOT learn to program by just listening to how it is done and reading through examples in the lectures and text book. YOU MUST WRITE CODE!

There will be 2 – 3 exams scheduled during the semester: a final exam and 1 – 2 other exams. Each exam is cumulative, so any previously covered material is fair game. All exams are closed book, closed notes, closed neighbor, with no use of laptops, tablets, calculators, phones, or other electronic devices.

Performance Evaluation

Category Percentage
Quizzes 20%
Assignments & Projects   30%
Exams 30%
Final Exam 20%

Grading

Course letter grades are determined by the final course average according to the following chart:
Approximate
% Range
Course
Grade
Levels of
Achievement
90 – 100 A
  • fulfills or exceeds all of the assigned content requirements
  • knowledge of the subject is accurate throughout
  • exhibits convincing range and quality of knowledge, having done appropriate research, if applicable
80 – 89 B
  • fulfills all of the important assigned content requirements
  • knowledge of the subject is accurate throughout except in minor details
  • seems informed on the subject, having done appropriate research, if applicable
70 – 79 C
  • fulfills most of the important assigned content requirements
  • knowledge of the subject is generally accurate, though flawed
  • exhibits limited range or quality of knowledge, having done limited appropriate research, if applicable
60 – 69 D
  • fulfills some of the important assigned content requirements
  • knowledge of the subject is generally accurate, though flawed
  • exhibits limited range or quality of knowledge, having done minimal appropriate research, if applicable
<60 F
  • fails to address the important requirements of the course
  • knowledge of the subject is generally inaccurate and/or lacks range or quality
The last day to drop without a grade is Friday, August 24, 2018.

Course Websites

The course schedule, assignment descriptions, syllabus, etc. are hosted at http://csc.columbusstate.edu/carroll/3125/. Grades, assignment submissions, quizzes, etc. are hosted in CougarVIEW. You are expected to monitor the websites and your CSU email account frequently (i.e., at least every other day).

Email

You must be able to read and respond to e-mails sent to your university email account. Additionally, I do not use nor check the CougarVIEW email account.

Lecture

Attendance is required by the university and will be recorded at the beginning of each class. If you can not make a class, please inform me and get the relevant materials from a classmate. Although you'll miss out on the attendance points for that day, you'll at least minimize the impact.

Computers are permitted in lecture for note taking and completing exercises. Other activities such as web surfing, stock trading, and social networking are inappropriate. Not only do they distract you but also others.

Students that do not attend both of the first two lectures may be dropped from the course.
An audible cell phone ring and noise during class will require the possessor to bring fruit, cookies, or equivalent for the entire class during the next lecture time.

Additionally, all views are to be heard and engaged respectively. As scholars, we are expected to analyze subject matter critically and express reasonable positions that are based on logic and fact rather than on emotion.

Attendance Bonus: Research shows a strong positive correlation between attending class and a good grade in that class. To make that correlation even more positive, the following attendance bonus is offered. If a student does not miss any class, then their final base course total will be increased by 3%. If a student only misses one class, then 2% will be added; if a student only misses two classes, then 1% will be added. No bonus will be applied for students missing three or more classes.
Note: University events with required attendance will not penalize your attendance bonus.

Projects

Projects must be written in C. They are due at 11:59 PM Eastern Time on the assigned due date (unless indicated otherwise). Late projects will be reduced by the following schedule (Sunday and Monday are counted as 1 day late):
# of days late Penalty
1 10%
2 30%
3 50%
≥ 4 100%
For example, let's say projectX was due on a Friday at 10:00 PM, and that you earned 85% of the total points. If it turned in before the deadline on Friday, then you get all 85%. If it's turned in on Saturday before 10:00 PM, you will get 76.5% (= 85% * [100% - 10%]). If it's turned in on Sunday or Monday before 10:00 PM, you will get 59.5% (= 85% * [100% - 30%]). If it's turned in on Tuesday before 10:00 PM, you will get 42.5% (= 85% * [100% - 50%]). If it's turned in after that, you will get 0%.
If an assignment contains portions that are more than 75% similar to other material (not provided by the instructor), zero points will be awarded. Additionally, the a BART incident may be recorded as well.
Students missing two or more projects will receive an F or FA in this course.

Final Exam (Comprehensive)

Section 01 02
Date Friday, December 7, 2018 4:15 - 6:45 PM Tuesday, December 11, 2018 4:15 - 6:45 PM

Advice for Succeeding in this Course

What To Do When You Get Stuck

General steps for addressing a coding challenge:
  1. Isolate the problem and replicate it in the simplest form possible
  2. Search for answers (e.g., in the book, on-line, etc.)
  3. If you've already spent an hour trying to solve the problem, contact me during my office hours or via email. If you email me, mention what you've already attempted to solve the problem (for example, the steps above). (Note, if you email me a question, and then later figured out a solution, please send a second email indicating that it's resolved :)

Administrative Policies and Academic Resources

ADA and 504 Statement

If you have a documented disability as described by the Americans with Disabilities Act (ADA) and the Rehabilitation Act of 1973, Section 504, you may be eligible to receive accommodations to assist in programmatic and/or physical accessibility. We recommend that you contact the Center for Accommodation and Access located in Schuster Student Success Center, Room 221, 706-507-8755 as soon as possible. The Center for Accommodation and Access can assist you in formulating a reasonable accommodation plan and in providing support. Course requirements will not be waived but accommodations may be able to assist you to meet the requirements. Technical support may also be available to meet your specific need.

Academic Integrity

All students are expected to recognize and uphold standards of intellectual and academic integrity. A basic and minimum standard of conduct in academic matters is that students be honest and that they submit for credit only the products of their own efforts. Both the ideals of scholarship and the need for fairness require that all dishonest work be rejected as a basis for academic credit. They also require that students refrain from any forms of dishonorable or unethical conduct related to their academic work.

You are expected to comply with the provisions of Section XIIIB, "Academic Misconduct," of the Columbus State University Student Handbook (see https://students.columbusstate.edu/docs/handbook_2017.pdf). In particular, the Columbus State University Student Handbook states:

"No student shall give or receive assistance in the preparation of any assignment, essay, laboratory report, or examination to be submitted as a requirement for any academic course in such a way that the submitted work can no longer be considered the personal effort of the student submitting the work."

Examples of Academic Dishonesty include but are not limited to: Plagiarism (see definition below), giving or receiving unauthorized assistance on exams, quizzes, class assignments or projects, unauthorized collaboration, multiple submissions (in whole or part) of work that has been previously submitted for credit.

Plagiarism is any attempt to represent the work or ideas of someone else as your own. This includes purchasing or obtaining papers or other forms of work including computer programs from any person and turning them in as your own. It also includes the use of paraphrases or quotes from a published source without properly citing the source. All written assignments may be submitted for textual similarity review to Turnitin.com for the detection of plagiarism.

Any work turned in for individual credit must be entirely the work of the student submitting the work. All work must be your own. You may share ideas but submitting identical assignments (for example) will be considered cheating. You may discuss the material in the course and help one another with debugging; however, I expect any work you hand in for a grade to be your own. A simple way to avoid inadvertent plagiarism is to talk about the assignments, but not read each other's work or write solutions together. Keep scratch paper and old versions of assignments until after the assignment has been graded and returned to you. If you have any questions about this, please contact me immediately.

For assignments, access to notes, textbook, books and other publications is allowed. Stealing, giving or receiving any code, diagrams, drawings, text or designs from another person (CSU or non-CSU) is not allowed. Having access to another person’s work on the system or giving access to your work to another person is not allowed. It is your responsibility to keep your work confidential.

No cheating in any form will be tolerated. Please be aware that anyone caught cheating or plagiarizing in this class will receive a “0” for the assignment/exam and will receive a “0” for the course for any repeat offense. Any incidents of cheating will be reported and noted in your file. A third cheating incident will result in expulsion from the program.

Electronic Devices and Academic Integrity: Cell phones embody amazing technology but are the an aggressive distraction. All cell phones must be TURNED OFF (not just put on silent) before the class starts. Any violators of this policy will receive a first-time warning and WILL be asked to leave the class on subsequent occasions.

The use of any electronic device during a test or quiz is prohibited. This includes cell phones, handheld calculators, tablets, and laptops. Any use of such a device during a test or quiz will be considered a breach of academic integrity.

You are welcome to bring a laptop or tablet to the class for taking notes or for trying out code, but NOT for checking email, social media or for surfing the Web.

Student Complaint Process

Information and resources for student complaints and academic appeals are located at the following link on the Columbus State University website http://aa.columbusstate.edu/appeals/.

Course Attendance Policy

Class attendance is the responsibility of the student, and it is the student's responsibility to independently cover any materials missed. Class attendance and participation may also be used in determining grades. It is your responsibility to make sure your attendance gets recorded for every class meeting (see under Student Responsibilities below). At my discretion, I may drop you from the course for absences more than two weeks of classes (6 classes for courses meeting three times per week; 4 classes for courses meeting twice per week). Missing an exam or quiz is considered an absence. Missed classes caused by participation in documented, formal, University-sponsored events will not count as absences provided you notify me of such anticipated absences in advance and as soon as possible.

Refer to the CSU Catalog (https://academics.columbusstate.edu/catalogs/current/regulations/undergraduate/index.php#attendance) for more information on class attendance and withdrawal.

Technical Resources

Hardware Requirements

How do I know if my computer will work with CougarVIEW (D2L Brightspace)?

Software Requirements

For help with logging in to the campus network and email issues, you should visit the Student Help Desk located in the library. (The Help Desk also has a computer repair service for students.)

Other

How to Access the Course

You can access the course through CougarVIEW at: cougarview.columbusstate.edu.

Use your school credentials to access the site. If CougarVIEW will not let you in, go to the CSU Help Desk or call them at (706) 507-8199. If you are still having problems gaining access a day or so after the class begins, please e-mail me immediately.

Once you've entered CougarVIEW, you will see a list of courses you have access to. The CPSC 3125 course is listed as "Operating Systems Section ... Fall 2018 ...". Next to this, you should see my name as the instructor. You may also see new discussion postings, new calendar postings, and new mail messages. Clicking on the name of the course will take you to the course's home page. If you do not see the "Operating Systems Section ... Fall 2018 ..." course in the list, please e-mail me immediately.

Once you have clicked on the course's name and accessed the particular course itself, you will find a home page with links to other sections and tools, and a menu on the left-hand side. Feel free to explore the areas in the course.

If you need technical support related to the use of CougarVIEW, you can refer to any of the links located in the "Technical Resources" widget located on your "My Home" and your "Course Home" pages. If you cannot solve your problem after reviewing the knowledge base help pages, you can call help center 24-7 and talk to a Help Center agent. The number is 1-855-772-0423.

Discussion Etiquette
CSU is committed to open, frank, and insightful dialogue in all of its courses. Diversity has many manifestations, including diversity of thought, opinion, and values. Students are encouraged to be respectful of that diversity and to refrain from inappropriate commentary. Students as well as faculty should be guided by common sense and basic etiquette. The following are good guidelines to follow: Never post content that is harmful, abusive; racially, ethnically, or religiously offensive; vulgar; sexually explicit; or otherwise potentially offensive.
Student Responsibilities
As a student in this course, you are responsible to: "I didn't know" is NOT an acceptable excuse for failing to meet the course requirements. If you fail to meet your responsibilities, you do so at your own risk.
Instructor Responsibilities
As your instructor in this course, I am responsible to: Furthermore, below are my target response times:
Deliverable Target
Email responses 2 school days
Quizzes posted 4 days (so that it's open at least 3 days)
Assignments posted 5 days before it's due
Projects posted 7 days before it's due
Quizzes graded 2 classes later
Assignments graded 4 school days
Projects graded 7 days
Exams graded 2 classes later

ABET Criteria

Students in CS/IT will have a(n)
  1. ability to apply knowledge of computing and mathematics appropriate to the discipline;
  2. ability to analyze a problem, and identify and define the computing requirements appropriate to its solution;
  3. ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs;
  4. ability to function effectively on teams to accomplish a common goal;
  5. understanding of professional, ethical, legal, security, and social issues and responsibilities;
  6. ability to communicate effectively with a range of audiences;
  7. ability to analyze the local and global impact of computing on individuals, organizations and society;
  8. recognition of the need for, and an ability to engage in, continuing professional development;
  9. ability to use current techniques, skills, and tools necessary for computing practice.
  10. ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices;
  11. ability to apply design and development principles in the construction of software systems of varying complexity.
CS Program Objectives:
Our graduates will have achieved:
  1. A broad general education assuring an adequate foundation in science and mathematics relevant to computing.
  2. A solid understanding of concepts fundamental to the discipline of computer science.
  3. Good analytic, design, and implementation skills required to formulate and solve computing problems.
  4. The ability to function and communicate effectively as ethically and social responsible computer science professionals.
ACM Code of Ethics flyer