담당교수

년도

학기

교과목번호

교과목명

분반

권혁철

2002

1학기

CS23606

프로그래밍언어론

031

 

(1) 교수목표 및 수업내용

    * 교수목표(강의요목)
      프로그래밍언어의 기본개념, 프로그래밍언어 설계방법, 프로그래밍언어 구현방법과 이를 지원하는 이론적 모형에 대해 설명한다. 그리고 C, PASCAL, Ada, Simula, COBOL, PL/I, Smalltalk, Prolog, Lisp, Perl, SNOBOL, HTML, SGML, Java 등의 프로그래밍언어가 가진 특징과 구현상의 문제점을 비교분석함으로써 프로그래밍언어의 이해 뿐아니라 프로그래밍언어가 가진 특성을 파악함으로써 효율적이고 확장이 쉬운 프로그램의 개발이 가능하게 한다. 또한 사용자인터페이스 설계, 소프트웨어설계와 모듈간의 연결방법 설계에 프로그래밍 언어 설계 기법을 응용하여 시스템을 설계할 수 있는 지식을 습득하게 한다.
      프로그래밍 언어의 개발 역사, 프로그래밍언어를 구성하는 요소(construct)들의 특성, 프로그래밍언어의 문법과 의미를 정의하는 방법, 프로그래밍언어를 지원하는 환경과 소프트웨어 공학의 입장에서 프로그래밍언어의 요구조건을 중심으로 강의를 한다. 그리고 중요한 프로그래밍 언어의 특성을 비교함으로써 강의내용에 대한 기본적 이해를 할 수 있게 한다. 또 인터넷을 중심으로 한 프로그램 환경의 변화를 이해시키기 위해 safe한 프로그램에 대한 개념도 설명한다.
    (http://borame.cs.pusan.ac.kr에서 지난 강의내용을 볼 수 있음)
    * 수업내용
      먼저 인터넷으로 강의내용을 요약한 파일 및 지난해 강의 내용을 제공한다. 또 강의하기 전에 강의 내용을 PowerPoint로 만들어 제공하며, 이를 중심으로 강의를 한다. 각 프로그래밍언어가 가진 각 요소에 대해서는 그 요소가 가장 잘 구현된 프로그래밍언어를 이용하여 실험하는 것을 원칙으로 한다. 단, 본 학과에 그 프로그램밍 언어에 대한 컴파일러나 인터프리터가 없는 경우에는 그 요소(혹은 개념)를 다른 언어로 구현하게 한다. 구체적으로 사용할 언어는 C, PASCAL, JAVA, LISP, Prolog과 Ada이다. 그런데 2001년에는 C와 C++만으로 숙제를 하게 했으며, 올해의 상황은 어떨지 모르지만 LISP과 Prolog 및 Ada로 프로그램을 해야할 때는 프로그램을 제공한 후 약간 고치는 수준에서 이루어질 것이다. 단, 2001년 1학기 강의결과 lambda calculus와 program proof방법에 대해서는 내용이 어려워 이해하는 학생이 적은 만큼 이 부분은 수업시간 외에 다른 시간을 정하여 관심이 있는 학생에게만 강의를 하며, 시험범위에서는 제외한다. 또 강의 내용이 어렵다는 의견이 있었으나, 이 두 부분을 제외함으로써 강의시간에 여유가 있는 만큼 지난해보다는 쉽게 강의할 예정이다. 또 지난해는 공휴일이 자주 있어 마지막 3개 장은 아주 빠르게 강의했으나 이번 학기는 그렇지 않을 것이다. 각 장이 끝나면 그 장의 개념을 이해할 수 있는 문제를 6-7개 정도씩 풀게 한다. 또 매주 1~2개씩 리포트가 나갈 것이며, 리포트마다 프로그램 크기는 100줄이 넘지 않을 것이다. 리포트 평가는 제시한 요구조건을 만족하느냐 여부와 프로그램이 잘 모듈화되었는가로 할 것이다. 리포트는 1주일 이내에 제출해야 하며, 학과 앞에 있는 리포트함에 리포트가 나간 다음 주일 오후 6시까지 제출한 것만 인정한다.

(2) 평가방법

    중간고사 25%, 기말고사30%, 쪽지시험5%
    리포트 40% (문제풀기 20%, 프로그램 20%)

    * 시험을 잘못 본 학생은 이유를 첨가하여 신청하면 개인적으로 시험을 다시 볼 수 있으며   이 때는 직접질문과 답을 하는 방식으로 시험을 친다.
    * A/B는 전체 수강생의 60%를 넘지 않는 범위에서 성적분포를 보고 부여. 리포트를 4개   이상 제출하지 않은 학생은 원칙적으로 F로 처리한다.

(3) 주교재  

    교재   Programming Languages  :  Design and Implementation
    저자   T.W.Partt, M.V.Zelkowitz

(4) 부교재 및 참고문헌  

  • 강의 요약 자료 (인공지능 연구실 홈페이지)
  • 프로그래밍 언어론 (김영택 저)
  • 프로그래밍 언어론 (원유헌 저)
  • Ada, Prolog, C, Pascal, Lisp 등의 입문서
  • T.J.Bergin, R.G.Gisbon, History of Programming Languages, Addison Wesley, 1996
  • D.A.Watt, Programming Language Concepts and Paradigm, Prentice Hall, 1990