ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 수업 요점정리 1주차
    프로그래밍 2022. 9. 2. 13:16
    반응형

    1. Computational Thinking(컴퓨팅 사고력)

    • 컴퓨터 과학의 이론,기술,도구를 활용해 현실의 복잡한 문제를 해결하는 사고 방식
    • 문제를 분석,이해 하고 해결방안을 논리적인 절차로 고안해 컴퓨터가 이해하는 방식으로 제시하는 능력
    • 컴퓨팅 시스템의 역량을 활용해 문제를 효과적이고 효율적으로 해결할 수 있는 절차적 사고 능력
    • 문제 해결을 위해 세분화하고 절차를 만들어 최적의 방법을 찾고 정리해 유사문제에 적용하고 응용하는 능력

    1.1 추상화(Abstraction) :

    실제 문제를 해결 가능한 형태로 표현하는 사고과정
    필요자료 수집, 분석, 필요방법 활용, 복잡한 요소를 작은 단위로 분해, 필요 변수 추출을 통해서 해결 모델을 설계하는 과정

    1.2 자동화(Automation) :

    추상화 과정에서 만들어진 해결 모델을 컴퓨터가 이해 가능한 언어로 표현하여 수행하는 것

     

    2. 컴퓨터공학적 문제 해결과정

    2.1 문제해결 방법의 설계(알고리즘 설계)

    2.1.1 의사코드(수도코드, psuedo code)

    "점수"에 수행 점수를 넣는다. -> "기준"에 기준 점수를 넣는다. -> "점수"가 "기준"보다 크다면 "점수"를 출력한다. -> 그렇지 않다면 "기준"값을 출력한다.

    2.1.2 순서도(flow chart)

    위키백과 순서도 출처

    2.2 문제분할(분할정복)

    하단의 세부 문제를 해결하여 아래서 위로 올라가며 전체적인 문제의 해답을 얻는 방법 또는 개념

    2.3 모듈화

    함수와 메소드

    2.4 자료의 구조화

    자료의 집합을 문제해결에 용이한 형태 및 기능을 갖춘 구조로 변환하는 과정

    배열 : 여러 자료를 배열 내에서 일렬로 나열하여 관리

    스택 : 후입선출(LIFO, Last In First Out)

    큐 : 선입선출(FIFO, First In First Out)

     

    3. 파이썬

    3.1 특징

    플랫폼 독립적 언어 : 운영체제에 상관없이 사용 가능한 언어

    인터프리터언어 : 전체 소스코드 입력 후 기계어로 번역하는 컴파일러 방식과 달리, 소스코드를 한 줄 읽고 바로 실행

    객체 지향 언어 : 문제를 객체 관점으로 분석하고 데이터와 메서드(처리할 기능)들을 결합하여 프로그램을 작성하는 방식

    동적 타이핑 언어 : 프로그램 실행 시점(런타임)에서 각 데이터 타입을 결정하는 언어(변수 타입을 먼저 선언하지 않음)

     

    3.2 변수

    사용할 데이터를 저장하는 공간(값을 저장하는 상자)

    변수는 메모리에 저장됨

     

    파이썬에서 변수는 객체를 가리키는 ID값을 담고있는 저장공간

    파이썬에서 변수의 데이터형식은 넣는 순간마다 변경될 수 있는 유연한 구조

    (C에서는 변수의 형타입(int,float,string 등)을 사전 정의해야하며, 상이한 타입이 들어갈 수 없음)

     

    3.3 파이썬 객체

    해당 값들이 파라미터(매개변수)로써 함수에 넘어갔을 때 실제 원본값(전역변수)에 영향을 줄 수 있는지 유무 여부를 잘 구분해야한다

    3.3.1 Immutable 객체(값 객체)

    변수에 저장된 값으로 치환이 가능하지만 변경은 안된다

    종류 예시 비고
    수치값 10  
    문자열 "Hello World!" 문자열도 리스트이나 파이썬에서는 별도로 취급
    튜플(tuple) (1,2,3) 리스트와 다르게 값의 변화가 불가능하다

    3.3.2 Mutable 객체(참조 객체)

    변수에 저장된 것은 객체의 요소(값)이 저장된 참조(주소)이므로 실제 값들이 변경 가능하다

    종류 예시 비고
    리스트(list) [1,'a',3] 여러종류의 데이터형이 포함될 수 있다
    딕셔너리(dic) {'a':[1,2,3], 'b':[6,7,8]} 문자열도 리스트이나 파이썬에서는 별도로 취급
    집합형(set) (1,2,3) 리스트와 유사하나, 중복값이 불가능하고 순서가 없다

    ※리스트 사용 가능 함수

    함수 설명 사용법
    append() 리스트 제일 뒤 항목 추가 리스트.append(값)
    pop() 리스트 제일 뒤 항목을 추출한다. 추출된 항목은 리스트에 삭제 리스트.pop()
    sort() 리스트 내부의 항목들을 정렬한다 리스트.sort()
    reverse() 리스트 내부의 항목들을 역정렬한다 리스트.reverse()
    index() 지정된 값의 위치를 찾아 반환한다 리스트.index(찾을값)
    insert() 지정된 위치에 값을 삽입한다 리스트.insert(위치,값)
    remove() 지정된 값을 리스트에서 제거한다. 여러개일경우 처음 값을 제거 리스트.remove(지울값)
    extend() 리스트 뒤에 지정된 리스트를 이어 붙인다 리스트.extend(리스트2)
    count() 리스트에서 지정된 값의 개수를 센다 리스트.count(찾을값)
    del() 리스트에서 지정된 위치의 항목을 삭제한다 del(리스트[위치])
    len() 리스트의 길이를 젠다 len(리스트)

     

    4. 값의 복사(Swallow Copy/Deep Copy)

    4.1 Swallow Copy

    주소만 복사하여 원본과 사본이 같은 주소를 공유

    객체의 값이 변동되면 같은 주소를 공유하기에 같이 변동됨

    4.2 Deep Copy

    별도의 메모리공간에 객체를 생성하여 복사

    별도의 주소를 가지기에 원본과 사본이 영향을 주지 않음

     

    5. 함수

    5.1 개념

    함수는 독립적으로 수행하는 프로그램 단위

    특정 작업을 수행하는 명령어들의 모음에 이름을 붙인 것

    프로그램에서 반복적으로 수행되는 기능을 함수로 만들어 호출, 작업 완료 후에는 반환

    주어진 문제를 작은 문제(여러 함수)로 나누어 생각 할 수 있다!!

    5.2 장점

    함수로 구성된 프록그램은 함수 단위로 구성되어 읽기 및 이해하기 쉽다.

    이미 정의된 함수는 여러번 호출이 가능해 중복을 최소화하여 프로그램의 양을 줄이는 효과를 낸다

     

    5.3 구성

    #함수정의
    def func_name(param1, param2): #매개변수 param1,2 입력지정
    	#함수 내용
        sum_value = param1 + param2
        
        #함수 결과 반환
        return sum_value

    5.4 호출방법(C언어 기준)

    5.4.1 call by value

    함수에 인자를 넘길때 값만 넘김

    함수 내 인자값 변경시, 호출자(원본)에 영향을 주지 않음

     

    5.4.2 call by reference

    인자를 넘길 때 메모리 주소를 넘김

    함수 내 인자값 변경시, 호출자(원본)의 값도 변경됨

     

    5.5 파이썬에서의 호출방법

    파이썬에서는 모두 call by value이지만 객체의 두가지 특성에 따라서 call by value/reference와 유사한 결과를 가져옴

    Immutable : 변수에 값을 직접 저장

    Mutable : 변수에 객체의 참조값을 저장

    ※3.3 파이썬 객체 부문 참고

     

    0. 컴퓨터공학 지식

    0.1디지털 리터러시(digital literacy)

    디지털 리터러시 또는 디지털 문해력

    디지털 플랫폼의 다양한 미디어를 접하면서 명확한 정보를 찾고, 평가하고, 조합하는 개인의 능력을 뜻함.

    0.2 아스키코드(ASCII)

    미국정보교환표준부호(American Standard Code for Information Interchange)

    영문 알파벳을 사용하는 대표적인 문자 인코딩 방법

    8비트로 구성되어 있다

    0.3 비트(Bit) : 

    정보라고 취급할 수 있는 가공된 데이터(자료)들을 나타내는 최소 단위

    0과 1이 입력 될 수 있다

    0.4 바이트(Byte) : 

    컴퓨터의 저장 단위로, 컴퓨터가 조작하는 정보의 최소 처리 단위

    8비트로 구성된다

    0.5 AI/ML/DL

    AI : 인간의 학습능력, 추론능력, 지각능력 등을 컴퓨터에 구현한 기술

    ML : 데이터를 바탕으로 추론 및 결정하는 방법을 머신에게 학습시키는 기법

    DL : ML 방식의 일종으로 인간의 뉴런을 본딴 인공신경방 방식을 통해 학습 및 처리하는 기법

    반응형

    '프로그래밍' 카테고리의 다른 글

    파이썬 코드 실행시간 체크  (0) 2022.12.22

    댓글

Designed by Tistory.