아래 모든 날짜는 시간대 입니다.
   열리는 날    닫히는 날
수강기간
2024-09-02 00:00:00 GMT
2024-12-15 23:59:59 GMT
수강신청기간
2024-08-19 00:00:00 GMT
2024-09-01 23:59:59 GMT

프로그래머의 업무를 간단히 표현하면 '문제를 해결하는 것'입니다. 그렇기에 '문제를 해결하는 확실한 방법'인 알고리듬(algorithm)은 프로그래머의 필수 지식으로 종종 거론되곤 합니다.

그럼 어떤 사람이 진짜 개발자일까요? 최신 기술을 많이 아는 사람? 시중에 나와있는 모든 알고리듬 문제를 달달 외우고 있는 사람? 아닙니다. 제대로 된 개발자는 어떤 문제라도 확실히 해결할 수 있는 사람입니다. 알고리듬 문제 사이트에 없는 문제까지 말이죠. 그런 개발자가 되려면 몇몇 핵심 알고리듬을 확실히 이해하는 것이 가장 중요합니다. 새로운 문제는 핵심 알고리듬을 응용하여 풀 수 있으니까요. 이제 아셨나요? 왜 기술 면접(코딩 테스트)에서 알고리듬 문제가 단골손님처럼 나오는지?

모든 문제 해결에 토대가 되는 핵심 알고리듬. 그것이 바로 이 강좌에서 가르치는 내용입니다. POCU 아카데미가 지향하는 10년 후에도 살아남는 탑 1% 개발자. 그런 사람이 되려면 수박 겉핥기 식이 아닌 핵심 알고리듬의 동작 원리까지 확실히 알아야겠죠? 이 강좌에서 확실히 이해시켜드립니다. 이 강좌를 들으신 후 알고리듬 문제 사이트에 가서 본인의 실력을 테스트해보세요. 처음 보는 문제인데도 어렵지 않게 해법을 찾아내는 한 단계 업그레이드된 본인의 문제 해결능력을 느끼실 수 있을 겁니다. 앞으로 실무에서 마주치게 될 새로운 문제들도 큰 어려움이 없겠죠?

꼭 기억하세요. 업계가 원하는 프로그래머는 많은 문제의 정답을 외우고 있는 사람이 아니라 핵심 알고리듬의 확실한 이해와 응용을 통해 새로운 문제를 해결할 수 있는 사람입니다.

이 강좌를 성공적으로 수료한 프로그래머는 다음과 같은 실력을 갖추게 됩니다.

  1. 각 알고리듬의 장단점 및 성능에 대해 잘 이해하고 있다
  2. 어디에 어떤 알고리듬을 적용해야 하는지 안다
  3. 핵심 알고리듬을 응용해 새로운 문제를 풀 수 있다

기본기의 중요성을 강조하는 표현으로 '하나를 가르치면 열을 안다'라는 말이 있습니다. 이것저것 배우는 대신 핵심이 되는 기본 지식을 습득하여 문제 해결능력을 갖춘 진정한 프로그래머로 거듭나기를 바랍니다.

수강 시작 날짜 : 2024-09-02 00:00:00 GMT

수업 내용
  • 알고리듬이란?
  • 알고리듬의 효율성
  • 점근 표기법과 빅오 표기법
  • 기초 자료 구조와 시간 복잡도

동영상 강의 범위(총 3시간 02분): 프로그래머와 알고리듬 ~ 정리

과제 및 실습
  • 실습 1

  • 과제 1  (제출 마감: 2024-09-22 22:00:00 GMT)

수업 내용
  • 재귀함수
  • 주먹구구식(brute-force) 알고리듬
  • P vs NP 문제
  • 이진 탐색

동영상 강의 범위(총 2시간 12분): 재귀함수의 호출 과정 ~ 정리

과제 및 실습
  • 실습 2

  • 과제 1  (제출 마감: 2024-09-22 22:00:00 GMT)

수업 내용
  • 버블 정렬
  • 선택 정렬
  • 삽입 정렬
  • 퀵 정렬
  • 병합 정렬
  • 힙 정렬

동영상 강의 범위(총 1시간 58분): 정렬 알고리듬 ~ 정리

과제 및 실습
  • 실습 3

  • 과제 1  (제출 마감: 2024-09-22 22:00:00 GMT)

