An Introduction to Software Engineering (2018)
一、引言
软件带来财富
— 保罗·格雷厄姆(Paul Graham),《黑客与画家》
你可能注意到了,过去三十年中,很多程序员(辍学生),如比尔·盖茨、杨致远、拉里·埃里森、拉里·佩奇、马克·扎克伯格…,凭借“杀手级”软件产品,创建了世界上最伟大企业(股市市值排名前10)。为什么是程序猿,既不是高大上的银行家、金融奇才,也不是踏实的建筑工程师,或者摄影师,或者精算师…。 恭喜你,你已站在当今最赚钱行业的门口!
为什么IT行业能持续高速发展?它会放慢脚步吗?
语言塑造了我们思考的方式,决定了思考的内容
— 本杰明·沃尔夫(Benjamin Lee Whorf)《奇思妙想:15位计算机天才及其重大发现》第一部分:如何与机器对话
提到计算机语言,你可能听说过 Basic,c,Pascal 等,以及神秘的 acm 竞赛。在计算机领域中,学语言只是计算机基础能力的一小部分。 当你熟练的使用 word 完成一个文档的排版,你是否意识到自己也在使用一种计算机可执行的排版语言呢? 通俗地说,任何解决问题的动作序列都是程序。编程无处不在,即使玩游戏也是编程 :)。
把计算机看作机器的程序猿,需要用机器的方法去思考,考虑用电路实现计算。当Fortran(公式翻译)语言出现后,人们可以用一种高级的结构化的语言思考科学计算问题; 当面对“人工智能”领域的逻辑推理问题时,人们提出了Lisp(表处理)语言;当我们把世界万物都抽象为对象(Object),面向对象思考的语言(Smalltalk,Java…)就产生了。在此基础上,人们逐步认清计算的本质,创造了各种各样的计算机语言,以及应用于各种专业领域的特种语言。 (计算机)语言将赋予程序员独特而严谨的思考方式,让我们热爱编程,用软件去改变世界!
二、课程任务(目标)
《软件工程专业导论》的任务是从三个面向帮助新生认识与理解软件世界:
- 面向机器的思考,即计算机的存储信息与计算的原理,解决问题的方法。或计算机表示、处理现实世界信息的方法,或计算原理。这部分内容帮助你掌握计算机的一些基本知识,如二进制、数与多媒体信息表示、计算机组成、操作系统、网络等的基本概念
- 面向历史的思考,即计算机世界的人和事、以及行业规律。即通过阅读经典书籍,教授讲座等手段,帮助你了解计算机发展的历史及其规律,把握软件世界的发展浪潮,提升创新力
- 面向语言的思考,做一些力所能及的编程。编程无处不在,既可以用图形界面去编程,也可以用计算机底层的机器语言,也可以定义一些规则描述编程,也可以用数学函数去编程。“做中学”是软件专业学习的基本方法,体验“玩”计算机的乐趣,提高动手实践能力
三、教材
没有指定教材,教学内容参见网站要求与课件。
1、参考书:
- [英文版]Nell Dale, John Lewis, Computer Science illuminated,3/e,《计算机科学概论》北京:机械工业出版社,2008/03,ISBN:9787111235163。
- [中文版]Nell Dale, John Lewis, 译者:张欣 胡伟, 《计算机科学概论(原书第3版)》 北京:机械工业出版社,2009/02,ISBN:9787111170167。
备注:
(1)考试使用英文试题,考试时不解释相关英文单词。建议平时使用英文参考教材。
(2)中文版翻译有一些错误或不够准确。查概念建议使用维基百科。
(3)建议与师兄、师姐沟通,获取参考教材
2、师兄、师姐推荐(必须)阅读材料:
- 《编码》
- 《黑客与画家》
- 《浪潮之巅(第一版)》
- 《奇思妙想:15位计算机天才及其重大发现》
注:请支持正版,合规使用网上电子资源!
四、教学团队
1、主讲教师
- Prof. 余阳,邮箱:yuy@mail.sysu.edu.cn,办公地点:A314
- Mr. 潘茂林,邮箱:panml@mail.sysu.edu.cn,办公地点:A316
2、教学助理团队
学生/班级 | 课程时间与地点 | 教学助理与联系方式 |
---|---|---|
18级1班 | 周四 14:20-16:00、C103 | 窦师兄 yaoyongdou@qq.com,周师姐 865081631@qq.com |
18级2班 | 周四 14:20-16:00、C203 | 林师兄 824928207@qq.com,陈师姐 545686770@qq.com |
3、作业提交
作业提交。请按作业模板 readme 操作,并及时提交。
作业帮助资料:
- 陈师姐 开启在线作业之旅,让作业也有软件专业的特色!
- 窦师兄 如何使用 Github 获得师兄师姐帮助
- 数学公式与证明
- 18342020 提供:使用 EveryCircuit 手机 app 完成 用电路做加法
4、我没有电脑,怎么办?
请到图书馆或找辅导员申请实验室机位!
五、课程内容
周 | 课程内容 | 阅读要求 | 作业与项目 |
---|---|---|---|
3 | Introduction ppt | 1. IT领域·巨星偶像。 纪念艾伦•图灵百年诞辰 不做火星人 2. 技术宅的快乐。 “韩国小姐”的脸到底有多相似? 科学与娱乐 3. 创意发现与书写。腾讯创意 |
作业1:名词解释【中英文】 项目1-1:用 Markdown 语言写博客 |
4 | Number System ppt | 1. 程序员人生:《黑客与画家》第二章 | 作业2: 见课件 项目2-1:制作HTML5游戏1 项目1-2:写一篇游戏开发技术博客 |
5 | Data Representation ppt | 软件与创业:《黑客与画家》第五章 | 作业3: 见课件 项目2-2:制作HTML5游戏2 项目1-3:写一篇博客推荐、介绍IT相关的书籍、电影、人物、媒体、玩具等等 |
6 | Data Representation ppt | 编码的世界:《编码(Code)》第一章 | 作业4:见课件 项目1-4:写一篇技术科普博客,如色彩表示与编码 |
7 | Gates and Circuits ppt | IT产业规律:《浪潮之巅》第4章 计算机工业的生态链 | 作业5:见课件 项目3-1:【选做】用电路做加法 项目1-5:按项目3-1要求写实验报告 |
8 | Computing Components ppt | IT产业规律:《浪潮之巅》第14章 信息产业的规律 调查与研究:收集并总结一些IT领域产品的发展案例,用摩尔定律等去解释 |
作业6:见课件 【选做】项目1-6:用IT规律解释你观察到或了解的技术、经济和社会现象,博客题目自拟。如“摩尔定律还有效吗?” ,“小米手机抢购背后的XX律” 等等 |
9 | Programming on Bare Machine ppt | 作业7:见课件 项目3-2:机器语言编程 项目1-7:按项目2-2要求介绍小游戏及其软件设计 |
|
10 | 期中考试 | ||
11 | Problem Solving and Algorithm ppt | 伪代码规范:Pseudocode Standard | 作业8:见课件 项目1-8:写一个博客,介绍“自顶向下,逐步求精”的编程方法,并以你观察的洗衣机为案例,用伪代码描述的控制程序设计 |
12 | Problem Solving and OO Design ppt | 风云人物与计算机语言: 1. 《奇思妙想》第一部分 如何与计算机对话(前言) 2. 《奇思妙想》第1章 约翰·巴科斯 |
作业9:见课件 项目4:Python 交互式编程 |
13 | Abstract Data Types and Algorithms ppt | 风云人物与计算机语言: 3. 《奇思妙想》第2章 约翰·麦卡锡 4. 《奇思妙想》第3章 艾伦·C·凯 |
1-9:写一个博客关于 IT 伦理与道德的博客。具体要求 用实例讲述一些排序的算法过程(越直观越好)!加分项 |
14 | Abstract Data Types and Algorithms | 风投与IT产业: 1. 《浪潮之巅》第13章 风险投资 2. 《浪潮之巅》第7章 思科 |
作业10:见课件 项目5-1:字符游戏-贪吃蛇 项目1-10:完成相关阅读,以博客形式写有关IT行业风投的知识、事件等,请重点关注风投与中国 |
15 | Operation System ppt | 互联网经济与新思维: 1. 《浪潮之巅》第8章 雅虎公司 2. 《浪潮之巅》第19章 商业模式 |
项目5-2:字符游戏-智能蛇 项目1-11:写一个博客介绍字符版本贪吃蛇游戏设计及算法、或创新玩法 |
16 | Networks ppt | 扩展阅读:互联网与新思维 《长尾理论》《世界是平的》《蓝海战略》 |
项目1-12:吴军在浪潮之巅中,用了“流量、流量、流量”来强调新经济时代的核心。请围绕“流量”这个核心,在相关阅读基础上,用博客介绍互联网时代的盈利模式 |
17 | 软件工程综述 ppt | ||
18 | 软件工程与职业规划 ppt | 扩展阅读:互联网与新思维 格拉德威尔系列:《异类》《引爆点》 |
项目1-13: 写一遍博客介绍互联网时代的热点领域选择、营销方法 |
19 | 复习 | 阅读部分考试大纲 | |
20 | 期末考试 |
六、社会热点专题探讨
如果你认为对以下专题有兴趣,并写了一些期望与大家分享的博客或作业,请将链接通过邮件发给任课老师。有加分啊!
- 互联网时代与隐私保护:水滴直播风波让人们看到了打开“潘多拉魔盒”世界的可怕。隐私保护是个复杂话题,既涉及企业家(创业者)的社会责任、IT伦理、犯罪与灰色产业、法律与监管、隐私泄露检测与保护工具、隐私保护知识教育等等方面。以下是部分学生的关注分享:
- 18342072,互联网伦理道德问题与隐私风险
- 该文从李彦宏先生:“中国人更开放,对隐私问题没那么敏感。”这个热点话题说起,研究了隐私泄露产业链
- 18342020,我们从日常生活的角度,看一看隐私是如何被泄露的
- 比个“剪刀手”,也怕有心人。该文讲了指纹密码、公众号小游戏、公共wifi的风险
- 16307015,我们是否已经成了“透明人”?
- 似乎是事实,怎么办呢?在线等。。。。
- 18342072,互联网伦理道德问题与隐私风险
- IT伦理与社会责任:
- 18342036,与机器人恋爱?人类该如何定义与AI的关系
- 有趣的思考,引导我们去看电影?。。。
- 18342036,与机器人恋爱?人类该如何定义与AI的关系
- 风险投资知识与其利弊:
- 16328086,IT中国与风投的前世今生
- 勇气,是前进的第一步!
- 16328086,IT中国与风投的前世今生
七、成绩
项目 | 分数 | 备注 |
---|---|---|
平时作业 | 20 | 见课件要求 |
项目与实践 | 20 | 见项目要求 |
期中/末考试 | 60 | |
课堂参与 | 10 | 课堂演讲与分享、回答问题等 |
合计 | 110 | 总成绩大于100,按100分计算 |
请务必做到 本周作业,本周完成!
没有特殊情况,每推迟一周提交作业,成绩降一个档次
八、温馨提示
Q:课程是否要预习?
A:课程建议预习。导论课的特点是涉及面广,教材中难免出现较多你现在难理解的概念。
Q:课堂上有部分内容没听懂,课件也看不懂?
A:该课程内容包括了解和掌握的知识点。如果你能独立完成作业,说明你已达到课程要求。当然,TA和老师都愿意帮助你,请邮件联系!
Q:课程内容缺乏重点与主题?
A:该课程包含大量知识介绍,没有所谓重点或主题。请选择你感兴趣的点,多做课外阅读。
Q:我的电脑需要装哪些软件?
A:建议按装 64位的win 10操作系统,用VBox安装win 7与Ubuntu(乌班兔)虚拟机。Mac系统,用VBox安装win 7虚拟机。有问题问师兄、师姐哦