Skip to content

yhg8423/se213_2018

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SE213 2018 Course Home

(Last updated: Tue Mar 6 15:36:20 JST 2018)

수업 내용

Course Schedule 참고

개요

프로그래밍(SE213) 강좌는 DGIST 기초학부 학생들이 컴퓨터 과학(computer science)의 기초와 컴퓨팅 사고(computational thinking)에 관해 배울 수 있도록 설계되어 있습니다. 이 강좌를 통하여 프로그래밍 언어를 배우고, 이를 통하여 간단한 프로그래밍에서 시작해서 기초적인 자료구조와 알고리즘을 구현하게 됩니다. 이 과정에서 학생들이 컴퓨팅 사고에 익숙해질 수 있을 것입니다. 이를 통하여, 비전공자들도 컴퓨터를 연구와 학습의 도구로 활용할 수 있고, 또한 공학/컴퓨터를 전공할 학생들이 전공의 탄탄한 기초를 세우는 것을 목표로 합니다.

강좌의 대상은 인터넷 사용, 워드, 파워포인트 등의 컴퓨터 작업에는 어느 정도 익숙하지만, 컴퓨터 프로그래밍에는 전혀 경험이 없는 학생입니다. 또한 프로그래밍 경험이 있는 학생들에게는, 프로그래밍의 이해와 실력을 키울 수 있도록 여러 예제를 제공할 예정입니다.

프로그래밍은 수학 혹은 물리, 혹은 다른 이공계 과목과 마찬가지로, 이론만 알아서는 완벽한 이해가 어렵습니다. 수학 혹은 물리의 개념을 이해해도, 여러 가지 다른 조건의 문제를 풀면서 이해가 깊어지는 것처럼, 프로그래밍도 실습을 하면서 숙달이 되고, 이해도가 깊어질 수 있습니다. 따라서 학생들이 실습 시간에 집중하고, 또한 과제를 수행하면서 충분히 여러 가지 프로그램을 구현해 보는 것이 필요합니다.

사용 언어

사람들끼리 대화를 할 때도 일정한 문법에 따라야 의사소통이 되듯이, 컴퓨터가 수행할 작업을 기술할 때도 컴퓨터가 이해할 수 있는 규칙에 따를 필요가 있습니다. 사람들끼리 하는 언어를 자연어(natural language, 한국어, 영어, 중국어 등)라고 하고, 사람이 컴퓨터에게 명령을 내릴 수 있는 언어(즉 규칙)를 프로그래밍 언어(programming language)라고 합니다.

컴퓨터가 만들어진 이후 수 많은 언어들이 만들어지고 (즉 수많은 규칙들이 만들어지고) 사용되어져 왔습니다. 현재 가장 많이 사용되는 언어는 Java, Javascript, python, ruby, C, C++, Go, scala, html, css, sql 등이 있습니다. 이렇게 많은 언어들이 지금까지 만들어지고, 또 같은 언어라고 하더라도 계속 진화하는 이유는 사용 용도에 따라 언어를 개발, 변경시켜온 측면과 어떻게 하면 사람들의 생각이 더 편하게 표현될 수 있는지를 고려한 측면이 있습니다.

프로그래밍을 할 때 알고리즘(algorithm)과 자료구조(data structure)에 대한 이해가 특정한 프로그래밍 언어에 대한 이해보다 더 중요합니다. 그렇지만 실제 프로그래밍을 할 때는 특정 언어를 사용하 하는 것은 컴퓨터 언어를 사용해야 되기 때문에, 프로그래밍 목적에 맞는 언어의 선택과 그것에 대한 이해는 굉장히 중요한 문제입니다.

python은 초보자들이 배우기에 상대적으로 쉬우면서도 강력한 기능을 가지고 있어, 다양한 분야/회사에서 사용되고 있습니다. 또한 언어 자체가 구조적/객체지향적으로 잘 설계되어 있어, 컴퓨터 프로그래밍의 여러 개념을 배우기에 적합합니다. 이러한 이유로 많은 학교의 기초과정에서 python을 채택하고 있고, 이 과목에서도 python을 이용하여 수업을 진행할 예정입니다.

현재 사용되는 python은 python 2와 python 3가 있습니다. 아직까지는 python 2가 더 널리 사용되고 있기는 하지만, python 2는 2020년 지원이 끝나고, 앞으로 더 폭넓게 사용될, 그리고 더 강력한 기능을 갖춘 python 3을 이용하여 수업을 진행할 것입니다.

