顯示廣告
隱藏 ✕
※ 本文為 MindOcean 轉寄自 ptt.cc 更新時間: 2019-02-26 10:00:54
看板 Gossiping
作者 jserv (松鼠)
標題 Re: [問卦] 資工系課程為何不強調逆練?
時間 Tue Feb 26 00:58:02 2019


※ 引述《KILLE (啃)》之銘言:
:         本滷編程十一年了
:         好奇 為何資工系課程 沒有在強調逆練

神鵰初期,郭靖與歐陽鋒有交手經驗,旁白說:
  「昔日華山論劍,郭靖殊非歐陽鋒敵手,但別來勇猛精進,武功大臻圓熟,歐陽鋒
    雖逆練真經,也自有心得,但一正一反,終究是正勝於反,到此次交手,郭靖已
    能與他並駕齊驅,難分上下。」


歐陽鋒本是五絕之一,而郭靖能與他並駕齊驅,可推論郭靖的實力已有五絕的程度。
但資訊工程系的畢業生「戰場在哪?」「對手有誰?」我在大學教了七年,仍說不準。

有時候我會「夢見」辦公室樓上高達數百位研究生畢業後,可能有 3 分之 1 到了台
GG 任職,但或許後者技術太卓越,以至於研究生在學校從事的研究領域多半毫無用武
之地,那畢業生到底用什麼技能和人交手呢?我實在納悶。


:         有課在教Java C++ 作業系統 等
:         但為何資工不強調逆練?
:         逆練 C:
:         自己純手工搞出個C編譯器 不限定語言
:         像這樣 用Python做出C編譯器
:         https://github.com/ShivamSarodia/ShivyC
GitHub - ShivamSarodia/ShivyC: C compiler created in Python.
[圖]
C compiler created in Python. Contribute to ShivamSarodia/ShivyC development by creating an account on GitHub. ...

 

在成功大學的「系統軟體系列課程」[1],曾帶著學生開發能夠編譯自己的 C 語言
編譯器,而且支援 ARMv7-A 架構並輸出合法 GNU/Linux ELF 執行檔 [2]。扣除我
以外的 6 位貢獻者 [3] 是我教過的學生,他們到 Google 和 Mediatek 任職後,
仍從事編譯器和作業系統相關軟體的開發,讓我很欣慰。


:         逆練做業系統:
:         自己做個小作業系統
:         https://book.douban.com/subject/11530329/
30天自制操作系统 (豆瓣)
图书30天自制操作系统 介绍、书评、论坛及推荐 ...

 

在成功大學的「嵌入式系統課程」[4] 一開始就以引導學生從無到有開發作業系統
為目標,陸續開發 F9 microkernel [5], mini-arm-os [6], rtenv+[7], Piko/RT [8]
等作業系統,除了作為教學用途,這些還被廠商採納為 IoT 運算平台,甚至某個火箭
控制系統還運用這其中小型作業系統核心。針對麻省理工作業系統工程課程 [9] 的
教材 xv6 [10],我們的學生也做了些改進 [11],獲得麻省理工教授的採納。

像 mini-arm-os 這樣的玩具作業系統,只用約 350 行原始程式碼,就實作出

preemptive scheduling + thread package,但要解析個中運作原理,動輒上千上萬

字的描述,才能搔到癢處。雖然無法讓每位學生都有共鳴,不過每年仍有學生投入,
昨天有位學生剛結束研究所考試,就趕工改善 mini-arm-os,令我很感動。

然而,學生若學了「屠龍術」之後,仍周旋在工具機台和生產線,那我...祝福他們。

:         逆練OpenGL  實作出整套OpenGL庫 或一簡單子集
:         https://bellard.org/TinyGL/

我有個學生接觸電腦圖學後,自幹了一套支援 OpenGL API 子集合的 software
rasterizer [12],更早之前我練習做了類似的實作 picoGL [13] 。實際動手後,
不僅深度體驗到 OpenGL Rendering Pipeline,連同 fixed-point arithmetic,
甚至為了效能考量,開發出 just-in-time (JIT) code generator [14],來加速
blitter/rasterizer,實在非常過癮。

:         逆練深層學習
:         自己搞出個小深層學習框架
:         像這樣 https://github.com/attractivechaos/kann
GitHub - attractivechaos/kann: A lightweight C library for artificial neural networks
[圖]
A lightweight C library for artificial neural networks - attractivechaos/kann ...

 

我是人工智慧白痴,還沒辦法自幹 ANN,遺憾啊。

:         那有無資工課程都不強調逆練的卦?
:         不逆練 那怎能徹底了解 或最少半懂
:         沒逆練 那他們贏半路出家的點在哪?

贏在「家長拿學生入學許可出來說嘴的力道」。

