Week 9
Major Software Project
35%
团队或个人独立开发一个复杂的 Java 应用程序(如游戏),重点考核设计模式的合理应用与架构文档。
COMP2511
课程定位 COMP2511 是 UNSW 计算机与软件工程专业的‘架构灵魂课’。如果说 COMP1511 是教你写代码,这门课则是教你写‘好代码’。它标志着你从单纯的程序员向‘软件架构师’的正式跨越。通过 Java 语言,这门课将带你深入设计模式、可扩展性原则及大型软件系统的构建哲学。它是后续所有高级软件工程及大厂架构面试的绝对母题。如果你想在大厂面试中谈论‘高内聚低耦合’,这门课是你的第一战场。 技术栈与学习内容 课程以 Java 为核心工具,重点攻克:面向对象三要素(封装、继承、多态)、SOLID 设计原则、常用的 23 种设计模式(如 Strategy, State, Observer, Decorator, Composite 等)、以及 Lambda 表达式与 Stream API。此外,课程强调自动化测试(JUnit)、版本控制(Git 进阶)及图形化建模(UML 图)。学生将学习如何重构混乱的代码库并设计出优雅、可维护的系统框架。 课程结构 10 周高强度理论与项目实操。前期聚焦 Java 基础与多态逻辑,中期深入设计模式全集(这是全课的核心也是考试的命脉),后期转向系统架构与综合项目。评估由每周的高压编程 Lab、一个权重极大且极其耗时的团队/个人大型项目(通常是开发一个复杂的塔防游戏或管理系统)、以及极其考察设计权衡能力的期末机考组成。该课极其强调‘设计图与代码的一致性’。 适合人群 计算机、软件工程大二学生。必须具备扎实的编程基础。如果你觉得自己的代码总是‘一团糟’、修改一个 Bug 会引发十个新 Bug,这门课将彻底拯救你的职业生涯。建议每周投入 20 小时以上进行架构拆解与代码重构。
Course decision
先看考核重心、截止节奏和入门要求,再决定这门课是否适合你的学期安排。
考核总权重
100%
3 项考核
最高单项
50%
Final Lab Exam
期末考试
有
以官方 outline 为准
Hurdle
1 项
需要单独满足
Deadline map
按截止周排列作业节点;持续考核会保留在下方完整考核结构中。
Week 9
35%
团队或个人独立开发一个复杂的 Java 应用程序(如游戏),重点考核设计模式的合理应用与架构文档。
Week 10
15%
涵盖每章设计模式实现的编程挑战,强调测试驱动开发 (TDD)。
Week 11
50%
限时现场机考,要求根据复杂的需求变更,在 3 小时内完成代码重构与模式设计。
Syllabus
默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。
类与对象,Java 语法基础,类型系统,利用 Gradle 构建项目。
动态绑定机制,接口 vs 继承的权衡,Java 集合框架初步。
单一职责、开闭原则等五大核心准则,类图绘制规范与关联关系判定。
策略模式 (Strategy)、观察者模式 (Observer)、状态模式 (State) 深度解析。
装饰器模式 (Decorator)、组合模式 (Composite)、模板方法,代码重构技巧。
复习设计模式应用,冲刺大型软件项目 Milestone。
创建型模式全解析,抽象工厂应用,处理复杂的对象构建过程。
函数式编程初步,Java Streams 处理集合数据,防御性编程策略。
访问者模式 (Visitor)、中介者模式,Java 线程基础与同步挑战。
分层架构,全学期模式大闭环;机考真题演练与架构设计。
Assessment
Weekly Lab Tasks
涵盖每章设计模式实现的编程挑战,强调测试驱动开发 (TDD)。
Week 10
Major Software Project
团队或个人独立开发一个复杂的 Java 应用程序(如游戏),重点考核设计模式的合理应用与架构文档。
Week 9
Final Lab ExamHurdle
限时现场机考,要求根据复杂的需求变更,在 3 小时内完成代码重构与模式设计。
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)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。
我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。