035.001
컴퓨터의 개념 및 실습
2015-1학기

- Python 및 C 언어를 이용한 컴퓨터 프로그래밍 기본 개념 습득
- 컴퓨터 하드웨어 / 소프트웨어 동작 원리 기본 이해

담당교수
민상렬 교수 (컴퓨터공학부)
301동 501호, 880-7047, symin@archi.snu.ac.kr
http://archi.snu.ac.kr/symin
조교
이현규, 301동 517호, 880-7296, hglee@archi.snu.ac.kr
백상윤, 301동 415호, 880-1562, ayiyowo@gmail.com
수업
월요일, 수요일 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

공지사항
  • 2015-06-08: C 교재 관련 공지
  • 교재를 구입하고자 하시는 분이 늘고 있는 관계로 교재를 더 새로 주문하였습니다.

    이번엔 책 전체를 제본하게 되어서 가격이 24000원으로 조금 더 올라가게 되었습니다. 이 점 양해 부탁드립니다.

    시험 범위에는 책 중에서 Chapter 5, 6, 7, 11, 12, 13, 14, 15, 16, 17, 18, 19 가 해당됩니다.

  • 2015-06-03: C 교재 관련 공지
  • 교재를 구입하고자 하시는 분이 늘고 있는 관계로 교재를 새로 더 주문하도록 하겠습니다.

    그 전까지는 친구들과 같이 교재를 보시도록 하시고, 교재 주문이 완료되는 대로 구입을 하실 수 있도록 하겠습니다.
  • 2015-05-29: Homework #1 공지
  • Homework #1을 다음과 같이 공지합니다. Due는 2015년 6월 10일(수) 23:59 입니다.

    숙제에 대한 질문이 있으시면 메일 주세요.
    (숙제 파일 최종 수정: 2015-06-01 15:00)
    Homework #1

    Homework #1 English ver.

  • 2015-05-20: Linux 계정 배포 및 사용법 안내
  • 오늘 수업 시간에 Linux 사용법에 대하여 안내해 드렸습니다. 수업 시간에 사용한 자료들을 배포해 드립니다.

    Linux 및 vim 사용법

    GDB 사용법

    그리고 앞으로 여러분들이 사용할 계정에 대한 정보 및 원격 접속 도구인 PuTTY, 그리고 PuTTY의 사용법을 다음과 같이 올려 드립니다. (2015-05-30: Mac OS에서의 서버 접속법이 추가되었습니다.)

    PuTTY 프로그램

    PuTTY 사용법 및 계정 정보

    질문 있으시면 언제든지 연락해서 물어보세요.
  • 2015-05-13: 중간고사 클레임 기간
  • 중간고사 클레임을 다음과 같이 받겠습니다. 답안지 확인과 클레임을 하실 분들은 다음과 같은 시간과 장소에 오시면 됩니다.

    2015년 5월 14일(목), 15일(금) 16:30~17:30에 301동 552호에서 받겠습니다.

  • 2015-05-11: 중간고사 채점 결과
  • 중간고사 채점 결과표를 다음과 같이 올려 드립니다. 확인하시고 질문 있으시면 연락 주세요. 클레임 기간은 추후에 공지해 드리겠습니다.

    중간고사 채점 결과

  • 2015-05-04: 중간고사 채점 기준
  • 중간고사 채점 기준표를 다음과 같이 올려 드립니다. 참고하시기 바랍니다. (2015-05-08 11:25 최종 수정)

    중간고사 채점 기준

    (2015-05-09) 중간고사 채점 작업이 모두 끝났습니다. 5월 11일 월요일에 확인을 하실 수 있겠습니다.

  • 2015-05-04: 중간고사 종료 및 앞으로 사용할 슬라이드
  • 중간고사 치르시느라 수고하셨습니다. 채점이 끝나는 대로 채점 결과 올려드리도록 하겠습니다.
    오늘부터 앞으로 사용할 강의 슬라이드들을 올려드립니다. 참고하시기 바랍니다.
    01-LC-3
    02-Programming
    03-AssemblyLanguage
    04-Introduction To C PL
    05-Variables and Operators
    06-Control Structures
    07-Functions
    08-Debugging
    09-Pointers and Arrays
    10-Recursion
    11-Input Output in C
    12-Data Structures
  • 2015-04-15: 시험 공지 (2015-04-18 시험 장소 확정)
  • 중간고사 시험 날짜는 4월 29일(수)로 확정되었고, 시험 범위는 수업 초반의 하드웨어 부분과 Python 교재 Chapter 10까지 입니다.
    시험 장소는 수업 장소와 동일한 301동 203호입니다.
    그리고 오늘 제시해 드렸던 sorting 코드를 업로드해 드리겠습니다.
    Sorting functions
    출처는 이곳입니다.
    From https://www.daniweb.com/software-development/python/code/216689/sorting-algorithms-in-python
  • 2015-04-13: 오늘 수업
  • 다음 수업 시간까지 Python교재 Chapter 8까지 읽고 내용을 숙지하여 오시기 바랍니다.
    내용을 숙지하셔서 간단한 코드를 짤 수 있는 수준이 되셔야 합니다.
    수업 시간에 제시된 list reverse 함수를 스스로 작성하시면서 공부하시면 도움이 많이 되실 것입니다.
    궁금하신 점이 있다면 언제든 질문 주세요.
    더불어서, 문경훈 학생이 교재를 두고 가셔서 제가 가지고 있습니다. 원하실 때 연락 주셔서 찾아가시기 바랍니다.
  • 2015-04-11: 중간고사 날짜 확정
  • 중간고사 날짜가 4월 29일(수)로 확정되었습니다. 시험 기간 일정 잡으시는 데 참고하시기 바랍니다.
    장소와 시험 범위는 추후에 공지해 드리겠습니다.
  • 2015-04-08: 수업 시간에 다룬 코드
  • 오늘 수업 시간에 다룬 코드들을 올려드립니다.
    먼저 fibonacci 함수를 recursive version으로 구현한 것과 non-recursive version으로 구현한 것입니다.
    fibonacci recursive & non-recursive
    코드에 대한 설명을 올려드립니다.
    피보나치 수열 코드 설명
    다음은 어떤 수가 소수(prime number)인지 아닌지를 판별하는 함수입니다.
    prime number or not
    (주의) repl.it을 이용하여 프로그래밍을 하실 때 f5는 새로고침의 기능을 합니다. 습관적으로 누르셨다가 작성하신 코드의 복구가 어려울 수 있습니다. 참고하세요.
    중간중간 저장해 주는 습관이 매우 중요합니다.
    그리고 오늘 수업 시간에 코딩을 잘 하지 못했다고 해서 성적에 전혀 영향이 있는 것이 아니니 절대 걱정 마십시오.
    공부 또는 프로그래밍을 하시다가 이해가 안 되는 부분이 있으시면 얼마든지 조교에게 질문하셔서 되도록 많은 걸 얻어가셔서 자신의 것으로 만드시기 바랍니다.
  • 2015-04-01: 교재 구입 관련 공지
  • 교재가 다음 주 월요일부터 구입이 가능해집니다.
    교재 구입비는 12000원입니다. 현금으로 준비해 주시고 다음 주 월요일 수업이 끝나고 나서 제게 오셔서 구입하시면 됩니다.
    계좌이체와 같은 다른 수단은 받지 않겠습니다. 현금으로 준비해 주세요.
  • 2015-04-01: 출석 관련 공지
  • 출석 체크는 출석부를 돌려서 본인이 서명을 하는 방식으로 진행될 예정입니다.
    수강생당 2회까지는 결석을 해도 아무런 페널티가 없지만, 최종 결석 횟수가 2회를 초과하게 되면 최종 성적이 F로 부여됩니다.
    교재를 수기로 30page를 작성하여 제출하는 것으로 결석 1회를 감면할 수 있습니다.
    조교가 수업이 시작할 때(2시 20분 정각에 - 스마트폰 시각을 기준으로) 사진을 촬영할 예정입니다.
    수업 시간을 엄수해 주시고, 늦게 들어왔을 경우 점검표에 서명을 할 때 "지각"이라고 적어 주세요. (사진과 인원 수 비교합니다. 정확히 적어 주세요.)
    출석표에 서명을 한 인원 수가 사진의 인원 수와 차이가 난다면 추가의 페널티가 수강생 전체에 걸쳐 있게 되겠습니다. 지각도 확실히 인원 수 비교해서 차이가 나면 수강생 전체에게 페널티가 돌아갑니다.
    지각1/2 결석으로 처리할 예정입니다.
    아울러, 수업 시간에 정숙한 상태로 수업에 임해 주세요. 수업 시간에 수업을 방해하는 행위는 자제하여 주셔야 합니다. 진지한 수업 참여 자세를 보여 주기 바랍니다.
    그리고 다음 시간까지 Python 교재 Chapter 3,4를 읽어 오시기 바랍니다.
  • 2015-03-30: Python 프로그래밍 관련 공지
  • Python 개발 환경에 대하여 공지드립니다.
    본 수업에서는 웹에서 직접 Python 코드를 작성하고 실행시켜 볼 수 있는 환경들을 활용할 예정입니다.
    개발 환경 링크는 다음과 같습니다.
    REPL.it Python
    개발 환경의 사용법은 다음 링크의 슬라이드를 참고하시고, 질문이 있으시면 조교에게 연락/질문해 주시면 답변해 드리겠습니다.
    REPL.it 사용법
    다음 시간까지 Python 교재의 Chapter 1,2를 읽어 오시기 바랍니다.
  • 2015-03-19: 강의 관련 자료 업로드
  • 지금까지 수업한 내용에 관련된 자료들을 올려드립니다. 참고하시기 바랍니다.
    Chapter 1
    Chapter 2
    Chapter 3
    Chapter 4
  • 2015-03-18: 강의 슬라이드 수정 업로드
  • 강의 슬라이드들이 수정되어 업로드되었습니다. 참고하시기 바랍니다.
  • 2015-03-16: 출석 관련 공지 (2015-03-30 수정)
  • 출석 체크는 출석부를 돌려서 본인이 서명을 하는 방식으로 진행될 예정입니다.
    수강생당 2회까지는 결석을 해도 아무런 페널티가 없지만, 최종 결석 횟수가 2회를 초과하게 되면 최종 성적이 F로 부여됩니다.
    교재를 수기로 30page를 작성하여 제출하는 것으로 결석 1회를 감면할 수 있습니다.
    조교가 수업이 시작할 때 사진을 찍고, 출석표에 서명을 한 인원 수가 사진의 인원 수와 차이가 난다면 추가의 페널티가 수강생 전체에 걸쳐 있게 되겠습니다.
    아울러, 수업 시간에 정숙한 상태로 수업에 임하지 않았거나, 휴대폰 소리가 울려서 다른 사람이 들을 정도의 소음이 울렸을 경우 벌칙으로 노래를 부르게 되겠습니다.
    수강생 여러분들께서는 이 점들을 염두에 두시고 수업에 임해 주시기 바랍니다.
  • 2015-03-12: 수업 시간 내용 이해
  • 수업 시간에 배운 내용에 대해서 교수님께서 이해하라고 하신 부분을 다 이해해 오는 것이 3월 11일 수업 시간의 과제입니다.
    다음 시간에 교수님께서 임의의 학생에게 배운 내용에 대하여 질문을 하실 예정입니다.
    이해하시는 데 어려움이 있으시다면 조교에게 연락을 취하여 질문하시기 바랍니다.
  • 2015-03-10: 수업 슬라이드
  • 앞으로 진행할 수업 슬라이드들 중 일부를 미리 올려 드립니다. (2015-03-18 11:02 수정)
    03_Logic-Circuits-II
    04_Datapath
    05_Control-Unit

  • 2015-03-09: 수업 슬라이드
  • 오늘 수업 슬라이드를 올려 드립니다.
    02_Logic-Circuits-I

    그리고 앞으로는 수업 시작 전에 슬라이드를 미리 업로드해 드릴 예정입니다. 따라서 수강생 여러분들께서는 사이트를 체크하셔서 슬라이드가 업로드되면 출력해서 수업 준비를 하시면 되겠습니다.
    그리고 수업 시간에는 기본적으로 정숙한 상태로 수업에 임해 주세요.
  • 2015-03-04: 수업 시간 공지
  • 2015학번 신입생들의 앞의 자연대에서 이루어지는 수학 및 연습 수업 관계로 수업 시작 시간이 14:20 으로 변경되었습니다.
    충분히 시간이 늦추어졌으니, 버스와 도보를 최대한 활용하여 시간에 맞춰 오시길 당부드립니다.
  • 2015-03-04: 첫 수업
  • 오늘 수업 슬라이드를 올려 드립니다.
    01_Overview

    앞으로 수업 외 시간에 질문이 있으시면 조교에게 이메일로 질문해 주시면 답변 드리겠습니다.
    급한 질문이 있으시다면 올려놓은 연락처로 연락해 주시면 되겠습니다.

    오늘 나온 숙제들입니다. 다음 수업 시간까지 해 오시면 되겠습니다.
    HW #1 : Introductory Lectures on Solid State Physics #1 (without equations) by Professor Kohei M. Itoh (Keio University) 보고 + 이해하고 오기
    HW#1 Video

    HW #2 : Start with why – how great leaders inspire action by Simon Sinek 보고 + 이해하고 오기
    HW#2 Video

    HW #3 : Why leaders Eat last by Simon Sinek 보고 + 이해하고 오기 (optional)
    HW #3은 선택적인 과제이지만 보시는 것을 권장합니다.
    HW#3 Video
  • 2015-03-02: 수업 휴강 공지
  • 오늘 수업은 공과대학에서 주최하는 오리엔테이션이 문화관에서 수업과 같은 시간에 열린 관계로 휴강하였습니다.
    3월 4일(수) 부터는 정상적으로 수업이 진행될 예정입니다.
  • 2015-02-24: 수업 개강 안내
  • 2015년 1학기 컴퓨터의 개념 및 실습(035.001) 수업 개강
    - 날짜: 2015년 3월 2일(월)
    - 장소: 301동 203호
    강의 슬라이드
    Initial/Last Uploaded date : ppt link

    Hardware Part

    2015-03-04 / 2015-03-18 : 01_Overview

    2015-03-09 / 2015-03-18 : 02_Logic-Circuits-I

    2015-03-10 / 2015-03-18 : 03_Logic-Circuits-II

    2015-03-10 / 2015-03-18 : 04_Datapath

    2015-03-10 / 2015-03-18 : 05_Control-Unit

    C Language Part
    2015-05-04 / 2015-05-04 : 01-LC-3

    2015-05-04 / 2015-05-06 : 02-Programming

    2015-05-04 / 2015-05-04 : 03-AssemblyLanguage

    2015-05-04 / 2015-05-04 : 04-Introduction To C PL

    2015-05-04 / 2015-05-04 : 05-Variables and Operators

    2015-05-04 / 2015-05-04 : 06-Control Structures

    2015-05-04 / 2015-05-19 : 07-Functions

    2015-05-04 / 2015-05-04 : 08-Debugging

    2015-05-04 / 2015-05-04 : 09-Pointers and Arrays

    2015-05-04 / 2015-05-04 : 10-Recursion

    2015-05-04 / 2015-05-04 : 11-Input Output in C

    2015-05-04 / 2015-05-04 : 12-Data Structures

    강의교재
  • 「How to Think Like a Computer Scientist: Learning with Python」
  • - PDF Version
    - HTML Version

    - HTML Openbook Project
  • 「C language for Python Programmers」
  • - HTML Version
    수업자료
  • 실습환경
  • - PythonTutor.com
    - REPL.it

    - Tutorials
    실습환경소개
    Reference
  • The Python Language Reference
  • Doc.Python.org
  • Python Official Website
  • Python.org
  • Nobel Foundation
  • NobelPrize.org
  • TED
  • TED.com
  • MIT Technology Review
  • TechnologyReview.com
  • MIT Open Courseware
  • Ocw.mit.edu
  • Sookmyung Network for Open World
  • Snow.or.kr
  • Korea Open CourseWare
  • Kocw.net