CS210: Intermediate Computing with Data Structures
Spring 2006

Department of Computer Science
UMass Boston

Lectures TuTh 19:00-20:15 (originally in M/2/205)

Note room change for lectures: now in M/1/207 on Tues., M/1/409 on Thurs.

Labs Th 20:30 in the White Lab, Healey Library 3rd floor

Instructor: Betty O’Neil
email: eoneil@cs.umb.edu
Office: S-3-169
Office Hours: TuTh
3:30-5:00pm

TA: Dimpi Chheda

Course Description: The design and implementation of computer programs in a high level language, with emphasis on proper design principles and advanced programming concepts, including dynamic data structures and recursion. The language of instruction for this course is Java.

Java Version: We will be using Java 5.0 (aka Java 1.5.0).  This version of Java has a number of new features (compared to Java 1.4).

 

The syllabus includes a detailed list of topics to be covered.

Prerequisites:  The only formal prerequisite for this course is CS110 or equivalent fluency in the Java programming language.  See the detailed list of Java topics in the syllabus. In order to take CS210, you must pass the Qualifying Assignment that will be handed out at the first lecture and due at the second lecture.  In the past, many students have found that their Java experience was not sufficient to pass CS210.   The qualifying assignment is designed to help you determine if CS210 is right for you. 


Textbooks

There is one required text for this course:

Recommended book to help with Java. The links to Amazon.com are so you can find some useful reviews.

Cay Horstmann and Gary Cornell, Core JAVA, Volume I—Fundamentals, 7th ed. (needed for Java 5), Sun Microsystems/Prentice Hall, 2005. ISBN 0-13-148202-5. At Amazon.com. Has useful notes on C/C++ vs. Java as well as a self-contained description of Java.



Homeworks and Programming Assignments

Qual exam  examples from book

hw1, due Thursday, Feb. 9, in class, on paper: Review, intro to Algorithm Analysis (postponed due to textbook shortab
Note: drop problem 4.11 in hw1--that problem was mistakenly listed. hw1 solution
pa1, due Tuesday, Feb. 7 and Monday, Feb. 13, at noon, via the turnin system. pa01 solution
hw2, due Tuesday, Feb. 21, in class, on paper.  Chap 5, 6.  hw2 solution
pa02, due Monday, Feb. 27, at noon, via the turnin system. extended to Wed. noon for full credit, Saturday for 5 pts off.  pa02 files  pa02 solution
hw3, due Thursday, Mar. 9, in class, on paper. hw3 solution.
Spring Break: Mar. 13-17.
pa03, due Monday, Mar. 20, at noon, via the turnin system.  Note: drop step 8, conversion of StringTokenizer to Scanner.
post-pa03 MatcherTest.java showing replacement for StringTokenizer using Matcher class. pa03 solution
pa04, due Monday, April 10, at noon, via the turnin system.  pa04 test files  pa04 solution
hw4, due Thurs., April 20, in class, on paper. campus.xml, the broken xml file to diagnose hw4 solution
pa05 on XML trees.  Due Monday, Apr.24, noon, via turnin. Look at this XML tutorial to get started. pa05 files  pa05 solution
hw5, due Thurs, May 4, in class, on paper. hw5 solution
pa06 OrderedList.  Due Monday, May 8, midnight, via turnin.  pa06 files  pa06 solution


Labs

lab1, for lab section 1, Thursday, Feb. 2, and for lab section 2, Thursday, Feb. 9
lab2, for lab section 1, Thursday, Feb. 16, and for lab section 2, Thursday, Feb. 23
lab3, for lab section 1, Thursday, Mar. 2, and for lab section 2, Thursday, Mar. 9
lab 4 for lab section 1, Thursday, Mar. 30 and for lab section 2, Thursday, April 6
lab5  for lab section 1, Thursday, Apr. 13, and for lab section 2, Thursday, Apr. 20 lab 5 files
lab6 for lab section 1, Thursday, Apr. 27, and for lab section 2, Thursday, May 4 lab 6 file


Class notes

Jan. 24: Intro, qual exam notes
Jan. 26: review of inheritance, abstract classes, interfaces
Jan. 31: Interfaces, intro to algorithm analysis (big-Oh)
Feb. 2: Turnin info, pa1, logs, number rep, algorithm analysis.  Note new Resources on generics at the end of this page.
Feb. 7: Binary Search, Java types  Shape example
Feb. 9: Comparable<T> used in generic algorithms, intro to Chap. 6, Collections
Feb. 14: Collection Classes, iteration, intro to Sets
Feb. 16: Sets, Maps
Feb. 21: Maps, Intro to PA02
Feb. 23: Random numbers, more on PA02, Map Example.
Feb. 28: Sorting and Searching, intro to Stacks.
Mar. 2: Stacks, intro to PA03
Note: midterm March 28
Mar. 7: Expression evaluation and PA03
Mar 9: PA03, object lifetimes, intro to queues.
Mar. 15-19: spring break
Mar. 21: Queues, intro to recursion
Practice Midterm
Mar. 23: Midterm Review
Prectice Midterm Solution
Mar. 28: Midterm.  Solution
Mar. 30: Recursion
Apr. 4: Finish recursion, start Chap. 15. Inner Classes and ArrayList
Makeup Midterm: after class Tuesday, Apr. 4. Return Apr. 6.
Apr. 6: Chap. 15 ArrayList
Apr. 11: Chap. 16, start on Chap 17: Stacks, Queues, LinkedList
Apr. 13. Finish Chap 17, start on Chap 18, Trees, intro to XML
Apr. 18:  XML and DOM trees, including traversal
Apr. 20: PA05, Binary trees
Apr. 25: Binary Trees, start on Binary Search Trees
Apr. 27: BSTs and BSTs with rank
May 2: BSTs with rank and duplicate count, sorting
May 4: BST and BSTWithRank code, pa06 steps
May 9: Final Review
Practice Final Practice Final Solution
Final Exam  is Tuesday, May 16, 6:30-9:30 in M-2-423
Open books, notes, handouts, solutions.  Should bring solutions to pa04, pa05, pa06.

Honesty

You must do your own work in this course. You are encouraged to discuss problems/projects with classmates, or to ask for help with debugging. When you do share ideas or get help you must acknowledge that help in writing. However, you are not allowed to use another student's code in any way while doing your homework, even if you acknowledge that, nor are you allowed to use solutions from past semesters that might be available on-line.


Handouts

All the material that we will be providing will be available on line. You will be able to find them on the web on the course home page, http://www.cs.umb.edu/cs210.


Computing Facilities for CS 210

Assignments will be available on the class web site.  You will hand in your homework though a web-based “turnin” system.

You can do your work in the computer labs managed by Academic Computing Services (ACS) in the Healey library, or you can work from home (see below).    

IDE: The 'default' IDE (integrated development environment) for the course will be Dr. Java. You will have an opportunity to practice using this IDE during the first lab.  You may, if you choose, use another IDE, such as JBuilder or Eclipse, but we may not be able to help you if you run into problems.

All the software you need to work from home is available for free.  We have written a primer on setting up your home pc here.  Warning: In the past, many students have had problems setting up their home computers. We will provide some informal help with this task (and some of you may be able to help others) but we cannot provide technical support for your home computer. 

Resources