수업 내용
  • 비암호학적 해시 함수
  • 체크섬과 CRC
  • 암호학적 해시 함수

동영상 강의 범위(총 2시간 15분): 해시 알고리듬의 정의 ~ 정리

과제 및 실습
  • 실습 4

  • 과제 2  (제출 마감: 2024-10-13 22:00:00 GMT)

수업 내용
  • 대칭 키 암호화
  • 비대칭 키 암호화

동영상 강의 범위(총 2시간 03분): 암호화란? ~ 정리

과제 및 실습
  • 실습 5

  • 과제 2  (제출 마감: 2024-10-13 22:00:00 GMT)

수업 내용
  • 트리 순회
  • 이진 탐색 트리
  • 레드-블랙 트리

동영상 강의 범위(총 3시간 11분): 트리 소개 ~ 정리

과제 및 실습
  • 실습 6

  • 과제 2  (제출 마감: 2024-10-13 22:00:00 GMT)

수업 내용
  • 트라이(Trie)
  • 공간분할 트리

동영상 강의 범위(총 1시간 07분): 단어 확인과 자동완성 ~ 정리

과제 및 실습
  • 과제 3  (제출 마감: 2024-11-10 22:00:00 GMT)

수업 내용
  • 수업 및 실습/과제 제출 없음 (이유: 중간고사 주간)
과제 및 실습
  • 과제 3  (제출 마감: 2024-11-10 22:00:00 GMT)

수업 내용
  • 깊이 우선 탐색(DFS)
  • 너비 우선 탐색(BFS)
  • 미니맥스 알고리듬

동영상 강의 범위(총 1시간 28분): 깊이 우선 탐색(DFS) ~ 정리

과제 및 실습
  • 실습 7

  • 과제 3  (제출 마감: 2024-11-10 22:00:00 GMT)

수업 내용
  • 동적 계획법(Dynamic Programming)
    • 메모이제이션(memoization)
    • 타뷸레이션(tabulation)
    • 배낭 문제
  • 그리디 알고리듬
    • 동전 교환 문제
    • 인터벌 스케줄링
    • 허프만 코딩
  • 데이터 압축

동영상 강의 범위(총 2시간 26분): 주먹구구식 배낭 문제 풀기 ~ 정리

과제 및 실습
  • 실습 8

  • 과제 3  (제출 마감: 2024-11-10 22:00:00 GMT)

수업 내용
  • 그래프
  • 그래프의 깊이 우선 탐색
  • 위상 정렬
  • 강한 연결 요소

동영상 강의 범위(총 2시간 00분): 그래프의 정의 ~ 정리

과제 및 실습
  • 실습 9

  • 과제 4  (제출 마감: 2024-12-01 22:00:00 GMT)

