초보자에게 프로그램을 가르치는 가장 좋은 방법? [닫은]


324

원래 질문

나는 현재 동생에게 프로그램을 가르치는 일에 종사하고 있습니다. 그는 완전 초보자이지만 매우 똑똑합니다. (그리고 그는 실제로 배우기를 원합니다). 나는 우리의 세션 중 일부가 사소한 세부 사항으로 혼란에 빠졌음을 알았으며 매우 조직적이라고 생각하지 않습니다. ( 그러나이 게시물에 대한 답변은 많은 도움이되었습니다. )

효과적으로 가르치려면 어떻게해야합니까? 개념별로 개념을 실행하는 데 사용할 수있는 논리적 순서가 있습니까? 나중에까지 피해야 할 복잡성이 있습니까?

우리가 사용하는 언어는 Python 이지만 모든 언어로 조언을 환영합니다.


돕는 방법

좋은 것이 있다면 답에 다음을 추가하십시오.

  • 초보자 연습 및 프로젝트 아이디어
  • 초보자 교육을위한 자료
  • 스크린 캐스트 / 블로그 게시물 / 무료 전자 책
  • 초보자에게 좋은 책을 인쇄하십시오

살펴볼 수 있도록 링크와 함께 리소스 설명하십시오 . 나는이 아이디어 중 일부를 확실히 사용하고 있다는 것을 모든 사람들이 알고 싶어한다. 귀하의 제출물이이 게시물에 집계됩니다.


초보자를위한 온라인 자료 :


초보자를위한 권장 인쇄 책


왜 이것이 폐쇄되어야하는지 이해하지 못합니다. 최소 295 명의 사용자가이 질문 (및 92 개의 답변)이 상향 투표에 충분히 도움이되었고 290 명이 자신이 가장 좋아하는 것 중 하나라고 생각했습니다. 그 질문은 매우 유용한 교수 자원의 집계를 가져 왔습니다. 그것은 실제로 '논쟁'이나 '토론'을 초래하지는 않았지만 프로그래밍에서 어려운 '인적 요소'중 하나를 해결하는 방법에 대한 많은 훌륭한 조언을 얻었습니다. 나는 이와 같은 질문을 끝내는 것이 과장되고 StackOverflow 커뮤니티에 해롭다 고 생각합니다.
저스틴 표준

@JustinStandard 편집 한 내용을 주석에 대한 몇 가지 답변으로 변환하는 것을 고려 했습니까? 예 : 여기 , 여기 , 여기
Jason Plank

답변:


118

나는 몇몇 초보자 (코드 라인을 작성하지는 않았 음) 프로그래머들과 함께 일해야했으며 올 가을 고등학생들과 함께 방과 후 워크숍을 진행할 것입니다. 이것은 내가 문서화에 가장 가까운 것입니다. 아직 진행중인 작업이지만 도움이 되길 바랍니다.

1) FizzBuzz. 명령 행 프로그램으로 시작하십시오. 재미있는 게임이나 도구를 매우 빠르게 작성할 수 있으며 GUI 도구를 먼저 배우지 않고도 모든 언어 기능을 매우 빠르게 배울 수 있습니다. 이 초기 앱은 작동하기 위해 실제 디버깅 도구를 사용할 필요가 없을 정도로 단순해야합니다.

FizzBuzz와 같은 것이 좋은 프로젝트가 아니라면. 처음 몇 개의 앱은 DB, 파일 시스템, 구성 등을 다루지 않아도됩니다. 이것들은 대부분의 사람들을 혼란스럽게하는 개념이며, 구문과 기본 프레임 워크 기능을 배우는 경우 실제로 더 복잡하지 않아도됩니다.

일부 프로젝트 :

  • 안녕하세요 세계!
  • 내 출생 연도를 취하고 내 나이를 계산하십시오 (지금은 그때 수정하지 않음). (간단한 수학, 입력, 출력)
  • 방향 (위, 아래, 왼쪽, 오른쪽)을 요청한 다음 사용자에게 자신의 운명을 알려줍니다 (구멍에 빠지거나 케이크 찾기 등). (부울 논리)
  • FizzBuzz이지만 매초 한 번씩 계산합니다. (루프, 타이머 및 기타 로직)
  • 나이에 따라 실제로는 일정한 간격으로 사용자를 무작위로 모욕하는 앱과 같습니다. (간격을 무작위로 만드는 경우 루프, 배열, 타이머 및 임의)