[1] http://wiki.csie.ncku.edu.tw/sysprog/schedule
[2] https://github.com/jserv/amacc
GitHub - jserv/amacc: Small C Compiler generating ELF executable for Arm architecture
[圖]
Small C Compiler generating ELF executable for Arm architecture - jserv/amacc ...

 
[3] https://github.com/jserv/amacc/graphs/contributors
Contributors to jserv/amacc ·  GitHub
[圖]
Small C Compiler generating ELF executable for Arm architecture - jserv/amacc ...

 
[4] http://wiki.csie.ncku.edu.tw/embedded/schedule
[5] https://github.com/f9micro
The F9 Microkernel Project ·  GitHub
[圖]
The F9 Microkernel Project has one repository available. Follow their code on GitHub. ...

 
[6] https://github.com/jserv/mini-arm-os
GitHub - jserv/mini-arm-os: Build a minimal multi-tasking OS kernel for ARM from scratch
[圖]
Build a minimal multi-tasking OS kernel for ARM from scratch - jserv/mini-arm-os ...

 
[7] http://wiki.csie.ncku.edu.tw/embedded/rtenv
[8] https://github.com/PikoRT
Piko/RT ·  GitHub
[圖]
Piko/RT has 2 repositories available. Follow their code on GitHub. ...

 
[9] https://pdos.csail.mit.edu/6.828/
[10] https://pdos.csail.mit.edu/6.828/2018/xv6.html
[11] https://github.com/jserv/xv6-x86_64
GitHub - jserv/xv6-x86_64: re-implementation of UNIX v6 in ANSI C for x86_64 SMP
[圖]
re-implementation of UNIX v6 in ANSI C for x86_64 SMP - jserv/xv6-x86_64 ...

 
[12] https://github.com/aitjcize/sgl/
GitHub - aitjcize/SGL: Software GL
[圖]
Software GL. Contribute to aitjcize/SGL development by creating an account on GitHub. ...

 
[13] https://www.computer.org/csdl/proceedings/apscc/2010/9396/00/05708631.pdf
     http://people.openmoko.org/jserv/graphics/
