2008-08-25 37 views
8

針對編程人員的課程經常包含一個代碼項目,我認爲這是一個很好的學習方式。然而,這樣的項目往往會讓人覺得太過虛假,因此不值得進行研究。爲*完整*初學者提供的獎勵代碼項目

您對獎勵代碼項目有什麼想法? (最好容易開始,並且可以隨意擴展到更高級的!)。

編輯:

@馬克:感謝您的鏈接,雖然我的人誰是完全新的節目更感興趣的項目(該鏈接似乎是指更多的人誰已經精通至少一種語言,並試圖學習一種新的 - 我會說的典型SO觀衆:) - )。我在想通過一種語言學習編程的人,所以在課程開始時,有些人對控制結構一無所知(甚至對任何一種語法都不瞭解) 。但是,我在考慮一個相當大的項目(通常在1k-10k代碼範圍內,可能是2到3名學生)。這就是我的學校爲完全初學者所做的事情,而且它確實對他們有效......除了他們中的大多數人發現他們的項目非常無聊的工作!

回答

4

正如已經說過幾次,你試圖教給初學者的東西對於這個項目來說非常重要。

我給你的建議的規劃是這樣的:

1)避免對電腦遊戲

電腦遊戲,而有趣的建立,不獎勵與結果早在程序員(這是非常複雜)。你想專注於小而有用的應用程序,如Port Scanner。這個例子有點複雜,但它是我在網上看到的最好的學習項目之一。

2)教顯卡早

這是有益的,看看早在你的勞動成果,它促使你更進一步。無論您是使用WinForms,MFC還是Win32 API,OpenGL或DirectX,都可以儘早教授它。

3)有許多小教訓,深入的信息

這一原則隨後上面鏈接端口掃描器的項目,它工作得很好。徹底教授每個部分,給初學者吸取教訓的時間。我認爲ZophusX提供了一個很好的信息格式。這太糟糕了,他大部分都放棄了他的網站。

4),這需要時間

不要操之過急。沒有人會在幾周內成爲一名優秀的程序員。試着讓課程變得簡單,但要吸引你,並且繼續從之前的課程中學習。

5)早期得到反饋,並經常

你可能會認爲一個項目是非常有趣的,或特殊課程或如此,但你不是一個學習。當你問他們事情進展如何,以及他們想知道更多關於什麼時,你的學生會非常感激。要有足夠的靈活性,以適應這些要求。

6)玩得開心教學

玩得開心。激情是具有感染力的,如果你的學生看到你喜歡這個主題,那麼他們中的一些熱情也會消失。

我希望有幫助!

+0

端口掃描程序代碼的鏈接似乎在該網站上被打破。你有什麼機會還有副本?我聯繫了該網站,但他們沒有回覆。 – Steve 2009-08-16 18:22:46

0

這真的取決於你想教的初學者。如果你正在教語法,那麼簡單的「Hello World」程序和每個奇數在1到100之間吐出的程序都可以讓他們開始。如果你想教數據結構,那麼可能就像20個問題遊戲或一些簡單的排序程序。如果你想教授遞歸,那麼也許是一個廣度上的第一個搜索程序。如果你想教數據庫操作,那麼像訂單跟蹤系統就是合適的。

1

如果您正在公司培訓新員工,那麼將他們作爲實習生資源附加到實時項目上是非常有益的。

這會增加主要開發人員的工作量(因爲他們必須審查實習生所做的所有工作),但是在培訓和開發人員方面還有很長的路要走。

2

一些好的回報的項目,在你可以學習,這是非常可擴展的複雜性方面,特點是:

  • 遊戲
  • 一個旅行和運輸預約/預訂系統
  • 百科全書或術語的詞典,文章
  • 轉換計算器(貨幣,單位等)

關鍵是要選擇一個足夠簡單的項目,以便在查看項目標題時可以立即看到其中的一些功能。當真正給出一個想法時,會揭示更多可以添加到其中的功能。

該項目應該有足夠的難度,以便其功能看起來剛剛超出初學者的範圍,從而激勵他始終學習新東西。

1

我認爲遊戲和謎題是一個很好的開始,因爲它們可以爲開發更復雜的版本提供很大的空間。例如,一個井字遊戲程序可以構建爲一個簡單的命令行程序,最初可以讓兩個玩家玩遊戲。

這一步可以用來顯示一個簡單的數據結構或數組如何表示遊戲板,簡單輸入以獲取用戶命令/動作,簡單輸出以顯示遊戲板和提示等。然後,您可以開始顯示如何可以使用算法來允許玩家對計算機模式。我喜歡簡單的魔術方格數學算法井字棋,因爲它基於簡單的數學。在這之後,天空的限制,用戶界面的改進,使用文件I/O來加載和保存遊戲,更先進的算法讓計算機玩得更好等。更復雜和滿意的遊戲仍然可以使用文本模式或簡單的圖形來製作。

我用推箱子遊戲作爲顯示多年來許多技術手段。

我用過的最簡單的遊戲是一個數字列表倒車遊戲。這涉及1-9的數字混合列表。玩家可以指定一些數字在列表左側反轉。目的是讓列表排序。對絕對初學者來說這非常棒。遊戲的每個小部分都可以單獨編寫和測試。

0

文字冒險看看代碼示例。

  • 這是一個控制檯應用程序
  • 你需要做一些有益的事情,持有庫存,地圖和房態和分析輸入
  • 很有趣,你可以給別人打! :D