《算法与数据结构》精品课:线上线下融合,师生协力共创编程教学新境界

发布时间:2023-12-05浏览次数:873

课程建设是推动教育教学改革的关键一环。高质量的课程在实现教学目标、提高人才培养质量方面发挥着至关重要的作用。上海科技大学高度重视课程建设,在近十年的教学实践中,建立了本研贯通的课程体系,培育出一批优质课程。通过精心设计、持续优化,把一门门“硬课”打造成广受学生好评的金课

   知行合一,是计算机科学教学中的难点之一。将课堂上抽象的理论知识转化为实践中的具体实验和代码,是实现计算机相关专业低年级本科生需要学习的基本技能,也是课堂教学中难以兼顾的部分。本期我们邀请《算法与数据结构》课程的授课老师,听听他们在教授课程中是如何不断尝试填平“知识”与“现实”之间的鸿沟。


课程介绍

 《算法与数据结构》课程是计算机科学和软件工程等相关专业的核心课程之一。该课程旨在教授学生基本的算法和数据结构知识,培养他们分析和解决计算问题的能力,提高程序设计的效率和质量。课程教授各类基础数据结构与常见的算法设计技巧,引导学生进行算法复杂度分析,并在学生掌握基本概念后,再引入一些高阶的数据结构与算法。这门课程也为学生进一步深入学习计算机科学领域的高级课程打下坚实的基础。


课程团队一览

赵登吉  

副教授,研究员,博士生导师

研究方向:算法博弈论与多智能体系统

教育及工作经历:

2009-2012:澳大利亚西悉尼大学、法国图卢兹大学计算机双博士学位

2013-2016:日本九州大学、英国南安普顿大学博士后

2017-2022:上海科技大学,信息学院,助理教授,研究员

2023-至今:上海科技大学,信息学院,副教授,研究员


张玉瑶

助理教授,研究员,博士生导师

研究方向:医学图像处理

教育及工作经历:

2010-2014:法国里昂国立应用科学学院,博士

2014-2016:美国杜克大学,博士后

2016-2018:美国加州大学伯克利,博士后

2018-至今:上海科技大学,信息学院,助理教授,研究员


刘鑫

助理教授,研究员,博士生导师

研究方向:网络优化与智能决策

教育及工作经历:

2014-2019:美国亚利桑那州立大学,博士

2020-2021:美国密歇根大学安娜堡分校,博士后

2021-至今:上海科技大学,信息学院,助理教授,研究员


耿浩

助理教授,研究员,博士生导师

研究方向:机器学习赋能 EDA

教育及工作经历:

2017-2021:香港中文大学,博士

2021-2022:香港中文大学,博士后

2022-至今:上海科技大学,信息学院,助理教授,研究员


算法与数据课程的教学法宝是什么?

先进的教学理念与高效的团队执行力是本门课程建设中的教学法宝。

实践导向,案例分析和自由探索则是本门课程的教学理念,主要是通过以下三步来实践:

授课老师会向学生提供必要的编程练习题目,鼓励学生通过编写代码来实现和应用所学的算法和数据结构;

授课老师在课堂上会讲解很多生动实例,通过演示算法与数据结构的概念和操作,帮助学生理解算法与数据结构的设计思想。

在学有余力的情况下,老师们还会结合实际场景,提供一些实际案例,引导学生去自由探索更深层次的计算问题。

经过多年的团队建设,牵头老师逐渐打造、组建了一支分工明确、高效有力的教学团队,为课程建设正常运转保驾护航。授课教师作为团队建设的核心,主要承担了课程建设、教材整编、教学节奏把控和管理助教团队等工作职责;助教团队则负责和学生进行一对一的沟通和辅导,帮助解决理论学习和实践难题。授课团队和助教团队分工明确,集思广益,共同创新教学方式和方法。


从1.0版本到2.0版本的不断改进

为了将理论教学与实践教学尽可能融合,同时方便学生自学,授课教师除了课堂授课外,还会将每堂课的重点脉络整理成15分钟的总结视频,发布在授课平台,帮助学生重温理解。助教团队在习题课上帮助学生总结授课内容的中心思想并讲解具体问题解法。此外,他们每周也会整理经典习题的视频讲解,发布在授课平台,供学生们自主学习,温故知新。

教学视频1:耿浩教授介绍序言,线性数据结构

https://mp.weixin.qq.com/s/_vQ2FILHrHJMAidoRuWnnQ

