菜单

系统化程序设计课程

相关源文件

本文档提供了关于OSSU计算机科学课程中系统化程序设计(SPD)课程实现的全面指南。它涵盖了课程设置、进度要求、技术配置和项目规范。

有关包含SPD在内的更广泛的核心编程课程的信息,请参阅 核心编程。有关一般入门指南,请参阅 入门指南

目的和概述

系统化程序设计课程由UBC开发,并通过edX提供,它教授系统化的编程方法,而不是侧重于特定的编程语言。该课程使用Dr. Racket和Beginning Student Language (BSL)来强调适用于各种编程语言的基本设计原则。

来源: coursepages/spd/README.md1-7

课程结构与进度

SPD课程遵循结构化的进度,分为多个阶段,并有特定的项目和里程碑。

课程进度流程

来源: coursepages/spd/README.md18-27

课程组成部分

组件描述位置
核心视频第一周A至第六周A内容edX平台
题库额外的练习题edX平台
太空侵略者中期项目spd-starters/final/space-invaders-starter.rkt
进阶视频第六周B及之后内容edX平台
额外内容补充视频播放列表YouTube
TA求解器期末项目spd-starters/final/ta-solver-starter.rkt

来源: coursepages/spd/README.md19-25

技术设置与配置

Dr. Racket环境设置

来源: coursepages/spd/README.md35-46

语言配置过程

该课程需要特定的Dr. Racket配置以匹配课程表示法

  1. 语言选择:菜单栏 → 语言 → 选择语言
  2. 语言类型:选择BSL、ISL或适当的变体
  3. 常量风格:显示详细信息 → 选择 true false empty
  4. 编辑器偏好设置:启用自动括号、方括号和引号

来源: coursepages/spd/README.md35-41

课程项目与作业

太空侵略者项目

太空侵略者项目是两个主要课程部分之间的中期里程碑

  • 位置spd-starters/final/space-invaders-starter.rkt
  • 说明space-invaders-instructions.png
  • 演示:可通过YouTube视频观看
  • 时间:第六周A之后完成

来源: coursepages/spd/README.md20-21

TA求解器项目

TA求解器是最后的顶点项目

  • 位置spd-starters/final/ta-solver-starter.rkt
  • 说明:嵌入在启动文件中
  • 时间:所有课程模块完成后完成

来源: coursepages/spd/README.md23-24

启动文件仓库结构

来源: coursepages/spd/README.md25-26

课程访问与平台问题

OSSU课程特别推荐已存档的edX版本,原因如下

  • 免费访问:内容访问无需付费
  • 完整材料:所有课程材料均可用
  • 更好的导航:更易于访问课程信息
  • 无提交压力:专注于学习而非截止日期

来源: coursepages/spd/README.md16-18 coursepages/spd/README.md67-82

平台限制与变通方法

限制变通方法
启动文件链接损坏spd-starters 仓库下载
无练习提交使用“显示答案”进行自我检查
无题库提交与提供的示例解决方案进行比较
视频访问问题提供备用YouTube频道

来源: coursepages/spd/README.md25-27 coursepages/spd/README.md47-48

社区支持与资源

Discord支持频道

该课程为不同课程阶段提供专门的Discord频道

  • 第一周A-第六周A支持https://discord.gg/RfqAmGJ
  • 第六周B+支持https://discord.gg/kczJzpm

来源: coursepages/spd/README.md29-31

测试与开发支持

对于需要随机值测试的函数,课程提供

  • 函数check-random
  • 文档:可在Racket文档中找到
  • 用例:太空侵略者项目必需

来源: coursepages/spd/README.md97-99

常见问题

课程方法论与语言选择

为什么选择BSL而不是行业标准语言?

该课程出于几个教学原因故意使用BSL

  1. 关注概念:消除语言特定的语法干扰
  2. 通用原则:教授适用于任何语言的设计模式
  3. 学术基础:Lisp作为计算机科学研究的通用语言
  4. 干净的环境:消除有关编译、运行时问题和风格的顾虑

来源: coursepages/spd/README.md57-65

课程替代方案与证书

SPD与How To Code (HTC)版本对比

  • 为获取知识:学习SPD(免费,已存档版本)
  • 为获取证书:学习HTC(活跃课程,需付费)
  • OSSU推荐:SPD为课程要求提供足够的知识

来源: coursepages/spd/README.md67-87

技术要求与兼容性

可以使用其他IDE吗?

课程强烈推荐Dr. Racket,因为

  • 丰富的内​​容:程序嵌入图片和富文本块
  • 文件兼容性:其他IDE无法打开课程特定的文件格式
  • 设置复杂性:为其他IDE准备文件无论如何都需要Dr. Racket

来源: coursepages/spd/README.md93-95

课程与OSSU课程的整合

SPD课程在OSSU核心编程序列中起着至关重要的作用,它提供了

  • 设计方法论:程序构建的系统化方法
  • 函数式编程:函数式编程概念入门
  • 问题解决框架:分解复杂问题的结构化方法
  • 高级主题基础:为后续编程课程做准备

来源: coursepages/spd/README.md5-6 coursepages/spd/README.md51-65