2. Instructor Information
3. Course Objectives
This course helps students solve various problems encountered in the field of Industrial and Management Engineering using computational methods. Topics include the Knapsack Problem, Traveling Salesman Problem, Bin Packing, Shortest Path, Scheduling, and others. To effectively apply these methods, students will learn the object-oriented programming paradigm, Python, key data structures, and fundamental algorithms. 3 credit hours
After attending this course, you should have achieved the following objectives:
- Understand growth rate of algorithms using the Big-Oh notation
- Understand the notion of NP-completeness
- Understand how recursion can be used to design algorithms
- Understand the principles and usage application of basic data structures, such as arrays, stack, queues and lists.
- Understand the principles and usage applications of advanced data structures, such as trees and hash tables
- Understand and apply typical sorting and searching algorithms
- Understand graphs, graph traversal and paths within graphs
- Implement basic and advanced data structures in Python
- Implement the algorithms covered by this course in Python
- Design and evaluate efficient algorithms in Python to solve specific applied problems
4. Prerequisites & require
CSED 101 프로그래밍과 문제해결(Programming and Problem Solving)
5. Grading
Participation/Attitude 10%
Lab Assignment 20%
Homework 30 %
Mid Term Exam 20 %
Final Exam 20 %
6. Course Materials
Title |
Author |
Publisher |
Publication Year/Edition |
ISBN |
Data Structures & Algorithms in Python.
|
Goodrich, MT, Tamassia, R., and Goldwasser, MH
|
Wiley
|
2013
|
1118290275
|
7. Course References
최성철 (2019), 데이터 과학을 위한 파이썬 프로그래밍, 한빛아카데미
Cormen, T.H., Leiserson, C.E., Rivest, R.L., and Stein, C. (2009) Introduction to algorithms, MIT Press
Cormen, TH (2013) Algorithms unlocked, MIT Press
Dive Into Python3, https://diveintopython3.problemsolving.io/
8. Course Plan
1. Introduction
2. Python Basic
3. Python String, List & Tuple
4. Python Function, (Knapsack)
5. Python Generator, Class, Module, Speed
6. Python Exception, File I/O
7. Python Data Structure
8. Python NumPy
9. Python Pandas
10. Python Graph
11. Python GUI, (TSP)
12. Algorithm Analysis
13. P, NPC, NP-hard
14. Mid Term Exam
15. Object-Oriented Programming, Software Development
16. Recursion
17. Array-Based Sequences
18. Stack
19. Queue, and Dequeue, (Dijkstra’s, A* Algorithm)
20. Linked Lists
21. Trees
22. Priority Queues
23. Maps and Hash Tables
24. Search Trees
25. Graph Algorithms
26. MIP Solver
27. Web Crawling
28. Final Exam
9. Course Operation
Pre-study with multimedia -> Quiz in class -> Q&A -> Problem solving in class
10. How to Teach & Remark
If one or more students who cannot speak Korean enroll in the course, the lectures will be conducted in English.
11. Supports for Students with a Disability
- Taking Course: interpreting services (for hearing impairment), Mobility and preferential seating assistances (for developmental disability), Note taking(for all kinds of disabilities) and etc.
- Taking Exam: Extended exam period (for all kinds of disabilities, if needed), Magnified exam papers (for sight disability), and etc.
- Please contact Center for Students with Disabilities (279-2434) for additional assistance