选课类别:核心通识 | 教学类型:理论实验课 |
课程类别:一般通识 | 开课单位:计算机科学与技术系 |
课程层次:自由选修 | 学分:2.5 |
本课程系统地讲述了面向对象软件的分析设计理论与表达实现方法。面向对象的分析(OOA)与设计(OOD)研究如何发现并描述问题域中的对象,如何定义逻辑软件对象,这些对象最终能够用面向对象程序设计语言实现,即编写它们的类。然后以JAVA为具体编程语言,使非计算机专业学生也可以快速掌握核心Java语法;了解面向对象的核心知识,如抽象、封装、继承和多态;利用异常处理和有效调试提高程序健壮性;利用泛型和强类型编写更安全、更可读的程序;以及掌握初步的并发编程技术等。
丁箐老师的《面向对象设计与编程》课程内容涵盖了Java基础、OOP概念、数据库和GUI。课程讲解详细,使用英文PPT。部分同学认为课程更像是“Java程序设计”。教学方法适合没有Java基础的同学,而有基础的同学认为内容偏简单。总体来说,课程适合对Java有兴趣的同学。
课程没有平时作业,仅有一个大作业,任务量不大。大作业要求制作一个学生成绩管理系统,可以使用Swing或JavaFX完成,并包含一些SQL操作。另外,任务量不超200行代码,总体难度适中,并提供加分项。
期末有一次随堂测试,闭卷,内容可能涉及一些复杂或不常用的Java语法细节。虽然考题有些刁钻,但难度合理,要求掌握较全面的Java知识。
课程给分较好,事少分好,但要拿高GPA仍需认真听课。总的来说,课程适合有空闲时间、对Java编程感兴趣的同学,尤其是周五下午时间充裕的学生。对于有Java基础的同学,课程内容可能略显简单。
没有往年的评价,看今年都是 10.0,由于课程太简单,本来想给个 9.0 的,索性成人之美,也调个 10.0 吧。
这门课程与其说是“面向对象设计与编程”,不如说是“Java 程序设计”,老师会很详细地从 Java 的基础部分开始讲起,一路讲到数据库和 GUI,作为通识课程,没有什么非选不选的,有 Java 基础的同学就不用来上课了,周五下午时间宝贵,睡大觉就行。没有基础的可以选,但是期末作业涉及 Java GUI 编程,而且还有考试,大作业可以借鉴代码,考试却没办法的。
Java 比 C 简单,却也复杂。说简单是因为它不需要牵扯指针数组一大堆东西,想要用什么数据类型前人基本都给你写好了,直接拿来用就行,说复杂是因为作为 OOP 语言,虽然有对象和类的强大功能,但是代码的执行顺序以及程序的整体架构,未必能像 C 项目一样清晰。不论计算机程序设计 A 学得如何,这门课肯定比那简单,参考自身情况选择。
大作业是做一个学生成绩管理系统,不过不需要登记功能,只需要输入学号查询成绩即可。加分项还可以做个课程全班平均成绩,其实一点也不难,一条 SQL 就能做到:
SELECT AVG(score) FROM scores WHERE course=?;
总的代码量不超过 200 行,另外虽然讲了 JavaFX,但是 GUI 不是必须用 JavaFX,个人建议没玩过的先玩玩 Swing,不改变项目结构,只需要加入一点代码就行了。另外不要让 Swing 太难看了,加个 FlatLaf 也就一行代码的事。
考试有点刁钻,会用到许多 Java 工程中不建议用到的写法(比如各种块和静态块),还会考一些犄角旮旯的知识点(比如字符串比较不能用 ==),老玩家都熟悉,但是萌新容易在这里吃苦头。另外虽然说是小测,不过也是一张完整试卷,而且是闭卷的,可不要被打了个措手不及。
总而言之,有 Java 基础的,而且周五下午有时间的,选就对了。
这门课主要是讲面向对象的编程思想,还会涉及一点数据库,gui界面,软件工程等,上课用的是英文PPT。作为一般通识课,内容不难,没点名,没平时作业,只有一个非常简单的大作业,非常舒服,给分也很好,对Java有兴趣的同学建议选。
事少分好,但是要拿高GPA还是要认真听课
这门课前几节课会讲一些面向对象的相关概念,继承、多态什么的;然后是Java的教学。 非常推荐报这门课,期末会有一次随堂测试,有一个大作业,任务量很少。