CS3139: Data Structures
Home Lectures Homework Message Board Grades Useful Links



COMS W3139
Columbia University
Spring 2001
Monday and Wednesday, 2:40-3:55pm
Room 227, Mudd Hall

Topics Covered: Algorithms: Recursion, Searching, Sorting, Time Complexity Analysis, Introduction to NP-Completeness. Data Structures: Arrays, Linked Lists, Stacks, Queues, Trees, Heaps, Hash Tables, Partitions, Graphs.

Basic information

Schedule and syllabus

People:

Name
Office Hours
email
Zeph Grunschlag
Instructor
Wednesday, 4:15-7 pm, 626 CEPSR
zeph@cs.columbia.edu
Paul Blaer
Recitation Leader
Tuesday and Friday 2-4pm, TA room psb15@cs.columbia.edu
Frank Apap
TA
www.ta.cs.columbia.edu/oh_by_ta.cgi?id=40 fsa3@columbia.edu
     
Adam Trilling
TA
www.ta.cs.columbia.edu/oh_by_ta.cgi?id=39       agt10@columbia.edu

Announcements:

Monday, 5/14. Final wrap-up. Some final exam statistics:

  • Average (out of 100 pts.): 60.75
  • Median: 61
  • Standard deviation: 17.3
  • Curve formula for final: curved_score = (raw_score-61)*(10/17)+85
If you would like to see your final, schedule an appointment with me. I'm around this summer, or you can come see your exam in the fall. To compute the final grade I used the formula given in the Basic information handout. As I felt that the most important skill to get from this course was programming proficiency with data structures, before I assigned the final grade I looked at each student's programming effort. For most students this was helpful. If I saw evidence for strong programming ability or improved programming skills, I nudged up the grade. On the other hand, unfortunately, some students had very little to show as far as programming assignments are concerned, and for those students, no grade increase was given.
It's been a lot of fun teaching you. Have a good summer.

Friday, May 4. IMPORTANT! Final exam location has been incorrectly described in the past. The correct location is 633 Mudd.

Thursday, May 3. I will be holding special pre-final office hours on Monday 5/7 and Tuesday 5/8. The times for the Office hourse will be 11am - 2pm each day.

Wednesday, 1 am. Hw 9 solutions are now available. They were created by Frank.

Tuesday 5/1. Final review lecture is now available. Get it from lectures page.

Monday, 4/30. Paul Blaer's recitation is being posponed to Wednesday 5/2, at 2:40 - 3:55 in 227 Mudd. Paul will give a final exam preparation.

Monday, 4/30. Extra time for electronic submission of HW10. I am letting everyone submit their electronic version before midnight tonight without any late penalties. The hard copy needs to be handed in as usual in class. If there are big changes, make sure to let the TA's know by emailing them.

Tuesday 4/24. Tomorrow's class will be joint with 3137. You can go directly to 717 Hamilton, or come to class and we'll walk there together. Ioannis Stamos will describe his work on 3D Modeling and other aspects of the Robotics Laboratory. Refreshments will be served.

Wednesday, 4/11. Final project (HW10) is now available. A number of references for the extra credit portions, will soon be made available at the Engineering library.

Tuesday, 4/3. Proud of your HW5 winning code? You can send me your tree implementation. I'll then anonymize it and put it up on the web.

Tuesday, 4/3. HW8 has been modified. I made explicit requirements about the union/find implemenation. If you already did Part 1) before this announcement, you are "grandfathered" into being allowed to keep your program as is. However, if you want to claim the grandfathering, you should send me an email containing your solution to Part 1 (without the additional requirements) by midnight tonight.

Thursday 3/29. Final project ideas are now available. From the homeworks page.

Thursday 3/29. HW 9 is now available.

Thursday 3/29. HW 8 is now available.

Wednesday, 3/28. Partitioning code omitted from lecture 18 is available. Get it from the lectures page.

Monday 3/26. Wednesday's office hours have been moved this week! The new time will be Tuesday, 3-6 pm.

Monday 3/26. Added cool Shellsort applet. It was created by Robert Sedgewick and can be linked to from the cool links page.

Monday 3/26, 11:00 am. Solutions to HW5 are available. Frank Apap produced them.

Monday, 3/26. Important recitation today. Paul Blaer will go over Mergesort.

Friday, 3/23. HW5 contest results are out. See the HW's page.

Monday, 3/19. Important recitation today. Paul Blaer will go over the array implementation of heaps, and also Heapsort.

Friday, 3/16. HW 7 is out.

Thursday, 3/15. HW6 bug was fixed. Methods in the abstract class HashMethods now declared abstract so the class can be compiled.

Tuesday, 3/6. HW6 due date has been moved to 3/26.

Monday, 3/5. HW5 has been changed significantly. You may do the older version if you already did a fair amount of work on it. In that case you need to implement one more specification: keeping internal table-sizes prime.

Friday, 3/2. HW6 is out. Get it from the homeworks page.

Tusday, 2/27. HW5 problem 3 typo fixed. line reading

if (X==null) return;
SHOULD READ:
if (N==null) return;
Thanks Anna and Rob for noticing.

Tuesday 2/28. Extra office hours today: 5-6:30 pm.

Monday 2/27. Paul Blaer's recitation notes on AVL Trees are up. Get them from the links page.

Sunday 2/25. HW5 typo fixed. In problem 1 changed "can only exponentiate using non-negative numbers" to "can only exponentiate using non-negative whole numbers"

Friday, 2/23. Java interface for HW5 has been modified slightly. I add the method String getAuthor() so we can tell more easily who wrote the class.

