NASAC 2019系统软件教研论坛
时间地点:
2019年11月22日(星期五) 8:30-17:50
杭州宝盛水博园大酒店慧源厅
论坛简介:
当今AI技术、万物互联为代表的新型计算技术在给人类社会带来革命性变化的同时,也给计算机专业人才的培养带来挑战。业界急需更多懂编程语言和系统原理与技术方面的人才,不仅为复杂系统的设计和实现提供可靠而高效的软件解决方案,更为构筑国产可控计算机系统及其生态链提供核心系统研发的中坚力量。
系统软件类课程主要讲授编程语言的特点及范型、数据的结构与组织管理、程序的编译原理和技术、操作系统以及程序在计算机系统上的运行机理等。通过这些课程,不但要培养学生掌握语言与系统的理论基础,使之能建立准确描述真实系统的模型并利用模型预测系统行为;而且要强化系统实践,培养学生分析与构造结合底层硬件特性的系统软件研发能力。
程序设计能力是开发系统软件的基础。程序设计主要培养学生将真实世界问题转化为数字世界问题的能力。程序设计能力涉及多个方面,例如:利用程序设计语言的特征、熟练掌握开发调试环境、选择或设计合适的数据结构、设计好的算法、更重要的是掌握中小型软件的开发方法。培养程序设计能力不能只靠一门程序设计课,需要多门课程持续培养,特别是通过实践进行培养。
为推进各高校在培养学生程序设计能力和系统软件研发能力方面的课程实践体系的交流与改进,了解业界进展与需求,中国计算机学会系统软件专业委员会和软件工程专业委员会特举办“软件学科教育研讨会——系统软件教研论坛”,邀请国内从事程序设计、系统软件类课程教学和科研的高校教师和从事计算机系统研发的业界专家进行报告分享和交流研讨。期望通过本次论坛,能建立各高校教师之间、高校与业界之间的密切联系,推动更多的高校进一步推广和改进程序设计和系统软件类课程的相关课程教学。
论坛议程:
时间 | 报告题目 |
8:30-8:50 | 有趣有用的编译教学 陈文光,清华大学 |
8:50-9:30 | 软件基础实践课程介绍 臧斌宇,上海交通大学 |
9:30-10:00 | 基于代码仓库的编程能力训练考核平台 张卫丰,南京邮电大学 |
10:00-10:20茶歇 | |
10:20-10:50 | 编译技术与编译教学新的发展契机 计卫星,北京理工大学 |
10:50-11:20 | 计算机系统教学研讨会:成长与思考 蒋运韫,微软亚洲研究院 |
11:20-11:50 交流 | |
午餐 | |
14:00-14:30 | 操作系统课程实验新尝试和探索 张天飞,英特尔 |
14:30-15:00 | 面向机器人工程专业的《嵌入式实时操作系统实践》课程建设 马旭东,东南大学 |
15:00-15:30 | 操作系统中的复杂问题和工程思维 宫晓利,南开大学 |
15:30-15:50 茶歇 | |
15:50-16:20 | 软硬件协同能力与OS课程教学的思考 蒋德钧,中国科学院大学 |
16:20-16:50 | 从mov指令到仙剑:通过NEMU构建简单完整的计算机系统 余子濠,中国科学院计算技术研究所 |
16:50-17:20 | 在线实验融入计算机教学 石磊,实验楼在线教育 |
17:20-17:50 交流 |
论坛主席
张昱(中国科学技术大学,yuzhang@ustc.edu.cn)
陈渝(清华大学,yuchen@tsinghua.edu.cn)
活动主办
中国计算机学会系统软件专委会
NASAC会议注册:
欢迎注册NASAC 2019并参加本次论坛活动(访问下列网址或原文链接按钮)。
注册网址:https://conf2.ccf.org.cn/NASAC2019,或者 http://nasac2019.zju.edu.cn
扫码在线注册NASAC 2019
报告及报告人信息
陈文光,清华大学
题目:有趣有用的编译教学
摘要:国内编译原理教学主要仍集中于前端语法和语义分析部分,但产业界需要的编译人才需要更加广义的编译技术,如面向新型体系结构的编译器移植和优化、多层次编程系统的协调、领域特定语言的设计与实现、程序分析与验证技术等等。如何在编译课程内引导学生的兴趣,并与应用需求接轨是亟待解决的问题。
报告人简介:陈文光,清华大学计算机系教授,主要研究领域为操作系统、程序设计语言与并行计算,国家杰出青年基金获得者。获国家科技进步二等奖一次,部级科技一等奖两次。现为中国计算机学会杰出会员和杰出讲者,副秘书长,青年科技论坛荣誉委员;ACM中国理事会主席。多次担任操作系统、高性能计算和并行计算重要国际会议如OSDI、PPoPP、CGO、SC、ICS、PLDI、ASPLOS和APSYS的程序委员会委员。
臧斌宇,上海交通大学
题目:软件基础实践课程介绍
摘要:《软件基础实践》是上海交通大学软件工程专业贯穿三个学期的软件设计实践课程。学校实行大类招生,第一个学期的《程序设计(C++)》课程面向1800名学生开设,教学质量参差不齐。第二学期学生明确了专业,部分课程(如《数据结构》)专业可以介入。因此我们在第二学期,通过《软件基础实践》培养学生的程序设计能力。第二学期的课程,需要学生每周一次到机房两小时以上。在机房上课时,每20位同学配备一名助教,课堂上训练学生程序设计和调试能力。课程从熟悉C++的OO特性开始(如子类、继承、虚函数、重载、模板等),然后是I/O和文件操作、简单递归、图形界面等练习。针对这些训练,课后布置了四个实验,以强化学生的程序设计能力和使用数据结构的能力。第二学期的课程需要配合数据结构课程的节奏。第三个学期的课程比较独立,共两个大作业。一个大作业训练学生运用复杂递归的能力,另一个则是通过编写mini-basic解释器,训练学生综合设计和使用多种数据结构的能力,并了解编译系统的基本工作原理。从第二个大作业开始,我们注重培养学生的软件设计能力。第三个学期,则是文件型数据库,锻炼学生使用各类查找树的能力,同时进一步培养学生的软件设计能力。第三学期还需要配合《高级数据结构和算法》课程,让学生练习一些经典算法。这三个学期的课程,从学生的程序设计能力训练开始,逐步过渡到使用高级技巧、设计和使用数据结构与算法,最后进入到软件系统的设计,是一个循序渐进的过程。
报告人简介:臧斌宇,上海交通大学软件学院院长。2011年全国优秀博士学位论文指导教师,2015年“挑战杯”全国竞赛特等奖指导教师。兼任国务院学位委员会软件工程学科评议组成员、教育部软件工程教学指导委员会副秘书长、中国工程教育认证计算机分委员会委员、中国计算机学会杰出会员、示范性软件学院联盟副理事长。主要从事系统软件方向的研究。近年来在SOSP、Usenix ATC、Eurosys、ASPLOS、ISCA、HPCA、PPOPP等顶级国际上发表20余篇论文。主持多项国家级科研项目。致力于计算机核心课程的教学改革,尤其是成功建设了全新的系统软件类课程体系,为解决操作系统等卡脖子技术打好人才培养基础。目前正在主持新工科研究与实践项目(北京指南)《产学合作的在线系列课程资源建设与推广应用》。
张卫丰南京邮电大学
题目:基于代码仓库的编程能力训练考核平台
摘要:近年来,高校计算机类课程作业抄袭现象层出不穷,再加上作业进度跟踪困难、作业批改耗时严重、学生教师交流困难等问题,计算机类课程中教师已无法客观准确评价学生的编程能力,无法有效地管理多人的项目实训。本平台使用主流的代码仓库与持续集成技术,与高校编程课程和项目实训的管理场景相结合,设计出了基于代码仓库的编程能力训练考核平台,在其中实现了作业的在线批改、自动审查、代码相似度检测和工作量统计功能,支持多人项目学习,有效防作弊。本平台已经应用于南京邮电大学编程课程以及多人项目实训中,取得了良好的反馈,有效地防止了作弊,教学效果明显提高。
报告人简介:张卫丰东南大学计算机系博士,曾任趋势科技中国有限公司软件工程师,哈佛大学访问学者,现南京邮电大学计算机学院教授、中国计算机协会信息系统专委会副秘书长、江苏省333高层次人才、江苏省六大高峰人才、江苏省青蓝工程培养对象,发表论文80余篇,授权专利近20项。主要研究方向:代码仓库和持续集成
计卫星,北京理工大学
题目:编译技术与编译教学新的发展契机
摘要:本报告介绍业界处理器产品研发情况及其对编译器设计与优化的新需求、华为方舟编译器开源的基本情况,基于方舟开源社区更新编译课程教学的可行性分析;最后对编译教学在新时期的发展进行讨论。
报告人简介:计卫星,北京理工大学计算机学院,副教授,信息技术新工科产学研联盟副秘书长,计算机学会体系结构专业委员会委员。目前主要研究方向包括并行与高性能计算、大规模代码分析与优化等。主持和参与国家自然科学基金、部委科技计划、国家重点研发计划等项目多项,在国内外著名期刊和国际会议(TACO、PLDI、RTSS和DATE等)上发表论文多篇。
蒋运韫,微软亚洲研究院
题目:计算机系统教学研讨会:成长与思考
摘要:自2016年至今,微软亚洲研究院连续主办四届“中国计算机系统教学研讨会”。该研讨会由1986年图灵奖得主John Hopcroft教授发起并担任总顾问,通过邀请国际杰出的计算机系统领域学者共同组织和参与,交流面向中国高校学生进行计算机系统能力培养的经验,从而进一步提升该领域的教育和研究水平。本报告将从企业研究院的视角介绍参与研讨会的初衷、贡献和收获,并分享研讨会逐年演进过程中的成长以及各方的思考。
报告人简介:蒋运韫博士现任微软亚洲研究院学术合作主管经理,负责微软学者奖学金项目及中国地区教育合作项目,同时全面负责微软亚洲研究院与清华大学、哈尔滨工业大学、天津大学、南开大学、北京理工大学、北京师范大学、东北大学、大连理工大学、山东大学等多所国内一流高校在科研合作、学术交流、人才培养、课程创新等方面的合作;在加入微软亚洲研究院前,主要从事计算机系统结构方面的研究,包括操作系统内核编译及大规模异构数据中心任务调度及优化等,于清华大学计算机系获得工学博士学位。
张天飞,英特尔
题目:操作系统课程实验新尝试和探索
摘要:随着国家大力推广国产基础软件开发和应用,越来越多的国内企业和高校投入到操作系统这个领域。国内高校的操作系统课程普遍以经典的操作系统教材为蓝本,重点讲解操作系统的基本原理,再辅以少量的课堂实验。有不少高校以MIT的xv6作为实验素材,在xv6系统上做一些修改。xv6是一个经典入门教学系统,但是与工业界实际应用需求有脱节。
笔者认为在学习完xv6实验之后可以继续深入学习和研究工业界常用的操作系统,比如Linux内核。笔者以企业培养操作系统方面研发岗位新员工的经验来给高校的操作系统课程实验做一些新的尝试和探索。首先,应该选择一个工业界广泛应用并且源代码开发的操作系统作为研究对象,Linux内核就是其中优秀代表。其次,实验课应该结合理论课的内容来设置有趣和新颖的实验,比如采用最新的Linux内核,工业界最新的处理器和开发平台等,既能和理论课有机结合,也能锻炼学生的动手能力。最后,从实际的项目研发中提取和抽象出实验,这样既可以提高学生的学习兴趣,又可以让学生提前体验到工业界的需求。
笔者以最新Linux内核以及QEMU搭建了一个免费和开发的实验平台,并且把多年研发经验总结出几十个有趣的Linux内核实验,希望和广大高校朋友们探讨和交流操作系统实验课的优化和改进。
报告人简介:张天飞,英特尔资深软件工程师。长期从事Linux内核和驱动相关的研发工作。2017年出版《奔跑吧Linux内核》,2019年出版《奔跑吧Linux内核*入门篇》,2019年免费公开《Linux系统实验指导手册》。
马旭东,东南大学
题目:面向机器人工程专业的《嵌入式实时操作系统实践》课程建设
摘要:嵌入式编程计算是智能机器人工程专业人才具备的核心能力之一。《嵌入式RTOS实践》作为核心基础课程,为学生提供了扎实的系统和复杂应用软件开发基础训练和知识技能,并有助于学生顺利过渡到《机器人软件工程》或《ROS软件技术》之类课程学习。报告针对这一背景系统介绍了课程内容和实验组织思路及实践。课程教学包括RTOS基础理论、IA32多任务管理软件开发(汇编语言)、(开源)虚拟Linux多任务OS调度软件(C语言)、基于SylixOS国产商业化RTOS平台—EtherCAT高速通信总线的PC/嵌入式多轴伺服运动控制系统演示设计。循序渐进的课程教学组织取得了良好的教学效果。
报告人简介:马旭东,东南大学教授。1980年-1988年清华大学自动化系工业自动化/自动控制理论及应用专业学习,获工学学士/工学硕士学位。1988年起在东南大学自动化研究所工作至今,其中1997年9月-1998年6月在德国埃斯林根应用技术大学(FHTE)从事合作研究工作,2003年4月晋升教授。曾任研究室副主任、研究所常务副所长、东南大学计算机硬件应用实验中心主任,现任东南大学机器人工程专业负责人,国家级精品资源共享课《微机系统与接口(理论与实践)》负责人。主要研究应用领域:工业自动化与工业机器人,网络化移动机器人,嵌入式控制系统开发与应用,先后获国家级技术发明二等奖、国家级教学成果二等奖、中国自动化学会高等教育教学成果特等奖等科技与教学成果奖10余项次。
宫晓利,南开大学
题目:操作系统中的复杂问题和工程思维
摘要:解决复杂工程问题的能力是专业工程认证中的重要环节,而在计算机相关专业的学习中,难以有完整的时间全面的解析一个复杂的工程问题。操作系统是计算机相关专业的核心必修课程之一,除了要讲授进程调度、内存管理等核心知识点外,操作系统的设计和延续,本身也是一个很好的复杂工程问题的范例。本报告分享南开大学在操作系统课程教学过程中的多种新措施,包括课程内容、实验、文档、考试等,以及在教学与科研相结合的尝试,以期提高学生的系统能力,培养科研兴趣。希望得到各位专家的指正。
报告人简介:宫晓利,南开大学计算机学院副教授,天津市优秀科技特派员。2011年毕业于南开大学获博士学位并于同年留校,主要科研方向为嵌入式系统、虚拟化技术、异构计算等。在教学方面,承担高级语言程序设计、数据结构、操作系统等课程,译著教材四本,参与承担教改类课题三项。
蒋德钧,中国科学院计算技术研究所、中国科学院大学
题目:软硬件协同能力与OS课程教学的思考
摘要: 操作系统课程教学中的一个重要部分是学生系统观念和代码实践能力的培养。基于模拟器的教学实践或是只面向部分系统模块的实践开发,通常无法让学生形成完整的系统栈和扎实的开发能力。中国科学院大学操作系统课在近年来的教学探索过程中,让学生在真实硬件板卡上开发一个实际可运行的小型操作系统,包含了bootloader、进程管理、虚存管理、设备驱动、文件系统和shell,让学生将理论和实践紧密结合,得到良好的锻炼。本报告首先介绍我们在课程实践过程中,自行开发的基于MIPS/RISC-V硬件板卡的OS教学开源框架。此外,我们通过近年来课程实践的观察,发现软硬件协同开发能力在目前操作系统教学体系中有所欠缺,从而导致学生比较难于形成系统全栈能力,本报告将介绍我们在课程实践过程中的经验和对学生软硬件能力培养的思考。
报告人简介:蒋德钧,博士,中科院计算所副研究员,中国科学院大学岗位教师,主要研究兴趣包括存储系统,操作系统,分布式系统,存储体系结构等。研究成果在ATC, PACT,TACO, ICS,ICCD, WWW 等国际会议上发表,累计引用次数百次。承担或参与多项国家重点研发计划项目,973 、863项目,国家青年科学基金项目,人社部留学人员科技活动优秀项目等。在北京航空航天大学获得学士学位,在清华大学获得硕士学位,在荷兰阿姆斯特丹 Vrije Universiteit 获得计算机科学博士学位。
余子濠 中国科学院计算技术研究所
题目:从mov指令到仙剑:通过NEMU构建简单完整的计算机系统
摘要:理解“程序如何在计算机上运行”的根本途径是从“零”开始实现一个完整的计算机系统。南京大学计算机科学与技术系“计算机系统基础”课程实验提出x86/mips32/riscv32架构相应的教学版子集,指导学生实现一个经过简化但功能完备的x86/mips32/riscv32模拟器NEMU(NJU EMUlator),经历“图灵机 -> 冯诺依曼机 -> 批处理系统 -> 分时多任务”的路线,最终在NEMU上构建一个简单完整的计算机系统mini-ProjectN,并运行真实游戏“仙剑奇侠传”,来让学生探究“程序在计算机上运行”的基本原理。
本报告将介绍NEMU和mini-ProjectN的基本构成和设计原则,展示学生如何在构建mini-ProjectN的过程中培养基本的计算机系统能力,为后续系统方向的课程(操作系统、组成原理、编译原理)打下坚实的基础。
报告人简介:余子濠,中国科学院计算技术研究所博士生,本科毕业于南京大学计算机科学与技术系,教学版x86模拟器NEMU和南京大学“计算机系统基础”课程实验PA的设计者。多年担任该课程实验的助教,并不断完善实验的设计。参与全系统教学实验ProjectN的设计与开发。主要研究方向包括数据中心云计算架构与QoS保障,国家重点研发计划项目“软件定义的云计算基础理论与方法”的核心成员,对系统能力在系统方向科研项目中的作用有较深刻的体会。
石磊,实验楼在线教育
题目:在线实验融入计算机教学
摘要:结合实验楼多年在线实验的实施经验,对在线实验与系统软件类专业课程教学的结合方式进行探讨。报告主要内容:1. 在线实验教学模式,依据实验+挑战的教学模式,为IT在线职业教育和高校计算机教学等不同领域提供实验教学内容;2. 在高校教学与在线实验结合的应用案例,包括操作系统,软件工程,Linux内核等课程的实施场景,以及与 MOOC 教学配合的场景;3. 重点描述在线实验与教学结合存在的问题,并探讨如何解决在线编程的局限性、如何提升自主学习完课率等问题的一些思路。
报告人简介:石磊,实验楼在线教育 CEO,北京大学计算机系硕士毕业,曾就职于 VMware,Intel 等企业从事虚拟化技术开发工作。2014年创建实验楼在线教育,为计算机相关专业学生及在职工程师提供编程、云计算、大数据、机器学习等领域在线实验环境及系统化的学习路径,已有120多万用户在实验楼网站完成了超过千万次的计算机课程实验。