本课程是各位同学继C/C++编程语言之后学习的新一门程序设计语言课程,也是后续参与企业课程所需的基础编程语言课程。
本课程是在已有的基础上,让学习者能够以Java语言编写具有一定规模、综合性的应用程序。课程内容对后面的其他专业课及企业技术方向课起到承上启下的作用。
课程结合北京大学唐大仕老师的国家一流线上课“Java程序设计”课程资源及本教学团队制作的资源,为大家提供了12个线上自主学习任务。每个任务包括视频、文档、讨论、小测及多样化的作业。这些任务是本学期“Java程序设计”混合式教学的线上部分,会随着线下课堂教学进度开放、布置,线下课堂也会用到这些任务单的完成结果。另外,我们也把完整的唐大仕老师的MOOC资源呈现给大家,供同学们课余学习参考。
线上自主学习任务单的完成情况会作为平时成绩的线上部分,计学期总评的15%。
线上自主学习任务——第1章 Java入门A
学习任务单
补充学习资源
学习讨论
线上自主学习第1章任务A作业
线上自主学习任务——第1章 Java入门B
学习任务单
补充学习资源
第1章自主学习小测
线上自主学习第1章任务B作业
线上自主学习任务——第2章 基本数据类型与数组
学习任务单
补充学习资源
学习讨论
线上自主学习第2章任务作业
第2章自主学习小测
线上自主学习任务——第3章 运算符表达式和语句
学习任务单
补充学习资源
第3章自主学习小测
线上自主学习第3章任务作业
线上自主学习任务——第4章 类与对象
学习任务单
补充学习资源
学习讨论
第4章自主学习小测
线上自主学习第4章任务作业
线上自主学习任务——第5章 子类与继承
学习任务单
补充学习资源
学习讨论
线上自主学习第5章任务作业
线上自主学习任务——第6章 接口与实现
学习任务单
补充学习资源
学习讨论
线上自主学习第6章任务作业
线上自主学习任务——第8章 常用实用类
学习任务单
补充学习资源
线上自主学习第8章任务作业
第8章自主学习小测
线上自主学习任务——第9章 组件及事件处理A
学习任务单
补充学习资源
线上自主学习第9章任务A作业
第9章自主学习小测
线上自主学习任务——第9章 组件及事件处理B
学习任务单
学习讨论
线上自主学习第9章任务B作业
线上自主学习任务——第9章 组件及事件处理C
学习任务单
作业要求
线上自主学习任务——第10章 输入、输出流
学习任务单
补充学习资源
学习讨论
第10章自主学习小测
第1讲 Java语言与面向对象的程序设计
1.1 Java语言的历史与特点
1.2 面向对象程序设计
week1 小结
第2讲 简单的Java程序
2.1 Java程序的类型与基本构成
2.2 开发Java程序的基本步骤
2.3 程序中进行输入与输出
2.4 Java开发工具
week2 小结
第3讲 数据运算、流控制和数组
3.1 数据类型、变量与常量
3.2 运算符与表达式
3.3 流程控制语句
3.4 数组
week3 小结
第4讲 类、包和接口
4.1 类、字段、方法
4.2 类的继承
4.3 包
4.4 访问控制符
4.5 其他修饰符
4.6 接口
4.7 语法小结
week4 小结
第5讲 深入理解Java语言
5.1 变量及其传递
5.2 多态及虚方法调用
5.3 对象构造与初始化
5.4 对象清除与垃圾回收
5.5 内部类与匿名类
5.6 Lambda表达式(*)
5.7 其他几个高级语法(*)
5.8 没有指针的Java语言
week5 小结
第6讲 异常处理
6.1 异常处理
6.2 自定义异常
6.3 断言及程序的测试
6.4 程序的调试
week6 小结
第7讲 工具类及常用算法
7.1 Java语言基础类
7.2 字符串及日期
7.3 集合
7.4 排序与查找
7.5 泛型(*)
7.6 常用算法
week7 小结
第8讲 多线程
8.1 线程的创建
8.2 线程的控制
8.3 线程的同步(*)
8.4 并发API
8.5 流式操作及并行流(*)
week8 小结
第9讲 流、文件及基于文本的应用
9.1 输入输出流
9.2 文件及目录
9.3 正则表达式
week9 小结
第10讲 图形用户界面
10.1 组件
10.2 实现界面的三步曲
10.3 布局管理
10.4 事件处理
10.5 常用组件的使用
10.6 Applet
week10 小结
第11讲 网络、多媒体和数据库编程
11.1 网络编程
11.2 多媒体编程
11.3 数据库编程
week11 小结
第12讲 怎样写好程序
12.1 写好程序的一些经验
12.2 重构
12.3 设计模式
12.4 反射
week12 小结
最好是学过一门程序设计语言(如C或C++或计算概论等)。
1. Java是什么样的语言?
答:Java语言是一门用途广泛的、面向对象的语言。Java语言可以编写桌面应用、手机应用及企业应用。Java简洁优雅,易于学习。
2. 没有学过编程,能学吗?
答:本课程的先修课程:最好是学过一门程序设计语言(如C、C++、Java、Python、VB等任何一门语言)。
3. 本课程系统吗?
答:会的。本课程要讲Java语言,对语言的一些机制会详细讲解,所以具有系统性。
4. 本课程实用吗?
答:实用。本课程要讲Java语言在文本、文件、窗体界面、图形、数据库、多线程、并行编程方面的应用。还会讲到编好代码的经验与技巧,包括面向对象的思想、软件工程中常用的方法。课程中有很多的趣的示例哟。
5. 主要讲桌面应用还是手机应用?
答:本课程要讲桌面应用。由于受课时的限制,本课程不讲手机应用,不过,除了界面不同,在文件、图形、数据库、多线程、并行编程方面手机应用与桌面应用是一样的。
6. 本课程难学吗?
答:本课程会循序渐进地讲解,对于大部分同学来说,是可以做到的。针对基础较弱的同学,我们会补充一些基础材料;针对基础很好的同学,我们也会提供一些深入的材料(不作为考试要求)。