SemesterFall Semester, 2020
DepartmentSophomore Class A, Department of Management Information Systems Sophomore Class B, Department of Management Information Systems
Course NameData Structure
InstructorYU FANG
Credit3.0
Course TypeRequired
Prerequisite
Course Objective
Course Description
Course Schedule

Lectures/Schedules (Subject to change)



彈性上課/No Lectures: Week 2, 16 and 18.



September- Get ready to programming!



Week 1. [3/3 hours] Opening: A brief overview of Java and eclipse [Lec0] [Lec1]

- Text Book (TB) Chapter 1



- 2 hours lab session and 10 hours self study. 



Week 2. [6 hours] Java environement setup. [彈性上課/No Lectures]



- 2 hours lab session and 10 hours self study.



Week 3. [3/3 hours] Introduction: Object-oriented design and abstract data type [Lec2]



- TB Chapter 2



- 2 hours lab session and 10 hours self study.



Week 4. [3/3 hours] Text matching and Class project announcements [Lec3]



- TB Chapter 12 

- Project: Intelligent Searching-BeatGoogle!



- 2 hours lab session and 10 hours self study.



October – Introduce basic data structures and their implementations



Week 5. [3/3 hours] Linked List [Lec4]

- TB Chapter 3 and Chapter 6 



- 2 hours lab session and 10 hours self study.



Week 6. [3/3 hours] Queues and Stacks [Lec5



- TB Chapter 5 and Chapter



- 2 hours lab session and 10 hours self study.



Week 7. [3/3 hours] Trees [Lec6]



-TB Chapter 7. 



-Lab programming test



- 2 hours lab session and 10 hours self study. 



Week 8. [3/3 hours] Heaps [Lec7



-TB Chapter 8



- 2 hours lab session and 10 hours self study.



November – Introduce fundamental algorithms and their analyses



Week 9. [3/3 hours] BigO, Divide and Conquer [Lec8]  



-TB Chapter 4, 11



- 2 hours lab session and 10 hours self study. 



Week 10. [3/3 hours] Merge/Quick Sort (Recurrence Equations) [Lec9]



-TB Chapter 4, 11



- 2 hours lab session and 10 hours self study.



Week 11. [3/3 hours] Dynamic Programming [Lec10]



-TB Chapter 12



- 2 hours lab session and 10 hours self study. 



Week 12. [3/12 hours] Midterm Exam 

-Lecture 1-9 TB Chapter 1-8, 11-12



- 12 hours self study.



December – Step on advance data structures



Week 13. [3/3 hours] Binary Search Trees [Lec11]



-TB Chapter 10



- 2 hours lab session and 10 hours self study.



Week 14. [3/3 hours] Maps and Hash tables [Lec12]  and Dictionaries and Skip Lists  [Lec13



-TB Chapter 9 and 10



- 2 hours lab session and 10 hours self study.



Week 15. [3/6 hours] Graphics I [Lec14] and Graphics II [Lec15]  



-TB Chapter 13, 15



- 2 hours lab session and 10 hours self study. 



January – Talk and Demo 



Week 16. [12 hours] Project Implementation: Let's Beat Google (Project Proposal) [彈性上課/No Lectures]



- 2 hours lab session and 10 hours self study. 



Week 17. [3/12 hours] Project Implementation: Let's Beat Google (Project Demo)



- 2 hours lab session and 10 hours self study. 



Week 18. [12 hours] Project Implementation: Let's Beat Google (Final Report and Code Uplaod) [彈性上課/No Lectures]



- 12 hours self study. 


Teaching Methods
Teaching Assistant

TBA


Requirement/Grading

Homework:

- Assignments/Labs: 40% (Weekly)

- Programming Project: 30% - including project proposal (20%), demo (40%) and implementation (40%). 3-5 students as a team. The project details will be announced at the early of Oct.



Exam: 

- Midterm Exam (close book): 30% 



*Please note that all slides/exams will be written in English despite Chinese or English sessions. Students are strongly encouraged to write their proposal and present their project in English.


Textbook & Reference

Text Book



Data Structures and Algorithms in Java 6th edition, by Michael T. Goodrich and Roberto Tamassia, John Wiley & Sons, Inc.



Official Website: http://www.wiley.com/go/global/goodrich



PDF Handouts [zip]



代理商:新月圖書公司/東華書局, 台北市重慶南路一段143號三樓TEL: 02-23317856



 


Urls about Course
The course web page: http://soslab.nccu.edu.tw/Courses.html Links that might be useful: •Introduction to programming in Java [open course by MIT] •Java Applet Tutorial [oracle] •An svn tutorial [ibm] •Eclipse download [official website] •An eclipse tutorial [eclipse]
Attachment