评课:CS3103 CS3342 CS3402 GE2262 CB2400 CB2500 (Semester B 2023/2024)
你怎么知道我大二两个学期全满绩?此事在 Dean’s List 中亦有记载。
书承 2023/24 Sem A 的评课,这里继续 Sem B 的评课。
另外,除了下面列出的参考资料,我在 mojimoon/CityU-CS 也整理了自己的笔记和部分项目,欢迎 Star。
CS3103 Operating Systems
- Introduction
- User Mode & Kernel Mode
- Monolithic Kernel & Microkernel
- System Calls & API
- Processes
- Process Control Block
- Inter-Process Communication
- Threads
- Multi-threading Models
- Context Switching, pthread
- CPU Scheduling
- FCFS, SJF/SRTF, RR, Priority, CFS
- Synchronization
- Critical Section Problem
- Mutex, Semaphore, Condition Variable
- Classic Problems: Producer-Consumer, Readers-Writers, Dining Philosophers
- Deadlocks
- Necessary Conditions: Mutual Exclusion, Hold and Wait, No Preemption, Circular Wait
- Resource Allocation Graph
- Deadlock Prevention, Avoidance, Detection, Recovery
- Banker’s Algorithm
- Memory Management
- Logical vs. Physical Address Space
- Paging, Segmentation
- Page Table, TLB
- Page Replacement
- Optimal, FIFO, LRU, Clock
- Working Set Model
- File System
- File, Directory, Metadata
- Directory Structure: Single-Level, Two-Level, Tree-Structured, Acyclic-Graph
- File Allocation: Contiguous, Linked, Indexed
- Free Space Management: Bitmap, Linked List, Grouping, Counting
- Storage
- Magnetic Disk, SSD
- Disk Scheduling: FCFS, SSTF, SCAN, C-SCAN, C-LOOK
- Flash Translation Layer: Address Mapping, Wear Leveling, Garbage Collection
- Continuous Assessment (40%)
- 7 Tutorials (4%)
- 2 Individual Assignments (10%)
- Midterm Test (16%)
- Group Project (10% + 5% bonus)
- Final Examination (60%)
众所周知,Computer Science 这个专业主要学习的是计算机理论而非怎么写代码。Operating Systems 很大程度上是上学期 CS2115 Computer Organization 的延续,好消息:你不用背逻辑门电路了;坏消息:你要理解更加抽象的概念。
OS 作为硬件与软件之间的桥梁,其设计同时服务于两者。从课程大纲来看,这门课主要涵盖两个方面,进程管理与内存管理。进程、线程、调度、同步、死锁主要管理软件资源的分配,但根本目的是提高硬件(CPU、内存、I/O)的利用率;内存管理、分页、文件系统、存储等功能将硬件资源抽象为逻辑资源,使得软件可以更方便地访问硬件。而调度、死锁检测/避免、页面置换、磁盘调度涉及了多种算法,如何均衡性能与公平性是 OS 设计的核心问题。
当然,做这些总结,不是让你从零开始写一个 OS 出来,而是希望你能理解,这些知识本质上串连在一起,是为了解决一个问题:如何更好地利用硬件资源,为软件提供服务。由于 OS 的高度抽象性,解决 OS 的问题的一个重要方法就是推广(generalization),从小规模输入推广到一般情况。而在期中期末考试中,也都涉及了推广的问题 —— 比如,将 Peterson’s Algorithm 推广到 3 个进程的情况,以及解决 Philosopher’s Dining Problem 的一般方法。
Tutorials 共有 7 节,内容如下:
- Getting Started With Linux
- The Process (OSTEP Ch. 4)
- Threads (OSTEP Ch. 26)
- CPU Scheduling (OSTEP Ch. 7)
- Condition Variables (OSTEP Ch. 30)
- Deadlocks (OSTEP Ch. 32)
- Paging (OSTEP Ch. 18, 20)
后 6 节 Tutorials 均取自《Operating Systems: Three Easy Pieces》(OSTEP),这本书是一本开源的 OS 教材,中文版链接。课后作业也是基于 OSTEP 的练习题,虽然网上有答案,但都是前人讨论的成果,不保证正确,还请自行斟酌。(Deadline 为 Tutorial 当周周日)
Individual Assignments 有两次,分别是:
- 线程、CPU 调度、同步(Week 5,Deadline Week 7)
- 死锁、内存管理、页面置换、文件系统(Week 9,Deadline Week 12)
题目阅读材料量较大,但耐心看完后难度不大。
Group Project 是整个课程难度最高的重头戏,分为 A、B 两种题目。
- A 题目较简单,满分 10%,选择 A 题目则总评不会高于 Grade A。
- 两个问题,均关于多线程同步(高精度加法器,读写锁)
- B 题目较难,满分 10% + 5% bonus,在有 bonus 的情况下,Continuous Assessment 的分数不能超过 40%。
- 两个问题,其一关于 CPU 调度(Priority Scheduling),其二关于文件系统(Named PIPE 实现)
- 需要本地 Linux 环境
- 修改 basekernel (一个带有 GUI 的简易内核)以实现题目要求
- 2-3 人一组,提交全部源码和报告,报告要求详细描述设计思路、实现细节、测试结果等。
- Deadline 为 Week 13,时间非常紧张,虽然我们在最后一周才开始动手,但请务必提前准备(建议把两个问题分配给不同人,然后用 Git 合并)。
Midterm Test 为闭卷考试(Week 8,2 小时),涵盖 1-5 章内容。
Final Examination 为闭卷考试(2 小时)。
CS3342 Software Design
- Introduction
- Software Development Process
- Linear (Waterfall), Incremental, Evolutionary (Prototype, Spiral), CBSE
- OO Programming Concepts
- Classes, Objects, Inheritance, Encapsulation, Interfaces, Polymorphism
- Roles of Variables
- Use Case Diagram
- Class Diagram
- Association, Aggregation, Composition
- Sequence Diagram
- Design Principles
- High Cohesion: SRP, LSP, ISP
- Loose Coupling: DIP, OCP, LoD
- Design Patterns
- Creational: Singleton, Abstract Factory
- Structural: Facade
- Behavioral: Observer, State/Strategy, Command (Undo/Redo)
- Software Ethics
- Continuous Assessment (50%)
- Individual Assignment (15%)
- Midterm Test (15%)
- Group Project (20%)
- Final Examination (50%)
虽然名字里带了 Software Design,但这门课的主要内容也不是敲代码 —— 虽然设计模式和设计原则的部分也确实在教你怎么写代码。说到软件工程,「工程」就意味着得有计划、有步骤、有规范。软件工程师的「蓝图」就是 UML 图,而 class diagram、sequence diagram、use case diagram 就是这个蓝图的一部分。你必须学会用 Visual Paradigm 和手绘画规范的 UML 图,这可比代码难多了。
回到正题。Waterfall model 将软件开发过程分为 Requirement Analysis、System Design、Implementation、Testing、Maintenance 五个阶段,这门课主要涉及前三个阶段。
Requirement Analysis 阶段,了解用户的需求,然后将其转化为 Use Case Diagram 和 Use Case Specification。前者描述一个系统中各种 use case 之间的关系,后者则详细描述每个 use case 的行为。
System Design 阶段,将 Use case 转化为可实现的 Class Diagram 和 Sequence Diagram。前者描述系统中各个类之间的关系,后者描述系统中各个类之间的交互。在系统设计时,可能需要不断更新图表,以适应需求的变化(好在 VP 有版本控制)。类与类之间的关系除了 Inheritance (is-a)、Aggregation (has-a)、Composition (contains-a) 外,还有 Dependency(A depends on B)、Association(A knows B)、Realization(A implements B),这也是为什么要复习 OO Programming Concepts。(注意箭头的方向)Sequence Diagram 则提供了类与类之间的交互细节,可以从中观察实现的可行性和内存泄漏等问题。
Implementation 阶段,将设计转化为代码。要使得代码可维护、可扩展,就需要遵循设计原则和设计模式,而这些部分在 UML 图中就应该有所体现。设计原则是为了使得代码更加灵活,而设计模式则是针对特定问题、践行设计原则的解决方案。例如,State Pattern 是 OCP 的体现,以避免 if-else 的嵌套;Observer Pattern 是 LoD 的体现,以降低类之间的耦合度。
高情商地说,本课的 Tutorials 十分冗余,尽管提供了不少案例和习题。
Individual Assignment 涵盖 1-8 章内容,Deadline 为 Week 9 周一。工作量比较大,甚至还包括一篇关于 Agile 的小论文。不过核心部分还是画三种图。
Group Project 6 人一组,分数包括 5% presentation 和 15% report。
- 在学期开始时就要组队选题,题目可以是任何软件系统,但规模不宜过大。最终系统以约 5 个子系统为宜。
- 项目只包括 Requirement Analysis 和 System Design 阶段,不需要实现代码。
- 项目报告包括 Project Introduction、Use Case Diagrams and Specifications、Class Diagrams、Sequence Diagrams、Prototype、Conclusion and Future Work 等部分。其中 Prototype 部分需要 Web 或 App 的原型设计,可以使用 Figma 等 UI 设计工具。
- Presentation 的时间为 15 分钟 + 5 分钟 Q&A,Week 13。Presentation 也需要涵盖 Report 中的所有部分。
- Report 的 Deadline 为 Week 14。
- 我个人的经验是:Sequence Diagram 仅反映系统内的交互,不需要囊括和用户、数据库等外部系统的交互的全部细节。
Midterm Test 为闭卷考试(Week 11,1 小时),涵盖 2-9 章内容。
Final Examination 为闭卷考试(2 小时),注意有 5% 的 Software Ethics 部分,要背 ACM Code of Ethics 中的 8 条原则。
- overleaf(LaTeX 在线编辑器)
- 推荐使用 LaTeX 在线编辑器主要出于三个考虑 —— 一是本地 TeX 环境配置较为繁琐,二是支持多人协作,三是可以直接导出 PDF。
- 但 overleaf 免费版有编译时间限制,我们最终使用 TexPage 导出 PDF。
- Penetration Test Report Template, Github(我们的 Report 模板)
CS3402 Database Systems
- Introduction
- Database, DBMS, Data Abstraction and Independence
- Data Models, E/R Model
- Relational Model
- Cardinality and Participation Constraints, (min, max) notation
- Relation, Relational Schema
- From E/R Model to Relational Model
- Integrity Constraints
- Domain, Key, Foreign Key, Referential Integrity Constraint
- Superkey, Candidate Key, Primary Key
- Functional Dependency, Inference Rules
- Normal Forms
- 1NF: Atomicity
- 2NF: Full Functional Dependency
- 3NF: Transitive Dependency
- BCNF
- SQL
- DDL, DML, DCL
- SELECT, INSERT, UPDATE, DELETE
- JOIN, Subquery, View
- Relational Algebra
- Selection (σ), Projection (π), Union (∪), Intersection (∩), Difference (-), Cartesian Product (×)
- Join (⋈), Division (÷)
- Files and Hashed Files
- Disk Storage, File Organization (Unordered, Ordered, Hashed)
- Hashing, Extendible Hashing
- Indexing Techniques
- Primary Index, Secondary Index, Cluster Index
- B+ Tree
- Transaction Management
- Conflict Serializability
- Recoverability: Non-recoverable, Recoverable, Cascadeless, Strict
- Concurrency Control
- Locking, Two-Phase Locking (B2PL, S2PL, C2PL)
- Deadlock prevention (wait-die, wound-wait), detection (wait-for graph)
- Continuous Assessment (40%)
- 3 Homework (15%)
- Midterm Test (25%)
- Lab Participation (3% bonus)
- Final Examination (60%)
说到数据库,你可能会想到 SQL,但 SQL 只是数据库的一部分。Relational Algebra 可用于优化 SQL 查询,而 Transaction Management 和 Concurrency Control 则是 DBMS 的一大核心功能。Files and Hashed Files 和 Indexing Techniques 构成了 Conceptual/Internal Mapping,帮助我们理解 DBMS 是如何存储数据的。
System Design 的一大难点是设计数据库。不只是很难确定哪些数据需要存储,还要考虑数据之间的关系,以实现完整性、一致性、可靠性。这就是一套系统的数据模型设计的重要性。E/R Model 来源于对实体的抽象,Relational Model 则将前者转化为易于存储的关系。Integrity Constraints 保证了数据的完整性,Normal Forms 则减少了数据冗余,提高了数据的一致性。1NF、2NF、3NF 分别避免了数据的多值依赖、部分依赖、传递依赖,BCNF 则是 3NF 的加强版。Functional Dependency 描述了数据之间的依赖关系,为 normalization 提供了依据。
SQL 的基础并不难,但由于其有限的语法,有些自然语言能描述的问题可能需要嵌套多个子查询才能解决。Relational Algebra 则是 SQL 的理论基础,也引入了新的运算(÷,在 SQL 中通常需要用双重 NOT EXISTS 来实现)。
为了提高数据库的性能,在物理层面,Extendible Hashing 解决了 Hashing 难以扩展的问题,B+ Tree 则是一种高效的索引结构。虽然 B+ Tree 看起来像是从 CS3334 Data Structures 中跑过来的,但其对 I/O 的优化使得其在数据库中有着广泛的应用(应该说,B Tree 本身就是为数据库设计的)。为了进一步提高在生产环境中的性能,Transaction Management 让操作在互不干扰的情况下尽可能并行执行,要注意 Serializability 和 Recoverability 是两个完全不同的概念 —— Conflict Serializable 不一定是 Recoverable,反之亦然。Locking 是最常见的 Concurrency Control 方法,但也容易导致 Deadlock,因此需要其他手段来预防和检测 Deadlock,比如基于 Timestamp 的方法;通过 2-phase Locking 规定获取和释放锁的顺序,可以减少或避免 Deadlock 的发生,但也可能导致 Starvation。
本课的 Labs 是用 ORACLE SQL*Plus 进行实验,但在期中考前就讲完 SQL,期中考后才开始 Lab 的设置之下,很难说有多大帮助。6 次 Lab 出勤 5 次可以获得 3% bonus。
每节 Lecture 都是 2 小时课程 + 1 小时练习,外加整个学期额外的 SQL 练习,习题量应该是足够的。SQL 有 Online Judge(但是除了能用,啥也没有,颇像我实习写出来的 Vue 项目),没有语法高亮,不支持 LIMIT(因为这不是 SQL 标准)。
Homework 有 3 次,分别涵盖 1-4、5-6、7-10 章内容,Deadline 为 Week 5、Week 9、Week 13 的周一,每次作业只有一周时间。
Midterm Test 为开卷考试(Week 7,2 小时,可带任意纸质资料),涵盖 1-5 章内容。期中的 SQL 题比期末难。
Final Examination 为开卷考试(2 小时,可带任意纸质资料),以 6-10 章内容为主。
- Serializability & Recoverability(Transaction Schedule 分析工具)
- B+ Tree 可视化工具:1 2
网上并没有很好的 SQL 练习题,以及 SQL 和 Relational Algebra 的转换工具。不过,很容易自己出题,在我的笔记中能找到一些题目。
GE2262/CB2200 Business Statistics
- Introduction
- Descriptive Statistics, Inferential Statistics, Population Parameter, Sample Statistic
- Graphs: Bar Chart, Pie Chart, Histogram, Box Plot
- Tendency: Mean, Median, Mode
- Dispersion: Range, Variance, Standard Deviation
- Distribution: Quartiles, IQR, Skewness
- Basic Probability
- Sample Space, Event, Probability
- Addition Rule, Multiplication Rule
- Conditional Probability, Independent Events
- Probability Distributions
- Discrete: Binomial
- Continuous: Normal
- Sampling Distribution
- Central Limit Theorem
- Sampling Distribution of Sample Mean
- Confidence Interval Estimation
- Level of Confidence, Margin of Error
- Confidence Interval for Population Mean
- Sample Size Determination
- Hypothesis Testing
- H0 (Null Hypothesis), H1 (Alternative Hypothesis)
- Type I Error (α), Type II Error (β)
- t-dist, z-dist
- Critical Value, p-value
- Inference for the Proportion
- Sample Proportion, Confidence Interval, Hypothesis Testing
- Simple Linear Regression
- Covariance, Coefficient of Correlation
- Least Squares Method, Regression Line
- Coefficient of Determination, Residual Analysis
- Slope Test, Slope Confidence Interval
- Continuous Assessment (50%)
- 4 Quizzes (20%)
- 2 Assignments (30%)
- Final Examination (50%)
正如名字所示,Business Statistics 是一门统计学课程,一门非常公式的课程。作为相关专业的入门课,难度实在有限,这也导致本课竞争激烈。
统计学的一个核心问题是 Sample vs. Population,即如何通过样本估计总体参数。从第一节课开始就务必要注意,受 degree of freedom 的影响,许多公式在 sample 和 population 之间有所不同,也要注意仔细读题,确认题目给出的数据是 sample 还是 population。
Introduction 探讨了统计学的基本概念,包括描述统计和推断统计,以及常见的图表和统计量。注意期末考有 10% 的分数是关于图表的,让你描述一张图表哪里好,哪里可以改进。Probability Theory 是统计学的基础,但是实在有些太过浅显,连组合数学的知识都没有涉及。Probability Distributions 介绍了最常见的离散和连续分布,分别是 Binomial 和 Normal。本课中的大部分分布都会被近似为正态分布。
Sampling Distribution 是将 sample statistic 转化为 population parameter 的关键,Central Limit Theorem 说明了 sample mean 的分布是正态分布,不管 population 是什么分布。Confidence interval 以一定信度给出了 population parameter 的估计区间,Hypothesis Testing 则是判断 sample statistic 是否与 population parameter 有显著差异。这些题目都不难,但在解答大题过程中务必要注意两个细节:(1) CLT 的使用条件,(2) z-dist 和 t-dist 的选择。另外,可以通过 CI 的 Margin of Error 来反推出 Sample Size,此时一定使用 z-dist,因为 t-dist 会导致方程难以求解。
Sample Proportion 是样本的另一个重要统计量,其 Confidence Interval 和 Hypothesis Testing 与 Population Mean 类似,但是计算方法有所不同。其对应的总体参数就是概率。其总是使用 z-dist,因为 Sample Proportion 的分布是二项分布,其 standard deviation 也使用 p 推导。
Simple Linear Regression 先是用散点图引出 Covariance 和 r,然后通过 Least Squares Method 求出回归线,最后通过 Residual Analysis 检验回归线的拟合程度。Slope Test 和 Slope Confidence Interval 用于检验回归线的斜率是否显著,可用于判断线性关系(或正、负线性关系,强线性关系)是否存在。由于计算极为复杂,在考试中需要根据 Excel 的输出计算有关统计量,这种题型很花时间,请在习题中多加练习。
Quizzes 有 4 次,分别涉及 1、2-3、4-5、6-7 章内容。
- Quiz 必须在当周周六 09:00 - 周日 09:00 之间完成,时间为 20 分钟,共 2 次机会。
- 每次提交后不显示答案,分数以最后一次提交为准。
- 每次 Quiz 会从题库中随机抽取 10 道题。网上是有题库的,不过题目不算难。
- 开始之前要准备好计算器、z-table 和 t-table,时间很紧张。
Assignments 有 2 次,分别涵盖 1-3、4-6 章内容。
- Assignment 在周三 09:00 布置,Deadline 为周日 09:00。
- 题目只有 2-3 道,也因此一丢分对总评成绩影响较大。
- Assignment 2 的第 1 题相当 tricky —— 你知道怎么计算合并样本的 sample standard deviation 吗?—— 并且扣了我 8 分。
- 总之千万记得早点写 Assignment,上面这个 Assignment 2 就是我周日凌晨三点赶出来的。
本课的 Tutorials 非常重要。我们的 TA 每节课安排三个环节:(1) 知识点复习,(2) Kahoot Quiz,(3) 习题讲解。如此创造性且强反馈的教学方式在我整个大学生涯中都是极为少见的。建议在课前完成习题。题量有点大,但你在考前一天花几个小时过一遍绝对是大有裨益的。
Final Examination 为闭卷考试(2 小时)。
CB2400 Microeconomics
- Fundamental Economic Issues
- Scarcity, Opportunity Cost, Sunk Cost
- Production Possibility Curve (PPC)
- Basic Supply and Demand Model
- Law of Demand, Law of Supply
- Factors Affecting Demand and Supply
- Market Equilibrium, Surplus, Shortage
- Elasticity
- Price, Income, Cross-Price Elasticity of Demand
- Price Elasticity of Supply
- Theory of Consumer
- Budget Line
- Indifference Curve, Marginal Rate of Substitution
- Consumer Equilibrium
- Utility, Total Utility, Marginal Utility
- Theory of Producer
- Isocost Line
- Isoquant Curve, Marginal Rate of Technical Substitution
- Producer Equilibrium
- Production Function, Total Product, Marginal Product
- Theory of Cost
- Short-Run Cost: TC, TVC, TFC, ATC, AVC, AFC, MC
- Long-Run Cost: LRAC, LRTC
- Economies of Scale, Diseconomies of Scale
- Perfect Competition
- Characteristics: Price Taker, Homogeneous Product, Free Entry and Exit
- Short-Run Equilibrium
- Long-Run Equilibrium: Zero Economic Profit
- Allocative Efficiency
- Consumer Surplus, Producer Surplus, Social Welfare
- Deadweight Loss
- Monopoly
- Characteristics: Price Maker, Unique Product, Barriers to Entry
- Price Discrimination: Perfect, Imperfect
- Monopolistic Competition
- Characteristics: Some Market Power, Differentiated Product, Free Entry and Exit
- Short-Run Equilibrium
- Long-Run Equilibrium: Zero Economic Profit
- Oligopoly
- Characteristics: Few Firms, Interdependence, Entry Barriers
- Cartel
- Game Theory: Prisoner’s Dilemma, Nash Equilibrium, Dominant Strategy
- Continuous Assessment (50%)
- Tick and Learn (10%)
- Reflect and Learn (5%)
- Midterm Test (35%)
- Final Examination (50%)
嗯,我确实是因为上个学期学了 GE1205 Green Economics 才来补修这门课的。Microeconomics 是经济学的基础课,不过内容比前者要难一些,主要在于四种市场结构的分析。
Microeconomics 回答的是「如何分配有限资源以满足无限需求」这个问题。前半部分讨论了市场的基本运作原理,包括供求关系、弹性、消费者和生产者理论。后半部分则讨论了市场结构,包括完全竞争、垄断、垄断竞争和寡头垄断。
Basic Supply and Demand Model 是贯穿全课的基础,注意 Quantity Demanded 和 Demand 的区别 —— 前者是一个点,后者是一条线。也因此,前者只受 Self Price 的影响,后者受多种因素影响;前者会在 Demand curve 上移动(move),后者会左右移动(shift)。Elasticity 是衡量需求和供给对价格变化的敏感程度,Price Elasticity of Demand 恒负,因此通常取绝对值;Income Elasticity of Demand 和 Cross-Price Elasticity of Demand 可正可负,在不同区间中有不同的解释。
Theory of Consumer 引入了 Utility 的概念,两种商品的组合构成一条 Indifference Curve,与 Budget Line 相切的点即为 Consumer Equilibrium。此时 Relative Price = MRS,也可以说两种商品的 Marginal Utility per Dollar 相等。Theory of Producer 与前者完全对称。Theory of Cost 将短期成本与长期成本联系起来,LRATC 和 SRATC 相切,LRTC 和 SRTC 相切,借此可以看出公司在扩展规模时是处于 Economies of Scale 还是 Diseconomies of Scale。
市场结构的核心是「当 MR = MC 时,公司的利润最大」。Perfect Competition 是最理想的市场结构,注意 demand faced by a perfectly competitive firm 是 perfectly elastic 的,即一条水平线。当市场的 MB = MC 时,Social Welfare 最大化,而只要存在 Overproduction 或 Underproduction,就会产生 Deadweight Loss。长期而言,Perfect Competition 的价格会下降到 P = ATC,Economic Profit 为 0。
Monopoly 由于存在完全的 Market Power,每多卖一件商品,价格就会下降,因此 MR < P。其市场平衡的 P 高于 PC,Q 低于 PC。由于 Uunderproduction,会产生 Deadweight Loss,而 Price Discrimination 则通过牺牲 Consumer Surplus 来减少 Deadweight Loss。
Monopolistic Competition 是一种介于这两者之间的市场结构,短期而言生产者具有一定的 Market Power(类似于 Monopoly),但长期而言会有新厂商进入市场,使得 Economic Profit 为 0。与 PC 不同,其 Profit 的下降源于 P 的下降,而 MC 的 Profit 下降源于每个生产者的 Demand Curve 的左移。
Oligopoly 是最复杂的市场结构,因为每个厂商的决策都会影响其他厂商的利润。Cartel 是一种合作的形式,但由于每个厂商都有动机作为 Price Maker,因此很难维持。Game Theory 是解决这个问题的一种方法,通过 Nash Equilibrium 和 Dominant Strategy 来分析厂商的决策。
总共有 12 章练习题,Tick and Learn 要求你每章选 1 道题写详细解答。虽然课后会发解析,但认真写起来还是很花时间的。
Reflect and Learn 是一篇小论文,反思学习的方法与收获。整体工作量偏低。
Midterm Test 为闭卷考试(Week 7,2 小时),30 道选择题,涵盖 1-6 章内容。
Final Examination 为开卷考试(2 小时,可带 2 页 A4 cheat sheet),10 道选择题和 2 道大题。
- Econgraphs(可交互的经济学图表)
可惜我没有找到比较好用的绘图工具,作业里的图都是用 PPT 画的。
CB2500 Information Management
- Importance of IM
- IS, IM, MIS, 5 components of IS
- Business Process
- BPMN
- Quality Information
- Organizational Strategy
- Porter’s Five Forces
- Value Chain
- Competitive Advantage
- Database
- Types of Software
- Databse, Key, E/R Model, Normalization, DBMS
- Business Intelligence
- Big Data, Data Warehouse, Data Mart
- Multidimensional (OLAP), Cluster, Association
- Project Management (PMP)
- Change Management
- Social Media
- SMIS
- Organizational Strategy
- Social Capital
- Digital Marketing
- IS Audit and Risk Management
- IS Audit (COBIT)
- IS Threats
- IS Safeguards (Technical, Data, Human)
- Business Continuity Plan
- Organizational Use of IM
- Information Silo
- SCM, CRM, ERP
- Disruptive Technologies
- Globalization, Outsourcing, Cloud Computing
- Continuous Assessment (50%)
- Participation (10% = Lecture 2.5% + Tutorial 7.5%)
- 3 Interim Reports (5% = 1% + 2% + 2%)
- Group Project (15% = Presentation 3% + Report 12%)
- Midterm Test (20%)
- Final Examination (50%)
先讲一下上这门课的背景:CENG 有两门「Supporting Course」,某种意义上属于「选择性必修」。其一就是从 CB2100 Intro to Financial Accounting、CB2300 Management、CB2500 Information Management、CB2601 Marketing 中选一门。
一般对这四门课的评价是:CB2300 > CB2500 >> CB2601 ≈ CB2100。CB2100 评价低的原因是给分太差。但受制于这四门课本来就是相关专业的基础课,留给其他专业的席位少之又少,这学期 CS 只有 3 个人抢到了 CB2300,大部分还是去上 CB2100 的。
不过我选了 CB2500 背后的原因却极具戏剧性。
我在学期开始前选了 CB2500 和 CB2100,准备在第一周之后退掉其中一门换 GE。
第一周的周一早上,我上了 CB2100 的课,虽然老师反复强调这门课很难,但我觉得内容相当有趣,且涉及较多计算,于是打算选 CB2100。然后我就订购了教材的激活码(收 380 港币,实在是骗钱)。周一下午,我上了 CB2500 的课,因为我已经决定上 CB2100,所以连课上的 Quiz 都懒得做,还发现这门课的内容和想象中有些出入,于是当天晚上就退掉了 CB2500。
周三早上,我上了 CB2100 的 Tutorial,TA 非常认真负责,但当我开始做教材习题的时候,我发现概念题十分困难,于是内心产生了极大地动摇。周三下午我因为没有课去深圳看了牙医,这为后文的 CB2300 埋下了伏笔。
周四,我发现 CB2300 有个空位,但由于我当时还在 waitlist GE2262,直接注册会超学分,所以我就退掉了 CB2100,选了 CB2300。周五,我打开 CB2300 的 Canvas,发现 Group Project 有些复杂还占了 30%(事后想想,这不是好事吗?),再加上 Participation 需要用 Google Form 汇报 —— 汇报了还不一定有的加分(而且我还错过了周三下午的第一节课),我预感到这位 course leader 会是个很严格的人,顿生败退之心。
周六,我之前注册的 CB2100 课满了,又无法安排其他时间,完全断绝了这条后路。同日,GE2262 终于成功注册,我决定退掉 CB2300,选了 CB2500。周日我没有挣扎。
所以最终结果是,我在动摇与慌乱中选了 CB2500,另外还付了 380 块冤枉钱。
那么,结论而言,我是否推荐学弟们选 CB2500 呢?答案是否定的,尽管我拿了 A+。这门课渗透出来某种商院特有的傲慢(此处绝无 AOE 意味) —— 正如同商院特立独行的 mitigation request 平台,其他学院的学生无法使用一样 —— 如果你不是商科的,只会给你带来 13 周的噩梦。
首先我们看看这门课讲了什么。商科很喜欢使用缩写,比如 IS = Information System,IM = Information Management,MIS = Management Information System;又很喜欢咬文嚼字,你现在能说出来这三个概念的区别与联系吗?所以,我已经差不多忘完了这门课的内容。
其知识点之多,体系之庞杂,使得上面总结的课程纲要看似已经十分丰富,实则遗漏了诸多要点。比如,第 6 章的 McAfee SLATES (Search, Links, Authoring, Tags, Extensions, Signals),很容易被忽略,但偏偏在期中考出现了。
Participation 是这门课的一大特色……包括 Lecture (2.5%) 和 Tutorial (7.5%)。Lecture 的分数靠上课做 Ureply Quiz(一道选择题加一道大题),12 周的 Ureply 里抽 5 周作为成绩;而 Tutorial 就要复杂很多,Canvas Discussion、Individual and Group Exercise、Raise-Hand Discussion,每周有,每周都要做。
Tutorial 还有一个重要的任务 —— 第 2-10 周的 Tutorial 都会有阅读材料,不仅要针对材料展开讨论,这些要点还会在期末考中涉及。
Bi-weekly Quiz 在第 3、5、7、9、11 周布置,每次 10 道题,不计分数,但由于 Midterm Test 会出现原题,所以还是要认真做。
Group Project 的任务是针对一个公司进行社交媒体分析,然后提出改进的 IM 解决方案。7 人成组。
- IR1 (Interim Report) 讨论公司的波特五力模型和竞争优势,Deadline 为 Week 4。
- IR2 收集公司的社媒评论,分析主题和趋势,Deadline 为 Week 7。
- IR3 提出改进方案,Deadline 为 Week 9。
- 在以上 3 个报告完成之后,Report 也基本成型。
- Presentation 在 Week 12-13,时间为 8 分钟 + 2 分钟 Q&A。
- Final Report 的 Deadline 为 Week 13。
总的来说,由于中期报告的指引性作用,这个 Project 的难度没有想象中的那么大,但是时间分配上要注意。
TA 提供的反馈倒是非常及时,IR 和 Presentation 都会有详细的评语指导下一步的工作。
Midterm Test 为开卷考试(Week 11,1 小时,可带 1 页双面 A4 cheat sheet),80 道选择题,涵盖 1-8 章内容。很多题目来源于 Bi-weekly Quiz,也可以网上找到题库。
Final Examination 为闭卷考试(2 小时),4 道大题。
- 这是最为臭名昭著的部分,大题非常难,如果不仔细审题就会像我一样浪费时间,最后没写完。但如果你来不及写,也写一点相关的内容。
- 可以参考考前复习的评分标准,这试卷基本是把一分掰成两分用,5 分的题就得写 5 个长难句。
- 知识点来源于所有 Lecture 和 Tutorial 文章,别问 Tutorial 要点背不下来怎么办,我考前突击两小时,上考场还是大脑一片空白。
由于本课知识量和练习量极大,我大量参考了 Studocu 上的资料,比如这篇 Summary。某宝上可以几块钱买到 Studocu 会员,可以完整预览并下载资料。
就是这样。希望这些信息对你有所帮助。如果你有任何问题,欢迎在评论区留言,我会尽力回答。
还有,帮我的 mojimoon/CityU-CS 点个 Star 吧!