b99902xxx 板


LINE

我本来答应林轩田老师在前瞻营上以我自己的观点向各位介绍资讯 系的课程。不过後来因为时间不够就取消了。不过我觉得直接取消 蛮可惜的,所以我把我的讲稿写下来,让大家参考看看。 另外,前瞻营的讲义与投影片可以从以下网址下载: http://council.csie.ntu.edu.tw/frontier/2010/ 前瞻营总召 简子翔 敬上 声明:以下文章只代表我的个人立场。 ----------------------------------------------------------------------------- Roadmap of CSIE 资讯工程之路 「这是一个最好的时代,也是最坏的时代; 这是一个智慧的时代,也是愚蠢的时代。」 —狄更斯《双城记》 序言 首先当然是欢迎大家加入资讯系。不过不知道大家有没有想过:总 有一天我们要从这里毕业,十年之後大家会在哪里呢? 作为一个资讯系的同学,大家日後的职业应该都会和「写程式」 有关系。可是是写什麽样的程式呢?是写简单的手机游戏,还是设 计网站;是接别人外包的专案,还是写一些按钮与控制项的集合体? 我觉得这类工作在学生时期当作工读赚取生活费还可以,但真得不 适合当一辈子的工作。为什麽我要这样说? 「要会写程式并不难!」 经过数十年的发展,编写程式的工具越来越齐全,也越来越好 用;与此同时,程式设计渐渐地从艺术走向工程,从晦涩难懂走 向平易近人。 数十年前要写程式,程序员可能要和一行又一行的组合语言搏 斗;而时至今日,大部分的功能都已经有现成的函式库,甚至有 整合开发环境(IDE)可以使用,程序员只要会开启专案、拖拉点 放、输入一些文字就可以写出一个很棒的程式。 再看看连锁书店里面有多少电脑书?想要学写程式,这里从 C、 C++、Java、C#、Ruby、Python 的书籍!想要做网站,这里有 PHP、ASP .NET、JSP,除此之外还有 Javascript、HTML 应有尽 有!想要写手机程式,不论你是 iPhone 阵营还是 Android 阵营, 我们都有详细的入门手册任君挑选。各位想想看,除了资讯系, 还有什麽系所的知识会这麽普及? 「你的竞争者众多!」 因为写程式不难,这意谓着:你的竞争者众多!而且在这个战 场上,程式写得好未必有竞争力! 以手机游戏为例,有些人的程式未必写得比你好,不过因为他 有创意,所以他写得游戏就蔚为风潮,而你只能感叹时不我予; 而网站设计或者外包专案,也不是写得最好的人可以得标,而是 以最低价格完成指定规格的人才活得下来。 所以我想要说:写程式本身是没有什麽价值的! 也许有人看到这里想要问:「我是不是走错系所了?为什麽我 未来的工作被你说得黯淡无光?」 「重点不是你会不会写程式,而是你的程式能做什麽」 你选择资讯系仍是一个明智的选择!资讯系的授课重点除了写 程式以外,有很大的比重是要让你有 Domain Knowledge。也许很 多人会做网站,但是只有少许几个人写得出 Google、Bing; 也许很多人会写 Application,但是能写出 Office、Photoshop 的人不多;也许很多人会写 C/C++/Java,但是能写出编译器、虚 拟机器的人不多。 想要写出一个搜寻引擎,你需要的不是「七天学会网站设计」, 而是 Information Retrieval、Data Mining、Machine Learning、 Database 的知识;想要写出 Photoshop,你需要的不是「Photoshop 快速上手」而是 Digital Image Processing;想要写出 Office、 Visual C++ 你需要的不是「快快乐乐学 C/C++」而是要有 Compiler 与自动机的相关知识。 这些知识就是我们不同於其他人的地方,也是我们的价值。所以 重点不是你会不会写程式,而是你写得程式能做什麽!愿各位在这 四年可以努力学习,好好发掘自己的潜力。共勉之。 资讯系课程介绍 我自己在向别人介绍资讯系课程的时候,我习惯把资讯系的课程分 为以下几类:基础数理、程式设计、底层相关、资讯领域相关课程。 基础数理 顾名思意基础数理就是非堂基本的数学与物理、化学、生物等相关知识, 日後在学习进阶课程的时候,基础数理的知识就会是基本工具,一定要 熟用。分述如下: - 微积分甲(上/下):微积分主要是要介绍怎麽求导函数与反导函数。 还有求极值、求数列极限、求偏微分、瑕积分、重积分。我们在这 堂课要学习各式各样的微分、积分技巧。微积分的相关知识,在日 後的「机率」会很常见。 - 普通物理、化学、生物:这门必修基本上可以把它当成像是通识的 课程(虽然是必修课)。例如:普通物理中会介绍古典力学、热力 学、电子学、相对论等知识。其中,电子学相关的知识如电阻、电 容、柯西何夫定律等等,日後在「数位电子与数位电路」会用到。 而如果对生医资讯有兴趣,可能修习普通生物或普通化学可以让你 有一些基本知识。 - 线性代数:线性代数的主题是线性变换,例如:怎麽求 A x = b 这 一类的问题。这样说可能太过抽象,简单地说,线性代数就是教我 们矩阵的操作。我们会先从矩阵的列运算谈起,一路讲到高斯乔登 消去法。之後再引入向量空间 (Vector Space) 的概念。然後介绍 正交、行列式、特徵值 (Eigenvalue) 等等。日後在数位影像处理、 机器人学等选修课程都会用到线性代数。 - 机率:机率是现代数学当中,非常迷人的部分。这堂课会从简单的 机率计算开始,分别介绍 Random Experiment、Outcome、Sample Space、Event 等概念。接着介绍条件机率、期望值的计算、各式 各样的分布、相关系数、中央极限定理、信赖区间等等统计工具。 最後还会介绍机率的各种应用,包含资讯理论、资料探堪、搜寻、 人工智慧方面的应用。机率在资讯领域的应用极广,在演算法有 随机演算法,在人工智慧领域也有一个分支叫作统计人工智慧, 而在计算机网路的应用更是不计其数。 - 离散数学(选):在资讯领域很多数学运算都是整数,所以离散数学 对我们而言就非常重要。离散数学主要分成三个部分:组合数学、 图论、代数。组合数学会教我们怎麽求递回函数的一般式,怎麽计 算排列数与组合数,怎麽计算数列总和。图论则是教我们图 (Graph) 的相关性质与演算法。而代数则是教我们群 (Group)、环 (Ring)、 体 (Field)、布尔代数 (Boolean Algebra) 等等抽象代数的相关知 识。这些知识未来在演算法、资料编码等课程会非常实用。 程式设计 虽然我前面好像把程式设计能力讲得很不重要,但事实上程式设计能力 是最重要的。虽然好的程式设计能力未必能让你打败竞争对手,可是不 会写程式你就直接出局了。所以资讯系还是有很多课程要教大家怎麽写 程式。 - 计算机程式设计:本课程要教大家写程式,说得更准确一点是程序 导向程式设计。你在这一堂课要熟悉变数 (Variable)、表达式 (Expression)、述句 (Statment)、函式 (Function)。并且要知道 怎麽控制程式的流程 (Flow Control),弄清楚递回 (Recursion) 是怎麽一回事。学过本课程以後看到一个新的程式语言,都要能够 触类旁通、举一反三。毕竟程式语言日新月异,过去流行的是 Fortran、现在流行的似乎是 C/C++/Java,而未来一定又会有更多 不同的程式语言。 - 资料结构与演算法:会写程式之後,我们就要开始关心程式执行的 速度。本课程会介绍若干资料结构与演算法。例如:後进先出的堆 叠(Stack)、先进先出的伫列(Queue)、容易在中间插入节点的串列 (Link List)、二元树与走访、深度优先(DFS)与广度优先(BFS)、 图(Graph)。另外还有要怎麽排序、怎麽寻找数值、怎麽找中位数等 等。这门课和「演算法设计与分析」是高度相关的。 - 系统程式设计:随着我们的程式越来越复杂,我们会觉得 C 语言 的标准函式库不敷使用。我们会需要作业系统的帮忙、会需要使用 别人写好的函式库。例如:要建立一个子程序、进行跨程序的沟通 (IPC)、使用多执行绪(Multithreading)、操作档案系统等等都需要 作业系统或者别人写好的函式库。系统程式设计就是要教我们怎麽 和别人的程式沟通。除此之外,上课时也会讨论 Unix 底层的设计, 让我们知道一些函式的设计考量与为什麽尽可能不要使用某些函式。 日後介绍作业系统的时候,许多「系统程式设计」相关的议题会再 被拿出来讨论。而计算机网路也会用到系统程式设计的概念。 - 作业系统:作业系统的主要功能是管理并分配各式各样的资源,例 如硬碟上的档案、记忆体的空间、CPU 的执行时间等等。而本课程 就是要教我们怎麽有效率地管理这些资源,例如:有多个程式要使 用 CPU 要怎麽样排班才会有最好的效能或者最短的反应时间;有 多个程式要独占一些资源,我们该怎麽做才不会产生死结。本课程 还会进一步介绍一些在系统程式设计提过的概念,过去在系统程式 设计我们会知其然,而在本课程要让你知其所以然。本课程的相关 知识未来会应用於「高等作业系统」或者「即时作业系统」等课程。 - 物件导向方法论(选):现在一份套装软体往往需要数百 MB 的空间。 这种庞然大物绝对不是一个人在很短的时间就可以开发出来。要怎 麽开发与维护一个巨大的软体专案呢?过去有不少人提出各式各样 的作法,不过现在的主流是物件导向程式设计。物件导向程式设计 强调以「物件」为中心,分析与实作一个资讯系统。面对一个新的 专案,我们可以先用 UML 分析各种需求,然後抽出重要的性质, 把物件分门别类,整理成各式各样的类别,并探讨类别与类别之间 的关系。最後就是各个击破,分别实作不同的类别。本课程会教授 物件导向程式设计的相关知识,未来如果你想要修习「软体设计模 式」你就会用到本课程的相关知识。 - 软体设计模式(选):要使自己的程式设计能力有所进步,一个方法 是多看别人写得程式码,而且要多看顶尖高手写得程式码,并把别 人的技巧内化成自己的程式设计能力。本课程会介绍 Design Patterns 一书当中 23 个经典的设计。另外,还会介绍 Refactor 的概念,让现有的程式码可以逐步改进,同时也不会破坏相容性。 想要学习怎麽写出漂亮的架构,这门课一定不能错过。 资讯领域相关课程 - 演算法设计与分析:选择排序、快速排序二者在速度上熟优熟劣? 我们要比较两个演算法应该要有一套合理的标准。在资讯科学当 中,要分析一个演算法通常会使用 Big-Oh 渐近表示法。我们在 乎的是当输入量很大的时候,那一个演算法比较快、用去比较少 的额外空间。此外,本课程还会介绍许多演算法设计技巧,包含 Divide and Conquer、Dynamic Programming、Greedy 等等。妥 善使用这些技巧可以降低演算法的复杂度,并加快你的程式。最 後本课程会将各种演算法依照它们的复杂度分门别类,并探讨演 算法复杂度的极限。这一部分在「自动机与形式语言」会进一步 讨论。 - 自动机与形式语言:自动机与形式语言主要可以分成四个部分: Deterministic Finite Automata、Context-free Grammar、 Turing Machine、计算复杂度与计算的极限。前三个是简化过的 计算模型,其复杂度是由简单到复杂,运算能力也是由弱到强。 而在後半部分会由 Turing Machine 开始,探讨各种问题的可计 算性(例如:停机问题),或者探讨哪些问题是等价的,哪些问 题又是可以归约的。本课程介绍的 DFA 与 CFG 在编译器程式设 计当中会是非常重要的文字处理工具。而探讨复杂度的部分会和 演算法分析的复杂度相呼应。日後研究所的「资讯工程理论基础」 也是伸延自本课程。 - 计算机网路:本课程会介绍两台电脑之间要怎麽相互沟通,例如 要怎麽把讯息切割、封装成封包,封包要怎麽从一台电脑传送到 另一个电脑(Routing)等等。接着在有稳定的连线之後,二台 电脑要怎麽沟通,例如我们常用的 HTTP 服务,它背後的运作原 理是什麽等等。 - 专题研究:经过三年到四年的学习,最後我们要找一个教授作特 定专题的研究。每一个人的兴趣可能都有所不同,资讯系的教授 也分别有他们擅长的领域,例如:通讯网路、多媒体、演算法设 计、编译器、嵌入式系统、资料探堪、机器学习、生医资讯等等。 如果有特定偏好,可以找教授谈一谈,我想教授们应该都很欢迎。 如果还不确定的话,未来可以参加专题说明会,听听看所有教授 是怎麽介绍他们所专精的领域。 底层相关 资讯系还是要学一些和硬体相关的知识。其中一个理由是知道电脑底 层是怎麽运作的,你可以写出更好、更快的程式,也可以知道电脑的 极限在哪里。另一个理由是因为台湾的产业还是以硬体代工为主,系 上有不少毕业生毕业後是去 IC 设计公司(IC 设计公司也很需要资 讯人材做系统整合)。 - 数位电子与数位电路:本课程会从电流、电压、电路谈起。紧接 着就是半导体材料的特性 (P-type, N-type)、如何制作二极体、 PMOS、NMOS、CMOS。之後更进一步使用 CMOS 制作一个 inverter, 与各式各样的逻辑电路。 - 数位系统与实验:现在要设计一个晶片,多半会使用 VHDL 等硬 体描述语言,描述出晶片的主要功能。你可以用 VHDL 写出算数 逻辑单元 (ALU)、用 VHDL 写出 MP3 解码器、影片的解码器等等。 接着使用一些工具帮我们把「程式」转换成「电路图」,并且检 查是否满足一些物理限制。最後就可以把电路图制作成晶片。本 课程就是要介绍怎麽设计数位系统。 - 计算机结构:本课程主要有三个主题:计算机组织 (Computer Organization)、组合语言 (Assembly)、计算机结构 (Computer Architecture)。透过这门课,我们可以更了解硬体是如何执行 我们的程式。让我们知道什麽样的程式码跑起来比较快,什麽 样的程式码跑起来比较慢。在计算机组织当中,我们会使用一 些逻辑闸设计出一个简单的 ALU,加上记忆体就是一台具体而 微的电脑。而组合语言会教我们怎麽用组合语言写程式,并藉 此写出更好的机器码。而计算机结构是介绍「现代」CPU 的设 计。现代的 CPU 为了加快程式执行的速度,会使用 L2 Cache、 Pipeline 等技术。在知道 CPU 是什麽运作之後,我们在用组 合语言写程式时就可以避免反优化。本课程所学到的东西可以 用於日後的「编译器程式设计」与「高等编译器程式设计」。 -- 你按下 END 了吗?XD --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.144
1F:推 rod24574575:我END了 ._./ (话说都4点了还不睡... 10/09 04:25
2F:推 math120908:推荐这篇文章!! 10/09 08:49
3F:推 MrGreat:都看完了怎能不推!!! 10/09 09:01
4F:推 OppOops:大推! 10/09 09:15
5F:推 mars90226:看完了推~ 10/09 10:36
6F:推 ryan8175ptt:不推太对不起自己了! 10/09 10:57
7F:推 k7t7v7:推+1,总算对以後要学啥有初步的认识= =" 10/09 11:24
8F:推 lilian0111:大大推~ 10/09 11:34
9F:推 garychou:太棒了不推可惜!! 10/09 12:55
10F:推 mike012610:看完了大推!! 10/09 13:23
11F:推 bztfir: 10/09 13:38
12F:推 flyingmars:推~ 10/09 14:12
13F:推 pf5179:後面几点有点看不懂但是还是要推XD! 10/09 14:28
14F:推 ej0cl6:推~ 10/09 14:37
15F:推 jimmy9988:推! 10/09 15:10
16F:推 monkey020626:推~ 10/09 15:49
※ 编辑: LoganChien 来自: 140.112.247.159 (10/09 17:17)
17F:推 wctaiwan:...... XD .......... .. 10/09 17:57
18F:→ wctaiwan:Sorry, I guess PuTTY is not ideal for PTT replying. 10/09 17:58
19F:推 jenny2921:推~借转>\\\< 10/09 18:00
20F:推 otakulu:好文推~~ 10/09 19:10
21F:推 bill8124:受益良多 10/09 21:04
22F:推 dd14702006:推~ 10/09 21:04
23F:推 Rex1009:大推 10/09 21:50
24F:推 ashs99li:推~ 10/09 22:36
25F:推 xflash96:堆 10/10 09:58
26F:推 Laisky:推! 10/14 09:15







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP