Department of Computer Science
UMass Boston
Class: Mo, We 4–5:15 in M-1-210
Instructor: Nurit Haspel
email: nurith@cs.umb.edu
Office: S-3-71
Office hours: Th 9:00–10:30AM
Course Description: A systematic study of the methods of structuring and
manipulating data in computing. Application programming interfaces, data
abstraction, and the encapsulation of implementations. The
design and analysis of algorithms. Advanced techniques
for program development and organization.
See the course syllabus for a detailed list of topics.
Prerequisites CS210, CS240, Math 140. There will be a qualifying programming assignment given on the first day of class (and posted on this page) that will allow you and me to determine how well you're prepared for the course.
Late days on programming assignments: All written (homework) assignments should be submitted on time! Each student has 5 late days for use over the programming assignments. Any number of days can be used on each assignment, totaling no more than 5 over the term. Write a note in your README file saying you are using late days so I will know.
Qualifying Assignment, due at class Monday, Sep. 14. SinglyLinkedList.java. Solution.
HW1 due Wednesday, Sep. 23, in class, on paper. Solution.
HW2 due Wednesday, Sep. 30, in class, on paper (except q1 which should be submitted in your account). Solution.
PA1 due Wednesday, Oct. 7 by midnight, in your cs310/pa1 directory. Solution.
HW3 due Wednesday, Oct. 14, in class, on paper. Solution. PA2 due Wednesday , Oct. 21, by midnight, in your CS310/pa2 directory. Solution. HW4 due Wednesday , Oct. 28, in class, on paper. Solution. PA3 due Tuesday , Nov. 10, by midnight, in your CS310/pa3 directory. Solution. PA4 due Wednesday , Nov. 18, by midnight, in your CS310/pa4 directory. Solution. PA5 due Wednesday , Nov. 25, by midnight, in your CS310/pa5 directory. HW5 due Wednesday , Dec. 2, in class, on paper. Class Notes Wed.
, Sep. 9 notes
. Intro to qualifying assignment, review of encapsulation, APIs. Wed.
, Sep. 16 notes
. The Collection interface,
lists. Mon.
, Sep. 21 notes
. The Collection interface - Sets, Maps. Wed.
, Sep. 23 notes
. Maps, Hash tables, Hash functions. Mon.
, Sep. 28 notes
. Hash tables, hash functions, linear and quadratic probing. Wed.
, Sep. 30 notes
. Hash tables, hash functions, implementation of HashSet. Mon.
, Oct. 5 notes
. Hash implementation, set operations. Wed.
, Oct. 7 notes
. Set operations. Wed.
, Oct. 14 notes
. Priority queues, event driven simulations. Mon.
, Oct. 19 notes
. Sorting and binary search. Wed.
, Oct. 21 notes
. Greedy algorithms, divide and conquer, dynamic programming. Mon.
, Oct. 26 notes. Handout - the Game API
. Introduction to the Game project. Wed.
, Oct. 28 notes. Midterm review. Mon.
, Nov. 2 Midterm (solved). Wed.
, Nov. 4 notes. Game project. Handout - the Game package Mon.
, Nov. 9 notes. Game project - findbest, minimax search, observer/observable. Handouts PlayOneGame.java. AbstractPlayOneGame.java Mon.
, Nov. 16 notes. Game project - wrapping up. Compression and prefix codes. Wed.
, Nov. 18 notes. Huffman algorithm, UTF encoding. Mon.
, Nov. 23 notes. Introduction to graphs. Handout - the Graph package Textbooks Required: Mark Allen Weiss, Data
Structures and Problem Solving in JAVA, (3rd Edition), Addison Wesley
2006). The source
code is available on line. Recommended
supplement to help with JAVA. You will do all your work on the Department's network of UNIX
systems, or deliver working code there. Apply for an account as soon as
possible, following the instructions posted in the Unix
lab (S-3-158). You need to apply for cs310 even if you already have a UNIX
account here. When your application for a course account has been approved
you will have been added to the cs310 mailing list. You should check for email
at least several times per week. If you
wish, you can put a .forward file in your home directory to forward your email
to another mailbox.This file simply
contains your other mail address, such as user@yahoo.com. All material for this course will be kept in Also, you will have to pass the final exam to pass the entire course. 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 IT
IS NOT ALLOWED TO USE ANOTHER STUDENTS CODE IN ANY WAY WHILE DOING YOUR
HOMEWORK, even if you acknowledge that. Working from home 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. Difficulties
you encounter working from home will not be accepted as excuses for late
assignments. You may bring your laptop
to office hours for some help (no guarantees!)
Your Unix account
email
On line material
/courses/cs310/public_html,
which we will abbreviate as $cs310.
It is visible from our Unix network and on the Web as
http://www.cs.umb.edu/cs310. This file is $cs310/index.html .
Written work
There will be about 6 programming assignments and about 5 written homeworks, a midterm and a final exam. For more information, see the syllabus.
Grade Composition
Honesty
Resources