
This page may be updated during the semester as more questions arise. You should check this location frequently to see if the page has been updated since your last visit.
This course is an introduction to software development. Computer programming is one aspect of software development, but there are other aspects that are just as important. Three of these are a systematic approach to problem solving, systematic software testing, careful and structured use of English.
You've come to the right place! This course requires no previous background in programming or software development. We do assume you have some basic skills in using a computer, at the level of a course like CSci 41: some use of a word processor, some experience using an Internet browser, and so on. Many students with no other experience have taken this course and done well; you can, too!
Absolutely not! Our goal in this course is that every student should succeed here, and we are here to help you do so.
It's not intended to be difficult. Any course, in any subject, is easier for some students than for others.
CSci 51 is not intended to be a very heavy course. On the other hand, software development courses 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.
Lecture attendance counts 5% of your grade. Some days attendance is taken (in the form of a reading quiz); other days it isn't. If you must miss a lecture, you are still responsible for all work covered.
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.
Each handout will be distributed in class once. All handouts are on the class web site, http://www.seas.gwu.edu/~csci51/spring02. If you miss a handout -- or lose one -- just visit the web site and get a copy there.
Yes. Each week’s lecture notes will be posted on the class website.
Your semester grade will be calculated as follows:
Do you drop the lowest project grade?
I will eliminate the lowest project grade for each student, under the following conditions:
· The project was turned in no more than 4 weeks late
· The project would have earned at least 5 points before any late fees were assessed
The idea behind this is that I will not allow students to simply not do a project. Some effort should be made and in a timely fashion. I will not drop any grades from the last two projects. These projects tend to be larger and more complicated. It is important that they are done.
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 As, Bs, Cs, 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 51 is simply not prepared to proceed to 131, and should therefore repeat 51. Therefore I will give such a student an F.
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. You may choose to replace your lowest midterm grade with your final grade, however, this grade will stand even if it hurts your final grade.
There will be several short, unannounced reading quizzes.
Expect one a week. They will cover information from that week’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.
I will assign a project roughly every week, which will be due the following week. Each project will 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 8 projects.
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.
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. Please read the handout on Plagiarism and Collaboration, which spells out the rules for getting help from others.
If you ever have any question about whether you’re following the rules, ASK me, Prof. Feldman, or your lab instructor. Do not guess! Do not rely on other students’ opinions!
Also read Academic Integrity in Computer Science and the GW Code of Academic Integrity.
Yes, but the main location of all the programs you will need is on the SEASCF server called "hobbes". We suggest that you start the semester using your computer as a terminal to log into hobbes over the Internet. The book contains a CDROM with a program for compiling Ada code. DO NOT USE THIS PROGRAM. It is buggy and unreliable.
If you have a Mac, see Prof. Feldman.
If you have a Windows computer, first you need to get connected to the Internet. The university no longer provides dialup lines, so you need to sign up with an Internet Service Provider (ISP). America Online does not provide the kind of "dialup networking" Internet service you need, but services like StarPower, Earthlink, etc., do. Ask at CIRC for suggestions for ISPs in this area.
Once you can connect via your ISPs "dialup networking", you need a program that proves a "secure shell client" (SSH2) on hobbes. You can download a free one from GWs SEASCF website, at http://www.seas.gwu.edu/~seascf/access/ssh.html. This is the same program used in the lab PCs to get to hobbes.
The lab instructors and I are ready, willing, and able to help you. Speak to us after class or at their office hours.
We can also help you by e-mail; we try to answer promptly.
If you have trouble interpreting compiler messages in your listing (.lsb) file, you are not alone! The compiler has its own way of communicating with you, and this will seem strange at first. For help in understanding the compiler's messages, send the .lsb file by e-mail to me or your lab instructor. Here's how:
We assume the .lsb file is in your hobbes account, because that's where the compiler put it. Suppose the file is called project1.lsb. E-mail the file by typing
elm astrong <project1.lsb
Do not forget the < symbol!
DO NOT USE PINE TO SEND IT! DO NOT SEND "ATTACHMENTS"! We get too much mail to deal with these. The listing must be immediately legible in the e-mail note.
SEND THE ENTIRE FILE, not just the part with the error message! Cutting and pasting parts of a listing will maker it much harder for us to help, as we need to see all your code, not just a small piece of it.
Under University and SEAS regulations, here are the rules for withdrawing from courses:
Under University regulations, and my own policies, here are the rules for Incomplete grades:
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.
We, like about 150 other colleges and uni