Information for Dr. desJardins' Sections
Items are posted in reverse chronological order (i.e., newest to oldest).
- 1/3/07 -- Final grades
I submitted the final grades to the registrar today. They should
appear in myumbc in the next few days. I have the final exams in my
office if you would like to look at yours.
It was a great semester -- I hope everybody is enjoying their break!
- 11/27 -- REMINDER: No office hours Monday 11/27 or Wednesday
11/29. Mrs. Evans will guest-lecture on Wednesday 11/29.
- 11/27 -- Correction on project
The test files have self-closing tags, so you do have to be
able to handle them. They should be added to the queue when reading
the file, but don't need to match anything on the stack when you
remove them from the queue to analyze the tag matching.
- 11/27 -- N-Queens queue/stack implementation
Warning! This is very sloppy, buggy code, and not to be
emulated under any circumstances! Find my seg fault, and I'll give
serious consideration to extra credit.
The files are here:
- Dr. desJardins -- research talk in Honors section, 11/15
Dr. desJardins will give a presentation on one of her research
projects (optimization and visualization methods for school
redistricting) in the Honors section of 201. The talk will
be on Wednesday 11/15, at 11:00 a.m., in ITE 201B (near the
help center). Please feel free to come if you are interested!
Because of the talk, Dr. dJ will not be holding office
hours that day.
- 11/14 -- No class or office hours on Wednesday 11/22!
- 11/8 -- All of the code and test files for the recursive maze program are
in this directory. The binary search program is
in binary.c, 2darray.c,
and 2darray.h. And finally, here's
the "what does this do?" recursion program.
- 10/25 -- Here is the triangle.c
program that we wrote today, and the triangles.dat data file to test it with.
- 10/17 -- Here is the buggy
word-reversing code that we worked on in class today.
- 10/2 -- Function header comments
Mrs. Evans tells me that students SHOULD duplicate the
function header comments in both the .h and the .c files.
So you should disregard what I said after class about only
having the function header comments in one place.
- 10/2 -- Battleship program
Someone asked in class if you can create an array of dimension
"n" where "n" is a variable, i.e.,
The answer is yes, C will let you do this.
- 9/28 -- Answers to questions about Project One
- ChangeInteraction -- A student e-mail that I received
implied that on the design I did on the board, I'd put a prompt and
call to GetValidFloat in the main function for the CHANGE option
instead of calling ChangeInteraction. The design drawing posted
on the website shows the correct behavior, which is in fact to call
- util.h -- The project specification does state that util.h
should include only the function prototypes for the functions found in
util.c. The #define constants and the function prototypes for the
functions that appear in main.c should be in main.c, not util.h.
- Extensions -- Unfortunately, because the programs are
tested using an automated script, you may not include
extensions that would change the behavior of the program in any way.
Furthermore, you must follow the design specification exactly.
In future projects, you will be creating your own design, and may have
some opportunities for going "above and beyond." If you have your
program working, and want to do more just to flex your programming
muscles, then by all means do so, and I'd love to see the results.
Just don't submit them as your solution.
- 9/20 -- factors.c program from lecture
- 9/14 -- Saving typing in Linux
If you edit (using emacs or any other program) the file in your
home directory called ".cshrc" and add a line at the bottom that looks
alias gcc 'gcc -Wall -ansi'
then whenever you run gcc from the shell, it will run the program
with the -Wall and -ansi options so you don't have to type them every
time. Be sure you don't change anything else in that file!
- 9/12 -- nqueens.c program from lecture.
- 9/11 -- Mac pointers
Michael Weber suggests the following Mac resources:
Michael says that he usually is in class 30-45 minutes early to eat
lunch and study, and is happy to answer Mac questions. He sits on the
left side of the room and has his laptop open until class starts.
Xcode - a free program editor made by Apple, with a built-in text
editor and gcc. There are a few small differences between this
compiler and the one on the gl machines, so be sure that you test your
code on gl before submitting! (The one difference that Michael points
out is that the gl servers require an extra line at the end of the
file, whereas the Mac version doesn't care.)
- Fugu - available on OIT's
Mac software download page. Fugu is an implementation of the
secure file transfer protocol for the Mac.
- In the MAC OS X terminal, you can use ssh by just typing
ssh \@linux.gl.umbc.edu. You might need to have
Xcode installed to do this. You can also use gcc via the Mac terminal
on your Mac if you have it installed.
- 9/8 -- Another SFTP suggestion
From Jacob Thompson, a student in the class:
Another program that supports SFTP is FileZilla
Also, it is nice to run XEmacs on the GL server using SSH X11
and have the display show up on the desktop machine. This gives
scrollbars, syntax highlighting, etc.
- 9/7 -- A Better SSH
Somebody asked about transferring files, and I realized that
the Tera-Term SSH client doesn't include the secure ftp file transfer
protocol that is supported by our linux servers. (You can't use
regular ftp.) There are two solutions to this problem. One is to
WinSCP, available on the OIT downloads page. The program I
started using recently,
F-Secure, supports both ssh and sftp. Once you install it and
launch an ssh session, then you can use the "New File Transfer" menu
option under the "Window" menu to get a windows-based sftp session.
Followup: It turns out that you need a College Park account to
install this software from the UMd page. If anybody finds out another
way to get this software, please let me know. Otherwise you can use
- 9/6 -- Useful Links
Be sure that you browse the entire course website, since there
are many useful resources in addition to what I'm including here.
Are we having fun yet? :-)
- There is a
page on the course website with basic Linux commands.
- OIT (UMBC's Office of
Information Technology) has lots of valuable information,
software downloads page
where you can download Tera Term SSH for Windows. This is the first
step to getting into your gl account.
- Once you have installed ssh, run the Tera Term executable. In the
dialog box, enter "gl.umbc.edu" as the host, and make sure that you're
using TCP/IP with the "SSH" checkbox. Next you'll be prompted for
your username and password -- use your UMBC username and password.
At this point, you should get a terminal window with a prompt that
you can start typing UNIX commands to. (You'll be logged on to one of
the three Linux servers at this point -- linux1, linux2, or linux3 --
and your prompt will tell you which one.) "emacs" and "vi"
- You can use the "man" command to get documentation (e.g., "man
gcc" or "man emacs") but you will probably not find this documentation
very useful as a starting point.
- If you run emacs, you can type Meta-X help-with-tutorial
to run the built-in tutorial. (If your keyboard doesn't have a "Meta"
key, or you can't figure out which key is bound to "Meta," use ESC
X help-with tutorial instead.) If you work your way through this
tutorial, and take a few notes, you'll be reasonably proficient with
emacs. Everything you might possibly want to know about emacs is also
available at the GNU Emacs
home page. You can also download
an open-source version of emacs that runs on Windows and linux.
- I found a nice vi tutorial
online. vi is a simpler editor than emacs, as I said in class. emacs
is a lot more powerful and useful, though, so if you don't know either
one, I'd recommend skipping straight to emacs. (It's hard to switch
back and forth between them.)
- I tried running "kate" but it didn't seem to do anything. If
you're interested in finding out more, you might try checking out the
KATE home page.
- 9/6 -- Optional "Assignment" from Lecture 1
Write a program that guesses a number from 1 to 10. It should
do the following:
- Ask the user to pick a number from 1 to 10.
- Guess a number. (You may want to use the rand()
function. See rand.c for an example.)
- Output your guess, and ask the user if you got it right.
- If you were right, say "I win!" If you got it wrong,
say "Rats!" (or an epithet of your choice).
- 9/6 -- Harder Optional "Assignment" from Lecture 1
Write a program that plays a guessing game to guess a number
from 1 to 20. It can take up to five guesses to do so, using
yes-no questions. (These can either be "Are you
thinking of the number k?" or "Is your number larger/smaller
than k?" (where k is a number).)
- 9/6 -- nim.c example from Lecture 1
- 9/5 -- Answers to questions from Lecture 0
Question: How long will the average homework assignment
take, assuming the student is up to date on all the information?
Answer: I asked several former students and TAs this
question. The typical range I was given was 8-15 hours. The lowest
number I heard was 6 hours. Average seems to be around 10 hours.
Question: How are labs graded?
Answer: Labs are graded on a scale from 0 to 3:
0 (didn't show up), 1
(showed up but didn't really work on the lab (IM'ed, emailed, etc.)),
2 (put forth a good effort), 3 (completed the lab successfully).
Question: How different is the 1st edition of the
textbook from the 2nd edition?
Answer: The only difference is that the 2nd edition has
the index, so if you have the 1st edition, that should be fine.
- 8/30 -- Closed Section Requests
I was able to accommodate all of the requests to add or change a
section. You should have received notification through myumbc that
you are now authorized to register for the section you wanted; if not,
please contact me.
Last Modified - Wednesday, 03-Jan-2007 09:56:08 EST