OSS 개발자포럼 2014. 피해갈 수 없는 자기소개 프로그램 개발을 잘 한다는 것은 무엇일까 ?

Slides:



Advertisements
Similar presentations
제철고 프로그래밍언어 2015 가을학기 강의 #2 Python 변수, 입출력, 배열 박성우 POSTECH 컴퓨터공학과 2015 년 9 월 30 일.
Advertisements

파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
Power Java 제3장 이클립스 사용하기.
7장 배열 ②.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
10장 함수.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
For/While Syntax & Practice!!
23장. 구조체와 사용자 정의 자료형 2.
임베디드 실습 # LED, 7’Segment 제어
2주차: 변수, 수식, Control Flow.
2007 1학기 11 프로젝트 기초 실습.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
공학컴퓨터프로그래밍 Python 염익준 교수.
C#.
13. 연산자 오버로딩.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
어서와 C언어는 처음이지 제14장.
인터넷응용프로그래밍 JavaScript(Intro).
27장. 모듈화 프로그래밍.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Lesson 2. 기본 데이터형.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
연산자 (Operator).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
FileMaker를 이용한 데이터 관리 옥현진(KICE).
2장. 변수와 타입.
6강. 객체지향 프로그램의 시작 객체지향 이전의 프로그래밍 객체지향의 등장 배경과 이해 메소드의 이해
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 02. 자바 기본 문법.
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
Canary value 스택 가드(Stack Guard).
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
05. General Linear List – Homework
Flow Diagram IV While.
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
함수, 모듈.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
9 브라우저 객체 모델.
Numerical Analysis Programming using NRs
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
프로그래밍 개론 Ⅰ-실습 2장 데이터와 식①.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
어서와 C언어는 처음이지 제21장.
 6장. SQL 쿼리.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
7 생성자 함수.
6 객체.
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
Presentation transcript:

OSS 개발자포럼 2014

피해갈 수 없는 자기소개

프로그램 개발을 잘 한다는 것은 무엇일까 ?

프로그램과 요리의 관계

모든 프로그램의 구성 요소

프로그래밍은 스토리다. 학교에 있는 영화관은 표의 가격이 5.0 달러일 때 관객이 120 명 들어온다. 표의 가격은 0.10 달러씩 낮출 경우 15 명씩 증가한다. 그러나 관객의 증가는 비용을 발생하게 되어, 영화를 한번 상영 할 때마다 180 달러의 비용이 기본적으로 들어가고, 관객 1 명당 0.04 달러의 추가비용이 소요된다. 극장주는 최대의 이윤이 나는 가격을 알고 싶어 한다.

Python 3.4.x

Variable ( 변수 ) 프로그래밍에서 데이터를 선언하는 문법적인 장치 메모리 공간을 만들고 인간이 찾기 위해서 변수에 이름을 붙여준 다. 변수에는 ‘=‘ 연산자를 활용해서 원하는 데이터를 할당한다.

그럼 언제 변수를 선언하고 사용하지 ? 데이터가 주어지는 순간 ? 데이터가 발생하는 순간 ? 데이터를 꺼내는 순간 ?

Python 은 편하네 ! 다른 언어들은 변수 앞에 해당 변수가 어떤 데이터인지를 명시적 으로 표시 Strong Typed language Weak Typed language Python 은 아무 생각 없이 그냥 필요한 데이터가 있으면 선언

Python 은 불편해 변수의 타입이 없기 때문에 특정 변수가 문자인지, 숫자인지 알 수 없는 경우가 발생 많이 사용하는 변환 int( ), str( ), float( ) type( ) 기능을 활용하면 어떤 변수가 어떤 타입인지 쉽게파악

변수 정리

변수의 비밀 이야기 – 참조 (reference) 변수 A 변수 B 변수 C

연산자와 계산 원래의 연산자는 CPU 를 동작시켜 결과 데이터를 발생하는 용도 사칙연산, 비트 연산.. 등등 ‘=‘ 연산자 ( ) 연산자 and, or, not 연산자

내가 원하는 기능이 없을 때 남들이 개발에 필요할 꺼 같아서 만들어둔 기능들 – API 필요하면 가져다 쓰자 – import 지금 우리에게 필요한 것 – math, random

제어문 (Control Statement) if ~ elif ~ else 만 기억하면 됨 if  조건문의 실행 결과 True 인 경우 실행 while for

연산자와 제어문의 정리

