>Java >java지도 시간 >초보 프로그래머에게 프로그래밍을 소개하는 방법은 무엇입니까?

초보 프로그래머에게 프로그래밍을 소개하는 방법은 무엇입니까?

伊谢尔伦
伊谢尔伦원래의
2016-11-26 10:50:441104검색

자바를 배우면 다들 쉽다고 하더라고요.

위스콘신대학교 매디슨캠퍼스 컴퓨터공학과를 갓 졸업한 대학생으로서 프로그래밍 수업을 통해 Java를 사용하는 친구들을 많이 만났습니다. 현재 많은 학교가 다른 프로그래밍 언어(주로 C++)에서 Java 교육으로 전환하고 있습니다. 2014년 7월에 실시된 연구에 따르면 조사 당시 미국 상위 39개 CS 프로그램 중 22개가 이미 입문용으로 Java를 사용했습니다. 강의.

그럼 수많은 교육 언어 중에서 Java가 돋보이는 이유는 무엇일까요? 모든 측면을 살펴보니 몇 가지 단서를 찾았습니다.

구문은 비교적 간단하고(C 언어 및 C++에 비해) 어려움도 적습니다(C 언어 및 C++에 비해). 구문이 단순할수록 초보자가 마스터해야 하는 규칙이 적어지므로 확실히 초보자에게 도움이 됩니다.

C 및 C++와 같은 일부 기존 교육 옵션에 비해 Java는 많은 작업이 자동으로 확인되므로 오류가 발생할 가능성이 적습니다. 액세스하려는 배열이 범위를 초과하거나 null 개체를 사용하여 예외가 생성되면 프로그램은 멋진 스택 추적을 통해 무엇이 잘못되었고 어디서 잘못되었는지 알려줍니다(문제의 원인으로 직접 범위를 좁힙니다). 파일). 이와 대조적으로 C 언어 및 C++에서는 널 포인터에 액세스하면 프로그램이 경고 없이 폭탄처럼 폭발하여 유용한 프롬프트 정보가 표시되지 않습니다(디버거에서 실행하지 않는 한 디버거 사용법을 배워야 함). , 혹시라도). 그리고 C 언어와 C++의 배열이 경계를 넘는다면 훨씬 더 비극적인 일이 될 것입니다. 많은 경우 메모리에 있는 배열 요소의 값이 설명할 수 없을 정도로 덮어쓰기될 수도 있기 때문입니다. 그러면 당신은 이 충돌하는 프로그램을 처리하는 데 깜짝 놀라고 완전히 무력하게 됩니다. 이것은 확실히 프로그래머를 매 순간 미치게 만드는 리듬입니다!

가비지 수집기가 있으면 메모리를 직접 관리할 필요가 없습니다. new 키워드를 사용하여 객체를 만든 후에는 (어디에서나 참조되는 한) 영원히 메모리에 남아 있습니다. 그리고 이 개체를 사용한 후에는 가비지 수집기가 이 개체를 정리합니다.

Java는 업계에서 널리 사용되므로 이론적으로는 학교에서 배우는 내용이 실제 직업으로 직접 번역될 수 있습니다. TIOBE 프로그래밍 지수는 TIOBE를 두 번째로 가장 일반적으로 사용되는 프로그래밍 언어로 평가합니다. TIOBE의 정확한 분석에 동의하시든 아니든, Java가 널리 사용되고 있는 현 상황에 동의하셔야 합니다.

Java는 객체 지향적입니다. 데이터가 포함된 개체를 만든 다음 해당 데이터에 적용되는 동작을 설명하는 메서드를 작성합니다.

위 내용이 너무 아름답네요! 그러나 그것은 완전하지 않습니다.

우회 전략

거의 모든 프로그래머가 어떤 언어로든 작성하는 첫 번째 프로그램은 "Hello World"입니다. 그것이 하는 일은 메시지를 표시하고(전통적으로 "Hello World"가 선택됨) 종료하는 것뿐입니다. 매우 간단합니다. 다음은 Java로 작성된 Hello World 프로그램입니다.

public class Hello {
public static void main(String[] args) {
System.out.println("hello, world");
}
}

프로그래밍을 처음 접하는 사람들은 의구심을 가질 것이고, 교사라면 문제가 발생할 것입니다. 학생들에게 한꺼번에 모든 것을 설명하려고 하면 등을 부러뜨리는 지푸라기가 될 수 있으므로 좀 더 우회적으로 접근하는 것이 좋습니다.
"실례합니다. 공개가 무엇을 의미하나요?" - 지금은 생각할 필요가 없습니다. 나중에 자세히 살펴보겠습니다.
"수업이란 무엇인가요?" - 지금은 생각할 필요가 없으니 나중에 자세히 다루겠습니다.
"정적이란 무엇을 의미하나요?" - 지금은 생각할 필요가 없습니다. 나중에 자세히 살펴보겠습니다.
…잠깐, 그렇게 말할 수도 있겠네요.

그러나 어떤 내용을 가르치든 소화하고 이해하기 쉬운 구성 요소로 나누어야 한다는 점은 언급할 가치가 있습니다. 캡슐화(공개 키워드), 객체 지향 프로그래밍(클래스 및 정적), 배열(String[]), 명령줄 매개변수(args)와 같은 중요한 지식을 학생들에게 적시에 설명해야 합니다. 물론, 아직 프로그래밍의 깨달음 단계에 있는 신입생들에게 한 입에 뚱보가 될 수 있다는 생각은 너무 무리입니다. 나는 다른 분야에서 확실히 리더인 친구들을 많이 알고 있지만, 프로그래밍 개념 문제에 직면하면 즉시 압도당합니다. 이것은 대수학에서 갑자기 도입된 것과 같습니다.

