网站开发要,棋牌游戏开发,网站信息架构,广告软文案例0. 学习别人的经验和体会。 同学们在上这门课的时候#xff0c;都是大二#xff0c;大三#xff0c;有的是跨专业考研过来的。觉得在大学里#xff0c;到教室来听课有意思么#xff1f;请看#xff1a;你为何要来上课并且认真参与#xff0c; 另外#xff0c;请看… 0. 学习别人的经验和体会。 同学们在上这门课的时候都是大二大三有的是跨专业考研过来的。觉得在大学里到教室来听课有意思么请看你为何要来上课并且认真参与 另外请看你也可以把你的课堂生活过得像这样 如果你的老师和助教做不到请把博客转给他们看。 你在学校里的困难和迷茫别人一定有过。请看看别人怎么学习的有些是科班有些是野路子有些成功有些失败。 请读完下面所有博客 (读这些博客你不吃亏你也不上当)。读完后写一篇博客选下面至少 3 个文章(在博客中加上原文的链接)谈谈自己的感想你现在的条件比他们如何 你对计算机的热爱仅仅是口头的么 IT 专业的技术道路 职业道路社会道路怎么计划呢 http://www.cnblogs.com/xiaozhi_5638/p/4485805.html (偏科生自学摸索的道路) http://www.cnblogs.com/geniusalex/p/4928713.html (速成的培训班和打基础的大学教育有区别么) http://www.cnblogs.com/Tpf386/p/4798437.html 很多同学看不起大学老师按部就班地教课他们心想我看视频也能学会的为何要来听课请看这个学生学习的经历。 https://news.cnblogs.com/n/531362/ 半路出家认真学习不断在实践中进步。 http://www.cnblogs.com/blog470130547/p/4222870.html http://www.cnblogs.com/unruledboy/p/DevCareer.html http://coolshell.cn/articles/4561.html http://blog.csdn.net/haoel/article/details/1688104 http://www.cnblogs.com/freeflying/p/4796369.html http://www.cnblogs.com/geniusvczh/archive/2011/12/16/2290808.html http://www.cnblogs.com/AndersLiu/archive/2011/04/19/programming10years.html IT小小鸟的故事 http://book.douban.com/subject/4006425/discussion/22803733/ https://book.douban.com/subject/4006425/discussion/22803961/ http://book.douban.com/subject/4006425/discussion/22802960/ 补充阅读: 不要轻易在简历上写我热爱编程我热爱学习 请看正式的作业要求: http://www.cnblogs.com/ChildishChange/p/7363123.html 1. 从第一章的 “四则运算程序” 例子出发 逐步构建一个能解决实际问题的 “软件”。 http://www.cnblogs.com/xinz/p/7417960.html 2. 软件有很多种也有各种分类办法 ShrinkWrap (在包装盒子里面的软件软件在软盘/CD/DVD上) Web APP (基于网页的软件) Internal Software (企业或学校或某组织内部的软件)Games (游戏) Mobile Apps (手机应用) Operating System (操作系统) Tools (工具软件) 选取对你最相关的一类软件 请回答 1) 此类软件是什么时候开始出现的, 这些软件是怎么说服你(陌生人)成为他们的用户的? 他们的目标都是盈利么? 他们的目标都是赚取用户的现金么还是别的? 2) 你个人第一次用此类软件是什么时候你当时多大具体在什么学校读几年级老师是谁同桌叫啥软件是如何到你手里的例如邮购下载互相拷贝从应用商店购买等等。 (这个部分必须详细写不然这道题目得0分我要看看全世界的学生怎么抄袭这一段的)。 3)我们知道有些软件是收费的有些是“免费” 的 那么软件公司为何会给你免费使用这个软件呢 写这个软件的工程师们他们的工资如果不从你(用户)这里来 从哪里来呢 目前你们当地的软件工程师的工资大约是多少请给出尽量详细的分析精确到年收入多少万元人民币。 4) 你是如何学会用这软件的它给你什么好处坏处 这些软件是如何处理 bug 的? 如何更新新版本的? 你估计软件团队更新一个主要版本花了多少 人月 请写上人月的定义. 如果你们宿舍(或者你和另外三四个同学)要做同样水平的软件请估计你们需要多少时间 5) 同一类型的软件之间是如何竞争的你现在还用它么你为何选择这个产品而不是它的竞争对手 6)5年后 这种软件运行的硬件会有什么变化 软件再过 5 年还会存在么为什么 7)列举你在使用上述软件的时候观察到的 “特殊”现象它们和硬件有什么不同? 这些能说明软件的某些本质特性么? 同学在写文献综述类的文章的时候 要参考很多别人的描述或研究成果。 这是无可厚非的 因为一个人无法亲自经历或验证那么多事情总要援引间接经验、论断、描述。 关键是 -- 注明引用来源。引用来源不能简单地说 “百度”而是要指向具体的文章。 如果不注明就会出大问题。 虽然很多同学以后不会去写科研论文 但是这个要求坚持重要引用没有说明的文章要扣分直到 0 分为止。 3. 成功的程序成功的软件成功的软件企业 “写程序” 这个活动大多数情况下是个人行为。 我们听说的优秀程序员似乎都是单打独斗地完成任务。同学们在大学里也认识一些参加ACM 比赛的编程牛人 他们写的ACM 比赛的程序是软件么 “写程序” 和 ”做软件“ 有区别么 请采访这些学生。 Edsger Dijkstra 曾经提到“Software engineering of coursepresents itself as another worthy causebut that is eyewash: if you carefully read its literature and analyse what its devotees actually doyou will discover that software engineering has accepted as its charter ‘How to program if you cannot.’”[i] 软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看? 请采访一个编程特别厉害的学生 (例如学校ACM 队的队员)。 我们说 软件企业 软件 商业模式 下面提到的一个游戏团队 有很好的软件但是商业模式和其他软件之外的因素呢有没有考虑到 http://news.cnblogs.com/n/528911/ 4. 科学(science)工程 (engineering)和手艺 (craftsmanship)[这个题目可以在期末的时候做] 你所在的学校有计算机科学专业和软件工程专业么相关专业的教学计划和毕业出路有什么不同采访这些不同专业的老师/同学。 如果是计算机系问老师 你发现了计算机科学的什么客观规律 如果是软件工程问老师你构建了什么样的软件你发现了工程的什么规律 如果是搞ACM 等算法比赛的同学问他们你最近又在练习什么手艺 阅读本书有关软件工程和计算机科学的区别的内容并看其他文章谈谈你的看法。 文章举例http://www.drdobbs.com/architectureand-design/software-engineering-computer-science/217701907 http://www.computer.org/cms/Computer.org/ComputingNow/homepage/mostread/MostRead-SW-SoftwareEngineeringAnIdeaWhoseTimeHasCome.pdf http://www.exceptionnotfound.net/software-development-is-not-software-engineering-do-we-want-it-to-be/ 5. 有人认为现在绝大多数编程语言都是以英语为基础中国人编程还要学习英语这增加了不必要的障碍。 如果有 “中文编程” 则是解决中国程序员编程效率一个秘密武器请问它是一个 “银弹” 么它能极大增加中国程序员的效率么? 参考 http://weibo.com/2210132365/BiYTws242 http://www.chinesepython.org/ http://baike.baidu.com/subview/545069/545069.htm 6. 创建个人技术博客 (建议是 cnblogs.com) 快速看完整部教材列出你仍然不懂, 或者不同意的 5 到 10 个议题发布在你的个人博客上。 如何提出有价值的问题如何进行有价值的讨论 请看这个文章http://www.cnblogs.com/rocedu/p/5167941.html 以及 在互联网时代如何提问题。 还有这些要点 ① 在每个问题后面请说明哪一章节的什么内容引起了你的提问提供一些上下文 ② 列出一些事例或资料支持你的提问 。 ③ 说说你提问题的原因你说因为自己的假设和书中的不同而提问还是不懂书中的术语还是对推理过程有疑问还是书中的描述和你的经验(直接经验或间接经验)矛盾 一个模板可以是这样 我看了这一段文字 (引用文字)有这个问题 (提出问题)。 我查了资料有这些说法(引用说法)根据我的实践我得到这些经验(描述自己的经验)。 但是我还是不太懂我的困惑是(说明困惑)。 【或者】我反对作者的观点(提出作者的观点自己的观点二者差别以及理由)。 大学生应该能写出自己的思考 而不是摘抄书本内容。 提示编程经验不多的同学建议看16章 “创新” 提出自己的问题。 7. 课上同学们应该根据自己的爱好和情况组成 5 - 7 人的项目小组。 并且报告 老师/助教。 7.1 请每个小组在 cnblogs.com 上面创建团队博客第一个博客把小组成员都介绍一下。 既然是一个团队 就要有团队的一些规矩大家先要讲清楚责任/义务/权利/利益是什么如何衡量各自的贡献并让同学们都明确(书面签名)同意团队的要求。 这些要求中要包括这样一条团队在Alpha 阶段之后会选出一名队员TA 要自己寻找下一个队伍。 #团队博客作业1# 7.2 现代软件工程这门课已经上了好几年了以前有很多学生做过团队项目(说不定包括本校的学生)请你们找一个以前的团队采访一下 - 当时的项目有多少用户给用户多少价值 现在还有人用吗? - 这个项目能否给我们团队继续开发源代码/文档还有么? - 项目开发有什么经验和教训 - 他们对学好软件工程有什么具体、可以操作的建议 写成一个博客 #团队博客作业2# 8. 软件工程的各种名词、工具的起源和变化 了解这个行业的基本概念编程语言工具可以引用相关资料并注明来源 名词 按时间顺序列表 展示 “软件” “软件工程”瀑布模型Object-Oriented, Mythical Man*Month, Code Complete (代码完成) Structured Query Language, 4GL, CoCoMoY2K 问题, I18N, Agile MethodologySCRUM 这些词汇是如何出现的 - 何时、何地、何人提出。 参考资料 http://en.wikipedia.org/wiki/John_Tukey http://linux.cn/article-4778-weibo.html http://buzzorange.com/techorange/2015/01/26/margaret-hamilton/ http://en.wikipedia.org/wiki/Margaret_Hamilton_%28scientist%29 同样写博客的时候引用资料时请说明来源。 编程语言 汇编语言COBOLLISP PASCAL, C, PL/1, C, Object-C, BASIC, Unix Shell, Perl, Java, Python, C#, Swift, Go, Kotlin, ... 选取相互有关系的三到四个语言 描述他们的起源发展演化每个语言在鼎盛时期大约有多少使用者它们创造了什么样的产品。 你是怎么学习这些语言的对于一个准备成为软件工程师的大一学生你认为学习各种计算机语言应该有什么样的次序 参考资料 https://en.wikipedia.org/wiki/Generational_list_of_programming_languages https://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng108.pdf https://webhome.csc.uvic.ca/~mcheng/330/spring.2016/index.html https://softwareengineering.stackexchange.com/questions/10675/ideal-programming-language-learning-sequence 集成代码编辑环境 (Integrated Development Environment, IDE): 在UnixPCMac 上面大家都用什么编程 按时间先后列出各个工具第一版出现的时间 鼎盛时期的用户量(估计)和主要优缺点。 提示Vi/VIMEmacsTurbo Pascal, Turbo C, Visual C (包括VC6.0) Visual Studio, XCode, Eclipse, Android Studio, VS Code, Source Insight 提示请看年度的编程工具排名。 源代码管理工具/项目管理工具: 搜索一下 Unix SCCS, Microsoft Visual Source Safe, Microsoft TFS、Git GitHubMercurial、Bitbucket、Trac、Bugzilla、Rationale IssueJira) 按时间次序列出各个工具出现的时间鼎盛时期的用户量(估计)和主要优缺点。 9. 我们不是在真空里谈软件工程 软件要运行在硬件芯片上面 下面看看一个计算机芯片的发展历史 http://perspectives.mvdirona.com/2014/09/august-21-2014-computer-history-museum-presentation/ http://mvdirona.com/jrh/TalksAndPapers/DileepBhandarkarAmazingJourneyFromMainframesToSmartphones.pdf https://www.youtube.com/watch?v7ptXpNFY3XM 请回答 ① 软件的发展历史有什么纪录片/PPT 可以参考 ② 软件和芯片的发展有什么相互依赖相互拉动的关系 能否举例说明 10. 开发软件有很多种方式从软件运行的平台来看可以在下面的平台运行 网页 (只要有浏览器就可以访问软件或服务)Windows 平台 (例如最新的Windows 10 支持 PCSurfaceMobile甚至Xbox 运行)安卓平台 iOS 平台 (Mac 和 iPhone) 请找一个同学结对 (参看本书结对编程的内容)两人共同工作 (不能分开干活)从上面的列表中选取两个平台在每个平台上写一个最简单的 Hello World 类型的程序把写程序的经历写成博客发布出来内容包括 - 什么平台 用什么编程语言什么软件构建环境 (IDE)什么软件工程的工具开发的流程大概是什么最后程序的源码和用户界面是什么 (可以从网上查找相关资料甚至源程序都可以参考其他人的 但是要自己把程序编译运行) 11. 这么多作业似乎压力很大啊 请看别的同学的体会本科本科美国硕士。 请看TED 的演讲, 谈谈你对压力的看法以及怎么和别人合作 帮助别人把压力转化为动力在互相帮助的环境中成长。 [i] 来源: http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html