2) 간단한 프로젝트 일단 언어 기능을 잘 이해하면 프로젝트를 시작할 수 있습니다 (간단하고 재미있는 게임이 효과적입니다). 6-12 시간 내에 첫 번째 프로젝트를 완료 할 수 있도록해야합니다. 일찍 설계하는 데 시간을 소비하지 마십시오. 빨려도 디자인 할 수 있습니다. 문제가 발생하면 어떤 일이 발생했는지, 왜 실패했는지 이야기 한 다음 다른 주제를 선택하여 다시 시작하십시오.

여기에서 도구의 디버깅 기능을 소개합니다. 코드를 읽음으로써 문제를 볼 수 있더라도 도구 사용법을 알려주고 어떻게 볼 수 있는지 보여 주어야합니다. 이는 디버깅 도구를 가르치고 도구없이 오류를 식별하는 방법을 가르치는 두 가지 목적을 수행합니다.

한 번 또는 프로젝트가 작동하면 리팩토링 도구를 소개하는 데 사용할 수 있습니다. 계획하지 않은 몇 가지 간단한 기능으로 프로젝트를 확장 할 수 있으면 좋습니다. 일반적으로 리팩토링과 상당한 디버깅이 필요합니다. 처음에는 절반 정도의 코드를 작성하는 사람이 거의 없기 때문입니다.

일부 프로젝트 :

  • 행맨 게임
  • 로봇 공학 실험 ( VexMindstorms 는 옵션 임)

3) 실제 프로젝트 시간이 걸릴 수있는 실제 프로젝트를 시작하십시오. 적절한 소스 컨트롤을 사용하고 일정을 잡으십시오. 도구를 다루는 좋은 경험이 없다면이 프로젝트를 실제 프로젝트처럼 실행하십시오.

분명히 각 사람마다 이것을 조정해야합니다. 내가 찾은 가장 중요한 것은 첫 번째 간단한 앱조차도 사람이 관심있는 것에 적용하는 것입니다.

일부 프로젝트 :

  • 테트리스
  • 텍스트 파일 기반 블로그 엔진
  • 보다 진보 된 로봇 작업

이것은 훌륭한 가이드입니다. 개인적으로, 나는 종이 봉지에서 길을 코딩 할 수 없습니다 (실제로 누군가가 실제로 그렇게하고 싶습니다). 그래서 이것은 나 자신을 가르치는 좋은 안내서처럼 보입니다.
keyofnight

이것은 매우 좋은 답변입니다. 저의 유일한 반대는 테트리스가 첫 번째 또는 두 번째 게임에 적합하지 않다는 것입니다. 이 수준에서 충돌 감지는 어려운 문제가 될 수 있습니다. 문제를 해결할 수 있으면 좋습니다.
phkahler

@phkahler 나는 당신의 요점을 알지만, 코드를 작성하기 전후에 분석 할 수있는 많은 OSS / 데모 구현이 있기 때문에 Tetris가 흥미 롭습니다.
Eric Haskins

30

Alice를 사용해보십시오 . 입문 프로그래밍 클래스에서 사용하도록 설계된 3D 프로그램입니다.

새로운 프로그래머에게 가장 큰 장애물 두 가지는 다음과 같습니다.

  • 구문 오류
  • 동기 부여 (기여하기보다는 의미 있고 재미있는 것을 쓰는 것)

Alice는 프로그램 구성을 위해 끌어서 놓기 인터페이스를 사용하여 구문 오류 가능성을 방지합니다. Alice를 사용하면 3D 세계를 구성하고 코드 제어 (간단한) 3D 캐릭터 및 애니메이션을 사용할 수 있습니다. 이는 일반적으로 링크 된 목록을 구현하는 것보다 훨씬 흥미 롭습니다.

