Week 10
Weekly Coding Lab Challenges
25%
涵盖每章函数式逻辑实现的编程任务,强调代码的优雅度与测试覆盖率。
COMP3141
课程定位 COMP3141 是 UNSW 计算机专业最具‘极客灵魂’的高阶设计课。如果说 COMP2511 是教你如何用面向对象(OOP)做设计,这门课则是教你如何利用‘函数式编程 (Functional Programming)’与‘强类型系统’构建无 Bug、可证明的系统。它解决了大规模软件开发中最根本的痛点:如何通过类型设计而非冗余测试来消灭错误。它是通往高级编译器开发、分布式架构及顶级科技公司(如 Jane Street, Google)研发岗位的必经之路。 技术栈与学习内容 课程以 Haskell 为核心载体,深度攻克:代数数据类型 (Algebraic Data Types)、高阶函数、Monads(这是全课最难也最核心的概念)、基于类型的属性测试 (Property-based Testing with QuickCheck)、类型级编程、以及软件正确性的形式化证明基础。此外,课程强调‘声明式设计’,要求学生利用函数式思维重构传统的命令式算法。学生将学习如何利用范畴论(Category Theory)的直觉来设计极其稳健的软件接口。 课程结构 10 周极致脑力训练。前期扫盲 Haskell 语法与递归思维,中期全面攻克 Monads 与副作用管理(这是分水岭),后期转向大规模系统的属性驱动开发。评估体系极其硬核:包含每周的‘智力竞赛’级别 Lab、一个要求极高抽象能力的个人/小组项目(Assignment,通常涉及编写一个领域特定语言 DSL 或复杂的编译器后端)、以及一场极其考验逻辑推演能力的期末笔试。该课极其看重‘代码的简洁度与数学美感’。 适合人群 计算机专业大三学生、数学爱好者。如果你觉得主流语言太笨重、渴望探索计算的数学本质,这门课会彻底重塑你的编程观。建议每周投入 20 小时以上,做好‘换脑’的心理准备。
Course decision
先看考核重心、截止节奏和入门要求,再决定这门课是否适合你的学期安排。
考核总权重
100%
3 项考核
最高单项
40%
Final Examination
期末考试
有
以官方 outline 为准
Hurdle
1 项
需要单独满足
Deadline map
按截止周排列作业节点;持续考核会保留在下方完整考核结构中。
Week 10
25%
涵盖每章函数式逻辑实现的编程任务,强调代码的优雅度与测试覆盖率。
Week 11
40%
考察类型推导、Monad 组合及属性测试定义的深度笔试,含大量手写 Haskell 证明。
Syllabus
默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。
纯函数定义,惰性求职 (Lazy Evaluation),Haskell 类型系统扫盲,递归与模式匹配。
Sum types 与 Product types,构造健壮的域模型,消灭非法状态的代码设计技巧。
Map, Filter, Fold (Left/Right) 的深度推导,函数柯里化 (Currying) 与组合 (Composition)。
Eq, Ord, Show 协议,Functor 范畴论背景,利用类型类实现灵活的接口扩展。
上下文计算模型,Do-notation,处理可选值 (Maybe) 与错误 (Either) 的 Monad 逻辑。
复习递归与 ADT,冲刺第一个编译器设计 Assignment,练习类型推演。
State Monad, IO Monad, 纯净世界与肮脏世界的隔离边界设计。
Property-based Testing 原理,如何通过随机化测试证明算法的通用正确性。
利用函数组合构建复杂的文本解析器,实现简单的领域特定语言 (DSL)。
类型驱动设计 (Type-driven Design) 实战;全学期函数式思维大复盘。
Assessment
Weekly Coding Lab Challenges
涵盖每章函数式逻辑实现的编程任务,强调代码的优雅度与测试覆盖率。
Week 10
Software Implementation Project
独立或小组实现一个复杂系统(如一个小型的图处理库或解释器),重点考核类型设计。
Final ExaminationHurdle
考察类型推导、Monad 组合及属性测试定义的深度笔试,含大量手写 Haskell 证明。
Week 11
From Seniors
基础信息谁都查得到,真正值钱的是过来人的经验。
比你早一年的学长留下的真实经验 —— ChatGPT 给不了。
这门课还没有学长经验,你可以是第一个 —— 注册后在课内分享。
这门课暂无往年考点记录。
下面是匠人学院毕业生整体去过的公司分布(来自脱敏校友证言)。这是全平台的总体去向,不代表选这门课的人一定去这些公司。
统计自 317 份脱敏校友证言
岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer
岗位:Frontend Dev · junior frontend developer · Front-end Developer · Full Stack Developer
岗位:Full-stack Developer · Data Engineer · Consultant
关于这块数据,我们说实话
雇主墙来自脱敏毕业生证言(testimonials)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。
我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。