[14] 如 Android 的 PixelFlinger:
     https://android.googlesource.com/platform/system/core/+/master/libpixelflinger

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.82.61
※ 文章代碼(AID): #1ST1wiSZ (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1551113900.A.723.html
wuyiulin: 怕爆先推1F 02/26 00:59
followwar: 太神啦2F 02/26 00:59
Reenter: 第三名3F 02/26 01:00
faloca: 優文4F 02/26 01:00
Euphokumiko: 神5F 02/26 01:01
ericlive: 推!6F 02/26 01:01
jehg900207: 大神給推7F 02/26 01:02
yang20913: 推!8F 02/26 01:03
creepy: 先推再說9F 02/26 01:03
Hongmike: 先推再說!10F 02/26 01:03
qwer495: 推11F 02/26 01:03
jserv: @faloca, 我只是無奈地發言,大學部加研究所有八百多位12F 02/26 01:04
leoloveivy: 乾剛下樓回家 看來要騎回去了13F 02/26 01:04
funkman5566: 先推14F 02/26 01:04
Cybershit: 果然釣到惹15F 02/26 01:04
g5637128: 跪著推16F 02/26 01:04
b0920075: 老師推17F 02/26 01:04
jserv: 但有共鳴的學生,實在沒幾個。我大概要被時代淘汰了18F 02/26 01:04
kiminocodo: 難19F 02/26 01:05
Lee1027: 先推20F 02/26 01:05
Souseasou3: 先推21F 02/26 01:06
skygogo123: 推阿22F 02/26 01:08
GentelMark: 優質文章23F 02/26 01:08
LeOniD0728: 宅色夫推24F 02/26 01:08
jserv: @leoloveivy, 我正準備擺椅子準備在研究室過夜,就看到本文25F 02/26 01:09
jetaime851: 好26F 02/26 01:09
jserv: 於是發揮 116 本色,發廢文再休息 :)27F 02/26 01:09
kci9kimo: 只有我一個覺得這快走火入魔了嘛..XD28F 02/26 01:09
Plot3D: 有神快拜29F 02/26 01:10
OK8066889: 推推30F 02/26 01:10
zlsh1127: 先推文表示我看的懂31F 02/26 01:10
breezy1812: 推 現在老師學生都不好當啊32F 02/26 01:10
ts05593818: 老師推 你們的線上資源真的很豐富33F 02/26 01:11
LadyCaca: 猛34F 02/26 01:12
sunkiss5566: 有點厲害35F 02/26 01:12
soga0806 
soga0806: 推36F 02/26 01:13
dicapo: 先推再說37F 02/26 01:13
venomsoul: 看不太懂不過先推...38F 02/26 01:13
L1ON: 有神快拜39F 02/26 01:16
TrevorStory: 推40F 02/26 01:16
aikotoba: 看不懂...41F 02/26 01:17
limoncool: 跪了42F 02/26 01:17
jserv: @venomsoul, 為了吸引(?)學生到教室上課,我發廢文還得故作43F 02/26 01:18
jserv: 玄虛,這樣也許會有學生因此來聽課
abc88662a: 先跪45F 02/26 01:20
smallcar801: 跪著推,修了這門課是不是整個學期就只能睡在電腦前46F 02/26 01:21
smallcar801: 面了…
jserv: @smallcar801, 不至於,因為還有教科書的習題要寫48F 02/26 01:22
omegajoker: push49F 02/26 01:22
YeSerD: 是松鼠50F 02/26 01:22
AN94: 練這麼多 結果只需要顧機台 真的無言51F 02/26 01:24
curious171: 推52F 02/26 01:25
tony02258: 推推53F 02/26 01:25
ooxx5626: 我在這裡54F 02/26 01:26
bridgepons: 推55F 02/26 01:26
jhjhs33504: 顧機台 好像是科技業最缺的職位56F 02/26 01:26
godchildtw: PTT臥虎藏龍,有教授出現了57F 02/26 01:27
LeonYo: 先推不然會被人家說不懂58F 02/26 01:27
godchildtw: 咦!這帳號常看到啊59F 02/26 01:28
kksoc123: 先跪再說60F 02/26 01:28
vi000246: 有神快拜61F 02/26 01:31
GGininGG: 教授每次發文 我每次都跪著看62F 02/26 01:32
wahaha279: 老師萬安63F 02/26 01:33
s3131212: 突然覺得自己的學習強度實在不夠RRRR64F 02/26 01:33
tinghong0515: 老師好 先跪再說65F 02/26 01:34
selfhu: 自己刻的卡好用66F 02/26 01:35
a2470abc: 先推 老師教材真的要花時間讀67F 02/26 01:35
konane: 推,感謝松鼠大為台灣培養軟體人才,辛苦了68F 02/26 01:40
wahaha279: 最無言的是 練這麼多 賺得沒有炒房的多 才對吧69F 02/26 01:43
youjan: 推70F 02/26 01:49
xianyuyu:71F 02/26 01:50
wayne841227: 推72F 02/26 01:52
hdotistyle: 看不懂..73F 02/26 01:52
soto2080: 推74F 02/26 01:53
VrGnKiler: 推75F 02/26 01:53
Rioronja: 這個帳號都是先推再看的76F 02/26 01:56
b10007034: 推,請問如何逆練CPU ASIC TPU等運算裝置以加快平行運77F 02/26 02:01
b10007034: 算
stw82: 推jserv79F 02/26 02:03
helloxin: 老師好80F 02/26 02:04
GreatHong: 強者說話,氣場都不一樣81F 02/26 02:05
newup: 推推82F 02/26 02:08
brad001: 老師很抱歉 真的沒能力修你的課程 大四再看看QQ83F 02/26 02:11
winstonuno: 推84F 02/26 02:11
DLHZ: 推一個最近直播的linux核心設計 很有幫助85F 02/26 02:19
bbo6uis122: 推86F 02/26 02:40
jk01: 推87F 02/26 02:50
stw0975: 推88F 02/26 02:55
wahaha99: 我他媽推爆89F 02/26 03:02
jackie0804: 推90F 02/26 03:18
madaniel: 推91F 02/26 03:27
cclin5566: 走火入魔啦92F 02/26 03:29
akay08: 推推93F 02/26 03:39
g70245: 推大神94F 02/26 03:50
tetsu2008: 跪著看95F 02/26 03:56
Tsubasa1008: 推96F 02/26 03:58
u831208: 鼠哥安安97F 02/26 04:44
lovecyslove: 神..98F 02/26 05:13
ppd08: 老師幫我寫一個虛擬老婆!站內信!99F 02/26 05:16
shunchao:100F 02/26 05:23
intointo: 先推101F 02/26 05:45
qwer911: 固機台錢比較多阿102F 02/26 06:42
ferttelle: 只能跪了103F 02/26 06:43
Juder: 推推104F 02/26 06:45
Wand 
Wand: 老師好105F 02/26 07:26
Etnfogd1113: 推106F 02/26 07:38
dfast: 顧機台 台灣無奈的環境107F 02/26 07:39
king786945: 老師好 畢業後想在半路出家有辦法嗎?QAQ108F 02/26 07:39
lbjstar: 有點懵懵109F 02/26 07:54
rex44391: 推110F 02/26 08:02
ShinSioku: 請問老師的課 有放到網路上嗎?111F 02/26 08:06
chiu1505: 想讀成大了…112F 02/26 08:08
mowei: 推113F 02/26 08:14
dnkofe: 推114F 02/26 08:20
shiauji: .......成大猛115F 02/26 08:20
amethystboy: 有神快拜116F 02/26 08:23
kimgordon: 推117F 02/26 08:23
ToTaiwan: 推118F 02/26 08:24
feedback: 推119F 02/26 08:26
s0805744: 有神快拜120F 02/26 08:27
Luluemiko: 推121F 02/26 08:28
wbreeze: 推122F 02/26 08:30
eball5566: 有神快跪123F 02/26 08:30
ilovecim: 跪拜124F 02/26 08:35
nightnawk: 先跪在推125F 02/26 08:44
timtdsas: 跪126F 02/26 08:45
piliwu: 顧機台錢多啊ASML也是缺設備127F 02/26 08:47
allenthai: 老師好128F 02/26 08:53
xueyu: 推129F 02/26 08:58
yuiweq1999: 好像有神...先拜130F 02/26 08:59
anymore520: 推reference131F 02/26 09:01
goodfuture: 老師早安!!132F 02/26 09:11
ArayaHellCat: 推133F 02/26 09:11
abb123456: 推134F 02/26 09:13
lukelove: 南部GG躺著破百, 南部哪間純軟能夠對幹?135F 02/26 09:16
lukelove: 真的要北上純軟能給到GG這種價位的 跟GG也不同等級
jserv: @ShinSioku, http://wiki.csie.ncku.edu.tw/linux/schedule137F 02/26 09:24
jserv: @king786945, 可,拿 GUTS 出來138F 02/26 09:25
kihiko: 推139F 02/26 09:31
zrna0515: 推,老師神預言今年果然成大正取140F 02/26 09:32
octopuz: 推141F 02/26 09:39

