문제

프로그래밍을 시작하는 젊은이가 현대에 어떤 언어와 도구를 사용해야 한다고 생각하시나요?

우리 중 많은 사람들이 독점 기본 사항으로 시작했으며 장기적으로 우리 모두에게 해를 끼치지는 않았습니다. :) 그러나 그 이후로 얻은 경험과 이제 도메인에 대한 지식을 고려할 때 더 나은 옵션이 있습니까?

"와 같은 관련 검색어가 있습니다.초보자에게 프로그래밍을 가르치는 가장 좋은 방법은 무엇입니까?" 그리고 "조언 하나" 성인 프로그래밍을 시작하는 방법에 대해 답변을 제출했지만 어린이에게는 다른 도구가 필요할 수 있습니다.

폭로:이와 같은 질문에 대해 '정답'을 선택하는 것은 정말 어렵습니다. 따라서 며칠 내에 가장 좋은 점수를 얻은 사람은 커뮤니티 선택에 따라 나로부터 '최고의 답변' 표시를 받게 됩니다.

도움이 되었습니까?

해결책

내가 제안 할게 레고 마인드스톰, 프로그래밍을 위한 직관적인 드래그 앤 드롭 인터페이스를 제공하며 하드웨어와 함께 제공되므로 어린이가 이해할 수 있는 실질적인 것을 제공합니다.또한 "LEGO"이기 때문에 프로그래밍 연습이라기보다는 게임에 더 가깝다고 생각할 수도 있습니다.

다른 팁

나의 본업은 학교에 있으며 지난 몇 년 동안 다양한 어린이들에게 프로그래밍 수업을 보거나 가르쳤습니다(또는 가르치려고 시도했습니다).

아이들은 모두 다릅니다. 어떤 사람은 빨리 배우는 반면, 어떤 사람은 그렇지 않습니다.특히 어떤 사람들은 다른 사람들보다 읽고 쓰는 능력이 더 뛰어나기 때문에 프로그래밍을 배우는 속도에 확실히 차이가 납니다.전문적인 컴퓨터 프로그래머이자 재미로 포럼에 글을 읽고 게시하는 사람들인 우리 대부분은 아주 어린 나이에 읽는 법을 배웠을 것입니다.그런 아이들에게, 그리고 일대일로 가르칠 수 있는 것이 당신의 아이라면 JavaScript보다 더 나쁜 일을 할 수도 있습니다. 즉각적으로 실제 작업을 할 수 있다는 장점이 있고 편집-테스트 주기가 있습니다. 단순히 브라우저에서 "새로 고침"을 누르는 것뿐입니다.JavaScript가 모든 것을 비동기적으로 수행하는 방법을 접하기 시작하면 혼란스럽고 디버그하기가 까다롭지만, 세심한 교육을 받는 영리한 어린이에게는 이러한 문제를 극복할 수 있습니다.

LEGO Mindstorms는 확실히 목록의 최상위에 있습니다.대부분의 학교에서는 이제 벽돌을 강력 접착하여 조금이라도 흠집이 나지 않는 미리 만들어진 모델을 만들지만 집에서는 문제가 되지 않습니다.Times Educational Supplement 사이트 (영국의 주간 교육 신문을위한 웹 사이트 포럼)에서 "어린이에게 가장 적합한 프로그래밍 언어는 무엇입니까?" 주제는 꽤 정기적으로 나옵니다.Mindstorms의 대안으로 Scratch에 대한 많은 권장 사항이 있습니다. Mindstorms보다 약간 더 자유롭고, 납땜 인두를 받을 수 있는 더 똑똑한 학생에게는 아마도 더 좋을 것입니다.

프로그래밍 환경이 "그래픽"임에도 불구하고 느린 학생들도 여전히 Mindstorms에 문제가 있을 수 있다는 것을 발견했습니다. 화면에는 여전히 많은 일이 일어나고 있고 기억해야 할 부분이 상당히 있습니다(이것은 이전 버전이었습니다. 마음 - 피난처 아직 멋진 새 것을 시도하지 않았습니다).내 경험에 따르면, 프로그래밍에 대한 최고의 종합 입문서는 아마도 여전히 LOGO일 것입니다. 실제로는 대부분의 사람들이 인정하는 것보다 훨씬 더 강력한 언어입니다.원래 마인드스톰 LOGO의 창시자 중 한 명인 Seymour Papert의 책(LEGO와는 아무런 관련이 없습니다. 그들은 제품에 대한 책 제목에 별명을 붙였습니다)은 "사고 기술"로서 어린이에게 프로그래밍을 가르치는 표준 참고서입니다. 구성주의 학습 중.

