You are on page 1of 3

EECS 233 Introduction to Data

Structures
Spring 2017

Course Description
EECS 233 is an introductory course in computer science. Its primary objective is an
introduction to various methods of organizing large amounts of data, and basic analysis
of algorithms that use these methods. The course will cover linked lists, stacks and
queues, hashing, searching and sorting, some tree structures and basics of graphs. Simple
analysis of algorithms is also included for hashing, searching, sorting, etc. Java
programming language will be used for lectures and assignments.

Prerequisites
ENGR 132, knowledge of Java.

Textbook
Data Structures and Algorithm Analysis in Java (Second or Third Edition), by Mark
Allen Weiss, Addison-Wesley (Optional)

Logistics
Class time: Tuesday and Thursday, 1:15-2:30. Room: Rockefeller 301.
Instructor office hour: Thursdays 3:304:30 or by appointment.

TAs:

Jacob Rosales Chase jxr450@case.edu


Justin Lee jpl88@case.edu
James Vaughn jtv21@case.edu
Ian Waldschmidt isw5@case.edu
Helen Zhao hxz347@case.edu

TA Office Hours (all in Jennings lab, Olin 4 th floor):

Monday 10:30 - 11:30 Justin


Tuesday 12:00 - 1:00 Ian
Wednesday 4:00 - 5:00 Jacob
Thursday 11:30 - 12:30 James
Friday 12:30 - 1:30 Helen

Course Content and Requirements


Students are required to attend lectures and are expected to master all the material
covered in class. Assignments missed due to reasons other than medical conditions
cannot be made up. Prior experiences show that students regularly attending lectures
usually perform better in the exams than those who do not.

The course will include four programming assignments, four written assignments, a
midterm exam, and a final exam.

Students should use electronic submission for both assignment types. We will use a
software system to detect code copying. Assignments are due before midnight on the due
date. Late submission of assignments is acceptable if no more than three calendar days
(72 hours) past the due date, but the grade will be discounted 10% per calendar day (24
hours).

Grading Policy
Programming assignments: 25%
Written assignments: 20%
Midterm exam: 20%
Final exam: 35%

Academic Integrity Policy


All students in this course are expected to adhere to University
standards of academic integrity. Cheating, plagiarism,
misrepresentation, and other forms of academic dishonesty will not be
tolerated. This includes, but is not limited to, consulting with another
person during an exam, turning in written work that was prepared by
someone other than you, making minor modifications to the work of
someone else and turning it in as your own, or engaging in
misrepresentation in seeking a postponement or extension. Ignorance
will not be accepted as an excuse. If you are not sure whether
something you plan to submit would be considered either cheating or
plagiarism, it is your responsibility to ask for clarification.

Tentative Schedule
Week 1 Course overview, basics of memory and OO programming
Week 2 Basics of recursion, algorithm analysis; Written assignment #1
Week 3 Linked list; Programming assignment #1
Week 4 Stacks and queues; basics of trees
Week 5 Binary (search) trees; balanced trees Written assignment #2
Week 6 Huffman encoding; heaps/priority queue Programming assignment #2
Week 7 Heaps/priority queues
Week 8 Midterm exam; exam review, basics of Hashing
Week 9 Hashing; Written assignment #3
Week 10 Basics of sorting, various sorting methods; Programming assignment #3
Week 11 Various sorting methods
Week 12 Basics of graphs; traversal; Programming assignment #4
Week 13 Shortest-path; Dijkstras algorithm.
Week 14 Minimum spanning tree: Prims algorithm; Written assignment #4
Week 15 Network flow; state-space search
Week 16: Final exam

You might also like