课程大纲

这是2021年的课程网页。2022页是在这里.

lp2 HT21(7.5马力)

该课程由计算机科学与工程系提供。

这是一门新课程,现在是第一次开设。因此,该网页尚未完成。但在2021年11月2日课程开始之前,它将包含所有重要信息。

链接

教师

  • 审查员:阿内·兰塔
  • 监督员:Arianna Masciolini、William Au kvist

联系老师的最佳方式是通过我们的Slack频道(即将推出)

课程目的

本课程面向已完成编程入门课程的学生。如果该课程是用Python编写的(例如Chalmers的DAT455或TIN214),那么一开始就会有一些重复。原因是,对于具有不同背景的学生,例如Java课程,也可以访问该课程。前两节课将是一个快速的“速成课程”,向那些已经知道编程,但不知道Python语法的人简要介绍Python。

之后,本课程将继续学习Python的更高级功能,尤其是更高级的应用程序。最终目标是以一系列实验室的形式涵盖“全栈开发”的所有方面,最终形成一个具有前端、后端和数据库的web应用程序。 

时间表

官方时间表在

时间编辑

它给出了时间和地点。但我们也将通过提供录音和其他材料来支持远程参与。这些链接将在公告中提供,这限制了注册用户的访问权限。

唯一强制参加的是一月份的考试——所有其他部分都可以通过互联网制作,大部分都可以通过这个画布页面制作。 

课程文献

我们将在这里列出一些推荐书籍和网络文档,但没有一本官方必读书籍。 

Python的官方文档

https://docs.python.org/3/

将用作标准参考。本课程的目标之一是清晰地了解Python语言及其标准库中的所有内容,并能够在高级水平上阅读技术文档。

课程设计

本课程包括

  • 讲座
  • 运动课
  • 个人监督
  • 讨论论坛(Slack)
  • 提交作业(“实验”)并评分-由每个学生单独完成
  • 考试

讲座和实验室时间表

下表列出了课程主要活动的时间表(注:初步)

日期、时间、地点 事件 笔记
HC2,2011年2月11日,星期二,10-12 第1讲:Python概述和教程I
2011年3月11日星期三,10-12,SB-L400 锻炼
HA4年4月11日星期四,10-12 第二讲:Python概述和教程II
9/11,10-12,星期二,HC2 第三讲:信息提取方法 为实验室1做好准备
2011年10月10日至12日,星期三 锻炼
11月11日星期四,10-12,HB4 第四讲:图形算法
11月16日,星期二,10-12,HC2 第五讲:Python数据模型,面向对象设计I
2011年11月17日星期三,10-12 锻炼
HA4年11月18日至12日(星期四) 第六讲:面向对象设计II 为实验2做好准备
2011年3月24日 实验1截止日期
第22-26/11周 讲座休息时间 在实验室工作的时间
HC4,2011年10月12日,星期二30/11 第7讲:可视化
2012年1月10日至12日,星期三 锻炼
2012年2月2日星期四,10-12,HB4 第八讲:网络编程
2012年6月1日 实验2截止日期
HC2,7月12日,星期二,10-12 第九讲:服务器端网络编程;全套开发I 为实验3做好准备
2012年8月10日至12日,星期三 锻炼
2012年9月10日至12日星期四,HB4 第十讲:全面发展II;额外的实验主题图形着色
HB4,10-12,14/12,周二 第11讲:Yinan Yu(Chalmers,无症状ai、和艾希亚斯),“全栈深度学习”; 额外的实验室主题机器学习 准备进行额外的实验室
12月15日星期三,10-12 锻炼
12月16日星期四,10-12,HB1 第十二讲:模拟试题形式的重复; 约翰·卡米莱里客座演讲(文本AB数字Grammars AB), "Python在现实世界中的应用”。
12月22日星期三 实验3截止日期
2022年5月1日星期三 额外实验截止日期
10月1日,14-18日,星期一,约翰内伯格 考试
12月1日星期三 实验室重新提交的最后期限

实验室

该实验室包括构建一个用于公共交通网络中路线查找的web应用程序,以哥德堡有轨电车系统为例;见下图。该应用程序允许查询网络,例如查询从一个地方到另一个地方的最短或最快路线。最终应用将通过哥德堡有轨电车网络进行演示,但其背后的软件将更加通用,不仅适用于交通网络,还适用于多种图形。

这个实验室分为三个部分,每个部分在各自的截止日期前分别提交。在每个实验室工作之前的三堂课将介绍工作的理论背景和技术前提。

  • 实验1(1-3课):信息提取收集并合并来自不同来源(文件、web查询)和格式(疼痛文本、Json)的数据。这是一个查找和使用Python相关函数和库的练习。它将提供完整应用程序的数据库部分。
  • 实验2(第4-6课):图类和算法实现一个适用于图形分析任务的概念库-将传输网络作为重点,但不是唯一的应用程序。同时,这也是面向对象设计(类、方法、封装、继承、建模)中的一项重要练习。它将提供完整应用程序的后端部分。
  • 实验3(第7-9课):Web应用程序。构建web服务器和用户界面,用户可以在其中查找传输网络中的路由。这需要学习可视化库和web应用程序框架。它将提供完整应用程序的前端部分,并将所有组件放在一起。

哥德堡有轨电车网络(图片由Bengt Inge Larsson-Eget arbete拍摄,CC by-SA 4.0,https://commons.wikimedia.org/w/index.php?curid=92652381)

哥德堡_spárvägsnät.svg

这三个实验室对每个人来说都是必修的,对通过考试的3年级学生来说足够了。对于更高的分数,可以提交额外的实验室——基本上,四年级一个实验室,五年级两个实验室。这些实验室可能的主题包括:

  • 一种图形着色算法:用给定的颜色给地图着色。
  • 群集:一种无监督机器学习技术,用于查找图形中可区分的部分。 
  • 普通实验室的额外零件:按照每个实验室的指示,更容易地做某些事情或使用现成的解决方案。

但我们也欢迎课程参与者的建议。前面提到过以下主题,但我们没有时间在课堂上讨论它们,而普通实验室中的额外部分增加了:

  • Python程序的调用图:查找函数和类之间的依赖关系
  • 关于WikiData的推理:从维基百科的图形数据库中查找和可视化信息。

当然,这些仍然很好地说明了用图形可以做什么。

学习目标和教学大纲

学习目标:

知识和理解:

  • 认识Python的所有构造及其背后的设计选择
  • 解释模块化和可伸缩编程中的设计备选方案

技能和能力:

  • 为复杂任务创建组织良好的软件项目
  • 阅读和分析他人编写的代码
  • 为合作项目做出贡献
  • 使用标准库执行高级任务
  • 应用测试方法保证代码质量
  • 编写不同详细程度的代码文档

判断和方法:

  • 软件设计选择的原因
  • 评估编程任务的复杂性

Studieportalen教学大纲链接:

研究计划

检查表

最重要的部分是实验室,将共同组成一个项目。本项目有必修部分,足以满足3级学生的要求,有选修部分可供4级和5级学生使用。

考试将测试通过做实验获得的知识。它将有专门针对3、4和5级的问题。期末成绩要求该分数的实验室和考试均被接受。

实验可以成对进行,而考试是单独进行的。禁止从实验室中的其他组(对或个人)复制。

 

 

课程总结:

日期 细节 到期