Fall 2002 Instructor: Leslie Foster Office: MH 312 CS 046B Introduction to Data Structures Email: foster@mathcs.sjsu.edu Home page: www.mathcs.sjsu.edu/faculty/foster Telephones: 924-5123, Secretaries: 924-5100 Office Hours (tentative): MWF 10:30-12:10, by appointment or (for questions related to the course) any time I'm not busy Other assistance: The Math / CS Tutor lab in MH 331B or the SJSU Learning Assistance Resource Center in the Student Service Center on Tenth Street. See http://acadsvcs.sjsu.edu/larc/ Prerequisites: CS 46A with a grade of C- or better. Corequisite: M042 Language: All students are assumed to have a basic working knowledge of Java as taught in 46A. This includes objects, objects references, classes, methods, instance variables, repetition, selection, an introduction to recursion, inheritance, subclasses, an introduction to clones, arrays, vectors, exceptions, input / output, streams, good style and javadoc documentation. All code that you submit must follow the department style guide (http://www.mathcs.sjsu.edu/department/JavaCodingGuidelines.html). New or reinforcing material on Java in CS46B will include clones, wrapper classes, interfaces, recursion, packages, iterators and the Java Class Libraries (JCL) collections classes For a compiler you could use Sun’s jdk 1.3, Textpad and / or Forte. For information on how to download Windows versions of these see http://www.mathcs.sjsu.edu/faculty/pearce/jlab/index.htm. You could also use a Unix Java compiler. See http://www.mathcs.sjsu.edu/courses/cs46b/cs46blab/mainLabDirectory.html for information on compiling java in unix. To get a computer account please go to MH 226/227 when you are registered. Text: Michael Main . Data structures and Other Objects using Java, Addison-Wesley, 1999. Material Covered: Chapters 1-6, 7 (except 7.4), 8, 9, 10.3, 11, 12.1, 13, Appendix D, additional material on the JCL collections classes and some discussion of ethics and computing. This includes a review of Java (Chapters 1, 2 , part of 3 and 13.1), linked lists, iterators, Java class collection libraries, stacks, queues, recursion, binary trees, searching, hashing, and quadratic sorting algorithms. Required Lab: There is a separate required laboratory with its own material (see http://www.mathcs.sjsu.edu/courses/cs46b/cs46blab/mainLabDirectory.html). You must attend the separate lab to determine the grading requirements of the lab instructor. Requirements and Points Points Each 2 midterms Final 3-6 Quizzes 5-10 programs Separate Lab 100 150 20 10-20 50 Total ~600 Basis of Grade Curve within reason. The curve for each individual test/quiz/program will be announced in class when the assignment is returned. If not announced the curve is 90/80/70/60 for A/B/C/D. In order to pass the course your average grade on the programming assignments must be passing. Also you must pass the separate lab. Homework: Keep a collection of all assigned homework. The entire set will be picked up from time to time during the semester. If your grade is in doubt homework and other signs of work will help your grade up to a maximum of 2-3% points in the final grade. Make-up exams and quizzes: None except under very unusual circumstances and then only if you contact me (via phone, message, in person, note, ...) before the exam. Make-up exams will be more difficult. Cheating: Cheating on any quiz, exam, or program may result in an F in the course. All incidences will be reported to the University. On programs you can consult with other students on general matters. A copied program is cheating. Also turning in output that is not produced by your program is cheating. CS46B Homework Assignments for Michael Main . Data structures and Other Objects using Java, Addison-Wesley, 1999 For programs you only need to write out and turn in clear psuedocode for each method in the class or classes. You do not need to (but you could) include java code for the programs and test runs. . The weight of each program problem assigned will be five points and each review question will be one point. Chapter Problem 1 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13 2 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27 Programs: 1, 4, 5, 8 3 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 Programs: 3, 4, 6 4 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 Programs: 2, 4, 5, 6, 9, 10 5 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 Programs: 5 6 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 Programs: 2, 4, 10 7 Self Test (7.1- 7.3): 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 Programs: 3, 7 8 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13 Programs: 1,5,6,10 9 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 Programs: 7, 10, 11 10 Self Test (10.3): 10,12 11 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 Program: 4 12 Self Test 1,2,3 13 Self Test: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15