CS 3240 Fall 2004 Home Page
CS 3240 - Data Structures and Algorithms - 4 Credits 

Instructor: David Yang (e-mail: dyang@csuhayward.edu, 885-3449)

In this course, we will:

  • introduce principles for organizing data (data structures),
  • discuss how to write well-defined solutions (algorithms), which typically make use of data structures
  • and discuss how to compare different data structures and algorithms, especially for solving problems involving large amounts of data

Data structures and algorithms are important in almost any field within computer science. Whether rendering a dinosaur, analyzing data in a data warehouse, laying the wires on the design of a CPU chip, or approximating the integral of a function, algorithms are necessary to solve the problem.

The material for this course course is covered in part of the comprehensive exam.

Prerequisites: You are expected to be comfortable with the material in the following courses or their equivalents. In particular, you will be doing some programming in either C++ or Java.

  • CS 2360 Programming Methods and Introduction to Software Engineering
  • CS 2430 Computer Organization and Assembly Language Programming
  • (recommended for most) CS 3120 Programming Language Concepts

CS 2360 is important because you do need to know how to program in order to do the assignments and the exams. The concepts we cover and the conclusions we make will be language-independent, but you need to be able to implement the solutions as well. C++ or Java both happen to provide meaningful support for some of the concepts we will learn.

CS 2430 is important for understanding the effects of data structure design as well as practical limitations for both data structures and algorithms.

CS 3120 offers a truly practical use of the stack data structure. Furthermore, it is helpful in understanding how the concepts in this course are not limited to just C++-like languages.

Text:
Dale, C++ Plus Data Structures, 3rd ed., 2003, Jones & Bartlett, ISBN: 0-7637-0481-4.

Blackboard:
Here is a page with useful info related to Blackboard.

Calculation of your grade:There will be two exams during the quarter, worth 15% each. The final is worth 30% of your final grade. Written assignments are worth 20% of your grade. Programming assignments are worth 20% of your grade.

Lateness: Assignments need to be submitted to me through Blackboard by the deadline. Exceptions will be made under extreme conditions, but this would mean something like a school closing/power outage.

Final grades will be given according to the following scale: 

93-100 A, 90-92 A-, 87-89 B+, 83-86 B, 80-82 B-, 77-79 C+, 73-76 C, 70-72 C-, 

67-69 D+, 60-66 D, 0-59 F

Academic Honesty: This course will follow the University's standard policy on academic dishonesty. In particular, any cheating, or assisting another students cheating on any test, or the final exam will be penalized by either a zero on the test, or by failure of the course, at my discretion.

Finally, if you cheat (whether you do the copying or let someone copy) twice during this course, you will automatically fail the course. Remember that the University may inflict further penalties than listed here under the provisions of the published Academic Dishonesty Policy. 

Attendance: I will take attendance through the end of the add/drop period. Note that while I will be uploading lecture notes to Blackboard after the lecture, they sometimes include material not covered in the text, and they include thought questions for class discussion that won't always be answered within the notes.

Classrooms: 

Monday, Wednesday, Friday 1:20pm-2:30pm AE0285

Office Hours: My office is in room 433 (South) of the Science Building. My schedule for office hours is: 

  • Monday, Wednesday, Friday 2:40-3:40pm
I will also be available at other times -- if I'm free, you should feel free to stop by with any questions you have. You can make an appointment to make sure I'm available and free at that time, but it's not a big deal. This is the only source of individualized attention you get, so use it.

Click here for the class schedule


 
This webpage's layout is originally from Bill Parkinson, who used to teach in the evening program at St. Joseph's University.