区块链软件工程实践||研究生课程

课程编号:

205037

课程归属:

工程技术基础类

开课校区:

大学城

开课学期:

春秋季 (全年开课)

容纳学生数:

50

不适用专业:

需通过编程考试

总学时:

32

总学分:

2

课程简介

本课程内容不包括软件工程原理,软件设计等理论部分。除讲授必要的软件产业界常用的、成熟的、规范的软件方法(如用于软件需求分析及用户界面设计的联合开发模型、应对需求改变的设计方法、结对编程与敏捷开发、代码审计等)外,主要以学生组队实施一个或多个由学生自主根据兴趣提出或选择的区块链软件开发项目为主要课程实践内容。同时也讲解针对近几年流行的手机App开发及发布,网络安全、安全编程、区块链技术(包括Token通证、智能合约、共识及激励机制的设计及实现)及有关技术创业方面的部分内容并让学生把这些技术用于软件项目开发实践。

这是一个由学生深度参与课程设计、内容不断丰富充实的课程。学生自己组队、自主设立或选择项目方向、甚至自学部分项目所需技术、自己完成所有开发及发布过程。最后以学生对项目及本课程内容设计的实际贡献来决定是否通过及获得相应的学分。任何学生(包括各级本科生、研究生、博士生)经过编程能力测试筛选后都可以选修。特别欢迎有编程基础的其他学科(不限工科)学生选修,通过各学科各专业的深度融合、将软件开发技术应用到各个学科领域,不仅拓展创新教育的内容、提倡快乐学习方法及过程、提升教与学过程的趣味性和学生的成就感、增强学校的凝聚力、也有利于配合我校的新工科建设。

Brief Introduction

This course is not about software engineering principles and software design methodologies. Instead, it presents the practical methods that commonly used in the software industry, including Joint Application Development (JAD) for requirement gathering and UI prototyping; Requirements Scrubbing for requirement specification; Designing for Change for the design stage; Pair Programming and Agile Programming; Code Review for inspection; Daily Build and Smoke Test for system construction/integration; Change Board for maintenance; Rapid Iterative Prototyping, etc. It may also include content necessary for mobile app development and deployment, cybersecurity, secure coding, blockchain, and startups. Students are required to team up to complete a sound software project using blockchain technology. Only those with sufficient contribution to their project will earn the assigned credits.

区块链软件工程实践课程表(20191220更新)

周次

日期

讲授课时及内容

实验课时及内容

课后作业



01 课件下载 09月20日 19:20分 2:课程简介、软件工程简介、CoderChain“码农链”项目简介、结对编程Pair Programming、项目安排 1:组队、结对编程Pair Programming、项目选择及讨论 组队、结对编程Pair Programming、项目选择及讨论、项目需求收集及分析


02 课件下载 09月27日 19:20分 2:软件需求工程简介1、PSP软件工程师单兵作战能力 1:组队、项目选择及讨论、项目需求收集及分析 组队、项目选择及讨论、项目需求收集及分析


03 课件下载 09月29日 19:20分 2:软件需求工程、联合应用开发JAD方法、Requirements Scrubbing、UI Prototyping 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


04 课件下载 10月11日 19:20分 2:产品与研发管理课程-刘昊臻 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


05 课件下载 10月18日 19:20分 2:区块链及比特币技术原理 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


06 课件下载 10月25日 19:20分 2:以太坊及智能合约 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


07 课件下载 11月01日 19:20分 2:FISCO BCOS介绍及智能合约编码实践 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


08 课件下载 11月08日 19:20分 2:NULS公链介绍以及造链实践 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


09 课件下载 11月15日 19:20分 2:区块链密码学相关技术 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


10 无课件 11月22日 19:20分 2:需求分析 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


11 课件下载 11月29日 19:20分 2:网络安全威胁及Secure Coding分享 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


12 课件下载 12月06日 19:20分 2:CodeReview代码复审 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


13 无课件 12月13日 19:20分 2:需求分析 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


14 课件下载 12月20日 19:20分 2:区块链共识机制 1:码农链项目需求收集及分析、UI Prototyping 码农链需求收集及分析、UI Prototyping


课程目标 课程直通车

课程目的

(1)使命:培养(区块链)码农极客;愿景:成为世界顶尖的(区块链)软件人才培养基地;价值观:专业、深耕、苦读、实干、奉献、激励、协作、共赢;

(2)以角色扮演的形式组织学生形成一个或多个开发团队,大幅提升学生在软件工程方面的总体能力,使学生在进入工作岗位后能尽快的进入角色;

(3)鼓励学生选择区块链项目作为软件开发实践项目,为社会培养满足企业和软件产业急需的软件开发人才,特别是区块链软件项目所急需的技术人才;

(4)鼓励学生采用区块链技术中的共识及激励机制来管理整个开发团队和开发过程,从而高效、高质量的完成软件开发任务;

(5)拓展创新教育的内容、提倡快乐学习方法及过程、提升教与学过程的趣味性和学生的成就感、增强学校的凝聚力、也有利于配合我校的新工科建设。

课程教学要求

(1)所有学生需要自由组队完成项目开发和发布。项目内容、产品发布后由教师及同班同学对项目及产品设计方案的创意及实用性打分。也考察每个队员在其中的贡献。只要做出部分贡献就可以通过并获得学分;

(2)为了方便学生集中开发,需要准备一个带电脑和能上网的大教室,学生需要全时来听课及实践,鼓励学生课后也来,安排助教值班。

教学参考书

(1)邹欣?著,《构建之法 – 现代软件工程》,第三版,人民邮电出版社,2017年出版

(2)邹欣?著,《VSTS软件开发指南》,第二版,电子工业出版社,2008年出版

(3)陈宏刚等 著,《软件开发的科学与艺术》,电子工业出版社,2002年出版