우리는 7~8세 아이들이 로고를 프로그래밍하는 수업을 가졌습니다.우리는 그들을 "소프트웨어 개발자"로 만드는 것을 목표로 하지 않는다는 점에 유의하십시오. 이는 16세 이후 어느 시점에 그들이 결정할 수 있는 진로입니다.어린 나이에 우리는 아이들이 "컴퓨터 프로그래밍"을 단지 또 다른 도구, 즉 컴퓨터로 해결해야 할 문제를 설정하는 방법으로 생각하도록 노력하고 있습니다. 마치 마인드 맵을 사용하여 정리하는 데 도움을 주는 것과 같은 방식으로 말입니다. 시험에 필요한 내용을 기억해 보세요.불쌍한 아이들은 앉아서 세세한 부분과 특정 언어 사용을 훈련받아서는 안 되며, 그들이 원하는 대로 탐색하고 알아내도록 맡겨야 합니다.

저는 Geoff의 제안에 두 번째로 동의하겠습니다. 프로그램(이전에는 KPL이었음), 그리고 앨리스.

내 유일한 다른 제안은 레고 마인드스톰 NXT.NXT의 프로그래밍 언어는 끌어서 놓기 방식이고 사용이 매우 쉬우며 일단 배우면 매우 복잡한 작업을 수행할 수 있습니다.또한 어린 소년들은 대개 물건이 움직이는 것을 보는 것을 좋아합니다.:)

저는 몇몇 어린 아이들과 함께 Alice와 NXT를 사용해 보았는데, 그들은 아주 잘 받아들였습니다.

두 가지 가능성은 다음과 같습니다.

스크래치 - MIT에서 개발 - http://scratch.mit.edu/

그리고

One Laptop Per Child 명성의 EToys - http://wiki.laptop.org/go/Squeak

전체 공개:저는 어린이용 프로그래밍 언어를 발명한 사람 중 한 명입니다. http://www.Phrogram.com, 다른 사람들이 여기에서 추천한 내용입니다.이에 대한 프로그래머 중심 정보를 추가하겠습니다.

드래그 앤 드롭이나 디자이너 기반이 아닌 코드 IDE입니다.이는 우리의 의도적인 부분이었습니다. 우리는 실제 텍스트 기반 프로그래밍, 특히 프로그래밍 게임과 그래픽을 쉽고 재미있게 만들고 싶었습니다.이것이 우리와 앨리스, 스크래치의 근본적인 차이점입니다.어느 것을 선택하느냐는 아이의 나이와 적성, 목표에 달려 있습니다.같은 초보자에게 순차적으로 사용하는 것도 좋은 방법이 될 수 있습니다. 그렇게 한다면 Scratch, Alice, Phrogram 순으로 추천합니다.Phrogram은 12년 이상 동안 가장 잘 작동했지만, 저는 Phrogram을 사용하여 자녀를 가르친 6세 자녀를 둔 아빠를 알고 있으며, 스스로 이를 가르친 10세 어린이도 알고 있습니다.

언어는 우리가 만들 수 있는 만큼 영어와 비슷하고, 우리가 만들 수 있는 만큼 최소한의 언어입니다.비결은 클래스 기반 객체 계층 구조에 있는데, 이는 우리가 만들 수 있는 것만큼 간단하고 직관적이며 영어와 유사합니다.개체 계층 구조는 게임과 그래픽에 최적화되어 있습니다.3D 모델과 2D 스프라이트를 사용할 수 있습니다.화면 좌표를 사용한 절대 이동 또는 로고 거북이의 상대 이동(Forward(x), TurnLeft(y))이 지원됩니다.

IDE에는 100개가 넘는 예제, 일부 언어 예제(루프), 일부 학습 예제(배열), 일부 완전한 기능을 갖춘 게임 및 시뮬레이션(Pong, Missile Command, Game of Life)이 함께 제공됩니다.

우리가 언어와 IDE를 얼마나 활용했는지 알려드리기 위해:27가지 지침을 사용하면 키보드를 사용하여 3D 스카이박스 주위로 3D 우주선 모델을 비행할 수 있습니다.2D 스프라이트의 명령도 12~15개입니다.

우리는 XBox 360에서 프로그램을 실행할 수 있는 블레이드 호환 Phrogram 릴리스를 개발 중입니다.네, 큰 TV에 XBox가 있어요.아이가 시작하는 데 좋은 동기 부여가 되나요?:)

