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

课程编号:

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.

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

周次

日期

讲授课时及内容

实验课时及内容

课后作业



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


02课件下载 09.28 2:区块链及比特币技术原理、以太坊及智能合约 1:组队、项目选择及讨论、项目需求收集及分析 组队、项目选择及讨论、项目需求收集及分析


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


04课件下载 10.12 1:需求说明书Req Spec案例分析 2:分组讨论实践CoderChain码农链项目需求Spec CoderChain码农链需求Spec


05课件下载 10.19 2:软件设计Designing for Change、CoderChain码农链架构设计 1:CoderChain码农链项目各功能设计、实践Designing for Change CoderChain码农链项目开发、Designing for Change


06课件下载 10.26 2:Effective Testing、个人软件开发流程(PSP) 1:个人软件开发流程(PSP)、Pair Programming and Agile Programming CoderChain码农链项目开发、Pair Programming and Agile Programming


07课件下载 11.02 2:Code Review 1:Code Review CoderChain项目开发、Code Review


08课件下载 11.09 3:区块链共识机制、Token体系、典型公链介绍 0:无 CoderChain项目开发


09课件下载 11.16 2:App开发及发布 1:分组讨论登录易App CoderChain项目开发、App开发及发布


10课件下载 11.23 2:网络安全、密码学及在区块链中的应用 1:网络安全、加密技术实践 项目开发、网络安全、加密技术实践


11课件下载 11.30 2:安全编程 1:安全编程、Code Review & 重点审计代码中安全漏洞 CoderChain项目开发、安全编程


12课件下载 12.07 1:技术创业、区块链创业项目eMALI.io介绍 2:项目计划书等 项目开发、BP撰写等


13课件下载 12.14 1:项目发布、汇报及评估 2:项目发布、汇报及评估 项目开发及发布

课程目标 课程直通车

课程表下载

课程目的

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

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

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

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

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

课程教学要求

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

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

教学参考书

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

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

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