수업 내용
  • 그래프의 너비 우선 탐색
  • 최단 경로 찾기
    • BFS
    • 다익스트라 알고리듬 (Dijkstra's algorithm)
    • A* 알고리듬
    • 플로이드 워셜

동영상 강의 범위(총 2시간 03분): 그래프의 너비 우선 탐색 ~ 정리

과제 및 실습
  • 실습 10

  • 과제 4  (제출 마감: 2024-12-01 22:00:00 GMT)

수업 내용
  • 최소 (비용) 신장 트리
  • 외판원 문제
  • 최대 유량 문제

동영상 강의 범위(총 1시간 48분): 최소 신장 트리(MST) ~ 정리

과제 및 실습
  • 실습 11

  • 과제 4  (제출 마감: 2024-12-01 22:00:00 GMT)

수업 내용
  • 유한 상태 기계
    • 정규 표현식(regex)
  • K-최근접 이웃
  • 기타 알고리듬 기법들
    • 선형계획기법
    • 병렬 알고리듬

동영상 강의 범위(총 1시간 24분): 유한 상태 기계 ~ 에필로그

과제 및 실습
  • 없음

수업 내용
  • 수업 및 실습/과제 제출 없음 (이유: 기말고사 주간)
과제 및 실습
  • 없음

제목   공지일   제출 마감  
실습 1
2024-09-02 00:00:00 GMT (1주 차) 2024-09-08 22:00:00 GMT
실습 2
2024-09-09 00:00:00 GMT (2주 차) 2024-09-15 22:00:00 GMT
실습 3
2024-09-16 00:00:00 GMT (3주 차) 2024-09-22 22:00:00 GMT
실습 4
2024-09-23 00:00:00 GMT (4주 차) 2024-09-29 22:00:00 GMT
실습 5
2024-09-30 00:00:00 GMT (5주 차) 2024-10-06 22:00:00 GMT
실습 6
2024-10-07 00:00:00 GMT (6주 차) 2024-10-13 22:00:00 GMT
실습 7
2024-10-28 00:00:00 GMT (9주 차) 2024-11-03 22:00:00 GMT
실습 8
2024-11-04 00:00:00 GMT (10주 차) 2024-11-10 22:00:00 GMT
실습 9
2024-11-11 00:00:00 GMT (11주 차) 2024-11-17 22:00:00 GMT
실습 10
2024-11-18 00:00:00 GMT (12주 차) 2024-11-24 22:00:00 GMT
실습 11
2024-11-25 00:00:00 GMT (13주 차) 2024-12-01 22:00:00 GMT
과제 1
2024-09-02 00:00:00 GMT (1주 차) 2024-09-22 22:00:00 GMT
과제 2
2024-09-23 00:00:00 GMT (4주 차) 2024-10-13 22:00:00 GMT
과제 3
2024-10-14 00:00:00 GMT (7주 차) 2024-11-10 22:00:00 GMT
과제 4
2024-11-11 00:00:00 GMT (11주 차) 2024-12-01 22:00:00 GMT
2024-09-15 23:59:59 GMT 환불 신청 마감
  • 성적표에 기록되지 않음
  • 전액 환불 (처리 수수료 US$ 100 공제)
2024-11-03 23:59:59 GMT 수강 철회 신청 마감
  • 성적표에 "W"로 표시
수료하지 않은 선수과목에 대한 자가평가 질문
  1. COMP1500: 나는 C#에서 재귀함수를 이용하여 하노이의 탑 문제를 풀 수 있다.
  2. COMP1500: 나는 C#을 이용하여 .csv 파일 하나를 읽어 2D 문자열 배열로 만들 수 있다.
  3. COMP1000: 나는 어떤 unsigned int 값이 2의 승수인지 O(1) 시간 안에 판단하는 함수를 작성할 수 있다.
  4. COMP2500: 나는 연결 리스트, 큐 그리고 스택 클래스를 구현 할 수 있다.
시험 응시 준비물
  1. 반드시 PC에서(모바일은 응시 불가) 크롬(Chrome) 브라우저를 사용해야 합니다.

  2. 시험을 볼 때 시험 감독 서비스를 사용하며, 서비스를 이용하기 위한 시스템 최소 사양은 다음과 같습니다.

윈도우 리눅스 크롬 운영체제
운영체제 윈도우 7+ 맥 OSX 10.9+ 우분투 18.04+ 크롬 58+
프로세서 인텔 펜티엄 이상 인텔 또는 ARM 인텔 펜티엄 이상 인텔 또는 ARM
사용 가능한 디스크 공간 250 MB 250 MB 250 MB 250 MB
램(메모리) 4 GB1 4 GB1 4 GB1 4 GB1
업로드 속도 0.092 Mbps - 0.244 Mbps
마이크 내장형 또는 독립형
웹캠 VGA 해상도 320x240 이상, 내장형 또는 독립형
1   메모리의 적어도 25%는 다른 응용 프로그램에서 사용되지 않는다고 가정할 때의 최소 용량입니다. 시험 도중에 시스템 크래시가 나는 일이 생기지 않도록 최소 용량의 50%를 확보해 두길 권장합니다.

통과 점수: 85%

  • 실습 1 (1.00 %)

  • 실습 2 (2.40 %)

  • 실습 3 (2.40 %)

  • 실습 4 (2.40 %)

  • 실습 5 (2.40 %)

  • 실습 6 (2.40 %)

  • 실습 7 (2.40 %)

  • 실습 8 (2.40 %)

  • 실습 9 (2.40 %)

  • 실습 10 (2.40 %)

  • 실습 11 (2.40 %)

  • 과제 1 (6.25 %)

  • 과제 2 (6.25 %)

  • 과제 3 (6.25 %)

  • 과제 4 (6.25 %)

  • 중간고사 (25.0%)

  • 기말고사 (25.0%)

학생 비율 점수
   열리는 날    닫히는 날
수강기간
2025-01-06 00:00:00 GMT
2025-04-20 23:59:59 GMT
수강신청기간
2024-12-23 00:00:00 GMT
2025-01-05 23:59:59 GMT

프로그래머의 업무를 간단히 표현하면 '문제를 해결하는 것'입니다. 그렇기에 '문제를 해결하는 확실한 방법'인 알고리듬(algorithm)은 프로그래머의 필수 지식으로 종종 거론되곤 합니다.

그럼 어떤 사람이 진짜 개발자일까요? 최신 기술을 많이 아는 사람? 시중에 나와있는 모든 알고리듬 문제를 달달 외우고 있는 사람? 아닙니다. 제대로 된 개발자는 어떤 문제라도 확실히 해결할 수 있는 사람입니다. 알고리듬 문제 사이트에 없는 문제까지 말이죠. 그런 개발자가 되려면 몇몇 핵심 알고리듬을 확실히 이해하는 것이 가장 중요합니다. 새로운 문제는 핵심 알고리듬을 응용하여 풀 수 있으니까요. 이제 아셨나요? 왜 기술 면접(코딩 테스트)에서 알고리듬 문제가 단골손님처럼 나오는지?

모든 문제 해결에 토대가 되는 핵심 알고리듬. 그것이 바로 이 강좌에서 가르치는 내용입니다. POCU 아카데미가 지향하는 10년 후에도 살아남는 탑 1% 개발자. 그런 사람이 되려면 수박 겉핥기 식이 아닌 핵심 알고리듬의 동작 원리까지 확실히 알아야겠죠? 이 강좌에서 확실히 이해시켜드립니다. 이 강좌를 들으신 후 알고리듬 문제 사이트에 가서 본인의 실력을 테스트해보세요. 처음 보는 문제인데도 어렵지 않게 해법을 찾아내는 한 단계 업그레이드된 본인의 문제 해결능력을 느끼실 수 있을 겁니다. 앞으로 실무에서 마주치게 될 새로운 문제들도 큰 어려움이 없겠죠?

꼭 기억하세요. 업계가 원하는 프로그래머는 많은 문제의 정답을 외우고 있는 사람이 아니라 핵심 알고리듬의 확실한 이해와 응용을 통해 새로운 문제를 해결할 수 있는 사람입니다.

이 강좌를 성공적으로 수료한 프로그래머는 다음과 같은 실력을 갖추게 됩니다.

  1. 각 알고리듬의 장단점 및 성능에 대해 잘 이해하고 있다
  2. 어디에 어떤 알고리듬을 적용해야 하는지 안다
  3. 핵심 알고리듬을 응용해 새로운 문제를 풀 수 있다

기본기의 중요성을 강조하는 표현으로 '하나를 가르치면 열을 안다'라는 말이 있습니다. 이것저것 배우는 대신 핵심이 되는 기본 지식을 습득하여 문제 해결능력을 갖춘 진정한 프로그래머로 거듭나기를 바랍니다.

수강 시작 날짜 : 2025-01-06 00:00:00 GMT

수업 내용
  • 알고리듬이란?
  • 알고리듬의 효율성
  • 점근 표기법과 빅오 표기법
  • 기초 자료 구조와 시간 복잡도

동영상 강의 범위(총 3시간 02분): 프로그래머와 알고리듬 ~ 정리

과제 및 실습
  • 실습 1

  • 과제 1  (제출 마감: 2025-01-26 22:00:00 GMT)

수업 내용
  • 재귀함수
  • 주먹구구식(brute-force) 알고리듬
  • P vs NP 문제
  • 이진 탐색

동영상 강의 범위(총 2시간 12분): 재귀함수의 호출 과정 ~ 정리

과제 및 실습
  • 실습 2

  • 과제 1  (제출 마감: 2025-01-26 22:00:00 GMT)

수업 내용
  • 버블 정렬
  • 선택 정렬
  • 삽입 정렬
  • 퀵 정렬
  • 병합 정렬
  • 힙 정렬

동영상 강의 범위(총 1시간 58분): 정렬 알고리듬 ~ 정리

과제 및 실습
  • 실습 3

  • 과제 1  (제출 마감: 2025-01-26 22:00:00 GMT)

수업 내용
  • 비암호학적 해시 함수
  • 체크섬과 CRC
  • 암호학적 해시 함수

동영상 강의 범위(총 2시간 15분): 해시 알고리듬의 정의 ~ 정리

과제 및 실습
  • 실습 4

  • 과제 2  (제출 마감: 2025-02-16 22:00:00 GMT)

수업 내용
  • 대칭 키 암호화
  • 비대칭 키 암호화

동영상 강의 범위(총 2시간 03분): 암호화란? ~ 정리

과제 및 실습
  • 실습 5

  • 과제 2  (제출 마감: 2025-02-16 22:00:00 GMT)

수업 내용
  • 트리 순회
  • 이진 탐색 트리
  • 레드-블랙 트리

동영상 강의 범위(총 3시간 11분): 트리 소개 ~ 정리

과제 및 실습
  • 실습 6

  • 과제 2  (제출 마감: 2025-02-16 22:00:00 GMT)

수업 내용
  • 트라이(Trie)
  • 공간분할 트리

동영상 강의 범위(총 1시간 07분): 단어 확인과 자동완성 ~ 정리

과제 및 실습
  • 과제 3  (제출 마감: 2025-03-16 22:00:00 GMT)

수업 내용
  • 수업 및 실습/과제 제출 없음 (이유: 중간고사 주간)
과제 및 실습
  • 과제 3  (제출 마감: 2025-03-16 22:00:00 GMT)

수업 내용
  • 깊이 우선 탐색(DFS)
  • 너비 우선 탐색(BFS)
  • 미니맥스 알고리듬

동영상 강의 범위(총 1시간 28분): 깊이 우선 탐색(DFS) ~ 정리

과제 및 실습
  • 실습 7

  • 과제 3  (제출 마감: 2025-03-16 22:00:00 GMT)

수업 내용
  • 동적 계획법(Dynamic Programming)
    • 메모이제이션(memoization)
    • 타뷸레이션(tabulation)
    • 배낭 문제
  • 그리디 알고리듬
    • 동전 교환 문제
    • 인터벌 스케줄링
    • 허프만 코딩
  • 데이터 압축

동영상 강의 범위(총 2시간 26분): 주먹구구식 배낭 문제 풀기 ~ 정리

과제 및 실습
  • 실습 8

  • 과제 3  (제출 마감: 2025-03-16 22:00:00 GMT)

수업 내용
  • 그래프
  • 그래프의 깊이 우선 탐색
  • 위상 정렬
  • 강한 연결 요소

동영상 강의 범위(총 2시간 00분): 그래프의 정의 ~ 정리

과제 및 실습
  • 실습 9

  • 과제 4  (제출 마감: 2025-04-06 22:00:00 GMT)

수업 내용
  • 그래프의 너비 우선 탐색
  • 최단 경로 찾기
    • BFS
    • 다익스트라 알고리듬 (Dijkstra's algorithm)
    • A* 알고리듬
    • 플로이드 워셜

동영상 강의 범위(총 2시간 03분): 그래프의 너비 우선 탐색 ~ 정리

과제 및 실습
  • 실습 10

  • 과제 4  (제출 마감: 2025-04-06 22:00:00 GMT)

수업 내용
  • 최소 (비용) 신장 트리
  • 외판원 문제
  • 최대 유량 문제

동영상 강의 범위(총 1시간 48분): 최소 신장 트리(MST) ~ 정리

과제 및 실습
  • 실습 11

  • 과제 4  (제출 마감: 2025-04-06 22:00:00 GMT)

수업 내용
  • 유한 상태 기계
    • 정규 표현식(regex)
  • K-최근접 이웃
  • 기타 알고리듬 기법들
    • 선형계획기법
    • 병렬 알고리듬

동영상 강의 범위(총 1시간 24분): 유한 상태 기계 ~ 에필로그

과제 및 실습
  • 없음

수업 내용
  • 수업 및 실습/과제 제출 없음 (이유: 기말고사 주간)
과제 및 실습
  • 없음

제목   공지일   제출 마감  
실습 1
2025-01-06 00:00:00 GMT (1주 차) 2025-01-12 22:00:00 GMT
실습 2
2025-01-13 00:00:00 GMT (2주 차) 2025-01-19 22:00:00 GMT
실습 3
2025-01-20 00:00:00 GMT (3주 차) 2025-01-26 22:00:00 GMT
실습 4
2025-01-27 00:00:00 GMT (4주 차) 2025-02-02 22:00:00 GMT
실습 5
2025-02-03 00:00:00 GMT (5주 차) 2025-02-09 22:00:00 GMT
실습 6
2025-02-10 00:00:00 GMT (6주 차) 2025-02-16 22:00:00 GMT
실습 7
2025-03-03 00:00:00 GMT (9주 차) 2025-03-09 22:00:00 GMT
실습 8
2025-03-10 00:00:00 GMT (10주 차) 2025-03-16 22:00:00 GMT
실습 9
2025-03-17 00:00:00 GMT (11주 차) 2025-03-23 22:00:00 GMT
실습 10
2025-03-24 00:00:00 GMT (12주 차) 2025-03-30 22:00:00 GMT
실습 11
2025-03-31 00:00:00 GMT (13주 차) 2025-04-06 22:00:00 GMT
과제 1
2025-01-06 00:00:00 GMT (1주 차) 2025-01-26 22:00:00 GMT
과제 2
2025-01-27 00:00:00 GMT (4주 차) 2025-02-16 22:00:00 GMT
과제 3
2025-02-17 00:00:00 GMT (7주 차) 2025-03-16 22:00:00 GMT
과제 4
2025-03-17 00:00:00 GMT (11주 차) 2025-04-06 22:00:00 GMT
2025-01-19 23:59:59 GMT 환불 신청 마감
  • 성적표에 기록되지 않음
  • 전액 환불 (처리 수수료 US$ 100 공제)
2025-03-09 23:59:59 GMT 수강 철회 신청 마감
  • 성적표에 "W"로 표시
수료하지 않은 선수과목에 대한 자가평가 질문
  1. COMP1500: 나는 C#에서 재귀함수를 이용하여 하노이의 탑 문제를 풀 수 있다.
  2. COMP1500: 나는 C#을 이용하여 .csv 파일 하나를 읽어 2D 문자열 배열로 만들 수 있다.
  3. COMP1000: 나는 어떤 unsigned int 값이 2의 승수인지 O(1) 시간 안에 판단하는 함수를 작성할 수 있다.
  4. COMP2500: 나는 연결 리스트, 큐 그리고 스택 클래스를 구현 할 수 있다.
시험 응시 준비물
  1. 반드시 PC에서(모바일은 응시 불가) 크롬(Chrome) 브라우저를 사용해야 합니다.

  2. 시험을 볼 때 시험 감독 서비스를 사용하며, 서비스를 이용하기 위한 시스템 최소 사양은 다음과 같습니다.

윈도우 리눅스 크롬 운영체제
운영체제 윈도우 7+ 맥 OSX 10.9+ 우분투 18.04+ 크롬 58+
프로세서 인텔 펜티엄 이상 인텔 또는 ARM 인텔 펜티엄 이상 인텔 또는 ARM
사용 가능한 디스크 공간 250 MB 250 MB 250 MB 250 MB
램(메모리) 4 GB1 4 GB1 4 GB1 4 GB1
업로드 속도 0.092 Mbps - 0.244 Mbps
마이크 내장형 또는 독립형
웹캠 VGA 해상도 320x240 이상, 내장형 또는 독립형
1   메모리의 적어도 25%는 다른 응용 프로그램에서 사용되지 않는다고 가정할 때의 최소 용량입니다. 시험 도중에 시스템 크래시가 나는 일이 생기지 않도록 최소 용량의 50%를 확보해 두길 권장합니다.

통과 점수: 85%

  • 실습 1 (1.00 %)

  • 실습 2 (2.40 %)

  • 실습 3 (2.40 %)

  • 실습 4 (2.40 %)

  • 실습 5 (2.40 %)

  • 실습 6 (2.40 %)

  • 실습 7 (2.40 %)

  • 실습 8 (2.40 %)

  • 실습 9 (2.40 %)

  • 실습 10 (2.40 %)

  • 실습 11 (2.40 %)

  • 과제 1 (6.25 %)

  • 과제 2 (6.25 %)

  • 과제 3 (6.25 %)

  • 과제 4 (6.25 %)

  • 중간고사 (25.0%)

  • 기말고사 (25.0%)

학생 비율 점수