덕성여자대학교 알고리즘 강의 자료 저장소입니다. Python 기반 알고리즘 실습에서 시작해 pandas, ZINC 데이터 다운로드, 분할 정복, Big-O 표기법, MPI 병렬 처리, 정렬/탐색/그래프 알고리즘, 분자 데이터 기반 greedy/dynamic programming 응용, SMARTS와 fingerprint 유사도 분석까지 다룹니다.
이 저장소는 알고리즘의 기본 개념을 실습 중심으로 학습하고, 후반부에는 화합물/농약 후보 분석 문제에 알고리즘을 적용하는 자료로 구성되어 있습니다.
- 1주차: 알고리즘 개요와 기본 사고 방식
- 2주차: pandas 기초와 ZINC 데이터베이스 다운로드 자동화
- 3주차: 분할 정복, pseudo code, Big-O notation, mpi4py 병렬 처리
- 4주차: 정렬 알고리즘과 KISTI 실습 자료
- 6주차: 탐색 알고리즘
- 7주차: 그래프 알고리즘과 MPI 코드 해설
- 9주차: 분자 데이터에 대한 greedy algorithm 응용
- 10주차: dynamic programming과 농약 구조 점수화
- 11주차: SMARTS 패턴, pesticide 구조 탐색, fingerprint/Tanimoto similarity
- 기말: 알고리즘 기말고사 템플릿
| 파일/폴더 | 형식 | 내용 |
|---|---|---|
W1-1 Algorithm.pdf |
알고리즘 강의 도입 자료입니다. 알고리즘의 기본 개념과 수업 전체의 출발점을 정리합니다. | |
W1-1 Algorithm.pptx |
PPTX | 1주차 알고리즘 개요 발표 자료입니다. |
W2-1 pandas basic.pdf |
pandas 기초 문법과 데이터 처리 흐름을 설명하는 강의 자료입니다. | |
W2-1 pandas basic.pptx |
PPTX | pandas 기본 사용법 발표 자료입니다. |
w2-2_download_zinc.ipynb |
Notebook | ZINC DB 다운로드 자동화 실습 노트북입니다. 파일 읽기, 리스트, 반복문을 활용합니다. |
w2_2_download_zinc_colab.ipynb |
Notebook | Google Colab 환경에서 ZINC DB 다운로드 실습을 수행하는 노트북입니다. |
ZINC-downloader-2D-txt.uri |
URI | ZINC 2D text 데이터 다운로드에 사용하는 URI 목록입니다. |
w3-1 divide_and_conquer.pptx |
PPTX | 분할 정복 알고리즘 강의 자료입니다. |
w3-1_divide_and_conquer.ipynb |
Notebook | 분할 정복 개념과 관련 퀴즈를 포함한 실습 노트북입니다. |
w3-1_divide_and_conquer-student.ipynb |
Notebook | 학생 실습용 분할 정복 노트북입니다. 일부 코드를 직접 채우는 형태입니다. |
w3-2 pseudo_code_BigO_notation_mpi4py.pdf |
pseudo code, Big-O notation, mpi4py 병렬 처리 개념을 설명하는 자료입니다. | |
w3-2 pseudo_code_BigO_notation_mpi4py.pptx |
PPTX | 3주차 pseudo code, Big-O, mpi4py 발표 자료입니다. |
w3-2_python_script/ |
Folder | mpi4py 실습용 Python 스크립트 폴더입니다. |
w3-2_python_script/mpi4py_test.py |
Python | mpi4py 기본 동작과 병렬 실행을 확인하는 테스트 스크립트입니다. |
w3-2_python_script/mpi4py_find_logp_min.py |
Python | pandas와 mpi4py를 사용해 분자 데이터에서 logP 최솟값을 찾는 병렬 처리 예제입니다. |
w4-1_sorting.ipynb |
Notebook | 정렬 알고리즘 실습 노트북입니다. |
w4-1_sorting-student.ipynb |
Notebook | 학생 실습용 정렬 알고리즘 노트북입니다. |
w4-2_sorting_kisti.pdf |
KISTI 환경 또는 관련 실습을 포함한 정렬 알고리즘 자료입니다. | |
w4-2_sorting_kisti.pptx |
PPTX | KISTI 연계 정렬 알고리즘 발표 자료입니다. |
w6-2_search_algorithm.ipynb |
Notebook | 탐색 알고리즘 실습 노트북입니다. |
w6-2_search_algorithm.py |
Python | pandas, glob, time을 활용한 탐색 알고리즘 Python 예제입니다. |
w7-2_graph_algorithm.ipynb |
Notebook | adjacency matrix, distance matrix 등 그래프 기반 알고리즘 개념을 다루는 노트북입니다. |
w7-2_mpi4py_code_explained.py |
Python | mpi4py 기반 병렬 처리 코드를 설명하는 Python 스크립트입니다. |
w9-1_molecule_greedy.ipynb |
Notebook | 분자 데이터 문제에 greedy algorithm을 적용하는 실습 노트북입니다. |
w9-1_molecule_greedy_additional_description.ipynb |
Notebook | greedy algorithm 분자 응용에 대한 추가 설명 자료입니다. |
w10-1_molecule_dp.ipynb |
Notebook | 분자 데이터 문제에 dynamic programming을 적용하는 실습 노트북입니다. |
w10-1_molecule_dp_kisti.py |
Python | mpi4py와 RDKit을 활용해 QED, logP 등 분자 특성을 계산하는 KISTI용 Python 스크립트입니다. |
w10-2_agrochemical_score.ipynb |
Notebook | 농약 구조 분포 분석과 agrochemical score 계산 실습 노트북입니다. |
w11-1_smarts_pesticide.ipynb |
Notebook | SMARTS 패턴을 활용해 pesticide 관련 구조를 탐색하는 실습 노트북입니다. |
w11-1_smarts_pesticide_lecture.pptx |
PPTX | SMARTS와 pesticide 구조 분석 강의 발표 자료입니다. |
w11-2_fingerprint_tanimoto.ipynb |
Notebook | molecular fingerprint와 Tanimoto similarity 기반 유사도 분석 실습 노트북입니다. |
algorithm_final_exam_template.ipynb |
Notebook | 알고리즘 기말고사 템플릿 노트북입니다. |
기본 실습은 Jupyter Notebook 또는 Google Colab에서 실행할 수 있습니다. 일부 고급 실습은 다음 Python 패키지를 사용합니다.
pandasmpi4pyrdkit
MPI 예제는 로컬 또는 클러스터 환경에서 mpiexec/mpirun으로 실행합니다. 예:
mpiexec -n 4 python w3-2_python_script/mpi4py_test.pyPDF와 PPTX 파일은 강의용 읽기 자료이며, notebook 파일은 수업 중 실습과 과제/시험 템플릿으로 사용할 수 있습니다.