Deloitte
6 位校友岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer
COMP2140
课程定位 COMP2140(Web/Mobile Programming)是 UQ 课程体系中兼顾理论与实践的一门中等课程,核心目标是把“会看懂”升级为“会分析、会实现、会解释”。课程通常承担承上启下作用:前接基础概念,后接更高阶专题或项目。对准备走软件、数据、工程或研究路径的同学来说,这类课程的价值不只在分数,更在于建立可迁移的方法框架和稳定交付能力。 技术栈与学习内容 学习内容通常覆盖该方向的关键概念、方法与工具链,并通过练习或作业落实到具体场景。常见会使用 Python、R、MATLAB、C/C++ 或课程指定软件(以官方课纲为准)。课程强调的不只是“得到答案”,还包括假设条件、步骤完整性、结果解释与复现性。也就是说,你需要同时训练知识准确度、实现质量和表达清晰度。 课程结构 课程一般按周推进,前段搭建概念框架,中段进入题型训练与案例应用,后段做综合整合与评估冲刺。考核常见组合为 Quiz/Lab、作业、报告和期末评估。评分不仅看正确率,也看分析逻辑、书写/代码规范与结论表达。多数同学真正拉开差距的阶段在中后期:是否能持续输出,而不是临近截止日突击。 适合人群 适合希望夯实底层能力、提升问题拆解与建模能力、并改善学术或工程表达的同学。若你计划继续修读高阶课程,或希望在实习与求职中提升“把事情做对并讲清楚”的竞争力,这门课很值得投入。建议每
Course decision
先看考核重心、截止节奏和入门要求,再决定这门课是否适合你的学期安排。
考核总权重
100%
4 项考核
最高单项
40%
Final Project/Exam
期末考试
有
以官方 outline 为准
Hurdle
1 项
需要单独满足
What you learn
学习成果来自官方 Unit Outline,关键词来自这门课的逐周主题。
Syllabus
默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。
### 💻 核心知识点:JavaScript 基础与函数式编程入门 本周开始构建 JavaScript 基础。课程聚焦函数式编程范式(Functional Programming),这与 CSSE1001 中的 OOP 思维有很大不同。 - **核心概念**: JavaScript syntax, let/const/var, arrow functions, first-class functions, higher-order functions (map, filter, reduce), immutability, pure functions, side effects ⏰ **本周节奏**: 难度 ⭐⭐ | 预计投入 8h(Lecture 2h + Practical 2h + 自学 2h + 编程练习 2h) 🎯 **考试关联**: 函数式编程核心概念(pure function、immutability)是考试基础 🧪 **Practical**: 用 map/filter/reduce 处理数组数据,对比 imperative vs functional 写法 📌 **作业关联**: 所有 assignments 都用 JavaScript,本周是基础 ⚠️ **易错点**: var 的 hoisting 和 scope 问题;箭头函数没有自己的 this;忘记 const 对象的属性仍可修改
### 💻 核心知识点:闭包、作用域与高级函数 本周深入 JavaScript 的核心机制:闭包(Closure)和作用域链。这是理解 JS 框架内部工作原理的关键。 - **核心概念**: Lexical scope, closure (函数 + 词法环境), IIFE (Immediately Invoked Function Expression), currying, partial application, function composition, module pattern ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 9h(Lecture 2h + Practical 2h + 自学 3h + 编程练习 2h) 🎯 **考试关联**: Closure 的行为分析(给定代码预测输出)是高频考题 🧪 **Practical**: 实现 curry 函数、compose 函数;用 closure 实现 counter 和 memoization 📌 **作业关联**: Assignment 1 通常会用到 closure 和 higher-order functions ⚠️ **易错点**: 循环中的 closure 陷阱(经典 setTimeout + var 问题);混淆 closure 中变量的引用 vs 值
### ⚡ 核心知识点:异步编程与事件循环 本周学习 JavaScript 异步编程模型。理解 Event Loop 是写好 JS 的关键 — 从 callback hell 到 Promise 到 async/await 的演进。 - **核心概念**: Callback functions, callback hell, Promise (pending/fulfilled/rejected), Promise chaining (.then/.catch/.finally), async/await syntax, Event Loop (call stack, task queue, microtask queue), fetch API ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Practical 2h + 自学 4h + 编程练习 2h)🔥 难度跳升 🎯 **考试关联**: Event Loop 的执行顺序分析(给定代码预测 console.log 顺序)是经典考题 🧪 **Practical**: 用 fetch + async/await 调用 REST API,处理成功/错误情况;分析 Event Loop 执行顺序 📌 **作业关联**: 后续项目中的 API 调用都需要异步编程 ⚠️ **易错点**: async 函数返回 Promise(不是直接值);忘记 await 导致拿到 Promise 对象而非数据;Promise.all 中一个 reject 全部失败
### 🌐 核心知识点:DOM 操作与浏览器事件 本周学习 JavaScript 与浏览器交互的核心机制 — DOM API 和事件处理。这是前端开发的基础。 - **核心概念**: Document Object Model (DOM tree), querySelector/querySelectorAll, createElement/appendChild, event listeners (addEventListener), event bubbling/capturing, event delegation, DOM diffing concept ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 9h(Lecture 2h + Practical 2h + 自学 3h + 编程练习 2h) 🎯 **考试关联**: Event bubbling/capturing 的执行顺序和 DOM 操作方法是常考内容 🧪 **Practical**: 用原生 JS 实现一个交互式 Todo List(CRUD + event delegation) 📌 **作业关联**: 理解 DOM 操作后才能理解 React 的 Virtual DOM 优化 ⚠️ **易错点**: innerHTML 赋值会清除所有子元素的事件监听器;频繁 DOM 操作导致性能问题(reflow/repaint)
### ⚛️ 核心知识点:React 基础 — 组件与 JSX 本周开始学习 React — 目前最流行的 UI 框架。从原生 DOM 操作过渡到声明式 UI,理解组件化思维。 - **核心概念**: React components (function components), JSX syntax, props, component composition, React.createElement under the hood, Create React App / Vite setup, conditional rendering ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 9h(Lecture 2h + Practical 2h + 自学 3h + React 项目搭建 2h) 🎯 **考试关联**: JSX 转换为 JavaScript 的过程、props 传递机制是考试重点 🧪 **Practical**: 用 React 重构之前的 Todo List,体会声明式 vs 命令式的区别 📌 **作业关联**: Project/Assignment 通常要求用 React 构建完整应用 ⚠️ **易错点**: JSX 不是 HTML — className 而非 class,htmlFor 而非 for;忘记 key prop 导致列表渲染 bug
### ⚛️ 核心知识点:React 状态管理 本周学习 React Hooks — 现代 React 的核心机制。useState 管理组件内部状态,useEffect 处理副作用。 - **核心概念**: useState hook (state, setState, functional update), useEffect hook (dependency array, cleanup function), lifting state up, controlled components (forms), React rendering cycle ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Practical 2h + 自学 4h + 项目开发 2h)🔥 核心周 🎯 **考试关联**: useEffect 的 dependency array 行为和 re-render 触发条件是高频考点 🧪 **Practical**: 实现带搜索/过滤功能的列表应用,练习 state 管理和 controlled input 📌 **作业关联**: 项目中的所有交互功能都依赖 state 管理 ⚠️ **易错点**: useEffect 空依赖数组 [] 只执行一次(mount);忘记 cleanup 函数导致内存泄漏;直接修改 state 对象(mutation)而非创建新对象
### 🔀 核心知识点:路由与单页面应用 本周学习 React Router 实现 SPA(Single Page Application)。理解客户端路由 vs 服务端路由的区别。 - **核心概念**: React Router (BrowserRouter, Route, Link, useNavigate, useParams), SPA vs MPA, client-side routing, nested routes, URL parameters, programmatic navigation ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 9h(Lecture 2h + Practical 2h + 自学 3h + 项目路由搭建 2h) 🎯 **考试关联**: SPA 的工作原理和 React Router 的使用模式可能考概念题 🧪 **Practical**: 为项目添加多页面路由(首页、详情页、关于页),实现 URL 参数传递 📌 **作业关联**: 项目需要多页面结构,本周建立路由框架 ⚠️ **易错点**: 刷新 SPA 页面得到 404(需要服务端配置 fallback);useNavigate 在非 Router 组件内调用报错
### 🔌 核心知识点:API 集成与数据获取 本周学习 React 应用如何与后端 API 交互。结合之前的 async/await 知识,在 React 中正确地获取和管理远程数据。 - **核心概念**: fetch/axios in React, useEffect for data fetching, loading/error states, REST API patterns (GET/POST/PUT/DELETE), JSON handling, CORS basics, custom hooks (useFetch) ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Practical 2h + 自学 3h + API 集成 3h) 🎯 **考试关联**: React 中 data fetching 的正确模式(useEffect + 清理)是考试重点 🧪 **Practical**: 对接公开 REST API(如天气/电影数据库),实现搜索、列表展示、详情查看 📌 **作业关联**: 项目中的动态数据必须通过 API 获取 ⚠️ **易错点**: useEffect 中 async 函数不能直接作为 effect(需要内部包一层);竞态条件(rapid navigation 导致过时的 fetch 结果覆盖最新数据)
### 📱 核心知识点:React Native 跨平台开发 本周进入 React Native — 用 JavaScript 构建原生移动应用。体会 "Learn once, write anywhere" 的哲学。 - **核心概念**: React Native vs React (View/Text/ScrollView vs div/span), StyleSheet API, Expo framework, platform-specific code, React Native navigation (Stack/Tab), mobile UI patterns ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Practical 2h + 自学 3h + RN 项目搭建 3h)🔥 新工具链 🎯 **考试关联**: React vs React Native 的差异对比是常考概念题 🧪 **Practical**: 用 Expo 搭建 React Native 项目,实现基本的列表页面 + 详情页面导航 📌 **作业关联**: 后续项目可能要求 web + mobile 双端实现 ⚠️ **易错点**: RN 没有 CSS — 用 StyleSheet.create;Flexbox 默认方向是 column(不是 row);Expo 和 bare RN 的差异
### 🔄 核心知识点:跨平台架构与状态共享 本周深入跨平台开发的架构挑战:如何在 Web 和 Mobile 间共享代码和状态。 - **核心概念**: Shared business logic, platform-specific UI, React Context API for global state, useReducer pattern, monorepo structure, code sharing strategies between web and native ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 10h(Lecture 2h + Practical 2h + 自学 3h + 项目开发 3h) 🎯 **考试关联**: Context API 的使用模式和跨平台架构选择是可能的考点 🧪 **Practical**: 用 Context API + useReducer 实现全局状态管理(如 auth state, theme) 📌 **作业关联**: 项目的状态管理架构在本周确定 ⚠️ **易错点**: Context 导致不必要的 re-render(所有 consumer 都会重渲染);useReducer 的 dispatch 是异步的
### 🧪 核心知识点:测试与质量保障 本周学习前端测试策略。写测试不是额外负担,而是保证代码质量和支持重构的关键。 - **核心概念**: Testing pyramid (unit/integration/e2e), Jest testing framework, React Testing Library, component testing (render, fireEvent, screen), snapshot testing, mocking API calls, test coverage ⏰ **本周节奏**: 难度 ⭐⭐⭐ | 预计投入 9h(Lecture 2h + Practical 2h + 自学 3h + 为项目写测试 2h) 🎯 **考试关联**: 测试策略选择和 Testing Library 的 query 方法是可能考点 🧪 **Practical**: 为之前的 React 组件写单元测试;mock API 调用测试 data fetching 逻辑 📌 **作业关联**: 最终项目可能要求包含测试覆盖率 ⚠️ **易错点**: snapshot 测试太脆弱(一点 UI 变动就 break);测试 implementation details 而非 behavior 导致维护成本高
### 🚀 核心知识点:项目优化、部署与课程回顾 最后一周完成项目的优化、部署和最终提交。回顾 JavaScript 函数式编程到 React/React Native 跨平台开发的完整旅程。 - **核心概念**: Performance optimization (React.memo, useMemo, useCallback), deployment (Vercel/Netlify for web, Expo for mobile), code review best practices, accessibility (a11y), responsive design ⏰ **本周节奏**: 难度 ⭐⭐⭐⭐ | 预计投入 12h(Lecture 2h + Practical 2h + 项目最终提交 8h)🔥 Final Project Due 🎯 **考试关联**: 性能优化 hooks 的使用场景和 deployment 流程可能出考题 🧪 **Practical**: 项目 demo 展示 + code review session 📌 **作业关联**: 最终项目提交截止 — 确保 web + mobile 都能正常运行 ⚠️ **易错点**: 过早优化(先让功能正确,再考虑性能);部署前忘记环境变量配置;mobile 端不同屏幕尺寸适配
Assessment
Assignment 1
中期作业,考察核心理论与实现能力。
Assignment 2 / Project
综合作业,要求模块化设计与质量保障。
Mid-Semester Quiz/Exam
阶段测验,验证前半学期关键知识。
Final Project/ExamHurdle
期末评估,强调问题拆解与工程交付。
建议 final 至少达到 45% 以确保通过课程
Assignments
COMP2140 Web/Mobile Programming 的核心模块实现与单元测试。
重点: 从需求拆解到可运行原型,重视代码风格和边界处理。
要求:提交可运行代码、README、关键设计说明。
⏱ 预计 22 小时
完成一个综合项目或系统扩展,并进行结果验证。
重点: 模块协作、性能/安全/可维护性权衡、测试覆盖。
要求:包含测试证据、架构说明、复盘文档。
⏱ 预计 30 小时
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)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。
我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。