숙련 된 프로그래머는 Alice를 장난감으로 생각하고 코드 줄을 끌어다 놓는 데 비웃을 수 있지만 연구 결과에 따르면 이러한 접근 방식이 효과적입니다.

면책 조항 : 나는 Alice에서 일했습니다.


랜디 파우치의 마지막 강의를 통해 알게되었습니다. 이 프로젝트의 이유는 저의 생각을 불식 시켰습니다.
Jesvin Jose

28

기본 개념을 얻으려면 로고 (일명 거북이)를 추천합니다. 즉각적인 그래픽 피드백을 제공하는 우수한 샌드 박스를 제공하며 루프, 변수, 함수, 조건 등을 정리할 수 있습니다. 이 페이지 는 훌륭한 자습서를 제공합니다.

로고 다음에 Python 또는 Ruby로 이동하십시오. 프로그래밍을 가르치기 위해 고안된 ABC에 기반한 파이썬을 추천합니다.

프로그래밍을 가르 칠 때는 간단한 프로젝트에 대한 EHaskins의 제안과 복잡한 프로젝트에 대해 두 번째로 제안해야합니다. 배우는 가장 좋은 방법은 확실한 결과와 측정 가능한 이정표로 시작하는 것입니다. 그것은 수업에 초점을 맞추고, 학생이 기술을 쌓고 그 기술을 쌓을 수있게하며, 학생들에게 친구들에게 보여줄 무언가를줍니다. 자신의 작품에 보여줄 무언가를 갖는 힘을 과소 평가하지 마십시오.

이론적으로 파이썬은 거의 모든 일을 할 수 있기 때문에 파이썬을 고수 할 수 있습니다. 객체 지향 프로그래밍과 (대부분의) 알고리즘을 가르치는 좋은 수단입니다. 명령 행과 같은 대화식 모드에서 Python을 실행하여 작동 방식에 대한 느낌을 얻거나 전체 스크립트를 한 번에 실행할 수 있습니다. 스크립트를 즉석에서 실행하거나 바이너리로 컴파일 할 수 있습니다. 기능을 확장하기 위해 수천 개의 모듈이 있습니다. Windows에 번들로 제공되는 것과 같은 그래픽 계산기를 만들거나 IRC 클라이언트 등을 만들 수 있습니다.

XKCD 는 파이썬의 힘을 조금 더 잘 설명합니다 : "날고 있어요! 어떻게?"  "파이썬!"

파이썬이 가지고 있지 않은 것을 많이 제공하지는 않지만 C #이나 Java로 옮길 수 있습니다. 이것의 장점은 많은 언어가 사용하는 C 스타일 구문을 사용한다는 것입니다. 아직 메모리 관리에 대해 걱정할 필요는 없지만 언어 통역사로부터 좀 더 자유롭고 손을 잡는 데 익숙해 질 수 있습니다. 파이썬은 공백과 들여 쓰기를 강제합니다. 이것은 항상 좋은 것은 아니지만 항상 그런 것은 아닙니다. C # 및 Java를 사용하면 강력한 형식을 유지하면서 자신의 공백을 관리 할 수 ​​있습니다.

거기에서 표준은 C 또는 C ++입니다. 이러한 언어의 자유는 거의 실존 적입니다. 이제 자신의 메모리 관리를 담당하고 있습니다. 도움이되는 가비지 콜렉션이 없습니다. 여기서는 정말 고급 알고리즘 (예 : mergesort 및 quicksort)을 가르칩니다. 여기에서 "세그먼트 결함"이 저주 인 이유를 배울 수 있습니다. 여기에서 리눅스 커널의 소스 코드를 다운로드하여 Abyss를 살펴보십시오. 문자열 처리를위한 순환 버퍼와 스택을 작성하여 시작하십시오. 그런 다음 길을 따라 가십시오.


실제로, 당신은 C의 메모리를 완전히 관리하지 않습니다. 당신은 malloc 등을 가지고 있고, 당신을 위해 자유롭게 관리합니다. 더 많은 메모리를 원할 때와 사용중인 메모리를 다 사용한 경우 시스템에 알려 주면됩니다.
compman


12

