Instructor Information
Dr. Hyrum D. Carroll
TSYS School of Computer Science
Columbus State University
CCT 442
(706) 507-8182
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:
Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Cost: Free (enhanced paid editions exist)
Required:
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. Nontrivial 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:
- A broad general education assuring an adequate foundation in science and mathematics relevant to computing
- A solid understanding of concepts fundamental to the discipline of computer science
- Good analytic, design, and implementation skills required to formulate and solve computing problems
- 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
- Students will be able to define and discuss terms and concepts regarding processes and threads;
- Students will demonstrate their ability to create multiprocess/multithread programs and synchronize their actions;
- Students will be able to analyze CPU scheduling algorithms, and memory management techniques to describe their relative advantages and disadvantages; and
- Students will demonstrate basic skills in system programming.
- Strategies and Actions used to produce the outcomes:
- Lectures and classroom discussions
- Individual programming assignments
- ABET criteria covered: A, B, C, I, J, K
- Assessment methods: Written exams and programming assignments
Course Assessment
- 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.
- 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!!!!
- Students must have access to computers for doing assignments.
- 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
- Attend EVERY class.
- Be prepared for class by reading assigned material and completing exercises before class.
- Take notes in class.
- Review notes taken in class.
- Start working on the projects as soon as possible, and seek help as soon as needed. Do NOT wait for the last minute to work on your projects.
- Ask questions during class or after class. Do NOT wait until test time to ask all of your questions.
- Find study buddies to study together (but do your own work).
- Do your own work; zeros can drastically hurt your grade.
- SWEET:
- Sleep
- Water
- Eating
- Exercise
- Time
What To Do When You Get Stuck
General steps for addressing a coding challenge:
- Isolate the problem and replicate it in the simplest form possible
- Search for answers (e.g., in the book, on-line, etc.)
- 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
- C compiler
- An office suite such as Microsoft Office, Open Office of Google Doc
- To open PDF files you might need Acrobat Reader
- Browser Plugins (Pdf files, QuickTime files, MP4 files) can be usually be obtained at the browsers website.
- Google Chrome
- Firefox
- Safari
- Internet Explorer (Caution: IE is often problematic for D2L-CougarVIEW)
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, transmit, promote, or distribute content that is known to be illegal.
- Never post harassing, threatening, or embarrassing comments.
- If you disagree with someone, respond to the subject, not the person.
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:
- manage your time and maintain the discipline required to meet the course requirements,
- come to class prepared to ask questions to maximize your understanding of the material,
- complete all readings,
- complete all assignments,
- complete all quizzes and exams,
- actively participate in classroom discussions,
- read any e-mail sent by the instructor and respond accordingly (always include the original message in your response!), and
- make sure your class attendance is recorded by submitting your name, written legibly, along with feedback on the topic discussed in the class at the end of each class meeting.
"
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:
- lead the class discussion and answer students' questions
- prepare and deliver lessons covering the required topics
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)
- ability to apply knowledge of computing and mathematics appropriate to the discipline;
- ability to analyze a problem, and identify and define the computing requirements appropriate to its solution;
- ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs;
- ability to function effectively on teams to accomplish a common goal;
- understanding of professional, ethical, legal, security, and social issues and responsibilities;
- ability to communicate effectively with a range of audiences;
- ability to analyze the local and global impact of computing on individuals, organizations and society;
- recognition of the need for, and an ability to engage in, continuing professional development;
- ability to use current techniques, skills, and tools necessary for computing practice.
- 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;
- ability to apply design and development principles in the construction of software systems of varying complexity.
CS Program Objectives:
Our graduates will have achieved:
- A broad general education assuring an adequate foundation in science and mathematics relevant to computing.
- A solid understanding of concepts fundamental to the discipline of computer science.
- Good analytic, design, and implementation skills required to formulate and solve computing problems.
- The ability to function and communicate effectively as ethically and social responsible computer science professionals.