본격적인 스터디그룹이 시작되었다. 파이썬에대한 기초를 다지는 것 같고, 복습을 해보자.
📖 UNIT 1. 소프트웨어 교육과 파이썬
📒문제 해결을 위한 과학적 사고
소프트웨어란 무엇일까 ?
스마트폰, 전기자동차, 핀테크, 인공지능 등등 다양한 소프트웨어는 불편했던 문제를 해결하고, 그로 인해 우리의 삶을 편하게 만들어줬다.
예로, 일반 전화기로는 인터넷이 안되니 불편하였다. 그래서 인터넷 기능을 추가시킨 스마트폰이 만들어졌다.
그럼 공학자들은 이런 어렵고 복잡한 문제를 어떻게 해결할까 ?
1. 복잡한 문제를 작은 문제로 분해
자율주행 시스템을 예로 들어보자.
자동차가 자율주행을 하는 시스템을 만들라는 과제가 있다면, 엄청난 멘붕이 오게 된다.
하지만, 하드웨어를 먼저 만들어서 사람 없이 주행이 가능하게 만들어주고 주변 상황정보, GPS, 지도정보 등을 이용해
점점 하나의 덩어리가 될 수 있다.
이렇게 아무리 복잡한 문제라도 하나의 작은 문제로 분해하여 문제를 해결할 수 있다.
(Merege Sort의 Divide and Conquer가 떠오르는...)
아무리 봐도 Divide and Conquer가 맞는데 ................
2. 날씨 데이터를 그래프로 그리는 문제
날씨 데이터를 위와 같이 그래프로 표현해보자. 어떻게 해볼까 ? 당연히 작은 문제로 나눠야 한다.
먼저 우리는 기상청에서 정보를 가져와야 한다. 기상청의 특정부분 HTML에서 파싱을 해와야 한다.
그럼 도시이름, 기온, 습도 등의 정보를 가져올 수 있는데 이 정보들을 우리가 사용할 수 있게 약간의 가공이 필요하다.
그리고 그래프를 그리면 된다.
너무 복잡하게 생각하지 말고, 문제를 쪼개고 순서를 정해서 찬찬히 진행해보자.
3. Computational Thinking
이건 뭘까. 바로 현실 세계의 문제를 분석하여 해결책을 찾는 과학적 사고법이다. 그래서 그 명령책을 코드로 작성하는 것을 프로그래밍이라고 한다.
📒알고리즘과 코딩
1. 압축 알고리즘
우리가 사진을 저장하면 JPG(JPEG)파일 포맷을 많이 볼 수 있다.
이것도 압축 포맷이라고 한다. 사진을 그대로 저장하는 것보다 압축하여 저장하는것이 훨씬 공간을 아뀔 수 있다.
예를 들어, aaaaabbbccccccddddddddd 이런 문자열이 있다고 하자. 길이만 무려 23글자다. ㅎㄷㄷ
하지만, a가 5개, b가 3개, c가 6개, d가 9개 이렇게 연속해서 오는 점을 생각해보면,
a5b3c6d9로 압축을 해도 된다. 결국 크기를 23->8로 압축을 한 것이다.
2. 문제의 패턴 발견과 해결 절차.
위와 같이 문제를 정확하게 분석하고, 그 안에서 해결을 할 수 있는 패턴을 찾아보자. 또, 이런 절차를 알고리즘이라고 한다.
그리고 이 알고리즘을 코드로 표현하는 방법을 코딩이라고 한다. (프로그래밍이라고도 한다.)
📒파이썬 Python
파이썬은 네덜란드의 귀도 반 로섬이 개발했다.
아이콘이 뱀모양인 이유도 자기가 좋아하는 코미디 프로그램이 Monty Python's Flying Circus 였기 때문이다.
쉽다, 객체지향이다, 패키지가 많다, 오픈소스이며 무료이다. 등등이 파이썬의 특징이다.
'스터디 그룹 > ProjectH4C' 카테고리의 다른 글
ProjectH4C 1개월 2주차 과제 (UNIT 8, 9) (0) | 2021.01.23 |
---|---|
ProjectH4C 1개월 2주차 과제 (UNIT 6,7) (0) | 2021.01.23 |
ProjectH4C 1개월 2주차 과제 (UNIT 4,5) (0) | 2021.01.20 |
ProjectH4C 1개월 2주차 과제 (UNIT 2, 3) (0) | 2021.01.19 |
해킹하는 부엉이 웹 세미나 - Network Hacking is too fun! (0) | 2021.01.17 |