Python 패키지 VPython- 일반 필사자를위한 3D 프로그래밍 ( 비디오 자습서 ).

코드 예 :

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

VPython 튀는 공 http://vpython.org/bounce.gif


그들이 기본 개념을 배운 직후에 좋습니다. 비주얼을 만드는 것은 사람들이 프로그래밍을 배우도록 동기를 부여하는 좋은 방법입니다.
phkahler

12

Python에서 Turtle 그래픽으로 시작하십시오.

파이썬에서 표준으로 제공되는 거북이 그래픽을 사용합니다. 시각적이고 단순하며이 환경을 사용하여 구문에 너무 많이 들어가기 전에 반복 및 프로 시저 호출과 같은 많은 프로그래밍 개념을 도입 할 수 있습니다. 파이썬에서 다음 대화식 세션을 고려하십시오.

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

마지막 두 가지 과제를 수행하려고 시도하면 많은 실패한 시도가 있지만 실패는 시각적으로 흥미로울 것이며 예상 한 결과를 얻지 못한 이유를 알아 내려고 시도하면서 빠르게 배우게됩니다.



11

중요한 것은 문제의 사람이 해결할 문제가 있다는 것입니다. 작성하고 싶은 프로그램이없고 "다음 퀘이크를 쓰고 싶지 않다!"가 아니라 현명하고 잘 정의 된 프로그램이 없다면, 동기 부여 할 것이 없기 때문에 프로그램을 배울 수 없다 . 책을 읽고 언어의 구문과 의미를 대략적으로 이해할 수 있지만, 원하는 프로그램을 만들 때까지는 쐐기풀을 잡지 못할 것입니다.

그 자극이 존재한다면 다른 모든 것들은 사소한 세부 사항 일뿐입니다.


기술적 인 주제를 배우는 가장 좋은 방법은 작고 점진적인 문제를 해결하는 법을 배우는 것입니다.
cbednarski


7

http://tryruby.hobix.com/ "> 루비 사용해보기 (브라우저에서)


좋은! Ruby를 사용하는 것이 쉽고 강력 해 보입니다.
Luc M


5

이것은 나의 남동생들이 배우는 데 사용한 환상적인 책입니다.

http://pine.fm/LearnToProgram/

물론, 가장 중요한 것은 책을 마친 후 즉시 어떤 종류의 실제적이고 유용한 프로그램을 시작하는 것입니다.


4

그가 관심이 있다면 사소한 세부 사항이 좋은 부분이 아닌가? 파이썬을 사용하면 혼란을 피하기 위해 이미 GUI를 잘라 냈습니다. 프로젝트, 게임 또는 무언가를 골라서 구현해보십시오. 고전적인 하이로 숫자 추측 게임은 명령 줄에서 20-30 줄의 코드 (물론 언어에 따라 다름)로 간단하게 구현할 수 있으며 변수, 조건, 루프 및 사용자 입력을 제공합니다.



4

나는 단지 그에게 수많은 코드를 쓰게했다. 당신이하는 모든 일을 운전하게하고 질문에 대답 할 수있게하십시오.

믿거 나 말거나, 몇 달간 쓸데없는 코드를 작성한 후, 그는 아이디어를 얻고 더 나은 프로그램을 작성하기 시작할 것입니다. 이 시점에서 세부 사항 (메모리 등)에 대한 정보를 얻거나 일반적인 디자인 원칙에 대해 이야기 할 수 있습니다.

나는 위대한 예술가들을 평범한 예술가들과 구분 짓는 것은 그들이 연습 할 때마다 아무리 작은 것이라도 무언가를 향상 시킨다고 들었습니다. 당신의 형제가 연습하게하고, 그는 키보드에 앉을 때마다 향상 될 것입니다.

편집 : [저스틴 표준]

에스테반,이 최근 생각 나게 코딩 공포 후 , 나는 당신이 옳다고 생각합니다. 그러나 나는 그의 연습 을 인도 할 방법을 찾는 것이 여전히 가치 있다고 생각합니다 . 의심의 여지없이, 나는 그가하는 방법을 알고있는만큼 많은 코드를 작성하기를 원합니다. 그것이 샘플 프로젝트를 요구하는 한 가지 이유입니다.


