伯明翰大学

我曾在伯明翰大学担任多门计算机科学课程的教学助理。在“计算机辅助校验”课程中,我负责设计和讲授实验课,并设计、批改实验类测验;在“人工智能 2”“数据科学算法”和“演化计算”中,我负责答疑与作业批改;在硕士毕业项目中,我指导学生使用 Git、LaTeX 与编程工具,并协助他们与导师和学校沟通。

如果你正在寻找学生项目,可以直接跳到学生项目。

演化计算

本课程介绍通过模拟生物进化与群体行为来解决复杂问题的自然启发式算法,涵盖遗传算法、粒子群优化、蚁群算法,以及适应度景观与收敛性等理论内容。我负责答疑及作业批改。

人工智能 2

本课程聚焦不确定条件下的人工智能,涵盖可解释机器学习、概率图模型、信息论及计算机视觉等主题。学生学习如何在数据缺失或存在不确定性时进行推理、搜索、优化和学习。我负责答疑及作业批改。

计算机辅助校验

本课程教授如何通过模型检测验证系统行为与程序正确性,涵盖时序逻辑、状态转换系统、SPIN 与 nuXmv 等工具,以及基于 BDD 的符号验证和抽象技术。我负责实验课设计与教学、答疑,以及实验类测验的出题与批改。

数据科学算法

本课程介绍线性回归、逻辑回归、决策树、随机森林、K 均值聚类与 PCA 等数据科学核心算法。我负责答疑及作业批改。

硕士毕业项目

硕士项目让学生独立开展研究或软件开发。我指导学生使用 Git、LaTeX 和编程工具,并协助其与导师和学校沟通。


其他教学经历

GCSE 与 A-Level 计算机课程

Ark St Alban’s 是英国伯明翰一所覆盖小学至 A-Level 的学校。我曾在那里完成一学期教学实践,参与八年级、A-Level 第一年以及课后编程俱乐部三个层次的课程。

  • 在八年级 Python 课上,我协助课堂管理并解答学生问题。
  • 在 A-Level Computing 课程中,我辅导数据结构与算法,并主讲过一节密码学入门课。
  • 在课后编程俱乐部中,我设计 Scratch 活动,带领中小学生制作动画和小游戏。

面对基础和学习需求不同的学生,我逐渐学会设计多样化的材料,帮助他们在理论与实践之间建立联系。

编程入门教学

高中和大学期间,我曾为同学、朋友和低年级学生提供 Pascal、C++、Java、Python 与 Haskell 入门辅导。在大学期间,我还运营编程俱乐部,帮助国际学生巩固基础并适应全英文教学。

计算机科学入门之所以困难,往往是因为它要求学习者建立新的逻辑与抽象思维方式。因此,我的教学会循序渐进地培养计算思维,并把数据结构与算法同具体问题联系起来。


学生项目

我的主要兴趣是多目标优化、演化计算及其应用,也关注基于智能体的模型、人工生命、STSE(科学、技术、社会与环境)以及程序化内容生成。欢迎对这些方向感兴趣的学生联系我开展研究或编程项目。

1. 组合优化

  • 为单目标或多目标组合优化问题开发随机算法。
  • 在某类问题上比较算法,研究不同搜索算子在什么条件下有效。
  • 分析问题特性,并可视化算法或问题行为。
  • 可选问题包括背包问题、NK 景观、TSP、VRP/CVRP、JSSP/FJSSP、资源分配、QAP、装箱问题与旅行窃贼问题等。
  • 具有复杂适应度景观的连续问题,如 Gallagher 101 Peaks,也属于相关范围。

2. 多准则决策

  • 为决策者选择有代表性的解集,尤其是多目标数量较多时。
  • 通过少量简单的偏好问题,迅速定位一至三个合适方案。
  • 研究应在何时、以何种方式加入约束,从而简化决策。

3. 人工生命与基于智能体的建模

  • 通过简单智能体规则模拟股市崩盘、社会等级等涌现现象。
  • 模拟生命史演化等演化系统。
  • 模拟某一物种的生存或演化,并从人工生命与 STSE 的交叉视角讨论其与人类活动的关系。

4. 艺术与程序化内容生成

  • 使用混沌序列、分形或种群算法生成非平凡的视觉图案。
  • 使用多智能体或多目标种群算法生成故事。
  • 开发或扩展 Ink、Tracery 等内容生成平台。