COSC 071: Computer Science 1
Fall 2002 - Section 1
Tuedsay and Thursday, 4:15 to 5:30
Reiss 283
Logistics
Instructor: Clay Shields
Office: Reiss 222
Office Hours: Tuesday 10:00 - 12:00
Wednesday 10:00 - 12:00
Telephone: (202) 687 2004
Fax: (202) 687 1835
Email: clay at cs dot georgetown dot edu
Mailbox: Reiss 238
Voice: Hey, Clay!
TA Information:
All TA office hours will be held in Reiss 261 unless otherwise announced.
Name |
E-mail Address |
Office Hours |
Grading Projects for students with last names satrting with: |
Wesley Jo Dorman |
wesleyd@cs.georgetown.edu |
Monday, Wednesday 4:00 - 6:00 PM |
H through L |
Nathaniel Guy |
nmg5@cs.georgetown.edu |
Saturday, Monday 6 - 8 PM |
A through G |
Matt Mauney |
mmm39@cs.georgetown.edu |
Monday, Wednesday 12:30 - 2:30 PM |
R through Z |
Amy Sliva |
als35@cs.georgetown.edu |
Tuesday, Thursday 12:30 - 2:30 PM |
M through Q |
Syllabus
This class is intended for computer science majors and minors. Other
students with a serious interest in learning C++ programming may also
take this class. We will cover the following topics: basic data
types, the C++ string class, variables and constants, and their
declaration, input/output (cin/cout) operators, assignment operators,
arithmetic operators, conditional control structures, repetition
control structures, basic file operations, user-defined functions,
value and reference parameters, scope rules, name precedence, function
overloading, template functions, elementary software engineering
principles, Standard Template Library (STL), the vector class,
elementary searching and sorting, abstract data types, stacks,
user-defined classes, operator overloading, pointers, self-referential
classes, dynamic object creation and destruction, linked lists,
recursion, abstract base classes, virtual functions, polymorphism,
template classes, and exception handling. This course will satisfy
the college science requirement.
If you are simply trying to satisfy an elective requirement, I would
highly recommend taking Introduction to Computers and Networks (COSC
010). COSC 071 is intended to prepare majors and minors. It is a
very demanding course that will likely require 15 hours of work per
week.
Prerequisites: Working knowledge of computers (COSC 010 or equivalent).
Although there are no formal prerequisites, you do need to know how to
use computers: create, modify, and delete files; create and remove
directories; use the Web; use e-mail; and things of this nature.
If you don't have these skills, then you should take Introduction
to Computers and Networks (COSC 010).
Primary Text:
Assignments and Grading
-
Programming Projects (40%)
-
Project 3 (design due Oct 29, due Nov 5), 9 points
Project 4 (due Nov 19), 9 points
-
Project 5 (due Dec 6, before midnight), 12 points
Midterm Exam: Tuesday, October 15 (20%)
Final Exam: Saturday, December 14th, 12:30 P.M.(30%)
Miscellany (10%)
-
Participation
-
Quizzes
-
Homework
Policies for this Course
The policies described on my general classes
page are in effect for this class.
All assignments should be turned in on time. For late projects, the grade
reduction will be 4% off the maximum possible grade for each 1 hour period
after the deadline.
Students are responsible for keeping a backup of their projects on a university
machine (i.e., gusun or cssun).
Students must take the final exam with your section during the period designated
by the Registrar.
Students bringing cell phones to class must either set the phone to vibrate,
turn the ringer volume off, or turn the phone off completely. The instructor
retains the right to answer ringing cell phones in class.
Resources
Compilers for PCs
- There is a free GUI C++ compiler available named Dev-C++
- MetrowerksCodeWarrior,
available on the campus network and at the University Bookstore.
Tutorials from past 071 Sections
HOWTO:
Create and compile files under UNIX
HOWTO:
Create and compile using CodeWarrior
HOWTO:
Create and compile using Visual C++
COSC-071
Frequently Asked Questions
Remote connection Software
Unix stuff
Editors
You will need to learn to use a Unix editor. The most simple is pico.
While there are many editors, most Unix users use either vi or emacs. Vi
is more widely available than emacs and is smaller and faster to load,
but emacs is far more customizable and powerful, can load specific modes
that help you with the type of file you are editing, and can include other
useful functionalities like web browsing and email. Emacs is probably harder
to learn, but once you have mastered it, it is a power tool. It can even
emulate vi!
emacs links
vi links
Other Resources