네, 저스틴에 대해 어떤 게시물을 말하는지 알고 있습니다. 그것을 읽으면서 내가 배운 것들 대부분이 내 자신의 실수를 시도하고 배우는 데서 왔음을 상기시켜주었습니다. 나는 그렇게함으로써 학습의 중요성을 충분히 강조 할 수 없습니다!
Esteban Araya

2

우선, Hello World 프로그램으로 다른 모든 사람들처럼 시작하십시오 . 간단하고 프로그램 레이아웃에 대한 기본적인 느낌을줍니다. 처음 프로그래밍했을 때와 몇 가지 개념이 어려웠던 시절을 기억하십시오.

Hello World 이후에는 기본 변수를 산술로 만든 다음 부울 논리 및 if / else 문으로 이동하십시오. 오래된 프로그래밍 교과서 중 하나를 가지고 있다면 초기 예제 중 일부를 확인하고 그 예제를 살펴보십시오. 한 번에 너무 많이 소개하려고 시도하지 않으면 압도적이고 혼란 스러울 것입니다.


2

형제에게 프로그램을 가르치는 동안 당신이 매우 염두에 두어야 할 것은 당신에게 너무 의존하지 않는 것입니다. 종종 내가 다른 사람들을 돕는다는 것을 알게되면 그들은 나를 모든 질문에 대한 답책으로 생각하기 시작하고 답을 찾기 위해 실험하는 대신 단순히 나에게 묻습니다. 종종 가장 좋은 선생님은 실험이며, 형제가 "2 줄을 추가하면 어떻게 될까요?"와 같은 질문이있을 때마다 시험해보고 직접 찾아 보라고해야합니다. 또한 누군가에게 개념을 알 수 없을 때 각 세그먼트를 개별적으로보고 조각별로 설명 할 수있는 샘플 코드를 보는 데 도움이된다는 것을 알았습니다. 부가 적으로 프로그래밍을 처음 접하는 사람들은 종종 객체 지향 프로그래밍이라는 개념에 어려움을 겪습니다.


2

나는 프로그래밍을 가르 치곤했고, 당신의 형제는 배우고 싶은 대부분의 학생들보다 한 가지 큰 장점이 있습니다. :)

C와 함께 가기로 결정한 친구에게는 이전 세대의 사람들이 사용하는 프로그램이 기본 유형으로 기억 되는 사이트 가 있습니다. 좀 더 복잡한 것은 ncurses를 사용하는데, 일종의 어시스턴트로 사용을 다소 부정하지만, 그중 일부는 작은 것이므로 배우지 않고도 많은 것을 배울 수 있습니다.

개인적으로 저는 파이썬과 루비가 훌륭한 첫 언어를 만들 것이라고 생각합니다.

편집 : 하룻밤 나타난 초보자 프로그래밍 과제 목록은 당신이 찾고있는 것일 수 있습니다.


2

그것은 실제로 당신의 형제의 학습 스타일에 달려 있습니다. 많은 사람들이 손이 더러워지고 그냥 들어가서 개념과 큰 그림을 결정화하고 지식을 쌓으면서 더 빨리 배우게됩니다.

저는 큰 그림부터 시작하여 그릿에 빠져들기를 선호합니다. 내가 알고 싶었던 첫 번째 것은 모든 객체 지향 gobbledygook, 클래스 및 인스턴스 등에 관한 모든 것입니다. 구문을 배우기 전에 기본 개념과 약간의 이론을 알고 싶습니다. 20 년 전에 BASIC에서 몇 가지 게임을 썼지 만 그 이후로 많은 것이 없었기 때문에 약간의 이점이있었습니다.

아마도 전체적인 사명 선언문, 계획 및 / 또는 플로우 차트로 시작하여 실제로 코드를 작성하기 전에 의사 코드 (최종 사용하는 구문에 기대어)를 정교화하여 생산 프로세스를 섀도 잉하는 것이 유용 할 수 있습니다.

여기서 가장 중요한 규칙은 학생의 기대는 스타일을 고취시키는 것입니다.


2

