作者ric2k1 (Ric)
看板EE_DSnP
標題[心得] 寫程式
時間Fri Jan 5 17:49:44 2007
我想
寫程式大概有幾個階段 (幾種難度)
1. 摸索期: 對於語法, 程式架構, 都不太熟, 所以程式寫起來一 compile 就錯一大堆,
更不用說要留意 coding style 了...
2. 熟練期: 已經能掌握基本的語法, 對於一些較進階的語法, 雖然可能還不太熟, 但是
可以很快的找到 reference, 或寫一些小程式來找到答案. 在這個時如果給一些
定義清楚, 又不會太複雜的 program assignments, 通常都能順利完成.
3. 通透期: 除了掌握實體的語法之外, 給予一個問題, 能夠進行抽象的思考, 提出可行
的演算法, 然後再將其規劃整理成 "可程式的演算法", 進而訂定有效率的資料結構
與程式架構, 然後再進行實際的 coding.
我想同學們來修這門課之前, 很多人大概都是屬於第一階段吧?
所以我規劃了 HW #1, #2, 希望可以幫助大家熟悉一些基本的程式語法與概念, 然後
lecture #3 也講很久, 其實就是怕還有很多同學還沒有進入狀況.
接下來的 HW#3 ~ HW#5 應該算是希望幫助同學進入第二個階段, 這些作業基本上沒有
太高深的演算法, 題目定義應該也還算簡單, 不過 coding 上是希望能讓大家見識
到較具規模的程式 (1000 ~ 2000 lines), 其目的是想要幫助大家更熟練 C++ 的語法,
並藉由觀摩 reference code, 去思考一下如何規畫一個較複雜的程式.
所以, 如果你能跟得上這些作業的要求的話, 我想你對寫程式至少應該比較不會害怕了
吧?
不過話說回來, 由於大家的作業都做得相當的不錯, 這樣子我實在很難在期末對同學的
成績做一個區隔...
此外, 寫程式的訓練其實除了以熟練為目標之外, 另外一件重要的事情是要懂得 "規劃
程式", 不過規劃程式這件事情是很難去評分的 (10 個人還可以, 80 個人的 projects
就 orz 了), 所以我選擇了 BDD, 一個需要大家花一點腦筋去了解, 但是要花不少巧思
才能有效又漂亮的 implement 的題目.
也就是希望能讓大家有進入第三階段的訓練.
當然這是個高標準, 我說過我不期待大家都能全部完成, 我也告訴大家應該把它當作
像是我那個年代的電磁學考試, 不要期待自己一定能做到幾乎滿分, 盡力就好.
就像是我今天說的
"騎腳踏車進入新體旁邊的小門的故事",
先不要被複雜的題目給嚇到了, 想想你現在應該可以做得好的是什麼...
這樣子才能夠從容的發揮你這個學期所學到的東西!!
你現在可以做什麼?
不要急著動鍵盤, 或看 reference code, 先把 BDD 的原理弄懂, 名詞弄熟, 再將
implement 的方法弄明白, 如 ITE, complement edge, hash/cache table, ITE
parameter standardization... 等等, 確定你都了解之後, 再照著攻略ㄧ步一步做.
目標先設在讓 "test.cpp" 能夠正確, 再求 BDD Calculator 可以 work, 真的有時間,
再追求 Circuit::buildBDD 怎麼做...
還有,
我一直想要跟大家講的... 雖然講出來可能有點不好意思...^^|||
就是大家也知道, 我當年是完全沒有機會受到這種訓練的...
(我的計程是學 Pascal...)
從研究所開始認真學寫程式到現在, 是自己摸索了十來年,
所以,
希望大家不要被一門課或一個期末專題嚇到,
畢竟 whatever you can do, 已經比我當年強多了,
假以時日, 必定會比我厲害的... *v*
加油啊~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.21.240
推 ijb:聽到腳踏車攻略法,整個人都嚇醒了!這是我平常認識的ric嗎? 01/05 20:01
→ ijb:話說回來....不過,我喜歡~ XD 01/05 20:04
推 samuelduan:感謝老師這麼用心跟我們說這些 01/05 21:11
→ samuelduan:或許老師也可以考慮一下來個 "資結程設與人生" XD 01/05 21:12
推 eeturtur:大推老師的文章!!!!!!!! 01/06 00:48
推 mikejdi:看了真的蠻感動的 老師真的很用心給了我們很多東西 01/06 14:14
→ mikejdi:謝謝老師!!! 01/06 14:14
推 geniusjazz:真的很感人@@ 要加油了... 01/06 14:32
→ geniusjazz:不過老師...那個錄影檔...有成功嘛? 01/06 14:32
推 ric2k1:還沒試... 星期五沒借到 229 裡面那間的 key... 01/06 15:30
→ ric2k1:key 的中文的注音是什麼, 打不出來... 01/06 15:32
推 Parhelia:鑰匙 ㄧㄠˋ ㄔˊ 01/06 15:42
推 mamalo:請念 ㄧㄠˋ ㄕ˙ 謝謝 01/06 16:11