Phrogram에는 메서드와 속성을 갖춘 클래스 기반 프로그래밍에 대한 지원이 포함되어 있습니다. 그러나 이는 상속이나 다형성이 아닌 캡슐화일 뿐입니다.

튜토리얼과 사용자 가이드가 제공됩니다.

내 전자책은 Amazon 및 기타 온라인 장소에서 구할 수 있습니다. "Phrogram으로 프로그래밍하는 법 배우기!"는 초보자가 고전적인 Pong 프로그래밍을 시작할 수 있도록 해줍니다.

Jerry Lee Ford, Jr.가 저술한 절대 초보자를 위한 프로그래밍 프로그래밍은 Amazon 및 다른 곳에서도 단행본으로 제공됩니다.

아이를 위해, 나는 함께 갈 것입니다 앨리스.모든 어린이는 프로그래밍 언어의 철자와 구두점을 기억하는 것보다 Alice가 사용하는 드래그 앤 드롭 상호 작용을 더 좋아할 것입니다.그/그녀는 기본적인 프로그래밍 구조(조건문, 루프 등)를 배우고 다른 가족이나 친구들에게 자랑할 수 있는 애니메이션 프로그램을 만드는 재미를 경험하게 될 것입니다.

지역 커뮤니티 칼리지의 초급 CS 수업에서는 실제로 Alice를 사용하여 언어 독립적인 방식으로 프로그래밍을 가르칩니다.이는 향후 특정 언어(또는 몇 가지 언어)로 프로그래밍을 시작하기 위한 좋은 기반을 제공합니다.

나는 최근에 관한 프레젠테이션을 보았습니다. 그린풋 (어린이를 위한 자바 기반 학습 환경)정말 멋져 보였습니다.아이가 생긴다면 한번 해보고 싶네요

프레젠테이션 링크

아주 기본적인 방법으로 시작할 수 있는 매우 재미있는 환경입니다.아이들은 객체 지향 방식으로 사고하는 방법을 배웁니다(동물은 인스턴스화할 수 없지만 고양이는 인스턴스화할 수 있습니다).그리고 그들이 더 좋아질수록 더 많은 Java를 발견할 수 있습니다.

나는 함께 갈 것이다 할퀴다, 그것에 관한 몇 가지 사항.

  • 그래픽 프로그래밍 언어입니다.텍스트 기반이 아닙니다 (이것은 긍정적이거나 부정적 일 수 있음).아이들에게 더 직관적이고 쉽게 만듭니다 (7 이상).
  • 실제로는 매우 객관적입니다.이러한 그래픽 스크립트를 작성하는 개체에는 코드가 첨부되어 있으며 재사용하고 이동할 수 있습니다.
  • 매우 중요:빠르고 인상적인 결과.아이들이 푹 빠지려면 빨리 움직여서 결과를 얻어야 합니다.

