간단한 코드 몇 줄로 할 수있는 가장 멋진 일을 찾고 있습니다. Haskell에 만델 브로트 세트를 15 줄로 작성할 수 있다고 확신 하지만 따르기가 어렵습니다.
저의 목표는 학생들에게 프로그래밍이 멋지도록 고무시키는 것입니다 .
우리는 당신이 상상하는 것을 만들 수 있기 때문에 프로그래밍이 멋지다 는 것을 알고 있습니다. 그것은 궁극적 인 창의적 배출구입니다. 나는이 초보자들에게 영감을주고 가능한 한 많은 초기 학습 혹을 극복하고 싶습니다.
이제 내 이유는 이기적입니다. 저는 반 엔지니어링, 반 비즈니스 전공 그룹 60 명 에게 컴퓨팅 입문 과정을 가르치고 있습니다 . 모든 신입생. 그들은 소외 계층 고등학교에서 온 학생들입니다. 내 과거의 경험에서, 일반적으로 분할 그룹이 다음과 몇 바위 별 , 아주 열심히 시도 누가 어떤 종류의 그것을 얻을를 매우 열심히 노력하고있는 몇 간신히 그것을 얻을, 그리고 몇 상관하지 않는 사람들. 가능한 한 많은 그룹에 효과적으로 연락하고 싶습니다. 다음은 컴퓨터 프로그램을 사용하여 가르치는 방법에 대한 예입니다.
다음은 내가 찾는 것의 예입니다. 컴퓨터와 대화 할 수있는 1 줄 VBS 스크립트 :
CreateObject("sapi.spvoice").Speak InputBox("Enter your text","Talk it")
이것을 사용하여 작업 순서를 보여줄 수 있습니다. 나는 코드를 보여주고 그것들을 가지고 놀게 한 다음 그 줄에 많은 일이 일어나고 있다고 설명하지만 컴퓨터는 규칙을 알고 있기 때문에 이해할 수 있습니다. 그런 다음 다음과 같이 표시합니다.
4(5*5) / 10 + 9(.25 + .75)
그리고 당신은 내가해야 할 첫 번째가 (5 * 5)임을 알 수 있습니다. 그런 다음 4를 곱할 수 있습니다. 이제 Object를 만들었습니다. 10으로 나누는 것은 Speak를 호출하는 것과 같습니다. 객체를 갖기 전에 말할 수없고 100을 갖기 전에 나눌 수 없습니다. 다른 쪽에서는 먼저 표시 방법에 대한 지침이있는 InputBox를 만듭니다. . 입력 상자에서 Enter 키를 누르면 입력 한 내용을 평가하거나 “반환”합니다. (힌트 : ‘oooooo’는 재미있는 소리를냅니다.) 말할 때 오른쪽은 말할 것입니다. 그리고 나는 그것을 InputBox에서 얻습니다.
따라서 한 줄에 여러 가지 작업을 수행하면 다음과 같습니다.
x = 14 + y;
사물의 순서를 알고 있어야합니다. 먼저 14와 y를 더합니다. 그런 다음 결과 (평가 또는 반환 대상)를 x에 넣습니다.
저의 목표는 재미있게 수업을 시연하고 가르치는 멋진 예제를 많이 보유하는 것입니다. 나는이 예를 나의 룸메이트에게 시도했지만 이것을 첫 번째 수업으로 사용하지는 않겠지 만 그녀는 그것을 좋아하고 무언가를 배웠다.
이해하기 쉬운 아름다운 그래프 나 모양을 만드는 멋진 수학 프로그램은 좋은 아이디어 일 것입니다. 다음은 복잡한 액션 스크립트 예제 이지만 약간 너무 고급이며 플래시를 가르 칠 수 없습니다. 다른 아이디어가 있습니까?
답변
Microsoft Agent 캐릭터를 조작하는 빠른 VB 스크립트를 사용하여 아이들로부터 큰 반응을 얻었습니다. MS Agent에 익숙하지 않은 사용자를 위해 COM 인터페이스를 통해 조작 할 수있는 일련의 애니메이션 화면 문자입니다. Microsoft Agent 다운로드 페이지 에서 코드와 문자를 다운로드 할 수 있습니다 .
다음의 몇 줄은 멀린 캐릭터가 화면에 나타나고, 날아 가며, 화면을 두드리면서주의를 끌고, 인사합니다.
agentName = "Merlin"
agentPath = "c:\windows\msagent\chars\" & agentName & ".acs"
Set agent = CreateObject("Agent.Control.2")
agent.Connected = TRUE
agent.Characters.Load agentName, agentPath
Set character = agent.Characters.Character(agentName)
character.Show
character.MoveTo 500, 400
character.Play "GetAttention"
character.Speak "Hello, how are you?"
Wscript.Sleep 15000
character.Stop
character.Play "Hide"
사용할 수있는 다른 많은 명령이 있습니다. 검사자세한 내용은 http://www.microsoft.com/technet/scriptcenter/funzone/agent.mspx 를 참조하십시오.
편집 2011-09-02
최근에 Microsoft Agent가 Windows 7에 기본적으로 설치되어 있지 않다는 것을 발견했습니다. 그러나 여기 에서 별도의 다운로드로 제공됩니다 . 나는 이것을 테스트하지 않았으므로 작동하는지 확인할 수 없습니다.
답변
주소 표시 줄 (브라우저에서)에이 코드를 입력하고 Enter를 누르십시오. 그러면 웹 페이지의 모든 내용을 편집 할 수 있습니다!
javascript:document.body.contentEditable='true'; document.designMode='on'; void 0
그것은 내가 아는 가장 멋진 “한 줄짜리”입니다 =)
답변
내가 처음 썼을 때
10 PRINT "What is your name?"
20 INPUT A$
30 PRINT "Hello " A$
40 GOTO 30
사람들을 날려 버렸습니다! 컴퓨터는 그들의 이름을 기억했습니다!
편집 : 이것에 추가하십시오. 새로운 프로그래머를 설득 할 수 있다면 이것이 가장 멋진 일이며, 좋은 프로그래머가 될 것입니다. 요즘 다른 사람이 작성한 라이브러리를 실행하기 위해 한 줄의 코드로 원하는 거의 모든 것을 할 수 있습니다. 나는 개인적으로 그 일에 대해 전혀 만족하지 못하며 그것을 가르치는 데 거의 도움이되지 않습니다.
답변
PHP-Sierpinski 개스킷 (일명 Triforce)
좋아, 그것은 15 줄의 코드이지만 결과는 훌륭합니다! 내가 어렸을 때 나를 놀라게했던 것들입니다. 이것은 PHP 매뉴얼에서 온 것입니다 :
$x = 200;
$y = 200;
$gd = imagecreatetruecolor($x, $y);
$corners[0] = array('x' => 100, 'y' => 10);
$corners[1] = array('x' => 0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);
$red = imagecolorallocate($gd, 255, 0, 0);
for ($i = 0; $i < 100000; $i++) {
imagesetpixel($gd, round($x),round($y), $red);
$a = rand(0, 2);
$x = ($x + $corners[$a]['x']) / 2;
$y = ($y + $corners[$a]['y']) / 2;
}
header('Content-Type: image/png');
imagepng($gd);
답변
Microsoft는 “kids”를위한 IDE 인 Small Basic을 가지고 있습니다.
pic = Flickr.GetRandomPicture("beach")
Desktop.SetWallpaper(pic)
그것은 멋진 프로그래밍이 얼마나 멋진지를 보여주기 위해 특별히 고안되었습니다.
답변
나는 사람들이 자신의 삶과 관련이 있거나 관련이있는 것들에 깊은 인상을 받았다고 생각하는 경향이 있습니다. 나는 그들이 알고 이해하는 것을 중심으로 10 줄의 코드를 작성하려고합니다. 예를 들어 Twitter와 API를 예로 들어 보겠습니다. 이 API를 사용하여 멋진 것을 만들어보십시오. 다음 10 줄의 코드는 Twitter에서 “공개 타임 라인”을 반환하고 콘솔 응용 프로그램에 표시합니다.
using (var xmlr = XmlReader.Create("http://twitter.com/statuses/public_timeline.rss"))
{
SyndicationFeed
.Load(xmlr)
.GetRss20Formatter()
.Feed
.Items
.ToList()
.ForEach( x => Console.WriteLine(x.Title.Text));
}
내 코드 샘플이 학생에게 가장 적합하지 않을 수 있습니다. C #으로 작성되었으며 .NET 3.5를 사용합니다. 따라서 PHP, Java 또는 C ++을 가르쳐 줄 경우 유용하지 않습니다. 그러나 필자의 요점은 10 줄의 코드를 “시원하고 흥미롭고 학생들과 관련이있는 것”과 연관시킴으로써 샘플이 시원하고 흥미롭고 관련성이있게된다는 것입니다.
행운을 빕니다!
[예, 문장과 Main 메소드를 사용하는 몇 줄을 놓쳤다는 것을 알고 있지만 10 줄이 문자 그대로 10 줄일 필요는 없습니다.]
답변
이것은 사용자 이름을 물어보고 인사하는 Python 텔넷 서버입니다. 네트워크를 통해 다른 컴퓨터에서 프로그램과 통신하기 때문에 멋지게 보입니다.
from socket import *
s=socket(AF_INET, SOCK_STREAM)
s.bind(("", 3333))
s.listen(5)
while 1:
(c, a) = s.accept()
c.send("What is your name? ")
name = c.recv(100)
c.send("Hello "+name)
c.close()