/20WBasicComputing

SNU Basic Computing Tutor, 2020 Winter

Primary LanguageJupyter Notebook

Basic Computing을 함께하시는 여러분께

이 Repository는 이번 학기가 끝날 때까지 제가 실습을 진행하면서 조금씩 완성시켜 갈 예정입니다.

이번 수업 뿐 아니라 이후에도 python으로 뭔가를 하다가 생각나지 않는 게 있으면 돌아와서 찾아볼 수 있는, 그런 예시를 제공하는 것을 목표로 합니다.

처음 프로그래밍을 배우는 여러분께 하고 싶은 말 중 하나는, (제가 처음 프로그래밍을 배울 때 들었던 말입니다만) THINK MORE, CODE LESS 입니다. (아직도 저도 잘 지키지 못하지만) 프로그래밍을 통해 어떤 문제를 해결하고자 할 때, 우리는 일단 키보드를 잡고 뭔가를 해보려는 경향이 있습니다. 종이와 펜을 잡는 시간을 간과하지 않았으면 좋겠습니다.

어떤 생각을 구현해내는 데 있어서, 누군가는 간결하고 쉽게 해결하는 문제를 누군가는 조잡하게 붙여놓은 big mess를 만들어 놨다면, 보통 문제는 두 가지 중 하나입니다. 경험이 부족하거나, 생각하는 시간을 덜 가졌거나. 경험이 부족한 것은 경험을 쌓는 것 외에는 방법이 없습니다. 그러나 생각하는 시간을 충분히 갖는 것은 언제든지 가능합니다.

읽는 방법

  • 각 실습의 파일은 {날짜}/{날짜}.ipynb 형태로 들어 있습니다. ipynb 파일은 Google Colab에서 파일>노트 업로드 형태로 확인할 수 있습니다.
  • 이 실습은 컴퓨팅 기초 002강좌 4조 의 실습을 기준으로 합니다. 다른 조의 실습 예시 코드와 약간 다른 경향을 가지고 있을 수도 있습니다.
  • ETL에서는 조교님께서 작성하신 각 코드의 solution 파일이 있습니다. 두 명의 정답 코드를 같이 보시면 더 많은 도움이 될 것 같습니다.
  • (아마도) 각 실습 문제에 대한 제 솔루션은, ipynb 파일과는 별도로, {날짜}/{실습 문제 번호}.py 형태로 올라갈 예정입니다. 전체 실습 자료를 보지 않고 솔루션 코드만 보려면 이쪽을 보시면 됩니다.

느낌표 표기법

  • ! 항목 아래 있는 내용은 이 수업의 동영상 이론 파트에서 다루어지지 않은 내용입니다. 어렵게 느껴진다면 읽지 않아도 됩니다. 추가로 공부하고 싶은 사람을 위해, 자료 링크나 검색 키워드, 추가 내용 등을 적을 예정입니다. 처음에는 조금 친절하겠지만, 느낌표 항목들은 시간이 지날수록 의도적으로 불친절해질 예정입니다. 모르는 내용을 검색하고, 신뢰성있는 자료를 판단하고, 따라해보는 과정이 프로그래밍을 배우는데 너무나 중요하다고 느끼기 때문이고, 저도 그렇게 배워왔기 때문이기도 합니다.
  • 느낌표의 개수는 (매우 주관적인) 난이도를 의미합니다.
  • 느낌표가 붙은 항목이라도, 앞으로의 노트에서 사용할 예정인 내용이 있습니다. 이부분은 !*로 표시합니다. 대표적으로 형식 지정자 가 있습니다. 이부분은 읽어주세요.

더 알아보기

더 알아보고 싶은 점이 있다면, 다음 링크의 자료들을 참고하길 권장합니다. 이 리스트는 계속 업데이트될 예정입니다.

  • https://www.tutorialspoint.com/python/index.htm : 쉽게 파이썬을 배울 수 있는 웹사이트입니다.
  • https://docs.python.org/3/ : 파이썬의 공식 문서입니다. 파이썬 문법이나 특정 함수의 정확한 뭔가를 알아야 할 때 사용할 수 있습니다. 아마 처음 보면 익숙하지 않을텐데, 여러분이 더 높은 수준의 프로그래밍을 공부하기 위해서는 이와 같은 형태의 기술 문서 를 읽고 필요한 지식을 얻는 것은 매우 중요합니다.
  • https://wikidocs.net/book/1 : 저는 안 읽어 봤는데 좋다고 합니다.

예상되는 질문들

Q. 이런이런 자료들 을 찾아봤는데 A에서는 이렇고, B에서는 이렇다고 합니다. 어떤 것이 맞나요?
-> 질문해 주세요. 혹시 모르는 내용이면 저도 찾아봐서라도 알려드릴 수 있도록 최선을 다하겠습니다. 보통 이런 경우는 스타일의 차이고 둘다 괜찮은 경우도 많이 있습니다만, A해도 되지만 B가 더 좋다 일수도 있고... 여러 이유에서 질문을 통해 분명히 하는 것을 권장합니다.

Q. 튜터 코드 xx일 실습 y번이 틀린 것 같습니다.
-> 누구나 코드를 작성하다 보면 실수를 합니다. 아무리 간단한 코드라도 마찬가지입니다. 당연히 제 답안 코드가 틀렸을 수도 있습니다. 절대 부담 갖지 말고, 저한테 전달해 주세요. 단, 틀리는 케이스 를 알려주지 않으시면 제가 찾기가 굉장히 힘듭니다. 입력 A에 대해, 출력이 B여야 하는데, 튜터 코드는 C를 출력합니다 와 같은 형식으로 알려주시면 제가 정말 편해질 것 같습니다.

비대면 시국에 수업을 진행하기는 사실 너무 어려운 일 같습니다. 최선을 다하겠지만 부족한 부분이 있다면 언제든지 얘기해주세요. 질문도 언제든지 환영입니다!