우리 중 많은 사람들이 어린 나이에 기본 또는 로고 프로그래밍을 시작했지만 나중에 프로그래머가 되기 때문에 이것이 시작하기에 좋은 언어라는 의미는 아니라는 점에 주목하고 싶습니다.내 생각에 요즘 아이들에게는 스크래치나 앨리스 같은 훨씬 더 나은 선택권이 있는 것 같아요.텍스트 기반 언어(Python, Ruby, Basic, C# 또는 심지어 C)는 외부 라이브러리 및 도구(편집기, 컴파일러)에 의존하는 반면, Alice 또는 스크래치와 같은 언어는 모두 포괄적이며 어린이(10대를 대상으로 하지 않음) 프로그래밍 개념을 가르칩니다.나중에 그들은 계속해서 학습을 확장할 수 있습니다.

확인해 보세요 프로그램 (이전 KPL) 및 앨리스

나는 말할 것입니다 :그 아이에게 진짜 C64를 주세요. 그게 제가 시작한 방법이거든요.그러나 오늘...Ruby라고 말하고 싶지만 Ruby는 좀 너무 혼란스럽습니다.장기적으로는 BASIC이 더 나을 것 같습니다.처리는 배우기 쉽고 기본적으로 Java입니다.

제가 C64를 추천하는 이유는 BASIC이지만 메모리 모델, 픽셀, 문자, 문자 맵, 개행 등과 같은 특정 컴퓨터 관련 사항을 배워야 하기 때문입니다.등, 더 고급 작업을 수행하려는 경우.또한, 아이가 지루하다고 느낀다면 아이의 마음이 실제로 코딩에 관심이 없다는 것을 알 수 있습니다.

나는 로고를 던질 것입니다.제가 초등학교 때 배웠던 내용이었습니다.거의 즉각적인 피드백을 제공하고 기본적인 프로그래밍 개념을 가르칩니다.그 작은 거북이를 이리저리 옮기는 것은 정말 재미있을 수 있습니다.

어린이라면 앨리스와 함께 갈 것입니다.

여기 Alice에 대한 또 다른 투표가 있습니다.제 4명의 아이들은 이 프로그램을 사용하고 프로그래밍의 기본 개념을 배우는 데 정말 즐거운 시간을 보냈습니다.물론 그들에게 그것은 요정과 오우거와의 사교에 관한 것이지만, 내가 작업하는 빌어먹을 레거시 시스템은 일부 요정과 오우거도 사용할 수 있습니다.

저는 파이썬을 추천합니다. 너무 간결하고 표현력이 풍부하기 때문입니다.시작할 때 좌절할 가능성이 적어 보이지만, 고급 개념도 배울 수 있는 여지가 충분합니다.

게임메이커 또 다른 접근법일 수도 있습니다.손쉬운 드래그 앤 드롭 개발로 간단하게 시작한 다음 진행하면서 고급 프로그래밍을 도입할 수 있습니다.그 책 게임 제작자의 견습생:초보자를 위한 게임 개발 다양한 샘플 게임이 있으며 이를 만드는 데 필요한 단계를 안내합니다.

나는 파이썬이 좋은 대안이라고 생각합니다.그것은 매우 강력한 언어이며 많은 일을 쉽게 할 수 있습니다(전혀 지루하지 않습니다).

점검 쥐 우는 소리 에 의해 개발됨 앨런 케이 프로그래밍을 어릴 때부터 가르쳐야 한다고 생각하는 사람들.

몇 살?우리 중 많은 사람들이 어느 시점에서 BASIC을 쳐다봤지만 그 전에는 명령, 변수 및 LOGO를 사용한 반복의 개념을 배웠습니다.직선으로만 이동하고 회전할 수 있는 삼각형으로 원을 그리는 방법을 알아낸 것이 저의 첫 번째 프로그래밍 성취였습니다.

편집하다:이 질문과 그에 대한 답변은 나를 늙었다는 느낌을 줍니다.

지난 1년 동안은 왜 별로 사랑을 못 받았는데 한동안은 정말 기대가 됐어요. 해키티 해킹.내 생각에 대부분의 새로운 프로그래머, 특히 사물에 대한 관심을 잃는 경향이 있는 어린이의 핵심은 즉각적인 피드백이라고 생각합니다.이것이 Hackety Hack의 정말 놀라운 점이었습니다.몇 줄의 코드만 있으면 갑자기 뭔가를 수행하는 무언가가 눈앞에 나타납니다.그래픽 그리기와 같은 작업을 목표로 하는 몇 가지 유사한 응용 프로그램이 있습니다(그 중 하나는 Nathan Weizenbaum에 대해 간략하게 도왔습니다. 갈겨 쓰다!).아이들에게는 정기적으로 올바른 일을 하고 있다는 긍정적인 피드백이 필요합니다. 그렇지 않으면 당면한 작업에 대한 관심을 유지할 수 있는 방법이 없습니다.내가 생각하는 미래는 아이들에게 프로그래밍을 가르치는 것이 친숙한 구문(아마도 Ruby, Python, Scheme을 포함할 것임)을 갖춘 언어 위에 구축된 일종의 DSL입니다. 그 목적은 간단한 구성을 위한 직관적인 환경을 제공하는 것입니다. 게임(예: Tic-Tac Toe 또는 행맨).

내 생각에는 C에서 시작해야 한다고 생각합니다.포인터를 빨리 익힐수록 더 좋습니다.

보다 포인터 이해 그리고 C를 배워야 하나?.

첫 번째 질문은 다음과 같습니다.어떤 종류의 프로그램을 만드는 것이 흥미로울까요?내가 어렸을 때 프로그래밍을 시작하게 된 이유 중 하나는(BBC Basic과 QBasic) 그래픽 프로그램 작성이 쉽다는 점이었습니다.몇 줄의 코드를 작성하면 내 프로그램이 화면에 바로 선을 그리는 것을 볼 수 있습니다.

최근에 제가 본 단순함에 가장 가까운 것은 다음과 같습니다. 파이게임 라이브러리 파이썬과 처리, IDE가 포함된 Java 라이브러리 세트입니다.

나는 웹페이지 해킹이 시작하는 또 다른 좋은 방법이 될 것이라고 생각합니다.여기에는 HTML, Javascript(jQuery와 같은 라이브러리 사용), 아마도 PHP 또는 이와 유사한 것이 포함됩니다.

어떤 도구를 제공하든 중요한 것은 즉시 쉽게 시작할 수 있다는 것입니다.확실한 결과를 보기 전에 20줄의 올바른 코드를 작성하고 컴파일러를 호출하는 방법을 알아내야 한다면 진행 속도가 느려질 것입니다.

여기에는 이미 좋은 제안이 많이 있습니다.나는 Kronikarz의 의견에 정말로 동의합니다.관심이 있는 레트로 컴퓨터(또는 에뮬레이터)를 구입하여 가르치세요.왜 레트로 컴퓨터인가?기본이 내장되어 있습니다.소리와 원시적인 그래픽을 만드는 것은 사소한 작업입니다.최신 장치만 보는데 익숙한 어린이에게는 좀 더 흥미로울 것이기 때문에 실제 거래는 에뮬레이터보다 나을 수 있습니다.

내가 말했듯이 여기, 나는 갈 것이다 삐걱거리는 소리 그리고 유명한 차를 운전하다 예(제공: 쥐 우는 소리).

스몰토크 구문은 간단하므로 어린이에게 좋습니다.

그리고 나중에 아이가 성장함에 따라 Squeak에도 있는 더 복잡하고 심지어 매우 진보된 개념을 배울 수 있습니다(예:자동화된 리팩토링 및 자동화된 단위 테스트를 통해 상태 저장 웹앱을 프로그래밍합니다!).

그리고 @cpuguru와 @Rotem이 말했듯이 Scratch(또한 Squeak 기반)도 훌륭합니다.

나는 GUI를 쉽게 만들고 "멋진 일"이 일어나는 것을 볼 수 있기 때문에 Java가 좋은 선택이 될 수 있다고 생각합니다.같은 이유로 .NET 언어 중 하나일 수도 있습니다.또한 아이들이 프로그래밍 방법을 배울 수 있는 스크립팅 언어(특히 Ruby 및 Python)에 대한 좋은 소식도 들었습니다.

글쎄, 그들이 어리고 ABC를 배우지 않았다면 BF에서 시도해 볼 수 있습니다. 다루기 힘든 문자와 숫자가 아닙니다.

코트 가져올게요.

스키즈

나는 내가 먼저 알았더라면 좋았을 것을 다음과 같이 갈 것입니다.간단한 MS-DOS 상자와 통합 어셈블러(디버그).컴퓨터와 대화하는 기본 사항을 실제로 배우고 이해하는 것은 정말 좋습니다.

그것이 아이를 겁주지 않는다면, 나는 "다음 레벨"로 가서 C를 소개할 것입니다.포인터, 레지스터 및 명령어의 기본 개념이 일반적으로 잘 이해되어 있다면 이는 어렵지 않을 것입니다.

그러나 다음에 어디로 가야할지 완전히 확신할 수 없습니다.Lisp, Haskell 또는 유사하게 추상화된 언어로 큰 도약을 하십시오. 아니면 간단한 객체 지향 언어(아마 C++라도)를 추가해야 할까요? 아니면 도움이 되기보다는 해를 끼칠 것입니까?

Alice를 보면 "고등학생 및 대학생을 위해 설계되었습니다"라는 것을 알 수 있습니다.다음과 같은 다른 언어/버전이 있는 것 같습니다. 이야기를 들려주는 앨리스 그것은 "중학생을 위해 설계되었습니다"

앨리스 다운로드 페이지

제 생각에는 맥락 없는 예술 좋은 선택이 될 수 있습니다. 그래픽 출력을 통해 학습하는 것이 매우 재미있습니다. 문맥에 구애받지 않는 문법.

[귀도 반 로봇][1]을 사용해 보세요.이는 로봇 공학에 대한 훌륭한 입문서이며 아이들에게 프로그래밍 측면("로봇 만들기" 측면과 비교)을 소개하는 좋은 방법입니다.

스몰토크는 그런 목적으로 설계되지 않았나요?스몰토크의 후손으로서 루비가 좋은 선택이 될 것 같아요.

나는 고등학교 첫 몇 년 동안 우리가 로고와 이상하게도 HTML을 '배웠다'는 것을 알고 있습니다.그 후 MS Office의 매크로, 기본 VBA, Visual Basic 순으로 진행되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top