FREQUENTLY ASKED QUESTIONS (FAQ)
last update January 6, 2006
This course is about software construction, algorithms, and data
structures.
The three main "threads" that are intertwined through the course are:
- software construction, with emphasis on reusable generic software
components
- advanced data structures: advanced array structures, stacks &
queues,
linked lists, and trees
- algorithm performance prediction: "big O" notation
We trust our lives and our businesses to software. Software is important,
and we will be emphasizing the importance of good software design. I
hope
this will be fun for you, and that you'll be proud of your
accomplishments
here in writing software that doesn't crash.
The prerequisite is CSci 53 or a closely equivalent course. We now
use
Java as the coding language in both CSci 53 and this course.
I didn't take 53 and I don't know any Java. Am I going to be OK in
this
course?
Probably, depending on the kind of equivalent course you took. If you
CSci
51 or CSci 49 here with Ada or C, or took a 51-level course elsewhere
with
C or C++, chances are you will do fine here, if you're able and willing
to learn the syntax of another programming language quickly. If you
choose
a career in software development, you'll be learning new languages and
tools every few years. You might as well start now!
If your only other course was (say) at high-school level with
BASIC,
you are much better off taking 53 first. Speak to me if you have any
doubt.
HELP! This course uses UNIX. I am clueless about UNIX because all
my experience
is with Windows!
You'll have to learn some Unix to get through this course, but you can
get help on this in the labs!
Is this a "filter course" designed to weed out students?
Absolutely not! Our goal in this course is that
every student should succeed here, and we are here to help you
do
so.
Is this a difficult course?
It's not intended to be difficult. Any course,
in
any subject, is easier for some students than for others.
Does this course have a heavy workload?
CSci 133 is not intended to be a very heavy
course.
On the other hand, technical courses like this usually require somewhat
more of your time than liberal-arts "reading" courses. For every
in-class
hour in this course, you should expect to spend 2-3 hours outside of
class.
Including 3 hour of lecture and 2 hours of lab each week, that’s 10-15
hours of work outside of class each week.
You must plan on doing
roughly
this amount of work every week!
How is grading done?
Your semester grade will be calculated as
follows:
- Lecture attendance and reading quizzes
8%
- Laboratory assignments 12% (1% each)
- Midterm Exam 20%
- Final Exam 30%
- Software Projects 30% (5-6% each,
depending on whether there are 6 or 5 projects)
- Total 100%
Do you grade "on a curve"?
Sort of. I keep grade records strictly "by the
numbers";
at the end of the semester, I compute a final average for each student.
I then assign a grade that represents my experienced judgment as to how
much you got out of the course. I have no predetermined cutoff points
for
A's, B's, C's, etc. If every student does well, every student gets a
high
grade. I do not give D's. A student who cannot earn a C- or better in
133
is simply not prepared to proceed to 143, and should therefore repeat
133.
Therefore I will give such a student an F.
Readings,
Lectures,
and Labs
Do I have to do the readings?
The textbook and other handouts are an
integral part of the course,
not
just background material. You are expected to come to class prepared;
you
must read each week's assigned material
before you come to that
week's first lecture!
What about the reading quizzes?
There may be several short, unannounced reading
quizzes. Be prepared for one in each lecture. They will cover
information
from that lecture’s reading assignment. They will be very short and are
not comprehension based. The idea is to assess whether or not students
are reading the book. Part of this introductory class is to help
students
with their study skills. Reading before lecture often helps students
understand
the material. Even if you do not understand the information the first
time
around, the second or third time it should become more clear. Reading
quizzes
will also be the way I take attendance, so even if you haven’t read,
put
your name on a quiz and I will know you were here.
Do I have to go to lecture?
GW university policy is that class
attendance
is required. You are expected to be there; you cannot do well in
this
course if you skip class. Lectures and reading quizzes together count
10%
of your grade. Some days attendance is taken even if there is no quiz;
other days it isn't. There is, in general, no "excused absence"; you
are
there or you are not. If you must miss a lecture, you are still
responsible
for all work covered.
Do I have to go to lab?
Lab work counts 12% of your grade; each graded
lab counts 1%. Each week's
lab
session will require you to do a small assignment that helps you learn
that week's material. If you go to the lab and work productively on the
assignment, you get credit for that lab; if you don't, you don't. If
you
miss a lab, you can make up the work on your own time, but you cannot
get
credit for the lab unless you are physically there. It is OK if you
occasionally
go to a different section of the lab (space permitting), but
then
you must make sure the lab instructor knows you are there!
What if I miss a lecture or lab, and therefore don't get a copy of a
handout?
Each handout will be distributed in class once.
All
handouts are on the class web site, .
If you miss a handout -- or lose one -- just visit the web site and get
a copy there.
Do you give out lecture notes or post them on the web?
Only sometimes; don't count on it. Occasionally,
lecture notes will be posted on the class website.
Tell me about examinations, please.
There will be a one-hour midterm and a
two-hour
final exam, both strictly timed. These will be open-book, open-notes
exams.
If you are coming to class regularly, and keeping up with the reading
and
the projects, you should not need to "cram" for the exams. Exams will
require
a mixture of reading and interpreting short program segments, writing
short
program segments, and short "essay" questions. If you do poorly in the
midterm, you may
choose to replace its grade with your
grade
on the final exam. If you choose this option, you must inform me
by e-mail at any time before
the day of the final exam.
Software Projects
What about these software projects?
I will assign a project roughly every 2-3 weeks.
Each project is "sized" so that you should start on it
as soon as
it
is assigned, and spread your work roughly evenly over the project
period.
You will
not complete it successfully if you leave it until the
end of the period.
Projects will often build on the work done in previous projects, so
it is in your interest to keep up with the project work. There will
probably
be 5-6 projects. Unlike in CSci 53, in this course I do not drop the lowest
grade!
Each project will be graded on a 0-20 point basis. An incomplete
submission
is better than none; you will get credit where credit is due. I will
accept
late projects, subject to a "late fee" of 4 points per week of
lateness.
Each project is due at the start of the class on the due date;
projects
submitted after the lecture has begun will be counted as one week late.
Is there extra credit?
Yes. The extra cedit assignment is designed to help you gain
perspecive
on your academic life and does not require any programming. It is worth
up to 10 project points; watch the website for the assignment.
Can I work with a friend on the projects?
Projects must represent the results of your own
work. I cannot prevent your speaking with friends to sketch out a
solution.
But if you collaborate on the detailed design or coding, or copy a
program
from an acquaintance, and then submit the results as your own work, I
will
charge you with plagiarism, and I will win. Please read the handout on
Plagiarism
and Collaboration, which spells out the course rules for getting
help
from others.
If you ever have any question about whether you’re
following
the rules, ASK me or your lab instructor. Do not guess! Do not rely on
other students' opinions!
It is also essential to read Academic
Integrity in Computer Science and the GW
Code of Academic Integrity.
Getting Your Questions Answered by E-mail
The lab instructor and I are ready, willing,
and able to help you.Speak to us after class or at our office hours.
We will also help you by e-mail; we try to answer promptly.
Compilation Errors: Don't waste your time sending messages
that
won't get you a quick result!
- Send a listing (.txt) file. JUST a listing file.
- NOT a source (.java) file—we need the messages and line numbers!
- NOT a copy/pasted snippet—JUST the file. We need to see the whole
context
for the message.
- NOT a second note saying "I just sent my listing file". We know
that.
When
we get a listing file with messages, we know what to do with it.
- NOT an attachment!
We assume the .txt file is in your hobbes account, because
that's
where the compiler put it. Suppose the file is called project1.txt.
You can e-mail the file directly from hobbes by typing one of these:
pine mfeldman@gwu.edu <project1.txt
pine juman@gwu.edu <project1.txt
pine alibala@gwu.edu <project1.txt
Do not forget the < symbol!
Execution errors: VERY hard to do by e-mail; that is what
office
hours are for! If you don't leave it till the last minute, there are
plenty
of office hours to visit Prof. Feldman or lab instructors.
Using a home
computer
in the course
I have my own computer. Can I use it in this course?
Yes, but the main location of all the programs
you
will need is on the SEASCF server called "hobbes". The best
way
to use your computer is as a terminal, to log into hobbes over the
Internet,
just as we do in the labs.
How do I get to hobbes from my home computer?
First set up your basic Internet connection from GW or an
off-campus
location. Once you can connect, you need a program that proves a
"secure
shell client" (SSH2) on hobbes.
If you have a Mac running System X, the Terminal
tool
supports SSH2 so you just need to start that program and type
ssh -l <your userid> hobbes.seas.gwu.edu
If you have a Linux computer, SSH2 is available from the command
line. If you have a Windows computer, you can download a free SSH2
client
from the Software Center at
the GW Virtual Help Desk.
This is the
same
program used in the lab PCs to get to hobbes. Once you install the
program,
you can connect to hobbes.seas.gwu.edu.
Withdrawals and
Incompletes
At GW, an incomplete is completely different from a withdrawal,
so it is important that you read the next two questions carefully.
How do I withdraw from the course?
Under University and SEAS regulations, here are
the rules for withdrawing from courses:
- During the first four weeks: you
can withdraw using a
simple Drop/Add
(Registration Transaction) form. The course disappears from your
transcript.
- After four weeks but before
Preregistration begins: you can
withdraw
using a simple Drop/Add but the grade W appears on your transcript.
This
has no effect on your grade-point average.
- After Preregistration begins but
before the end of classes: this
is considered a "late withdrawal." You must complete a SEAS Late
Withdrawal
form, which requires the signatures of the instructor, your advisor,
the
CS Department Chair, and the SEAS Associate Dean. I will always
sign a late withdrawal form, as long as classes have not ended for the
semester. I will not sign a withdrawal form after the last
class!
- Columbian College Students:
Please note that the Columbian
College
has a very strict withdrawal deadline which may fall before the SEAS
one.
The Columbian College does not let students withdraw from classes after
this deadline. Please be aware.
Do you give Incompletes?
Under University regulations, and my own
policies,
here are the rules for Incomplete grades:
- A grade of I (Incomplete) may be
assigned only when the student
has really special circumstances such that (s)he cannot finish
the
work of the course. I follow the University regulations, and do not
give
Incompletes unless the situation is truly unusual. Do not ask
for
an Incomplete just to gain more time to finish projects or raise a low
grade. I will almost always say no.
An Incomplete grade is undesirable. Under
GW rules, you are
required to remove the I by completing the
work
of the course. Taking the course a second time does not
(NOT!)
remove
the original I. Under SEAS rules, an Incomplete not removed within one
year becomes an F.
At GW, an Incomplete is not the same as a
withdrawal!
Finally...
What should I do to get a high grade in 133?
There is no magic formula for a
high grade, but here are some
ways
to ensure you will probably get a
low grade:
- Skip class repeatedly. Lectures do not repeat the book,
and
material
covered in class is covered on the exams.
- Skip lab repeatedly. This will hurt — lab is 12% of your
grade!
- Start on the projects late. In this way, you cheat
yourself
out
of asking questions in class. I will discuss project details and
trouble
spots in class, but only in response to your questions.
- Turn in late projects repeatedly. Your "lateness fee" is
4/20 points
per week late. Each project is about 5-6% of your grade, so each "fee"
is about 1%. One or two don't hurt much, but they add up fast!
- Ignore the reading until it's time to cram for the exam.
This course
is "all connected" — if you ignore the reading you are clueless in
class
and on the projects. You cannot possibly get a good exam grade by
cramming
the book. Also remember the reading quizzes!
Remember, my objective, and the objective of this department, is
that
our students should succeed!