COSC 071: Computer Science 1

Fall 2002 - Section 1
Tuedsay and Thursday, 4:15 to 5:30
Reiss 283


     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 Monday, Wednesday
4:00 - 6:00 PM
H through L
Nathaniel Guy Saturday, Monday
6 - 8 PM
A through G
Matt Mauney Monday, Wednesday
12:30 - 2:30 PM
R through Z
Amy Sliva Tuesday, Thursday
12:30 - 2:30 PM
M through Q


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


Compilers for PCs
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
    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