教学视频2:张玉瑶教授介绍渐进符号、排序和分治

https://mp.weixin.qq.com/s/2-mVqrJ5pKsx3y-eb-ky_g

教学视频3:刘鑫教授介绍堆,二叉搜索树

https://mp.weixin.qq.com/s/g_SQ2twRd_ib7g4q55zd8w

其他视频内容和课堂精彩回放:

课堂精彩回放(赵登吉教授介绍怎么破解动态规划?)

经典习题讲解(助教:龚可)

经典习题讲解(助教:李文超)

经典习题讲解(助教:丛中笑)

(更多精彩视频可关注视频号“SISTCS101”进行查看)


除了授课要点和经典习题讲解,助教团队每周还会整理网络上的相关知识点资源,整理形成“学习方法”合集。

欢迎走进ShanghaiTech CS101算法与数据结构:

https://mp.weixin.qq.com/s/Ab0mSdIcHBMcivHXzGYNsg

如何编程完成一道算法题:

https://mp.weixin.qq.com/s/tXRor1wRlRFZMSbRoVFV_w

图和树的基本实现方式

https://mp.weixin.qq.com/s/Fq5SsyU-DAzzm4BVIgOK5Q

(更多博客推文可关注公众号“SIST算法与数据结构”或访问课程主页https://smart.sist.shanghaitech.edu.cn/cs101/进行查看)


学好这门课的秘诀?

学好一门课程,需要脚踏实地进行学习与反思,没有捷径可走。但是有一些学习建议,可以帮助同学们更好地学习和理解这门课程。

1.    扎实的基础知识:首先,确保对编程和计算机科学的基本概念和知识有一定的了解。

2.    有效的学习资源:在课堂外,授课团队为学生寻找合适的学习资源,并总结了以下优质网络资源,供参考:

 课程主页:https://smart.sist.shanghaitech.edu.cn/cs101/

 视频号名称:SISTCS101

 公众号名称:SIST算法与数据结构

3.    理论与实践结合:算法与数据结构是实践性很强的课程,需要通过编写代码来实现和应用所学的算法和数据结构。

4.    坚持和持续学习:学习算法与数据结构,你会发现后面几乎所有计算机相关的专业课都能用到,所以你会遇到更多有挑战的算法问题等着你破解。


课程体会:

毛紫琪 2020级信息学院本科生

《算法与数据结构》课程由每周测试与习题课、纸质与编程作业以及两次考试组成。这门课规划合理,内容涉及算法与数据结构两个部分,简洁明了,难度适宜。老师们上课通俗易懂,有趣生动。助教在每周习题课上对课程的归纳总结简略完备,答疑也非常认真负责。每周的测试可以有效督促学生紧跟课程内容,提高课程的学习效果。每次的编程作业也与课程同步相关,让学生可以自己实现相关的数据结构,学习更加深入。考试的难度符合课程的设置。《算法与数据结构》是一门教学大纲与教学质量均优的课程,如果紧跟课程节奏,一定能收获良多。

马舒寰 2020级物质学院本科生

作为一名非信息学院学生,《算法与数据结构》对我来说是一门富有挑战性、体系成熟的课程。每周除两次正课外,还有一次作业和一次测试,这会迫使我要及时地去复习巩固课堂知识,以达到不错的学习效果。课程还增加了公众号文章和小视频作为知识的总结与拓展,对我理解课堂内容也很有帮助。课堂讲授清晰而易懂,作为外院学生也不会感到过于困难。老师们重视课堂互动,在互动的过程能够很快地解决疑问掌握相关知识。在我学习的过程中,可以清楚地感受到老师们为了让同学理解课堂内容而做出的努力。

张意鹏 2020级数学所本科生

《算法与数据结构》这门课程内容十分充实,将教学不再仅仅局限在课堂。通过课件、课程录制、微信公众号推送等形式,让我在课后能很好地巩固提高自己的专业技能,使我作为一名非计算机系的学生也能从中收获颇多。如果愿意花时间的话,无论专业背景如何,都可以在这门课中有所建树。

叶柯成 2021级信息学院本科生

课堂内容全面且清晰,知识点高度串联,在互动中有逻辑地引导学生积极思考,从而让学生对知识有更深刻的了解。作业、小测验和解答环节的规划安排恰当,既让学生不会有太大的压力,又复习巩固了知识。另外,课程非常注重学生的反馈,使得课程的整体难度适中,让我提升自身学习能力的同时,富有成就感和参与感。