초보 프로그래머에게 프로그래밍을 소개하는 방법은 무엇입니까?

이 기호가 무엇을 의미하는지 알면 이해하기 어렵지 않은 것 같습니다. 하지만 이제 막 이 분야에 입문한 신입생들에게 이 책은 말 없는 성경에 불과합니다. 더욱이 우회 전략은 학생들을 격려하고 즉시 낙담하는 것을 방지하지만, 다른 관점에서 보면 그 원리를 분석하고 설명하지 못한 채 표면적으로만 '마법의' 결과를 보여줄 뿐입니다. 하지만 진정한 교사로 성장하고 싶다면 이러한 접근 방식은 당신의 철학과 완전히 반대되어야 한다고 말하고 싶습니다. 예를 들어 Hello World,

Java는 엄격하게 객체 지향적이며 모든 기능(Java 용어로 "메서드")을 클래스에 배치해야 합니다. 명사의 왕국에서의 처형에 관한 훌륭한 기사를 아직 읽어보지 않으셨다면 꼭 읽어보시길 권합니다. 주요 내용은 “객체 지향 프로그래밍을 옹호하는 것은 손님을 위해 옷을 맞춤화하는 것과 같다”로 요약할 수 있다. if 문이나 for 루프와 같은 개념으로 여전히 혼란스러워하는 신입생에게 객체 지향 디자인 원칙을 설명하는 것은 잘못된 선택입니다. 우리는 작업을 함수로 작성할 수 있는 작은 조각으로 나누는 데 중점을 두고 OOP가 무엇인지 다시 살펴보겠습니다.

Java에서는 모든 객체가 힙 형태로 할당된다고 규정하므로 모든 객체 변수는 포인터입니다. 이제 설명해야 할 것은 할당 및 비교 중에 정수, 부울 및 부동 소수점이 문자열과 다르게 동작하는 이유와 같이 값과 참조의 차이점입니다. 이와 같이 파생된 질문은 함께 작동 방식을 설명하는 일관된 정신 모델(프로그래머에게 필수)을 형성하지만 그 과정은 매우 어렵습니다.

Java는 프로그램 개발을 위한 정말 훌륭한 프로그래밍 언어일 수 있지만(크든 작든) 확실히 초보자에게는 친숙하지 않습니다.

그럼 어떤 언어를 가르쳐야 할까요?

이런 경우에는 간단한 개념만 먼저 익히고, 이를 바탕으로 자바를 심도 깊게 배우면 되지 않느냐고 묻는 분들도 계시는데요. ! 그런데 미안해요, 자바가 할 수 없다고 했어요!

그럼 어떻게 해야 할까요? 프로그래밍을 시작하는 다음 두 가지 합리적인 방법은 깨달음을 줄 수 있습니다.

낮은 수준에서 시작한 다음 단계적으로 난이도를 높여보세요. C 언어로 직접 몇 가지 간단한 프로그램을 작성할 수 있도록 컴퓨터 사용법을 가르칩니다. 그리고 이를 바탕으로 더 높은 수준의 컴퓨터 과학 구조 시스템이 구축됩니다.

높은 레벨부터 시작하여 단계별로 난이도를 낮추세요. 기본 시스템의 세부 사항에 대해 걱정할 필요 없이 구현하기 매우 쉬운 컴퓨터 과학 이론과 프로그래밍 언어를 가르치는 것부터 시작하세요. 예를 들어 Python은 Java를 프론트 로딩할 필요가 없기 때문에 좋은 선택입니다. 그런 다음 컴퓨터가 이러한 이론을 어떻게 구현하는지 단계별로 분석합니다.

어떤 방법을 선택하든 학생들의 관심을 유지하는 것이 핵심입니다. 낮은 수준의 시작점 접근 방식을 선택하는 경우 학생들이 실제 세계에서 작성한 코드를 볼 수 있도록 Arduino 또는 로봇 키트를 사용하십시오. 즉, 로봇 팀을 위해 C 언어로 코드를 작성하기 시작하자마자 나는 이 환상의 세계에 깊이 매료되었습니다. 내가 작성한 코드 때문에 120파운드짜리 강철 파이프와 회전하는 모터가 움직이는 것을 보는 것, 그 느낌은 다음과 같습니다. 정말 마법적이고 믿을 수 없습니다. 높은 수준의 시작점 접근 방식을 선택하는 경우 라이브러리의 리소스를 사용하여 비디오 게임이나 기타 그래픽 프로그램을 만들 수 있습니다.

초보 프로그래머에게 프로그래밍을 소개하는 방법은 무엇입니까?프로그래밍은 정말 대단해요. 당신의 상상력과 자신을 표현하는 능력 외에는 아무것도 당신을 제한할 수 없습니다. 학생들의 관심의 진입점을 찾아 쉬운 것부터 어려운 것까지 재미있게 단계별로 가르치고, 도구 사용법을 가르치며, 물고기 잡는 법을 가르치기보다 물고기 잡는 법을 가르치며, 그 속에서 자유롭고 미친 듯이 성장하게 하라. 프로그래밍의 세계.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.