FREQUENTLY ASKED QUESTIONS (FAQ)
last update January 11, 2003
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 10%
-
Laboratory assignments 10%
-
Midterm Exam 1 10%
-
Midterm Exam 2 10%
-
Final Exam 25%
-
Software Projects 35%
-
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 lecture's assigned material
before you come to that 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 10% of your grade. 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,
http://www.seas.gwu.edu/~csci133/spring03.
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 two one-hour midterms 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 one
of the midterms, you may
choose to replace its grade with your grade
on the final exam. You can inform me of your choice at any time before
you leave the final exam room.
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 and will be due on the day of the second midterm.
Unlike in CSci 53, I do not give extra credit for early submission
of "frameworks". By now, I hope you have learned that starting early on
a project is its own reward, as you are then able to complete it much more
comfortably.
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 instructors 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 (.lis) 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 .lis file is in your hobbes account, because that's
where the compiler put it. Suppose the file is called project1.lis.
You can e-mail the file directly from hobbes by typing
elm mfeldman <project1.lis
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, read the web page at http://www.seas.gwu.edu/~seascf/access/remote.shtml,
which discusses how to make your basic 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 Mac running System 9, see Prof. Feldman.
If you have a Windows computer, you can download a free SSH2 client
from ftp://ftp.ssh.com. 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. Further, the reading quizzes
count 10% of your grade.
-
Skip lab repeatedly. This will hurt — lab is 10% 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!
I’m having trouble in this course. Where can I go for help?
There are many people interested in helping you succeed in this course.
Please see your lab instructors and me for help. If you need help beyond
what we are giving you, contact Brendan Lynch (lynch@gwu.edu) in Tompkins
Hall. He is in charge of SEAS Student Support and he would be happy to
help find a tutor.
I am the director and lecturer in this course; I am also the advisor
of the 2002 entering class; I am very devoted to undergraduates and will
do my best to give you any help you need. You can trust me to keep your
situation confidential. If you still feel you can't discuss it with me,
the CS department chair, Prof. Dianne Martin (dmartin@gwu.edu) is a good
next stop for you.
Remember, my objective, and the objective of this department, is that
our students should succeed!