과목에서 다룰 내용

  • 컴퓨터 공학 및 프로그래밍에 대한 기초
  • python (python 3) 언어의 기초적인 문법
    • number (int, float), string, list 등 기본적인 자료형과 연산
    • 함수(function)
    • 문자열 조작
    • 입출력
    • class 등 OOP (Objective-Oriented Programming) 기본 개념
  • 문제해결을 위한 간단한 알고리즘에 대한 이해 및 복잡도(complexity)
  • (optional) python library를 이용한 그래프 생성 등 기초적인 data analysis
  • 수업과 연계된 실습, 과제, 프로젝트 등을 통한 실제 코딩

강사진

이론

  • 이름: 조민규
  • 이메일: mingyu.cho (at) dgist
  • 사무실: E7 L13

실습

이름 담당분반 이메일
조민규 월4-6p mingyu.cho (at) dgist
최하정 월, 목 tresa (at) nate (dot) com
송유진 yujinkor (at) naver (dot) com

TA

조교 담당시간 분반 이메일 (@dgist.ac.kr)
배정민 월10-12 SE213b-02 qhtjrmin
이지혜 월1-3p SE213b-03 jh_lee
김한별 월4-6p SE213b-01 hbstella92
강기동 화10-12 SE213b-06 kd_kang
이은정 화1-3p SE213b-07 iej0710
이승학 화4-6p SE213b-08 slee
문시훈 목10-12 SE213b-04 msh0576
유재민 목1-3p SE213b-05 ryujm95
안지운 n/a n/a jyun

강의와 실습 시간

Office hour (시작시간부터 30분)

담당 시간 장소 (E3-)
배정민 월1:30p 219
문시훈 월9:00p 522
김한별 화2:00p 404
강기동 화4:00p 304
이지혜 수11:00 403
유재민 수3:00p 506
이승학 목11:00 206
이은정 목2:00p 219
안지운 금2:30p 404
  • 오피스아워는 여러 가지 사정으로 바뀔 수 있으니, 이 곳에서 항상 확인하시기 바랍니다.

과제 및 시험

  • 과제: 실습시간에 배우는 내용을 기초로 해서, 학기 중에 4-6번의 과제가 제출될 예정입니다.
  • 시험: 중간고사와 기말고사

성적

평가 방법

아래와 같은 비율로 성적 평가를 할 예정입니다.

내용 비중
중간고사 30%
기말고사 30%
과제 40%
  • 결석시 penalty (전체 100점 기준)
    • 이론: 2 ** max(n - 2, 0) - 1, n=결석회수
    • 실습: 2회 1점, 3회 3점, 4회 이상 F

학점 (TBD)

학점 점수
A >= 85
B >= 70
C, D < 70
F TBD

사용 도구

문의 방법

게시판 이용

수업 중에 비슷한 질문이 반복되는 경우가 많으므로, 가급적 elice 상에 있는 질문과 답 게시판을 이용하기 바랍니다.

  • 강의 운영 (과제, 시험 등) Q&A: 수업 시간, 강의의 정책 등에 관한 질문을 올려주시기 바랍니다
  • 프로그래밍 Q&A: python 프로그래밍에 관한 질문을 올려주시기 바랍니다

그리고 교수/조교 뿐만 아니라, 다른 학생들의 질문에 학생분들이 답을 올려주시는 것을 적극 권장합니다. 자신이 알고 있는 것을 설명을 하면서, 이해도가 더 깊어질 수 있습니다. 그리고 적극적으로 참여하시는 학생들에게는 참여 점수가 부여될 예정입니다.

이메일 이용

  • python에 관한 내용과 실습 출석 등에 관한 부분은 실습 담당 교수/조교에게 보낼 것
  • 학점 등 평가에 대한 부분은 실습 담당 교수와 조민규 교수에게 보낼 것
  • 읽을 거리에 있는 이메일 에티켓을 참고할 것
    • 제목에 [SE213 x분반]을 포함할 것 (실습 분반)

교재/읽을 거리

주교재

python 교재는 매우 많으니, 그 중에 한 권을 정해서 보시면 됩니다. 아래 참고 교재에 온라인으로 접근 가능한 책들이 많이 있으니, 그 중에 한 권을 정해서 보시는 것도 좋습니다.

참고 교재

Further readings on python or programming (계속 추가될 예정)

python 프로그래밍할 때 도움을 받을 수 있는 사이트

References (사전처럼 언어에 필요한 내용을 찾아볼 수 있는 문서)

Tutorials (python을 배울 수 있는 사이트)

  • codeacademy: 기초적인 python 코드를 온라인 상에서 따라하면서 배울 수 있는 사이트
  • PySchools python quick reference guide: 다른 언어를 알고 있는 사람이 python을 빠르게 배울 때 도움이 되는 사이트

문제 풀이

Others

  • python tutor: python 코드의 실행을 시각화하여 보여주는 사이트

기타

About

Official site of Programming class

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published