评课:CS2115 CS2312 CS3201 CS3334 MA2185 GE1205 (Semester A 2023/2024)
受人之托,评一下 CS 大二上的必修课。顺便写一下 Area 2 GE 课,GE1205 Green Economics。
我在 2023/2024 Semester A 修了这些课,请注意课程内容可能会有所变化。
和 JC2066 不同,这些课都不是新开设的,也没有什么值得我长篇大论的地方,所以就简单罗列一下吧。
CS2115 Computer Organization
Content
- Number Systems
- Binary, Octal, Hexadecimal
- Signed Numbers, 2’s Complement
- IEEE 754 Floating Point
- Circuits
- Logic Gates, Boolean Algebra, Karnaugh Maps
- Combinational Circuits: Adders, Multiplexers
- Sequential Circuits
- MIPS Assembly
- ISA, Register File, Memory Organization
- MIPS Instructions
- CPU
- Control Logic, Execution Cycle
- Pipelining: Hazards, Forwarding, Branch Prediction
- Memory
- Cache: Direct Mapped, Fully Associative, Set Associative
- SRAM vs DRAM, SSD: NAND Flash
- I/O
- Programmed I/O, Interrupts-Driven I/O, DMA
- Parallelism
- Multicore CPU
- SIMD, GPU, CUDA Programming
- Interconnection: Bus vs Ring, UMA vs NUMA, Cache Coherence, Message Passing
- Performance
- Cache
- Parallelism: Amdahl’s Law
Assessment
Assessment Breakdown:
- Continuous Assessment: 30%
- 4 Assignments: 20% (2% + 5% + 5% + 8%)
- Midterm: 10% (Week 7, Written, 2 hours)
- Final Exam: 70% (Written, 2 hours)
Coverage:
- Assignment 1: Number Systems
- Assignment 2: Circuits
- Assignment 3: MIPS Assembly
- Assignment 4: CPU (Groupwork, 2-3 people)
- Midterm: Number Systems ~ MIPS Assembly
Review
- Course Content: 3 / 5
- 比较全面地介绍了计算机的各个方面,但是没有深入
- 对比隔壁 CUHK CSCI2510:CUHK 的课没有覆盖 I/O 和 Parallelism,但是对 pipeline 和 cache 的讲解更加深入,可以将其课件作为复习资料;另外,CUHK 对 cache performance 的分析也值得一看,虽然考试不会考
- Difficulty: 2 / 5
- 整体而言内容比较基础
- Assignment 1, 2, 3 都不难,但是有些问题(比如在 MIPS Assembly 中实现递归)需要搜索资料,教你如何计算 Fibonacci
- Midterm 不难且题量少,平均分 75 / 100
- Final 不难但题量很大,往届试卷参考意义不大(往届试卷里甚至有状态机和神经网络),请注意把握时间;Final 的重点是 MIPS Assembly(两个程序,15%)和 CPU(Control Logic / Machine Code / Pipelining,20%)
- Workload: 4 / 5
- Assignment 4 要求使用 Logisim 实现一个 16-bit CPU,需要花费大量时间,请至少保证 2 个整天;虽然是小组作业,但由于 Logisim 只能在一台电脑上同时编辑,所以最好考虑一下怎么分工
- Final 考察范围很广,甚至包括 CUDA Programming
- Class & Resources: 3 / 5
- Lecture:2 / 5
- Tutorial:2 / 5
- Lecture Slides:2 / 5
- 课件不够详细,上课请做好笔记
- Exercises:4 / 5
- 额外的 Exercises 值得一做
CS2312 Problem Solving & Programming
Content
- Java Basics
- Object-Oriented Programming
- Encapsulation
- Principles: LSP, DIP, OCP
- Design Patterns: Singleton, State, Command
- Objects and Classes
- Inheritance, Polymorphism, Dynamic Binding
- Interfaces, Abstract Classes
- Exception Handling
- Generics
- Collections
- Functional Programming
Assessment
Assessment Breakdown:
- Continuous Assessment: 50%
- Lab Attendance and Assessment: 10%
- Quiz: 5% (Week 5, Written, 50 minutes)
- Midterm: 20% (Week 12, Written, 2 hours)
- Programming Assignment: 15% (Week 13)
- Final Exam: 50% (Written, 2 hours)
Coverage:
- Quiz: Java Basics, OOP, Objects and Classes, Inheritance
- Midterm: All but (Inner Classes, Generics, Collections, Functional Programming)
- Final: All but (Command Pattern, Inner Classes, Generics, Exceptions, Functional Programming)
Review
- Course Content: 3 / 5
- OOP 确实是很重要的一门课,Assignment 就很好地体现了这一点
- Difficulty: 2 / 5
- 这门基本没有什么 technical content,只要你的 programming 基础不错,很难遇到什么困难
- Lecturer 设立了一个 课程信息页,可以看到 OJ 上各题的通过人数,从此可以判断,差不多只有 1/3 的同学能够通过 Assignment
- Work Load:3 / 5
- 请务必出席 Lab,回答老师提问,按时完成课堂和课后练习
- Assignment 是一个完整的 OOP Project,在 Lab 练习的基础上增加功能;最花时间的部分在于调试
- Quiz, Midterm 和 Final 都是以 Programming 为主,穿插一些关于 OOP 理论的问题
- Class & Resources: 4 / 5
- Lecture:3 / 5
- 课上除了讲 Lecture Notes,还有配套的 Exercises
- 这一方面让你上课绝对不会闲着,另一方面也让课堂体验比较割裂
- Lab:3 / 5
- 尽管如前所述,Lab 的工作量比较大,但确实设计得很好
- Lecture Notes:3 / 5
- Exercises:4 / 5
- Lecture:3 / 5
CS3201 Computer Networks
Content
- Introduction
- Loss, Delay, Throughput
- 5-layer Internet Model
- Application Layer
- HTTP
- Email: SMTP, IMAP
- DNS
- Client-Server vs P2P
- Video Streaming and CDN
- Transport Layer
- Multiplexing and Demultiplexing
- UDP
- TCP: Congestion Control, Flow Control
- Network Layer
- Data Plane:
- Router: Forwarding, Packet Scheduling
- IP: IP Address, DHCP, NAT
- Control Plane:
- Routing Algorithms: Link-State, Distance-Vector
- Intra-AS Routing: RIP, OSPF
- Inter-AS Routing: BGP
- Data Plane:
- Link Layer
- Multiple Access Protocols: ALOHA, CSMA, CSMA/CD, CSMA/CA
- Error Detection and Correction: Parity Check, CRC
- Link-Layer Addressing: ARP
- Ethernet
- Switch
- Wireless Networks
- Cellular Network: CDMA
- WiFi: 802.11, CSMA/CA, RTS/CTS
- 1G and 2G, IP Mobility
Assessment
Assessment Breakdown:
- Continuous Assessment: 30%
- 2 Homeworks: 12% (6% + 6%)
- Programming Assignment: 6% (Groupwork, 1-2 people)
- Midterm: 12% (Week 7, Open Book, 70 minutes)
- Final Exam: 70% (Open Book, 2 hours)
Coverage:
- Homework 1: Introduction ~ Transport Layer
- Homework 2: Network Layer ~ Wireless Networks
Review
- Course Content: 3 / 5
- 全世界的本科 Computer Networks 课程都是这样设计的
- Difficulty: 3 / 5
- 难度不低,Terminology 很多
- 由于是开卷考试,考试题目会比较刁钻;复习的主要目的是熟悉各种细节,而不是记住答案
- Workload: 2 / 5
- 没有什么特别花时间的地方
- Programming Assignment 要求用 Socket Programming 实现一个简单的 HTTP Client,编程知识课上完全没讲,请自行查找资料
- Class & Resources: 3 / 5
- Lecture:3 / 5
- Tutorial:4 / 5
- Tutorial 比较有用且有趣,覆盖了所有涉及计算和分析的内容
- Lecture Slides:3 / 5
- 课件非常全面,因为它完全照抄课本内容
- 因此在准备 Cheat Sheet 时要有选择性地记下重点,页数太多了反而不好
CS3334 Data Structures
Content
- Abstract Data Types
- Linked List
- Stack
- Complexity Analysis
- Queue and Hash
- Tree: Binary Tree, Heap
- Balanced Search Tree: AVL Tree, Splay Tree
- Disjoint Set
- Suffix Sorting: Suffix Array, Suffix Tree
- Graphs: BFS, DFS, MST (Prim), Shortest Path (Dijkstra)
- Sorting: Heap, Merge, Quick, Bucket, Radix
Assessment
Assessment Breakdown:
- Continuous Assessment: 40%
- Assignment Questions: 20%
- Project: 5%
- Midterm: 15%
- Programming: 7.5% (Week 7, Computer, 2 hours)
- Written: 7.5% (Week 9, 2 hours)
- Final Exam: 60% (Written, 2 hours)
Coverage:
- Programming Midterm: Abstract Data Types ~ Binary Tree
- Written Midterm: Abstract Data Types ~ Heap
Review
- Course Content: 3 / 5
- 由于 Week 7、9 都有 Midterm,Week 8 又放假,导致后面的进度很快,有些内容讲得比较仓促
- Difficulty: 4 / 5
- 臭名昭著
- 课件很基础,但 Assignment Questions 很难,因为 ACM 题不只是 Data Structures & Algorithms,还需要解题思维
- 这方面我也帮不了你,虽然说这门课里的题目到头来都不会太难,但是你要是不会做,就真的不会做
- Workload: 2 / 5
- Class & Resources: 3 / 5
- Lecture:4 / 5
- 课上互动可以赚 Bonus Point(3%),最简单的办法是回答每节课开始的复习题
- Lab:2 / 5
- Lecture Slides:2 / 5
- 课件错漏百出,尤其是 Balanced Search Tree 一节,建议参考网上资料自己整理
- Lecture:4 / 5
MA2185 Discrete Mathematics
Content
- Logic
- Proposition, Logical Operators, Truth Table
- Boolean Algebra
- Predicate, Quantifier
- Logical Inference
- Mathematical Induction
- Set Theory
- Set Algebra
- Cartesian Product
- Relations: Equivalence Relation
- Functions: Injective (One-to-One), Surjective (Onto), Bijective
- Combinatorics
- Counting
- Probability
- Graph Theory
- Terminology
- Shortest Path (Dijkstra)
- Spanning Tree (Prim, Kruskal)
- Number Theory
- Modular Arithmetic
- GCD and Modular Inverse
Assessment
Assessment Breakdown:
- Continuous Assessment: 30%
- 3 Assignments: 6% (2% + 2% + 2%)
- Midterm: 24% (Week 9, Written, 100 minutes)
- Final Exam: 70% (Written, 2 hours)
Coverage:
- Assignment 1: Logic
- Assignment 2: Set Theory, Counting
- Assignment 3: Probability, Graph Theory, Number Theory
- Midterm: Logic ~ Counting
Review
- Course Content: 2 / 5
- 和 Calculus and Linear Algebra 一比,这门课就不太重要了
- Combinatorics 被 CS2402 (Introduction to Computational Probability Modeling) 完全覆盖,Graph Theory 也不用再学了
- 整体而言课程的设计其实还好,但全世界的本科 Discrete Mathematics 课程都是这样设计的
- Difficulty: 2 / 5
- 课程内容很基础,也不能掉以轻心
- Workload:2 / 5
- Class & Resources: 3 / 5
- Lecture:3 / 5
- Tutorial:4 / 5
- Lecture Notes:3 / 5
GE1205 Green Economics
Content
- Environmental Economics
- Demand and Supply
- Producer Theory, Cost Theory
- Perfect Competition
- Market Failure
- Externalities
- Externality, Pigovian Tax, Subsidy
- Effective Emission Standard
- Public Goods
- Public Good, Free Rider Problem
- Game Theory, Nash Equilibrium, Prisoner’s Dilemma
- Externalities
- Solutions to Market Failure
- Coase Theorem
- Pollution Permit Trading System
Assessment
Assessment Breakdown:
- Continuous Assessment: 100%
- In-class Assignment: 15%
- Reflective Essay: 5%
- Course Project: 30% (Groupwork, 6-8 people, Presentation + Report)
- Quiz: 50% (Week 9, Open Book, 90 minutes)
- No Final Exam
Coverage:
- Quiz: All
Review
- Course Content: 3 / 5
- 说白了,就是 Microeconomics 的一个简化版
- 课程内容比较基础,但会涉及很多与环境相关的 case study
- Difficulty: 3 / 5
- 图像和计算还是有一定难度的
- 由于是开卷考试,考试题目会比较刁钻;考试只允许带一页 Cheat Sheet,但说实话用处不大
- Workload: 2 / 5
- 这个 Workload 在 GE 里也算是非常低的了
- Group Project 也不需要花太多时间
- Quiz 结束后会抽签决定 Presentation 的顺序,能抽到 Week 10 ~ 13,最坏的情况下当周(Week 9)就要准备;Presentation 限时 20 分钟,务必控制好时间;好在 Pre 的效果比我们预期的要好
- Report 正文限制 12 页(图表放在附录),我们大约写了 3,700 字
- Presentation 和 Report 最重要的部分是 Economic Analysis 的图表,虽说用 PowerPoint 画图很麻烦,但是效果还是很好的
- 总的来说,小组人数越多,一方面统筹起来越麻烦,另一方面只要没有 free rider,工作量就会越少。我对这个 Group project 还是很满意的
- Class & Resources: 3 / 5
- Seminar:3 / 5
- Lecture Slides:3 / 5