여러분이 해본 가장 재미있는 프로그래밍 숙제는?

hunkim의 이미지

안녕하세요. 이번에 모 학교에서 비전공자들에게 프로그램과 OOP 를 가르치게 되었습니다. 글세요... 전공자들이라면 그냥 마구 빡시게 하면 될텐데... 비전공자들이라 프로그래밍이라는 것이 재미있다는 것을 소개하고 프로그래밍을 전문가 수준은 아니지만 할 수 있다 이런 정도로 해보고 싶은데 이를 위해 재미나는 프로그래밍 과제나 실습이 필요할것 입니다. 여러분이 만들어본 간단한 프로그램중에 가장 재미있는 것을 꼽는다면 어떤 것들이 있을까요?

오호라의 이미지

오즘 Open API도 많이들 제공하고, 처음 환경설정 및 방법자체를 몰라서 그렇지.

어느 정도 예제와 가닥(?)을 잡아주면 비전공자들(관심있는)들도 잘할수 있으리라 봅니다.

매쉬업의 특성상 아이디어가 주가 되니까. 재미있는 내용들이 많이 나올듯 합니다.

혹은 취업이 중요한 학과거나 전자, 기계쪽 같은 곳이라면 VB, 델파이가 좋을 듯 싶네요.

쉽고 빠르게 어플 작성하고, 또 실무에서도 많이들 장래성이 있다고 봅니다.

Hello World.

ironiris의 이미지

전 sort 프로그래밍이 기억에 남습니다.

neogeo의 이미지

robocode 어떤가요~

역시 프로그래밍의 흥미는 게임으로부터! ( =3=3=3=3=3 )

Neogeo - Future is Now.

Neogeo - Future is Now.

jsj3579의 이미지

우리 회사 엘리베이터 시뮬레이션 돌리는거요

dragonkun의 이미지

언어는 정해져 있는 건가요? 저는 루비로 프로그램을 짤 때가 프로그래밍이 재밌더라구요.

예전에 전 후배들한테 OOP 가르칠 때, 스타크래프트의 유닛들을 가상으로 구현해보는 과제를 내 준 적이 있었습니다.
--
Emerging the World!

Emerging the World!

klenui의 이미지

OOP와는 무관합니다만..대학교때 대신해주고 밥얻어 먹은 8 queen 문제요..

http://en.wikipedia.org/wiki/Nqueens

대강 짜보고 돌려보니.. 어 답이 나오네..? 신기했던 기억이..

일반적으로 손으로 계산 가능하거나 사람이 쉽게 할 수 있는 일을 컴퓨터로 반복 자동화한다..라는 경우가 많아서 프로그래밍이나 시퀀스 제어나 차이가 없다고 생각했었는데,
처음으로 아.. 이래서 컴퓨터를 쓰는 구나..라는 걸 느끼게 해준 문제였던 것 같습니다.

10년이 지난 지금도 단순 자동화코드만 짜고 있습니다만.. -_-;;

그러고보니, 신입사원 교육할 때 테트리스 짜라고 한적은 있네요..
timer callback하고, 원하는 지점에 색을 칠하고 지우거나 칠해진 색을 읽는 API를 만들어 주고 테트리스 코드를 채워넣으라고 했더니.. 정말 다양한 방식으로 문제를 풀더군요..

kalevala의 이미지

예를들면 send more money 와 관련된 문제 풀기 랄까요 ^^;
(알고리즘은 거의 필요없고, 기본적이면서도 적당한 코드분량)

처음에는 손으로 풀어가며 해법을 제시해준 뒤, 직접 머리로 푸는 과정상의 어려움을 보여주면서

문제 해결을 위한 프로그래밍의 길을 밝혀주는거죠. 더불어 동일한 출력을 보이면서도

속도면에서의 성능 차이를 보여줄 수 있고, readability 도 곁들일 수 있고...

개인적으로는 참으로 좋은 예제라 봅니다.

추가적으로, 단순 무식 API 활용은 모든 초보 공학도들로부터 숨기셔야 하리라 봅니다.

p.s 글을 쓰고 보니 바로 윗분의 의견과 많이 닮아있네요 :)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.