동생이 iTunes에 액세스 할 수있는 경우 뉴 사우스 웨일즈 대학교 (University of New South Wales)의 Richard Buckland가 제공하는 소개 컴퓨터 과학 과정의 비디오 강의를 다운로드 할 수 있습니다. 그는 매력적인 강사이며 컴퓨팅 및 C 언어의 기본 사항을 다룹니다. 다른 것이 없다면 동생에게 배경에서 vids를 재생하도록 지시하십시오. 일부 개념은 삼투를 통해 가라 앉을 수 있습니다. :)

COMP1917 고급 컴퓨팅-2008 세션 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

링크가 작동하지 않는 경우 경로는 다음과 같습니다.

홈-> iTunes U-> 엔지니어링-> COMP1917 더 높은 컴퓨팅-2008 세션 1


2

있다 파이썬 학습을위한 매우 좋은 wikibook은 .

위키 북이 다른 언어를 어떻게 사용하는지 모르겠지만 2007 년 2 월과 같이 위키 북에서 개인적으로 파이썬을 배웠습니다.

ps- 위키 북에 익숙하지 않은 경우 기본적으로 위키 백과 버전의 책 저작입니다. 설명하기는 어렵지만 몇 권의 책을 확인하면 작동 방식을 확인할 수 있습니다



2

나는 파이썬이 좋은 생각이라고 생각합니다. 나는 그에게 스스로 할 몇 가지 기본 임무를 부여하고 그가 쳤던 막 다른 골목은 아마도 구글 여행으로 해결할 수 있다고 말한다. 적어도 나 자신에게 문제를 해결하는 것은 누군가가 나에게 해결책을 말하는 것보다 항상 더 잘 고수되도록 만들었습니다.

몇 가지 가능한 프로젝트 (특별한 순서가 아님) :

  • 코인 플립 시뮬레이터. 사용자가 동전 뒤집기를 위해 원하는 횟수의 시험을 입력하도록합니다. 그것을 실행하고 머리 또는 꼬리에 대한 비율과 결과를 표시합니다.

  • 사용자가 원하는 변환 종류를 선택할 수있는 메뉴를 사용하여 온도 변환기를 만드십시오. 변환을 선택하고 수행 한 후 기본 메뉴로 돌아갑니다.

    다음은 동일한 아이디어를 가진 확장 변환기의 예입니다. http://pastebin.org/6541

  • 숫자를 입력하고 번역 할 문자 등급을 표시하는 프로그램을 만드십시오. 결국 if와 elif 문에 대해 입력을 평가하여 그것이 맞는 위치를 찾습니다.

  • 몇 가지 객관식을 선택하거나 빈 질문을 채우는 간단한 퀴즈를 만듭니다. 결국 사용자가 한 일을 표시합니다. 그는 원하는 질문을 고를 수 있습니다.

  • 몇 개의 동전을 입력하고 더 큰 금액으로 바꾸십시오. 예를 들어, 149 페니 = 1 달러, 1 쿼터, 2 딤, 4 페니입니다.

  • 간단한 목록 관리자를 작성하십시오. 목록을 추가 / 삭제하고 해당 목록에서 항목을 추가 / 삭제할 수 있습니다. 다음은 크리스마스 목록 관리자의 예입니다. http://pastebin.org/6543

  • 입력 한 숫자가 마법의 정사각형 (2D 배열 포함)을 형성하는지 테스트 한 프로그램을 작성하십시오. 다음은 몇 가지 샘플 코드이지만 사용자가 사각형을 buliding하는 위치에 있음을 보여주기 위해 각 단계에서 실제로 사각형을 인쇄해야합니다. http://pastebin.org/6544

또한 xTurtle 또는 다른 그래픽 모듈을 사용하여 작업을 혼합하고 지루하지 않도록하는 것이 좋습니다. 물론 이것은 많은 연습 프로그래밍이며 많은 사람들이 실제로 파이썬을 사용하는 스크립팅은 아니지만 내가 제공 한 예제는 파이썬을 통해 배우고있을 때 거의 직접 가져온 것입니다. 행운을 빕니다!


2

그냥 재미있게 만드세요!

