120 likes | 457 Views
비전공자를 위한 C 언어 교육. 차 성덕 한국과학기술원 전자전산학과 전산학전공 cha@cs.kaist.ac.kr. 비전공자를 위한 프로그래밍 교과목. 학부 CS 101 : 프로그래밍 기초 모든 학부 신입생 C 언어 -> Java 대학원 CC 510 : 전산응용개론 비전산전공 석사신입생 C 언어. 교과과정 편성의 어려움. 다양한 배경 ( 학부생 ) 과학고 출신 and/or C 언어에 이미 능숙한 신입생 ... 컴퓨터 사용 및 프로그래밍에 전혀 경험이 없는 신입생
E N D
비전공자를 위한 C언어 교육 차 성덕 한국과학기술원 전자전산학과 전산학전공 cha@cs.kaist.ac.kr
비전공자를 위한 프로그래밍 교과목 • 학부 CS 101 : 프로그래밍 기초 • 모든 학부 신입생 • C언어 -> Java • 대학원 CC 510 : 전산응용개론 • 비전산전공 석사신입생 • C언어
교과과정 편성의 어려움 • 다양한 배경 (학부생) • 과학고 출신 and/or C언어에 이미 능숙한 신입생 • ... • 컴퓨터 사용 및 프로그래밍에 전혀 경험이 없는 신입생 • 대학원 신입생의 경우도 마찬가지
(기존의) C언어 교육 • 교재위주 • Etter and Ingber, Engineering problem solving with C, 2nd edition, Prentice-Hall • 강의자료 위주 • Engineering Problem Solving • Simple C Programs • Control Structures and Data Files • Modular Programming with Functions • Arrays and Matrices • An Introduction to Pointers • Introduction to Structures
2.1 Program Structure Preprocessor directives main() { declarations; statements; } Every C program contains - a set of statements - a “main” function C Program
0 1 1 0 0 0 0 1 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 bytes c = ‘a’ 0*27+1*26+1*25+0*24+0*23+0*22+0*21+1*20 = 0 + 64 + 32 + 0 + 0 + 0 + 0 + 1 = 97 int i = 1; char c = ‘1’; i = c; 4 bytes 4 bytes 0 0 0 0 0 0
CS 101 강의평가 의견 • 좀 더 여유있게 진도가 나갔으면 좋겠다 • …강의를 1년간 해도 괜찮을 거 같다 • 재미있어요 • 좀 더 깊숙한 강의가 필요했다 • 교과서에 없는 예제를 다루는 게 좋았던 것 같습니다 • 컴개 어려워요 • …설명의 중복이 조금 심했던 아쉬움이 있었습니다
맘에 안든다 • 참 흥미롭고도 어려운 과목이다 • 넘 어려부요… T_T …열심히 공부했으나 결과가 안 좋을 듯 …아오… • 교수님 …흑 T.T 어려워 죽겄습니다.. • 재밌는 수업이었습니다. • 실습시간이 너무 많다. 각자 해도 충분하다. • …
CC510 전산응용개론의 경우 • C언어외에도 Unix, network, X window, 문제해결기법등 다양한 분야를 강의 • C언어의 경우, 3~4회 강의 (1회 : 2시간정도)
Crash Course on C • 30여개의 예제 프로그램을 이용한 강의 • a.c, b.c, …, ac.c
Learn by Example • Syntax error, logical error가 있는 프로그램도 포함 • 수업중에 프로그램을 직접 수정하고 확장하면서 프로그램을 이해하는데 꼭 필요한 개념을 설명 • 대체로 긍정적인 반응
Crash course를 다시 한다면… • 좀 더 “흥미로운” 예제의 발굴 • 실습문제의 개발 • 프로그램의 수정 / 확장 • 기존의 프로그램을 응용하는 새로운 프로그램의 개발 및 테스팅 • Java등 타 언어에도 적용