COSC 071
Monday/Wednesday 2:40 - 3:55
White-Gravenor 201A
|
Assignments, Projects, and Exams
Project 5 - Hash Set Comparison, Linked List Style Due:
December 7th (12%)
Exams
- Midterm exam: October 31st, in class (20%)
- Final exam: Monday, December 12, 9 AM (25%)
Instructor and TA Information
- Help availability by time
- Tuesday: 2:00 - 4:30 Clay, Reiss 232.
- Tuesday: 5:00 - 7:00 Ibrahim, Reiss 261
- Thursday: 9:00 - 11:00 Clare, Reiss 261
- Friday, 3:00 - 5:00 Rich, Reiss 261
- Saturday, 4:00 - 6:00 Ibrahim, Reiss 261
- Sunday, 3:00 - 5:00 Rich, Reiss 261
- Instructor: Clay Shields
Office Hours: Tuesday, 2:00-4:30
Contact:
Information here
- Teaching Assistants
Office Hours held in Reiss 261
- Ibrahim Cotran, 5:00 - 7:00 Tuesday, 4:00 - 6:00 Saturday
- Rich Frankel, 3:00 - 5:00 Friday, 3:00 - 5:00 Sunday
- Clare Schramm, 9:00 - 11:00 Thursday
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 be given an account on a server
named GUSUN. This will be the official machine to use for your
assignments
- Textbook: Alternate Version 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 might come with your book,
otherwise 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. It also
accepts code that GUSUN won't like, making it harder to
use.
- 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, design documents, and participation: 13%
- Projects: 42%
- Midterm exam: 20%
- Final exam: 25%
|