라이브 코딩을 사용한 교육을위한 팁


11

나는 첫해 프로그래밍 및 알고리즘 과정에 참여하고 있습니다. 최근 강의에서 라이브 코딩을 사용하여 자료를 발표하기로 결정했습니다 . 이는 본질적으로 키보드 뒤에 앉아서 코드를 작성하고 평가하는 데 emacs 를 사용 하여 프로세스를 용이하게 한다는 것을 의미했습니다 .

이것은 매우 성공적이었고 학생들은 더 많은 (상호 작용적인) 형식에 대해 얼마나 감사했는지에 대해 논평했습니다. 이것이이 교육 형식을 사용한 첫 번째 시도 였으므로 완벽하게 실행되지 않았다는 것을 알고 있습니다. 문제 중 일부는 내가해야 할만이맥스에 정통하지 않은 것과 관련이 있었고, 다른 문제는 학생 질문이 내 대본에서 너무 멀어지게하는 것과 관련이있었습니다. 나는 내가 더 잘할 수 있다는 것을 안다.

라이브 코딩 강의를 사용하여 강의 (및 기타 데모)를 제공하기위한 지침은 무엇입니까?
피해야 할 함정은 무엇입니까?


2
라이브 코딩에 대한 예약이 있습니다 (주로 처리량 및 이해에 대한 환상). 그럼에도 불구하고 두 가지 제안이 있습니다 : 1) 질문을 구성하기 위해 교실 반응 시스템을 사용하는 것을 고려 했습니까? 2) 나는 그것이 얼마나 실용적인지 잘 모르겠지만 ideone.com과 같은 것을 사용하는 것은 흥미로울 수 있습니다. 학생들은 강의 후 코드에 액세스하고 물건을 설치할 필요없이 코드를 실행할 수 있기 때문입니다.
Raphael

@Raphael : 전보다 훨씬 더 나은 관심을 받았습니다. 두 가지 제안이 매우 좋습니다. 1) 현재 실제로 팔로우하는 사람들 만 모든 종류의 피드백을 제공합니다. 2) 내 언어가 목록에 없습니다. 즉, 모든 코드는 슬라이드에서 사용할 수 있습니다 (무시했습니다).
Dave Clarke

답변:


8

다음은 일주일 동안 라이브 코딩을 사용한 후 수집 한 팁과 함정이며 동료와 대화하는 것입니다.

해야 할 일

  • 따라야 할 스크립트를 준비하고이를 따르십시오.
  • 버퍼를 자주 비우면 관련 부품에 집중할 수 있습니다.
  • 새로운 주제마다 새로 시작하십시오.
  • 더 큰 글꼴을 사용하십시오.
  • 사소한 일에 너무 많은 시간을 낭비하지 않도록 사용중인 도구를 숙달하십시오.
  • 백그라운드 기능을 미리 코딩하십시오. 특별히 관련이없는 경우 작업 파일에 표시되지 않고 가져올 수 있는지 확인하십시오.
  • 즉각적인 피드백을 제공하는 언어로 작업하는 것이 이상적입니다. 이와 관련하여 대화식 쉘이있는 언어가 가장 좋습니다.
  • 유형이 지정된 유형을 사용할 때는 작성중인 함수의 예상 유형을 제공하십시오. 이것은 학생들에게 안내 등을 제공합니다.
  • 자유롭게 실수하십시오 (너무 많지는 않지만). 이러한 문제를 해결하는 방법을 단계별로 설명하십시오.
  • 잊지 마십시오 – 그림은 코딩 세션과 함께 인터리브 슬라이드 및 블랙 / 화이트 보드 작업으로 수천 단어를 그립니다.
  • 다룬 포인트에 대한 요약 슬라이드가 있습니다
  • 때로는 코드를 수정할 때 사본을 만들고 사본을 수정할 수 있습니다. 이것은 비교 지점을 제공합니다.
  • 정기적으로 코드를 정리하십시오.
  • 실수를 저지르고 공개적으로 학생들이 당신을 바로 잡도록 허용한다는 점을 인정하십시오.
  • 나만의 스타일로 코드를 작성하십시오. 예를 들어 다른 곳에서 코드를 복사했을 수 있습니다. 그러나 이것은 재현하기 어려울 것입니다. 자신의 스타일로 작성하는 것이 좋습니다. 예를 들어, 나는 주로 Haskell을 프로그래밍하기 때문에 항상 카레 함수를 작성합니다. 그러나 표준 ML은 관용구를 덜 자주 사용합니다. 카레 함수를 기대하는 것은 수업에서 가장 흔한 오류입니다.
  • 물리적으로 공간이 잘 설정되어 있는지 확인하십시오. 올바른 키보드, 올바른 높이의 케이블, 올바른 장소의 케이블, 방해가되는 물리적 장애물 등 공간을 확보하기 전에 잠시 시간을 내십시오.
  • 한 가지 접근 방식은 학생들이 말한 내용이 틀리더라도 작성하는 것입니다. 이를 통해 학생들은 코딩과 수정을 할 수 있습니다. 마지막에 코드를 정리하는 것이 좋습니다. 이 접근법은 학생들이 진행중인 일을 따르기 위해주의를 기울여야하기 때문에주의와 상호 작용의 교실 모델을 만들 수 있습니다.

하지마

  • 코드를 즉시 최적화하지 말고 고칠 수없는 방식으로 중단하십시오.
  • 컴퓨터와 대화하지 마십시오. 학생들과 대화하십시오!
  • 특히 상용구 코드를 너무 많이 입력하지 마십시오. 환경을 활용하여 템플릿을 추출 할 수 있습니다.
  • 텍스트 편집기를 사용하는 경우 계속 스크롤하지 마십시오. 따라 가려는 사람들이 멀미를 일으킬 수 있습니다.
  • 텍스트 편집기를 사용하는 경우 코드를 급격히 변경하기 전에 학생들에게 진행 상황을 추적 할 수 있도록 경고하십시오.

1
수업에 몇 명의 학생이 있습니까? 나는 상호 작용에 대한 당신의 DO를 좋아하지만 그것이 50, 100, 250 명의 학생으로 어떻게 확장되는지 궁금합니다.
Raphael

1
방과 후에 코드를 게시합니까? 학생들이 만든 다른 버전 (교실에 등장하지 않은 세련된 주석 버전 포함)을 탐색하고 차이점을 확인할 수있는 Github 저장소를 상상해보십시오. 또한 한 번 작성된 알고리즘을 숙제의 서브 루틴으로 쉽게 사용할 수 있도록 저장소를 복제 할 수도 있습니다 (필요한 경우).
Raphael

1
코드를 실행할 단위 테스트를 준비합니까? 그것이 모든 수업에 적합한 지 확실하지 않지만 (프로그래밍 언어, 소프트웨어 개발 또는 알고리즘의 원리를 배우는 데 초점을 맞추고 있습니까?)
Raphael

2
1) 등록한 인원은 128 명이지만 60-80 명 정도입니다. 2) 슬라이드에 이미 코드가 있지만 슬라이드를 사용하지 않습니다. 그래서 학생들은 내가하는 일의 버전을 가지고 있습니다. 모든 변형이 얼마나 흥미로운 지 잘 모르겠습니다. 3) 아니요, 비공식적 인 사양을 쓰지만, 아닙니다. 첫 번째 프로그래밍 언어와 일부 알고리즘 / 데이터 구조를 배우는 데 중점을 둡니다. 그래도 동의합니다. 단위 테스트는 과정에 더 많이 통합하는 것을 고려할 것입니다. 질문 / 암시 적 팁에 감사드립니다.
Dave Clarke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.