G E O R G E T O W N C O L L E G E
CSC215 Spring 2010 Syllabus
CSC215 Computer Science II [ https://scholar.georgetowncollege.edu ]
MWF 11:00am-11:50am, Asher 102
Dr. Danny Thorne (dthorne0), Asher 121, 502-863-8362,
http://www.georgetowncollege.edu/Departments/mpc/thorne/
Course Description
Introduction to data structures such as linked lists,
stacks, queues, trees, more general graphs and heaps using static and dynamic
representations. Use of multi-dimensional arrays and recursion.
[Instructor's note: An emphasis of the course will be on learning C++,
understanding abstract data types,
and practicing object oriented programming in the context of C++.]
Text
Main and Savitch,
Data Structures and Other Objects Using C++, Third Edition.
We will plan to cover chapters 1 through 10 and 14
(6 and 14 covered lightly).
Some material from chapter 11 may be covered if there is time.
See the authors' online material:
http://www.cs.colorado.edu/~main/cs1300 ,
http://www.cs.colorado.edu/~main/projects .
Grading
Categories and weightings:
Projects 0.55,
Exam One 0.15,
Exam Two 0.15.
Final 0.15.
Numerical scores between 0 and 1 (0% and 100%) are computed for
assignments, quizzes and exams by dividing the
total number of points earned by the total number of points possible.
Scores for categories are computed by averaging the individual scores
in the categories.
The score for each category is then weighted according to the above
weights to give an overall course score between 0 and 1.
The overall score for the course is then mapped to a letter grade for
the course as follows:
[0.925,1.000]-->A,
[0.875,0.925)-->AB,
[0.825,0.875)-->B,
[0.775,0.825)-->BC,
[0.700,0.775)-->C,
[0.600,0.700)-->D,
[0.000,0.600)-->F
.
Projects
Programming projects will be assigned and collected regularly.
Projects should be completed independently by each student
(see the Honor System section of the Student Handbook http://www.georgetowncollege.edu/studentlife/handbook.pdf).
That doesn't mean you cannot discuss concepts related to assignments
with each other, but you need to do your own work.
If you do discuss aspects of an assignment with others in a way that
helps you understand how to complete part(s) of the assignment, cite them on
your assignment submission (i.e., provide their name and how they helped you).
If you have to turn in homework late, provide a documented reason.
Always include a main() routine that demonstrates all of the
aspects of the assignment.
If you are unable to get parts of the program working correctly, have your
code output an explanation.
You will be docked for any part of the assignment that is not demonstrated
when I compile and run your code.
Of course, you will be docked if your code does not compile.
Comment out anything that makes your code fail to compile or that makes
your code crash and have your code output an explanation of what is
missing and why.
Always provide a file named output.txt that contains the output
from a run of your code. You can obtain this by the the command a.exe
> output.txt. Substitute whatever your executable file name is if
not a.exe. Note that we will not write interactive
programs in this class. All user input will come either from the command line
or an input file.
Submit homework via email. When we start writing programs involving multiple
files, put the files in a folder, zip the folder and email the zip file to
me. In Windows, you can zip the folder by right clicking on it and selecting
"Send to" a "Compressed (zipped) folder". (The phrasing might be a little
different in Vista, but I think it is about the same.) In Cygwin/Linux you
can zip a folder with the command zip -r FolderName.zip
FolderName/ .
You will learn to compile code via a unix-style command line
(e.g.,
http://www.cygwin.com,
http://www.mingw.org/)
in this class,
and you will learn to edit code in a "hardcore" programmer's text editor
(http://www.vim.org).
Exams
Tentative, approximate dates for the midterm exams are
late February for Exam 1 and mid April for Exam 2.
The first exam will probably be a take-home programming project.
The second exam will probably be a selection of the self-test questions from
the book. More details will be provided as the dates approach.
If you must miss an exam and want to make it up,
arrange it with me at least a couple of days before
the exam date, and provide a documented reason for missing.
The Final Exam is scheduled for
Wednesday, May 12, 9-11am.
However, we may have a final project instead of an in-class exam.
If so, the due date for the final project would be May 12th at 11am, the end
of the scheduled final exam period.
Attendance
Your attendance will be monitored. There is no explicit
category for attendance in the grading scheme for the course. However,
missed exams and homework will affect your grade. Furthermore,
attendance will flavor my decisions about borderline scores at the end
of the semester.
Office Hours My office hours
(
M 3:30p-4:30p,
T 1:30p-2:30p,
W 3:30p-4:30p,
R 1:30p-2:30p
)
are posted on my door and on my web page.
They might change, so check my door or the web page to confirm.
I am at your disposal independently of office hours.
You may call ahead, make an appointment,
or just drop by and see if I am available.
If I am unavailable due to work-related business when you drop by,
I will tell you; otherwise, I am happy to see you anytime.
Coding Style Conventions
- Line width: 80 chars (including documentation)
- Indentation size: 2 spaces (No tabs!)
- No trailing white space in your code.
- Always use scope symbols
{ } even when not technically necessary.
- File names for classes should correspond to the class name.
- Use the extension
.cc for C++ files (.h for headers).
- Do not use white space in file names or folder names!
- Get in the habit of using the
const qualifier wherever it is
appropriate.
- Double literals need decimal points. Int literals do not have decimals.
- Do not indent the bodies of namespaces.
- There are exceptions to some of these rules.