010.133 002
컴퓨터의 개념 및 실습
2013-1학기

- Python언어를 이용한 컴퓨터프로그래밍 기본개념 습득
- 컴퓨터 하드웨어/소프트웨어 동작 원리 기본 이해
- 컴퓨터 과학/공학 | 생명과학 융합 이해 함양

담당교수
민상렬 교수 (컴퓨터 공학부)
301동 501호, 880-7047, symin@archi.snu.ac.kr
http://archi.snu.ac.kr/symin
조교
배종보, 301동 517호, 880-7296, jbbae@archi.snu.ac.kr
이용훈, 301동 517호, 880-7296, yonghunlee@archi.snu.ac.kr
수업
월요일, 수요일 6,7교시 (14:00-15:50)
교재
Allen Downey, Jeffrey Elkner and Chris Meyers
「How to Think Like a Computer Scientist: Learning with Python」, Green Tea Press
April 2002, First edition, ISBN 0-9716775-0-6

Jaejin Lee
「Inside a Computer」(2012)
공지사항
  • 2013-06-19
  • 2013-06-10: 기말시험 안내
  • - 일시: 6월 17일 월요일 수업시간
    - 장소: 강의실
    - 1시간 30분 진행 예정
  • 2013-06-03
  • - 교재: 59~67 페이지 내용 복습
    - 수요일 수업시간에 교수님께 지목받는 분이 앞에서 예제 설명
    +) 성적표 Hard Copy를 조교에게 제출해주세요
  • 2013-05-28: 수요일 수업 안내
  • 금주 수요일(29일) 수업시간에는 공동 프로젝트 관련 토의시간을 갖습니다.
    미리 프로젝트에 관련된 토의사항들을 준비하셔서
    여러분들이 주도하는 알찬 시간을 보낼 수 있도록 하시기 바랍니다.
  • 2013-05-24: 세미나 안내
  • 제목: "DNA Sequencing with Longer Reads"

    연사: Byung G. Kim (Professor, Computer Science, Department University of Massachusetts Lowell, USA)

    일시: 5월 27일 월요일 오후 4시
    장소: 500동(자연과학대학) L309호 (L307호로 변경되었습니다)

    자세한 사항
    강연 슬라이드
  • 2013-05-08: 세미나 안내
  • 제목: "생물정보학 소개 - 서열비교를 중심으로"

    연사: 백은옥 교수님 (한양대학교 컴퓨터공학부)

    일시: 5월 15일 수요일 오후 2시
    장소: 500동(자연과학대학) L309호

    자세한 사항
    강연 슬라이드
  • 2013-04-26
  • - 자신의 점수는 27문제를 각각 1점으로 계산해 x100/27로 계산합니다
  • 2013-04-10: 중간시험 안내
  • - 일시: 4월 22일 월요일 수업시간
    - 장소: 강의실
    - 응용 보다는 책의 예제를 바탕으로 괄호넣기 등의 문제가 출제됩니다.
     책을 꼼꼼히 읽고 예제를 확인하시기 바랍니다.

    - 제외되는 부분
     Chapter 15.7 ~15.8
     Chapter 16
     Chapter 18.5 ~18.8
     Chapter 20.3 ~20.7
  • 2013-04-06
  • - 과제2 가 출제되었습니다.
    (과제 탭에서 확인하시고 기일까지 제출하시기 바랍니다.)
  • 2013-04-03
  • - 다음 주 월요일(8일)은 휴강입니다
    - 수요일은 교재의 'Tree'내용까지 교수님과 1:1 Oral Exam을 진행합니다. 책을 잘 읽고 준비하시기 바랍니다.
    - Linked List와 Queue를 구현하는 과제2가 있습니다(과제 탭을 확인하세요).

    - 중간 시험 일자는 Python 내용이 끝나고 다음 다음 수업시간으로 변경되었습니다.
    (Python 내용이 끝나면 다시 공지하겠습니다)
  • 2013-04-01: 중간시험 안내
  • - 일시: 4월 17일 수요일 수업시간(변경 됨)
    - 장소: 강의실
    - How to Think like a Computer Scientist 내용 중 수업시간에 배운 부분
  • 2013-03-18: 교수님과 저녁식사 안내
  • - 일시: 3월 27일 수요일 저녁 18:00
    - 장소: 501동 자연과학대 1층 비비고
    - 모두 참석하시기 바라며 못오시는 분은 조교에게 미리 이야기 해주시기 바랍니다
  • 2013-03-06
  • - 교재를 받으신 분들은 교재비를 꼭 내주세요
    - 국민은행 401-21-1492-200 이용훈 (12,000원)
    - 수업시간에 직접 내셔도 됩니다
  • 2013-03-04
  • - 수요일(6일) 수업시간에 휴대전화번호와 E-mail주소를 조사합니다.
    - 수업관련 중요공지에 활용되니 수업시간 조사시에 꼭 적어주시기 바랍니다.
  • 2013-02-26: 수업 개강 안내
  • 2013년 1학기 컴퓨터의 개념 및 실습(010.133 002) 수업 개강
    - 날짜: 2013년 3월 4일(월)
    - 장소: 500동 L309호
    강의교재
  • 「How to Think Like a Computer Scientist: Learning with Python」
  • - PDF Version
    - HTML Version

    - HTML Openbook Project
    수업자료
  • 함께 시청한 TED 영상
  •  Craig Venter
    Craig Venter: On the verge of creating synthetic life
    Craig Venter unveils "synthetic life"

     Bill Doyle
    Bill Doyle: Treating cancer with electric fields

     Denis Dutton
    Denis Dutton: A Darwinian theory of beauty
  • Inside a Computer
  • - 후반부 컴퓨터 하드웨어 교재 PDF
    - 강의 Slide
        Lecture 01. Introduction
        Lecture 02. Number-Systems
        Lecture 03. Logic-Circuits-I
        Lecture 04. Logic-Circuits-II
        Lecture 05. Datapath
        Lecture 06. Control Unit

        Assembly Language Example
  • Guido's Python Tutorial
  • - PPT(Modified)
  • List의 Method들 에 대한 정보
  • - http://docs.python.org/ List Methods.pdf
  • Class 관련 수업시간 실습내용
  • - Chapter 12. Classes and objects REPL.it (Run Session을 클릭하세요)
  • Lazy Evaluation in Python
  • - Wikipedia 'Laziness in Python Language'
    - Lazy Evaluation의 정의와 Python에서의 Laziness 부분을 읽어보세요
  • 수업시간에 작성한 Fibonacci 예제
  • - 꼭 직접 실행해보고 따라가보시기 바랍니다
    - PythonTutor.com
  • String Matching: Horspool's Algorithm
  • - 가장 구현이 간단한 Horspool 의 String Matching 알고리즘을 소개합니다
    - 소개 PDF
    - Wikipedia 'Boyer–Moore–Horspool algorithm'

    - Source Code
    PythonTutor.com
    REPL.it

  • 실습환경
  • - PythonTutor.com
    - REPL.it

    - Tutorials
    Warm-up!
    Warning! (2013-03-06 ver.)
    과제
  • 2013-05-08
  • - Sequential Logic은 읽지 않는 대신 Combinational Logic을 반복해 읽고 완벽하게 이해하세요.
  • 2013-05-01: 4-to-16 Decoder
  • - 교재 38페이지와 24, 25번 슬라이드를 참고하셔서 4-to-16 Decoder를 만들어 보세요.
    - 6일 수업시간에 지목을 받으신 분이 앞에서 그리게 됩니다.
  • 2013-04-24
  • - 수요일(5월 1일) 예습 범위
    - 교재의 Chapter 3.3 Combinational Logic Circuit 까지의 내용과 해당 강의슬라이드를 보고오세요.
  • 2013-04-24
  • - 다음 주 월요일 예습
    - 교재의 Chapter 2와 강의슬라이드를 읽어오세요.
  • 2013-04-17
  • - 다음 주 수요일 예습
    - 교재의 Chapter 1.을 읽어오세요.
  • 2013-04-15: 과제2 제출결과
  • - 확인
    - 소스코드 예시
    - 미제출 하신 분들은 과제 소스코드를 각각 50번씩 손으로 적어 조교에게 제출하시기 바랍니다.
  • 2013-04-10: 과제2 Re-assign
  • - 기존 과제2(Queue, Linked List)를 교수님께서 지난 시간 설명해주셨던 List Method들을 이용하여 작성해주세요.
    - List Methods.pdf 를 참고해 교재 190페이지의 Stack과 같이 간단히 구현하시면 됩니다.
    - 금요일 자정 전 (목요일 밤 23:59)까지 조교 메일(jbbae@archi.snu.ac.kr)로 제출해주세요.
  • 2013-04-07: 과제2 관련 보충설명
  • 과제2를 어려워 하시는 분들이 계시는 것 같아 조금 더 설명 드리겠습니다.

    * 교재의 해당 부분을 잘 읽어보고 코드를 꼭 실행해 보세요!
     과제2는 책의 예제 코드들에서 거의 벗어나 있지 않습니다.
     책을 이해하고 예제 코드들을 실습환경에서 한 번씩 수행해보았다면 무리없이 작성할 수 있도록 고려하였습니다.
     PDF에서 읽어보실 것을 권해드리는 Chapter들을 꼭 읽고 코드들도 실행해보시기 바랍니다. (오래걸리지 않습니다^^)

    * 교재와 Stack의 예제코드들을 조금씩 응용해보세요!
     예제라고 넘겨버리지 마시고 : ) 먼저 Stack의 코드부터 살펴보시기 바랍니다.
     Queue는 Stack의 코드를 조금 응용해 작성할 수 있고, Linked List는 Queue와 Stack을 응용해 작성할 수 있습니다.
     3가지 모두 Node를 추가하고 삭제하는 위치만 달라질 뿐 별개의 내용들이 아닙니다.
     

    Hint!

    PDF에 나온대로 Queue는 19.2 Linked Queue (198페이지)를 읽고 코드를 수행해 보시면 도움이 많이 되실 겁니다.

  • 2013-04-06
  • - 과제2: Stack, Queue, Linked List Class (PDF)
    - 제출 기한: 4월 9일 자정 전(23:59) 까지 조교 Email(jbbae@archi.snu.ac.kr)로 제출
    - 제출 후 수업시간에 교수님께서 지목하시면 앞에서 시연

    - PDF의 Stack, Queue, Linked List 페이지에 각각 첨부된 Repl.it의 URL을 클릭하여 문서에서 요구하는 Method들을 작성하시면 됩니다.
     (Method의 'pass' 한 줄을 지우고 작성)
    - Stack은 참고하시라고 완성되어 있고, Queue와 Linked List는 구현해야 할 Method만 pass로 처리된 미완성 소스입니다.
     (Stack 등 앞서 구현한 소스와 교재등을 참고해 작성)
    - Queue와 Linked List의 소스코드를 '이름_Queue.txt' , '이름_LinkedList.txt' 의 형태로 메일에 첨부해주시면 됩니다.
  • 2013-04-01
  • - 오늘 배운 Chapter 13, 14를 다시 읽고 복습하세요.
    - Chapter 15는 Chapter 13, 14의 내용을 바탕으로 응용해보는 예제입니다.
    13, 14장의 내용을 이해했는지 15장을 읽어보며 점검해보세요.

    - 17장의 Linked List에 대해 살펴보고 18, 19장도 함께 읽어보세요.
  • 2013-03-25
  • - Chapter 12를 자세히 여러번 읽고 실습 해보시기 바랍니다.
    - Chapter 13은 간단한 내용이니 가볍게 읽어보세요.
  • 2013-03-25
  • - Chapter 11을 읽어오시되 실습은 차후에 진행하겠습니다.
    - Chapter 12를 자세히 읽어오세요.

    - 110페이지의 Dictionary를 이용해 Fibonacci수를 구하는 예제
    - 112페이지의 Counting Letters 예제
    - 종전과 마찬가지로 교수님께서 지목하시면 앞에 나오셔서 설명하시면 됩니다.
  • 2013-03-20
  • - Chapter 10을 읽어오세요
  • 2013-03-18
  • - Chapter 8, 9를 읽어오세요
    - Python 언어의 공식 웹사이트인 www.Python.org 를 방문해보세요
    - Iterative Fibonacci function 만들기
      과제 소개 (PDF)
      PythonTutor.com 또는 repl.it 에서 'fib()' function을 완성하시면 됩니다
  • 2013-03-13
  • - Chapter 4, 5를 중심으로 7, 8까지 읽어오세요
  • 2013-03-11
  • - Chapter 4를 자세히 읽어오세요 (4.9 Recursion까지 포함입니다!)
    - 실습환경에 맞게 수정한 MIT공개강좌의 예제입니다.
  • 2013-03-06
  • - Chapter 3, 4를 읽어오세요 (4.9 Recursion은 생략해도 무관합니다)
    - MIT공개강좌의 Example을 실습환경에서 확인해보고 결과를 살펴보세요
  • 2013-03-04
  • - 강의 웹페이지를 방문하고 즐겨찾기에 추가
    - 교재PDF 파일 다운로드
    - Chapter 1, 2 (교재기준 1~21page) 읽기
    Reference
  • The Python Language Reference
  • Doc.Python.org
  • Colins Cobuild Advanced Dictionary
  • Reverso.net
  • Python Official Website
  • Python.org
  • Nobel Prize
  • NobelPrize.org
  • TED
  • TED.com
  • MIT Technology Review
  • TechnologyReview.com