--
※ 看板: Gossiping 文章推薦值: 0 目前人氣: 0 累積人氣: 710 
作者 jserv 的最新發文:
  • +38 Re: [問卦] 有GNU/Linux那有BSD/Linux嗎? - Gossiping 板
    作者: 140.116.246.163 (台灣) 2022-06-12 12:30:49
    回答這問題之前,我們應該先思考「什麼是 BSD?」 依據 FreeBSD 網站 的描述,FreeBSD 衍生自 BSD,後者則是 "the version of UNIX developed …
    49F 38推
  • +404 Re: [問卦] 要怎麼用針在光碟上戳出一個作業系統 - Gossiping 板
    作者: 140.116.246.163 (台灣) 2021-09-04 04:54:37
    「既然你誠心誠意地發問了,我們就大發慈悲地告訴你」(語出「火箭隊」) 這則笑話在 2010 年就出現巴哈姆特電玩資訊站 ,內容改寫自中國網友的創作, 已有十餘年,不過該笑話的弊端在於「針」。DVD 燒 …
    499F 407推 3噓
  • +83 Re: [問卦] 如何在Linux底下自幹win3.1系統? - Gossiping 板
    作者: 140.116.246.163 (台灣) 2021-09-03 12:41:58
    我是跟鄉民進來看熱鬧的,我跳進來了,我又跳出去了,打我啊笨蛋! (取自方唐鏡 名言) 學校老師應該忙著開學事宜,我幫他們回覆你的提問。 原題「在 Linux 系統底下要怎麼自己搞 win3.1 呢?」 …
    101F 83推
  • +230 Re: [問卦] 在卡上打洞寫程式是什麼感覺 - Gossiping 板
    作者: 140.116.246.163 (台灣) 2021-04-23 06:37:27
    剛好我需要跟學生解釋為何 Linux 核心原始程式碼的風格規範 中,限制一行至多 80 個字元,其典故跟「打孔卡」(punched card) 有關。 1890 年代,美國人口普查就使用新發明的穿孔卡 …
    247F 230推
  • +439 Re: [問卦] 原來上 ptt 可以學 linux 操作.. - Gossiping 板
    作者: 140.116.246.163 (台灣) 2021-04-23 00:01:26
    這恰好連結台灣特有的 BBS (電子布告欄) 文化及早期 Linux (和 BSD) 文字編輯器的 關聯。也讓我想起一年前過世的陳昇瑋博士,他的舊名是陳寬達,並以 Xshadow 的名號 馳名於早期的 …
    512F 444推 5噓
點此顯示更多發文記錄
分享網址: 複製 已複製
( ̄︶ ̄)b clisan 說讚! ( ̄︿ ̄)p zerou86 說瞎!
1樓 時間: 2019-02-26 13:10:18 (台灣)
  02-26 13:10 TW
自己製造中央處理器 自己寫語言操控這包含自製處理器的硬體
2樓 時間: 2019-02-26 16:10:43 (台灣)
  02-26 16:10 TW
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