COSC 071
Monday/Wednesday 2:40 - 3:55
White-Gravenor 201A
|
Assignments, Projects, and Exams
- Homework
- Projects
- Exams
- Midterm exam: October 25th, in class
- Final exam: Friday December 17, 12:30 PM
Instructor and TA Information
- Instructor: Clay Shields
Normal Office Hours (end
December 8): Monday/Wednesday 4 - 5; Tuesday/Thursday 11 -
12 Exam week office hours:
Thursday, December 16th, 2:00 - 4:00
Friday, December 17th, 10:00 - 12:00
Contact:
Information here
- Teaching Assistants
Office Hours held in Reiss 261
Normal office hours(end December 8):
- Wesley Jo Dorman
wesleyd@cs.georgetown.edu
Office hours: Tuesday, 12:30 - 2:30
- Nathaniel Guy
nmg5@cs.georgetown.edu
Office hours: Sunday, 4:00 - 6:00
- Matt Mauney
mmm39@cs.georgetown.edu
Office Hours: Monday, 10:00 - 12:00
- Dan Pickering
djp22@georgetown.edu
Office Hours: Monday, 5:00 - 7:00
Exam Week Office Hours:
- Dan Pickering
djp22@georgetown.edu
Tuesday, December 14th, 4:00 - 6:00
- Wesley Jo Dorman
wesleyd@cs.georgetown.edu
Tuesday, December 14th, 1:00 - 3:00
Policies
All my courses are run under the same set of policies which are
available
here. Students are expected to read and understand these
policies. You can also read the Honor Council site.
Resources
- Accounts: You will need to activate your GUSUN
account. Follow this
link to do so.
- Textbook: Alternate Verion of Starting out with
C++, 4th Edition. By Tony Gaddis, Judy Walters, and Godfrey Muganda
- Tutorials:
In order to complete the programming assignments, you will
need to edit and compile on GUSUN, which runs
the UNIX operating system. You might also choose to do some
work on your own PC and then transfer it to GUSUN to
complete it. These tutorials are designed to help you do so.
- Unix information: For most of you, working on
Unix will be odd. There is no graphical interface; you
will need to type commands to make things happen. Here are
some references to help you find useful commands.
- Editing on Unix: You can use a variety of
different programs to edit your code. The easiest to learn
is called pico, and I recommend you start with
that.
There are other Unix editors that you can choose to
learn as well. The most common is vi, which is
installed on many Unix systems. Many people swear by its
simplicity, others curse its primordial interface.
If you plan on doing lots of CS work, I think you should
learn emacs. While 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 because
it does so much more, but once you have mastered it, it
is a power tool. It can even emulate vi!
- Putting it all together: Professor Maloof
created this
tutorial which shows how to edit and compile a program on
Unix.
- Software: If you have your own computer, you may
wish to work on that. The following programs might be of use to
you.
- Remote Connection Software: Even if you use one
of the compilers listed below, you will have to make sure
your code works on GUSUN, since that is our reference
platform and gets backed up regularly. The software below
will allow you to log into GUSUN and transfer files back
and forth.
-
SSH terminal and file transfer client for
Windows. You can use this to both long in and
transfer files over an encrypted connection. I
recommend this highly and use it regularly myself.
- For Mac, you can open the Terminal program under
/Applications/Utlities, and use ssh from the command
line there. For file transfer, you might want to use
Fugu.
- For linux, open up that terminal window and use
ssh and scp
- Compilers: These programs allow you to edit and
compile programs on your computer.
- Dev-C++:
a freeware, open-source compiler and IDE. I recommend
this one for Windows. You should just use this, though
other options are below
- Visual
C++ Toolkit: this is the free command line version of
Microsoft Visual C++. It does not include the IDE editing
environment, which makes it more cumbersome to use.
- Visual
C++ .NET: This is the full version of Visual C++
including the IDE. It is about $100 new, though the
Georgetown Personal Purchase, but won't do much more for
you in this class than Dev-C++ will for free.
- Apple
XCode: For you lucky ones who have a Mac
with OS X. The software is normally included in the XCode
CD that comes with your machine, or you can download it
for free from Apple after a free registration. This is
what I use for developing the projects myself.
- If you are running linux, you can just use GCC as
described in the tutorials for GUSUN. It should be
installed natively with the OS.
Description and Grading
- Description:
Although intended for computer
science majors and minors, other students with a serious
interest in learning C++ programming may take this
class. Topics include: basic data types; the C++ string
class; variables, constants, and their declarations;
input/output (cin/cout), assignment, and arithmetic
operators; conditional and repetition control structures;
basic file operations; programmer-defined functions; value
and reference parameters; scoping rules; name precedence;
function and operator overloading; template functions;
elementary software engineering principles; the Standard
Template Library (STL); the vector class; elementary
searching and sorting; abstract data types;
programmer-defined classes; pointers; self-referential
classes; dynamic object creation and destruction; stacks and
linked lists; recursion; abstract base classes; virtual
functions; polymorphism; template classes; and exception
handling. This course will satisfy the college science
requirement, and how. Prerequisite: none.
- Grading:
- Homeworks, quizzes and participation: 10%
- Projects: 45%
- Midterm exam: 20%
- Final exam: 25%
- Midterm Grade Histogram
- Final Grade Histogram
|