CS310 DATA STRUCTURES - Fall 2007
BA 251 MW: 2-3:15pm

Dr. Kris Stewart (stewart [at] rohan.sdsu.edu)
Office: GMCS 535
Office Hours: Mon Wed 4-5 [or by appointment]
San Diego State University
05Dec07

NOTE:
Only email with a subject field indicating CS310 and your topic sent from your class account to the instructor's Rohan account will be read and/or responded to. Any attachments will be deleted, unread.
Email repository

This URL is http://www.stewart.cs.sdsu.edu/cs310/

Lectures Fall07 Exams Fall 07 When to use what? summary

Welcome to your exciting programming class implementing a variety of useful data structures using JAVA to minimize platform issues. We discover how to effectively predict the performance of the algorithms used to manipulate these structures, building your strengths as a programmer to design "good" computational solutions.

PREREQUISITES:

CS 108 Intermediate Computer Programming,
Math 245 Discrete Mathematics (and its prerequisite Math 150 or Math 121 - Calculus)

LEARNING OUTCOMES:
Students will develop the programming skills to effectively code the solution to problems in Data Structures using JAVA. Students will also gain understanding of the properties of algorithms and how these properties affect the time to solution for various sized problems. Students will come to understanding performance properties of algorithms through programming assignments and studying for examinations. The first-hand knowledge gained through adapting sample programs to address alternate problems and the analysis of the run-time behavior of these solutions is a fundament skill for all computer scientists.

TEXT:
We use a textbook which provides examples in Java in the text and useful sample codes online to allow you to do your own explorations and discovery.

Data Structures and Abstractions with Java, 2nd Edition, Frank M. Carrano, University of Rhode Island, Prentice Hall, 2007 ISBN-10:013237045X Publisher's Gateway to Text
We hope to cover all chapters, in varying degrees of thoroughness. Table of Contents We hope to cover all chapters, in varying degrees of thoroughness.
Source Code from publisher on Rohan

SYNOPSIS: (from SDSU Catalog) Representations and operations on basic data structures. Arrays, linked lists, stacks, queues, and recursion; binary search trees and balanced trees; hash tables, dynamic storage management; introduction to graphs. An object oriented programming language will be used.

This course will use JAVA. If you have a background in C++, then you should find the discussion in Appendix A of the text to be useful.

COMPUTING ENVIRONMENT:
For this course, you will do extensive programming in Java. Java is the language of instruction for the course. Each student is given a class account on Rohan, the university academic Sun computer. All programming assignments must compile and run in your class account on Rohan. You must use the default Java version as installed on Rohan. Your class accounts will be distributed on the first Meeting of class. You should use this account only for work related to this class. It is against University policy to use SDSU computer resources for commercial purposes. All SDSU students may apply for a personal account on Rohan. You should use a personal account for all work not related to this course.

By default, the permissions set on your account files are private. Do not set global permissions on any files in your class account. This is a gradeable issue.

Student Responsibilities for Academic Computer Use
Hours of Rohan Operation with link to student labs on campus
The Computer Science Department will open a new lab (GMCS 425) in the second week of classes which will have 23 dual-boot systems. You will receive a student account, when they become available, and we expect to have some class labs in this facility.

For all computer accounts, you should safeguard your password, and protect access to your class account. Be vigilant when working in the computer labs. Lock the screen, or log out if you must step away from the lab. You are responsible for protecting your intellectual property.

GRADING CRITERIA:

  1. You will have four Java programming assignments reinforcing topics from our text. These assignments will comprise 40% of your grade.
  2. You will have two midterms and one final. These exams will comprise 60% of your grade.

lectures

Midterm 1 on sorting and time efficiency - 03October07
Continuing Lectures
NOTE: We meet Monday 10Sept07 in GMCS 425 GMCS 425 Lab 1
third Lecture [our first data structure] (05sept07) Chapter 4 slides
Ch4: CodeSamples the list as an abstract data type
Applets showing Lists as Arrays
Chapter 3 slides Ch3: CodeSamples object-oriented design, Java interfaces, intro to CRC card and UML
Chapter 2 slides Ch2: CodeSamples Composition, inheritance, polymorphism review; introduces Generic Types
second Lecture - Did everyone successfully log onto Rohan? in LL220? or where?
first Lecture - Java Classes 5 Chapter 1 slides Ch1: CodeSamples [demo linking between slides and code]

COURSE RESOURCES:

return to Kris' Home Page