나만의 매출 계산기 커피숍을 운영하는 A 는 항상 계산기를 이용해서 그날의 매출을 정리한다. A 는 프로그램을 이용해서 계속해서 발생한 매출이나 지출 데이 터를 입력하고 싶다. 매 금액의 입력 후에 현재까지의 금액이 화면이 출력되는 계산기 프로그램을 작성하라.

문제 어떤 영화관에서는 간단한 수익계산법을 이용한다. 손님들은 티 켓 값으로 5 달러씩을 지불한다. 한 번 영화를 상영할 때마다 20 달러에 관객 1 명당 50 센트의 비용이 든다. 이 때 총 수익을 계산 하는 total-profit 프로그램을 작성하라. 이 프로그램은 한 번 영화를 상영할 때 입장한 관객의 숫자를 입 력받아 총 수익을 출력한다.

문제 sum-coins 라는 프로그램을 작성하라. 사용자는 10 원짜리, 50 원, 100 원, 500 원 동전의 숫자를 차례로 입력한다. 프로그램은 모든 동전의 입력이 끝나면 금액을 계산해서 출력해 준다.

함수 - 변수처럼 로직도 재사용하자

함수의 진짜 의미 실행할 코드를 묶어둔 장치 모든 함수는 입력과 출력이 존재 Stack 구조에서 실행 실제로는 메모리를 차지해서 변수처럼 사용

함수의 파라미터의 특별함 없으면 기본값을 지정해서 편하게 사용할 수 있음 실제로 동작 방식은 변수의 ‘=‘ 과 동일하게 동작

문제 ! number-wizard 프로그램을 작성하라. 프로그램은 사용자가 생각하는 1 에서 100 사이의 숫자를 최단 횟 수로 찾는 프로그램이다. 처음 시작하면 50 이라는 숫자를 제시하고 사용자는 ‘H’ 혹은 ‘L’ 을 입력해 주면 알아서 더 높은 수나 작은 수를 제시한다. 숫자가 맞으면 사용자가 ‘C’ 를 입력해서 정답을 인정한다.

함수 지향 프로그래밍 단위 기능을 함수로 제작 제작된 함수들을 조합해서 문제를 해결하는 방식 함수 설계의 어려움

함수 설계 가이드 하나의 단위 기능에 집중한다. 로직의 처리와 결과의 출력은 분리해 두는 것이 재사용에 유리 파이썬의 경우 파라미터의 유연함을 사용 파이썬에서는 함수 자체도 파라미터로 전달 가능

‘*’, ‘**’ Variable arguments Non-keyworded keyworded

function is 1 st class Object

파이썬의 강력한 list 여러 개의 데이터를 하나의 변수로 접근하는 구조 ( 자료 구조 ) 파이썬은 다른 언어들과 달리 사용하기 편한 리스트를 기본적으 로 제공 타입이 없으므로 다양한 데이터를 리스트에 추가

키보드에서 숫자 입력 받아서 리스트에

리스트의 접근 –’[ ]’

리스트의 단점

강력하지만 제약 있는 tuple 동시에 여러 개의 데이터를 하나로 묶는 장치 불변 (immutable) 함수의 리턴 타입으로 tuple 을 사용 가능 ( 상당히 유용함 ) 데이터의 접근 시에는 인덱스 번호 이용

키 (key) 와 값 (value) 의 dictionary ‘{ }’ 를 이용한 표기 여러 종류의 데이터를 하나의 구조에 묶어두는 구조 객체개념과 연관시켜서 알아둘 것

객체지향 개념의 등장 데이터와 이를 사용하는 로직을 하나의 메모리로 구성

객체지향 패러다임 모든 현상은 객체들의 상호작용으로 이루어진다는 생각 객체는 개별적으로 데이터를 보관하며, 기능을 가진다는 생각 모든 객체는 책임과 역할을 가지며, 이를 연결해서 문제를 해결

클래스 ? 객체 ? 인스턴스 ? 클래스는 인스턴스 생성의 모델의 역할 인스턴스는 클래스 기반 언어에서 객체를 칭하는 용도로 사용 객체는 보다 광범위한 용도로 사용

파이썬의 클래스와 객체

객체들의 공통 속성 만들기

method( 기능 ) 추가하기

실습 로또 자판기 계산기 가까운 음식점 찾기

문제 국어영어수학과학선택 이공계 인문계 이공계 인문계 이공계 인문계