Data Structures (C343/A594 Fall 2019; 4 CR)
Instructor: Yuzhen Ye (yye@indiana.edu; Luddy 2046)
Class meets: 09:30A-10:45A TR GY126
Lab meets: 09:05A-11:00A F WY 125; 11:15A-01:10P F HH4055; 12:20P-02:15P F WY125; 02:30P-04:25P F WY125
See Canvas for information about associate and undergraduate instructors.
Syllabus
- Description Systematic study of data structures encountered in computing problems, methods of representing structured data, and techniques for operating on data structures. Algorithms are instructions for solving problems and data structures are strategies for organizing information on computers. Efficient algorithms require appropriate data structures, and vice versa, so the study of algorithms and data structures is tightly linked. In this course, you will learn about the algorithms and data structures that form the building blocks for most of today's computer systems. Use of different data structures and algorithms will be discussed in the contexts of real applications (including bioinformatics applications and social network mining). You will get to know Java (if you don't know it yet), and have lots of practice with Java.
- Important Dates:
- Midterm: normal class time on Thur., Oct 17th
- Final exam: 8:00-10:00AM, Tues., Dec 17th
- Have a working knowledge of the basic data structures and algorithms that are used pervasively throughout computer science
- Ability to measure and analyze the time complexity of basic algorithms and data structure operations, especially algorithms that make use of loops and recursion.
- Ability to choose the appropriate data structure for the situation.
- Have the skill of developing code that implements data structures and algorithms, including writing code, testing and debugging code, using IDEs (Eclipse), and version control systems git (for assignments & projects).
- Understand memory hierarchy and its impact on data structures (and algorithms).
- Understand and use thread safe data structures in Java (e.g., Concurrent Collections).
- Be prepared for technical interviews (related to data structures and algorithms)
- There will be NO make-up quizzes/mini-assignments; however, the lowest grade will be dropped;
- No make-up exams;
- No late submission;
- The final grade will be calculated according to the evaluation scheme given above and these grades will then be curved to determine your letter grades. However if you get less than 45/100 on the final exam or your total grade is less than 45/100, your final grade will automatically be an F.
- Only turn in your OWN work for individual assignments (including homework assignments and in-lab mini-assignments), and for group project, your team's work. Incidents of academic misconduct will be reported to the Office of the Dean of Students. The typical consequence will be an automatic F in the course. Check out more at (Code of Student Rights, Responsibilities & Conduct).
- "A student who is found to have committed an act of academic misconduct while enrolled in a class and is assigned a grade of F by the instructor as a result of the misconduct will have the grade of F entered in place of the automatic W which would otherwise have applied." (IU's policy on withdraw)