놀랍게도 스칼라는 Kojo 를 시도하면 가장 쉬운 것일 수 있습니다.


2

동생이 퍼즐을 좋아한다면 Python Challenge를 추천 합니다. 1 : 1 튜토리얼에서 공식적인 교육 도구로 사용하지는 않지만 함께 도전하지 않고 즐겁게 지낼 때 그가 할 수있는 일입니다.



2

몇 권의 무료 전자 책을 겪은 후 O'Reily Press가 출판 한 Head First Programming이 프로그램 학습을위한 최고의 책임을 알게되었습니다. 파이썬을 언어로 사용하며 처음부터 작업 할 수있는 프로그램을 제공합니다. 그들은 'Hello World'보다 더 흥미 롭습니다. 내가 지출 한 돈의 가치가 있으며 조금만 나가면 Ebay 또는 Amazon에서 더 저렴한 중고 사본을 찾을 수 있습니다.


1

언어에 구애받지 않고 프로그래밍의 기본 사항을 가르치려면 MIT에서 작성된 Scratch 라는 응용 프로그램 이 있습니다. 사람들이 프로그래밍 기술을 개발할 수 있도록 설계되었습니다. 사용자가 스크래치 프로젝트를 작성할 때 조건, 루프 등을 작성하는 방법을 학습합니다. 프로젝트를 다운로드 할 수있는 스크래치 프로젝트 커뮤니티도 있습니다.이를 통해 다른 사람들의 프로그램을 탐색하고 빌드 된 방식을 확인할 수 있습니다.


1

일단 그가 기본 (변수, 루프 등)을 갖추었다면, 그가 관심이있는 특정 것을 찾도록 도와 주어야하고 그것을 실현시키는 데 필요한 것을 배우도록 도와야한다고 생각합니다. 나는 내가 관심이 있다면 무언가를하려는 경향이 훨씬 더 많다는 것을 알고 있습니다. 또한 더 어려운 문제에도 불구하고 그를 고투하게하십시오. 스스로 알아내는 순간보다 더 만족스러운 것은 없습니다.


1

순서도 및 PDL (Program Design Language)을 사용하여 언어에 관계없이 문제를 해결하는 방법을 배웠습니다 . 몇 주 후, 나는 내가 쓴 PDL을 언어로 변환하는 법을 배웠다. 나는 언어에 묶이지 않고 문제를 해결하면서 프로그래밍하는 데 대부분의 시간을 보냈기 때문에 그런 식으로 배웠습니다. 내가 사용하는 언어는 항상 구현 세부 사항이며 디자인의 일부가 아닙니다.

문제를 기본 단계로 나누어 문제를 해결하는 것이 핵심 기술입니다. 프로그램 할 수있는 것과 할 수없는 것을 분리하는 것 중 하나라고 생각합니다.

언어의 개념 순서를 다루는 방법에 관한 한 가장 쉬운 방법은 프로젝트를 염두에두고 필요한 개념을 다루는 것입니다. 이를 통해 관심있는 작업에 필요할 때 적용 할 수 있습니다. 언어를 배울 때 몇 가지 간단한 프로젝트를 염두에두고 몇 가지를 점진적으로 복잡하게 만드는 것이 좋습니다. 이를 결정하면 필요한 개념과 순서를 파악하는 데 도움이됩니다.


1

나는 또한 일부 스크린 캐스트를 볼 것을 권장합니다. 일반적으로 언어가 아닌 특정 기술과 관련하여 만들어집니다. 파이썬 코드가 표시되면 그렇게 할 것입니다 :). 요점은-좋은 프로그래머들이 만들어 내고 좋은 프로그래머 프로그램이 얼마나 좋은지 지켜 보는 것입니다. 당신과 당신의 형제는 동료 프로그래밍도 할 수 있습니다. 그것은 더 좋은 아이디어 일 것입니다. 왜 그런식이 아닌 그런 식으로 무언가를하는지 설명하는 것을 잊지 마십시오. 프로그래밍을 배우는 가장 좋은 방법은 좋은 예에서 비롯된 것이며 나쁜 것조차 보지 않는 것입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.