3. 강의목표
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. 강의선수/수강필수사항
CSED 101 프로그래밍과 문제해결(Programming and Problem Solving)
5. 성적평가
Participation/Attitude 10%
Lab Assignment 20%
Homework 30 %
Mid Term Exam 20 %
Final Exam 20 %
6. 강의교재
도서명 |
저자명 |
출판사 |
출판년도 |
ISBN |
Data Structures & Algorithms in Python.
|
Goodrich, MT, Tamassia, R., and Goldwasser, MH
|
Wiley
|
2013
|
1118290275
|
7. 참고문헌 및 자료
최성철 (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. 강의진도계획
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. 수업운영
Pre-study with multimedia -> Quiz in class -> Q&A -> Problem solving in class
10. 학습법 소개 및 기타사항
If one or more students who cannot speak Korean enroll in the course, the lectures will be conducted in English.
11. 장애학생에 대한 학습지원 사항
- 수강 관련: 문자 통역(청각), 교과목 보조(발달), 노트필기(전 유형) 등
- 시험 관련: 시험시간 연장(필요시 전 유형), 시험지 확대 복사(시각) 등
- 기타 추가 요청사항 발생 시 장애학생지원센터(279-2434)로 요청