※ 本文是否可提供台大同学转作其他非营利用途?(须保留原作者 ID)
(是/否/其他条件):
否
哪一学年度修课:
105-2
ψ 授课教师 (若为多人合授请写开课教师,以方便收录)
李允中 (资工系教授 非同名的生机系教授)
λ 开课系所与授课对象 (是否为必修或通识课 / 内容是否与某些背景相关)
资工系 资讯所 网媒所
最好先熟悉Java或修过物件导向再选修
δ 课程大概内容
Object-Oriented Concepts and Class Diagram Design
Software Engineering Practices
Basic Design Concepts
Design Patterns
Strategy Pattern
Observer Pattern
Abstract Factory Pattern
Decorator Pattern
Singleton Pattern
Builder Pattern
Iterator Pattern
Composite Pattern
Memento Pattern
Facade Pattern
Command Pattern
Chain of Responsibility Pattern
Final Presentation
Quiz & Final Exam
Ω 私心推荐指数(以五分计) ★★★★★
喜欢自学、做投影片、画Class Diagram、大量练习写Java者 ★★★★★
学期很忙、想耍废拿学分、喜欢老师按部就班按照投影片教学者 ★
η 上课用书(影印讲义或是指定教科书)
每次课后 助教Ceiba上传讲义
μ 上课方式(投影片、团体讨论、老师教学风格)
老师前一节课出作业,作业含有程式的需求(requirements)和SPEC,
小组课后进行开会讨论,以组为单位画出Class Diagram, 写Java Code,
并且做成投影片在下一节课上台报告,每一节课几乎每组都要上台报告。
老师会对每组上台报告的内容进行评价和修正,最后老师再公布他的答案。
σ 评分方式(给分甜吗?是扎实分?)
1. Class attendance, participation, homework (every week),
and web frameworks presentation (40%)
这项就是每周的作业、上台报告和投影片
(后来web frameworks 课程来不及,老师就没有要求报告了)
2.Term project (25%)
开学的时候,老师会要求每组选一个Open Source的project来读code,
并且分析其中的Design Pattern。学期最后,每组上台报告读code
的状况,并且要对其中的一些地方做refactor
3. Quiz (10%)
期中小考,每组在3小时内,依据requirements画出Class Diagram,
并且根据SPEC写出Java Code。 一组交一份Diagram和一份code
4. Final Exam (25%)
期末考试,每组在4个半小时内,依据requirements画出Class Diagram
并且根据SPEC写出Java Code。 一组交一份Diagram,每人交一份code
老师给分算扎实偏甜,问了很多人都有B以上,大部分都是A-以上。
老师上课说他几年来只有当过两个人,一位整学期不来上课,另一位考试抄网络上code,他说除此之外他不当人。
ρ 考题型式、作业方式
同上
ω 其它(是否注重出席率?如果为外系选修,需先有什么基础较好吗?老师个性?
加签习惯?严禁迟到等…)
注重出席率,但是可以跟老师请假(病假或事假),老师没有为难。
外系选修,最好先熟悉Java和物件导向的观念。
加签方式,老师会叫每一位加签的同学进他办公室讲述加选的理由。
Ψ 总结
这门课听说像是去年开的软件设计模式的威力加强版。
我觉得这门课要花非常多时间(Design Class Diagram、做投影片、
课后小组开会、Final Project等)。
最好组队找人一组一起修课,能拉大神进来一组更好。
作业的部分小组内最好多思考,仔细推测老师要的Design是什么,
哪里可以做Encapsulate?
投影片要记得加页码。
若比较习惯上课是老师一步骤一步骤教学如何做设计和写程式的话,
那么这门课就不大适合来修了,因为上课大部分时间都是小组上台报告,
老师现场提出修正和建议,会有一种“老师今天有上课吗?”的错觉。
这门课像是一门讨论课。
老师讲话比较直白,哪里他认为做不好要改进,他就会直接提出来,
虽然听上去有点刺耳,但是他其实人很好。