Thursday, 2/22. Homework 5 is now available. You should understand how to do the first three problems for the coming midterm.

Thursday, 2/22. Lecture 11 notes available. I discuss Okasaki's Insert method for Red-Black Trees. Get it from lectures page.

Thursday, 2/22. Practice midterms are available at: Paul Blaer's website. Ioannis, Paul and I put these together from various sources. Be sure to read the 3139Readme file.

Tuesday, 2/20. Extra office hour today. 3-4 pm. -Zeph

Monday, 2/19. Welcome to our new recitation leader, Paul Blaer.

Tuesday, 2/13. The Fractal Gallery is up. Get it from the homeworks page. Admittedly, it's not much of a gallery with only one picture, so please help us out by contributing.

Monday, 2/12. A few notes on binary search trees are up. Get it from the lectures links under the lecture 8 link.

Monday, 2/12. Another extra credit problem has been added to HW3. This is due to popular demand during the recitation.

Thursday 2/8. HW3 and HW4 have been modified. HW3 now has an extra credit portion. HW4 has been edited to better explain how to implement JTree.

Wednesday 2/7. I'd like to get a gallery going of cool fractals. If you're interested, please email me a screenshot of your program running your favorite fractal (On Windows: Alt-PrintScreen to capture your fractal program into the clip-board, paste into paint, and save the resulting file). Please send only one.
-Zeph

Wednesday, 2/7. Frank's grades database is now available. Link to it through the grades link on the top of the page.

Wednesday 2/7. HW 2 is should be submitted before 2:30pm to avoid late penalties. How do you submit? There's a link on the links page explaining how.

Tuesday 2/6. Frank's "list of common hw1 mistakes" is up. Get it from the homeworks page.

Monday, 2/5. Extra office hour Tuesday, 2/6. Zeph will be holding an office hour Tuesday, 2-3pm.

Monday, 2/5. How long did assignment no. 2 take you to do? Email Zeph with the number of hours in the subject line. E.g. "20 hrs. for assignment no. 2".

Monday, 2/5. Having problems getting Java 2 working on CUNIX? See the links page for a new link to a 3137 recitation explaining how you do this.

Monday 2/5. Adam's recitation will cover merging linked lists. This is useful for HW3.

Monday, 2/5. Programming HW4 is out. This assignment asks you so simulate a mini-UNIX file system environment. Get it from the homeworks page. For the assignment the following classes from java.util may be used:

ArrayList   Random     Stack    StringTokenizer    Vector

Friday, 2/2. The Grade-Wizard system is being created by Frank. Please email us the last four digits of your social security number (or if you prefer, another string that will represent your password) so you can view your future grades online. You should email us at cs3139-1@columbia.edu with subject "password=xxxx" where xxxx is your future password.

Friday, 2/2, 4:30pm. Solutions to HW1 are out. Solutions were created by Frank Apap and can be linked to from the homeworks page. Frank will also be putting up a "common mistakes" list at a later time.

Thursday 2/1. Homework 3 is out. Link to it from the homeworks page.

Wednesday, 1/31. I put two Data Structures references on reserve. You can browse through Goodrich & Tamassia's text, and also through Sahni's book at the Engineering library. These have alternate explanations for the concepts covered in Weiss.

Wednesday, 1/31. Recitation 2 code is available at the links page. This one differs from the first version in that the ActionListener for the Draw button is implemented as a separate class this time.

Monday, 1/29. Official lecture 4 material out. I put the previously released lecture 4 material in a directory called "pre-released." You should also check out the code in "forProb7HW1.txt" if you have yet to do Problem 7 of HW1.

Sunday, 1/28. Correction to problem 7 of hw1: You don't have to use induction to prove that the big-Theta formulas are correct. If you can do this using simpler arguments, then go ahead.

Friday 1/26. Homework 2 is out. Link to it from the homeworks page.

Thursday, 1/25. Help for HW1. To help you with HW1, I'm making my lecture 4 link available now. The BigInteger multiplication program can be used as a prototype for the Fibonacci comparison program. Cut and paste whatever parts of the program that you find useful (for example, the compareSimpleWithFast and testSimple might be especially applicable). You probably won't need the randomness portion, but it might still be a good idea to repeat each calculation several times to get more robust results and be able to detect running times for calculation f(n) for smaller values of n. An alternative involves calling on UNIX savvier native methods instead of using currentTimeMillis.

Wednesday, 1/24. Adam's first recitation program is out. Link to it from the links page.

Wednesday, 1/24. HW1, Problem 2. Due to a slight bug in the fractal program, you're allowed to give an answer which is the mirror image of the pictures given. You'll be given enough enough info before the homework on how the fractals work, in order to do this problem. If you want to research it on your own, you should do a search on Google for "L-Systems".

Monday, 1/22. Frank Apap's office hours: Tuesdays, 3-5 pm.

Monday, 1/22. The first recitation happens today, 4:10-5:10, 214 Pupin. Adam Trilling will be talking about GUI's and event handling. This will be useful for Homework 2. For 1009 students, this is review material. For 1007 students, it's new. Code examples will be linked to from our website.

Saturday Night 1/20. The Web-Board is now up and running. You can post new threads to the board directly by emailing to coms3139-001-011@columbia.edu or you can link via the link at the top of the page.

Friday 1/19. Homework 1 is out. Link to it from the homeworks page.

Wednesday 1/17. Program from lecture 1 is now up. Please post cool examples of axioms and F-rule pairs, once the web-board is up.

Monday, 1/14. Welcome to all! If you're curious about the course, check out the syllabus and information handout which will be given out during the first class.