Description: CpSc 360 is an introduction to devices found in typical computer systems as well as the way in which information can be stored on those devices to enable reasonable access times. Emphasis will be placed on programming methods for storing and accessing information on these devices using C++.
Goals: To provide the student with concepts and knowledge of devices commonly found in computer applications as well as efficient ways of organizing information on those devices.
Prerequisites:
CpSc 241
Proficiency in data
structures and algorithm development.
Proficiency in the C++
programming language.
MajorTopics:
Introduction
to File Structures
Fundamental
File Processing Operations
Secondary
Storage and System Software
Fundamental
File Structure Concepts
Organizing
Files for Performance
Indexing
Cosequential
Processing and the Sorting of Large Files
B-Trees
and Other Tree-structured File Organizations
B+-Tree
Family and Indexed Sequential File Access
Hashing
Extendible
Hashing
Laboratory Projects:
Several
programming exercises will be assigned.
The due date of each assignment must be met if full credit is to be
awarded. Points will be deducted when
an assignment is late (see attached assignment policy). You are essentially expected to work
independently on the laboratory assignments.
You may only collaborate in the form of verbal discussion of ideas or
techniques. Discussion of assignments
with the use of paper and pencil, or other permanent recording devices is
strictly prohibited.
Grading Components: (Approximate)
Daily
Quizzes 20%
Examinations 50%
Laboratory assignments 30%
Grading Scale:
90% - 100% A
80% - 89% B
70% - 79% C
60% - 69% D
0% -
59% F
Grading Method:
There
will be 3 or possibly 4 exams given (including the final exam).
Exam
grades will be curved by dividing by the high score on the exam.
The
three lowest daily quiz scores will be dropped to allow for occasional events
that may cause you to miss lectures.
Daily
quiz makeup’s will not be given – even for excused absences.
Daily
quizzes will be curved by dividing the sum of all quizzes by the highest sum
among all students in the class.
Laboratory
assignments will not be curved.
Daily
Quizzes:
Daily
quizzes will be given during the first 10 minutes of each lecture period.
The
material included on the daily quizzes will be drawn from the notes of the
immediately preceding lecture.
These
notes will be placed on the web page www.cs.clemson.edu/~peck
in advance of each lecture so that you will be able to print a copy and take to
class to minimize the amount of clerical work and allow you to focus more on
the content of the lectures.
Programming
Assignments:
Programming
assignments will be usually be distributed on Tuesdays and will be due two
weeks from the date of distribution.
Each
assignment will be graded on a 20 point basis; however, some which require
significantly more time may be weighted more heavily in the computation of the
programming assignment component of your final grade.
Each
assignment should be turned in by 10:00 pm on the due date. Any assignment turned in after this time
will be counted as late. A late
assignment turned in sooner than one week after the due date (as marked by the
end of the lecture period one week after the due date) will be worth a maximum
of 75% of the points of an on-time assignment.
Assignments turned in after the one week late period will be checked for
accuracy but will be awarded no points (unless extenuating circumstances are
demonstrated).
Assignments
should be submitted by placing in the turn-in box for the course in the CpSc
360 Section 1 workspace found in www.cle.clemson.edu
web page.
Grading
will be based on a combination of:
Accuracy
- Did you get the correct solution?
Quality - Is
your algorithm sound?
Is your
program easy to read and understand?
Does
use good programming techniques?
Creativity
- Did you do anything that goes beyond
the requirements to make your program a better product?
The
secret to completing programming assignments on time is to start them as soon
as possible after they are handed out.
I will be available during my posted office hours and by appointment if
you need clarification on programming assignments. I will not, however, have large amounts of time to find standard
bugs in your programs.
You
are encouraged to use email to communicate with me. I read my mail regularly and will attempt to respond to your
questions promptly.