수업 외 면담이 필요할 경우 교수 홈페이지 참조 http://kyagrd.github.io/
교과서는 교내 서점에서 구입
- 한국어판 - C로 쓴 자료구조론 - 2/E
- 영문원서 - Fundamentals of Data Structures in C (2nd ed.)
학점 평가 방침: 출석/퀴즈 25%, 과제 25%, 중간 25%, 기말 25%
프로그래밍 실습은 주로 C/C++를 활용하며 화요일 농심관 컴퓨터실 수업에서는 컴퓨터실에 설치된 Visual Studio를 활용하고, 노트북 등 개인 컴퓨터에서는 Visual Studio Express (무료버전)을 설치해서 사용. https://www.visualstudio.com/ko-kr/products/visual-studio-express-vs.aspx
Mac OS X 사용자는 XCode를 이용해도 무방하며 리눅스/유닉스 사용자는 뭘 쓰든 알아서 잘 하겠지만 첫 프로그래밍 과제 제출 전에 교수와 상담.
- 과제1 (제출기한: 2016-03-21 월요일 밤) - 다음 프로그램을 완성하시오 hw1.cpp
- 과제2 (제출기한: 2016-03-28 월요일 밤) - 다음 프로그램을 완성하시오 hw2.cpp
- 과제3 (제출기한: 2016-04-11 월요일 밤) - 다음 프로그램을 완성하시오 hw3.cpp
- 과제4 (제출기한: 2016-05-23 월요일 밤)
map.cpp에서
- (1) Map에 remove 함수를 완성하기
- (2) entry에 int gender (성별, 여자는 0 남자는 1) 추가하고 Map의 update 함수도 그에 맞게 바꾸기
강의 전후로 업데이트 예정
- 2016-03-08 수업진행 및 기본개념 (수업시간에 다룬 예제 소스코드)
- 2016-03-09 보강: C/C++ 프로그래밍 기초
- 2016-03-11 배열과 포인터의 기본 및 리스트 맛보기 (소스코드 http://ideone.com/WhffEO , http://ideone.com/Gjy2KV )
- 2016-03-15 배열, 포인터, 동적할당, 귀납적 정의, 리스트, 트리 (수업시간에 다룬 예제 소스코드 )
- 2016-03-18: 과제에 대하 설명, 질문 답변 및 배열과 리스트 for문 돌리기 (수업시간에 다룬 예제 소스코드 )
- 2016-03-22 배열과 리스트 공통점과 차이점
- 2016-03-25 귀납적 정의와 재귀(순환, 되돌기)
- 2016-03-29 과제1 풀이, 퀴즈2 풀이
- 2016-04-01 list에 대한 포인터 2개로 만든 맨앞과 맨뒤 삽입 모두 O(1)인 추상 데이타 타입 List
- List 예제 소스코드 http://ideone.com/8hsygE
- 2016-04-05 binomial coefficient 재귀함수
- 2016-04-08 list로 만든 스택(소스코드)과 List로 만든 큐(소스코드)
- 2016-04-12 과제2 관련 Destructive Update vs Persistent Data, 스택으로 괄호 매칭 검사 (소스코드)
- 2016-04-19 중간고사 안내, 이진 트리 관련 정의
- level order 와 minBST, maxBST, isBST 소스코드
- 2016-05-03 이진트리 전에 했던거 복습 및 insert
- 재귀함수로 작성된 searchBST, insertBST 소스코드
- 2016-05-10 이진트리 searchBST를 재귀함수가 아닌 반복문으로 구현, deleteBST 함수 작성, Set 추상 데이타 타입을 BST로 구현
- 2016-05-24 인접 리스트 표현 그래프에 대한 DFS와 BFS 소스코드
- 2016-05-31 Transitive Closure (이형적 폐쇄, 이적 폐쇄) 소스코드
- 2016-06-07
- 2016-06-10
- top-down 삽입정렬 소스코드
- bottom-up 합병정렬:
프로그래밍에 익숙한 정도가 개개인별로 달라서 너무 쉽다고 느끼는 분들이 있을수도 있고 또 반대로 스스로 C/C++ 프로그래밍에 대한 기초가 부족하다고 느끼거나 Visual Studio가 너무 생소하다 이런 분들도 있을겁니다. 진도를 나가기 위해서는 너무 기초적인 부분만 반복할 수는 없으니 좀 기초 문법 같은 자세한 설명이 필요하다 싶은 분들을 위해 도움이 될만한 유투브에 올라온 무료 공개 강좌가 있습니다. 다 볼 필요는 없고 필요하고 도움이 된다고 판단되는 부분만 찾아서 보면 될 것 같습니다.
https://youtu.be/yTKARbseZKY?list=PLlJhQXcLQBJqywc5dweQ75GBRubzPxhAk
수업에서 제가 진행하는 것과 사소한 차이점도 있긴 한데 기초를 익히는 데는 도움이 될 것 같습니다. (예를 들면 Visual C++ Win32 콘솔 애플리케이션을 만들 때 저는 그냥 새 프로젝트 만들기 누르고 바로 기본 설정으로 프로젝트를 만들었고, 저 강좌에서는 빈 프로젝트 만들기를 체크하고 프로젝트를 만듭니다. 어떤 분들이 1학년 수업 들을 때는 빈 프로젝트 체크하고 만들기로 했다고 하더군요)