1
课程详述
COURSE SPECIFICATION
以下课程信息可能根据实际授课需要或在课程检讨之后产生变动。如对课程有任何疑问,请联
系授课教师。
The course information as follows may be subject to change, either during the session because of unforeseen
circumstances, or following review of the course at the end of the session. Queries about the course should be
directed to the course instructor.
1.
课程名称 Course Title
计算机程序设计基础 A Introduction to Computer Programming A
2.
授课院系
Originating Department
计算机科学与工程系 Department of Computer Science and Technology
3.
课程编号
Course Code
CS102A
4.
课程学分 Credit Value
3
5.
课程类别
Course Type
通识必修课程 General Education (GE)Required Courses
6.
授课学期
Semester
秋季 Fall
春季 Spring
7.
授课语言
Teaching Language
英文 English
中英双语 English & Chinese
8.
他授课教师)
Instructor(s), Affiliation&
Contact
For team teaching, please list
all instructors
刘烨庞,助理教授,计算机科学与工程系,liuyp1@sustech.edu.cn
Yepang Liu, Assistant Professor, Department of Computer Science and Technology,
liuyp1@sustech.edu.cn
张煜群,助理教授,计算机科学与工程系,zhangyq@sustech.edu.cn
Yuqun Zhang, Assistant Professor, Department of Computer Science and Technology,
zhangyq@sustech.edu.cn
高汝霆,助理教授,计算机科学与工程系,kot@sustech.edu.cn
Ruting Gao, Assistant Professor, Department of Computer Science and Technology,
kot@sustech.edu.cn
9.
/
方式
Tutor/TA(s), Contact
朱悦铭,教学实验员,计算机科学与工程系,zhuym@sustech.edu.cn
Yuming Zhu, Teaching laboratory technician, Department of Computer Science and
Technology, zhuym@sustech.edu.cn
胡春风,教学实验师,计算机科学与工程系,hucf@sustech.edu.cn
Chunfeng Hu, Teaching laboratory technician, Department of Computer Science and
Technology, hucf@sustech.edu.cn
沈昀,教学实验员,计算机科学与工程系,sheny@mail.sustech.edu.cn
Yun Shen, Teaching laboratory technician, Department of Computer Science and
Technology, sheny@mail.sustech.edu.cn
10.
选课人数限额(不填)
2
Maximum Enrolment
Optional
授课方式
Delivery Method
习题/辅导/讨论
Tutorials
实验/实习
Lab/Practical
其它(请具体注明)
OtherPlease specify
总学时
Total
11.
学时数
Credit Hours
32
64
12.
先修课程、其它学习要求
Pre-requisites or Other
Academic Requirements
13.
后续课程、其它学习规划
Courses for which this course
is a pre-requisite
14.
其它要求修读本课程的学系
Cross-listing Dept.
教学大纲及教学日历 SYLLABUS
15.
教学目标 Course Objectives
本课程主要面向具有一定编程基础的大学本科生。本课程将介绍面向对象程序设计语言的基础知识和编程技术。学生将学
习一门主流的程序设计语言 Java,学会如何使用该语言进行程序设计,解决实际问题。
The course aims to cultivate talented students who have programming experience before their university study. In this
course, we will introduce the fundamentals of object-oriented programming language and programming techniques. The
students will be familiar with the popular programming language Java and be able to construct programs for solving
general problems.
16.
预达学习成果 Learning Outcomes
在课程结束时,学生应该获得以下技能:
1.了解软件系统的基本模块,因特网和互联网的运行机制。
2.掌握 Java 程序设计语言的基本语法
3.掌握面向对象程序设计的四大特性:抽象,封装,继承,多态。
4.熟悉集成开发环境,并能够设计程序解决实际问题。
On completion of this course, the students should be able to:
1. Understand the basic components in a software system and the working mechanism of the Internet and the Web.
2. Know the basic syntax of the Java programming language.
3. Understand the features of object-oriented programming: abstraction, encapsulation, inheritance, polymorphism.
4. Develop programs to solve real problems using integrated development environments.
17.
课程内容及教学日历 (如授课语言以英文为主,则课程内容介绍可以用英文;如团队教学或模块教学,教学日历须注明
主讲人)
Course Contents (in Parts/Chapters/Sections/Weeks. Please notify name of instructor for course section(s), if
this is a team teaching or module course.)
3
理论课教学大纲
第一讲 引言:计算机,因特网,互联网
计算机:硬件与软件
计算机组成原理
操作系统
Web 2.0
软件技术
第二讲 Java 应用程序简介
Java 开发环境
Java 程序样例解析
基本数据类型
算术运算
第三讲 控制语 1
算法与伪代码
控制结构
选择语句 if if…else…
循环语句 while
第四讲 控制语 2
循环语句 for do…while
选择语句 switch
break continue 语句
逻辑运算符
结构化编程
第五讲 数组
数据结构与数组
for-each 语句
多维数组
第六讲 方法简
模块化编程
方法声明与调用(静态方法)
方法调用栈
方法重载
第七讲 类与对象简介
类、对象、方法
类的声明及实例化
实例变量
用构造方法初始化对象
第八讲 字符串与包装类
字符与字符串
String
4
StringBuilder
基本数据类型的包装类
第九讲 类、对象及方法:深层探究 1
类成员的访问控制
默认和无参构造方法
Set Get 方法
类的设计:组合
第十讲 类、对象及方法:深层探究 2
枚举类型
垃圾回收和 finalize 方法
静态类成员:方法与域
方法重载简介
第十一讲 面向对象程序设计:继承
父类与子类
protected 类成员
利用继承进行软件设计与实现
Object
第十二讲 面向对象程序设计:多态
多态
方法重写
抽象类与抽象方法
Final 类与方法
第十三讲 泛型类与方法
泛型方法
泛型类
通配符
第十四讲 泛型集合
Collection 接口与 Collections
常见集合类型
常用集合方法
第十五讲 异常处理
异常及其处理机制
异常类层次结构
受检异常与未受检异常
Stack traces 及异常链
第十六讲 图形界面编程
图形界面发展历史
容器与模块
事件驱动模型
5
布局管理
Syllabus of Theory Couse
Chapter 1 Introduction to Computers, the Internet and the Web
Computers: Hardware and Software
Computer Organization
Operating Systems
Web 2.0
Software Technologies
Chapter 2 Introduction to Java Applications
Java Development Environment
Programming Examples in Java
Primitive Data Types
Arithmetic Computation
Chapter 3 Control Statements 1
Algorithms and Pseudo Code
Control Structures
Selection Statements if and if…else
Repetition Statements while
Chapter 4 Control Statements 2
Repetition statements for and do…while
Selection statement switch
Break and continue Statements
Logical Operators
Structured Programming
Chapter 5 Arrays
Data Structure and Arrays
Enhanced for Statement
Multidimensional Arrays
Chapter 6 Methods
Modular programming
Method declaration and invocation (static methods)
Method call stack
Method overloading (an introduction)
Chapter 7 Introduction to Classes and Objects
Classes, Objects, and Methods
Declaring a Class and Instantiating an Object of a Class
Instance Variables
Initializing Objects with Constructors
Chapter 8 Strings and Wrapper Classes
Fundamentals of Characters and Strings
Class String
6
Class StringBuilder
Wrapper Classes of Primitive Types
Chapter 9 Classes, Objects and Methods: A Deeper Look 1
Controlling Access to Members
Default and No-Argument Constructors
Set and Get Methods
Composition
Chapter 10 Classes, Objects and Methods: A Deeper Look 2
Enumerations
Garbage Collection and Methods finalize
Static Class Members: Methods and Fields
Method Overloading
Chapter 11 Object-Oriented Programming: Inheritance
Superclasses and Subclasses
Protected Members
Software Engineering with Inheritance
Object Class
Chapter 12 Object-Oriented Programming: Polymorphism
Polymorphism
Method Overriding
Abstract Classes and Methods
Final Methods and Classes
Chapter 13 Generic Classes and Methods
Generic Methods
Generic Classes
Wildcards
Chapter 14 Generic Collections
Interface Collection and Class Collections
Lists, Sets, Maps
Collections Methods
Chapter 15 Exception Handling
Exceptions and Their Handling
Exception Class Hierarchy
Checked/Unchecked Exceptions
Stack Traces and Chained Exceptions
Chapter 16 GUI Programming
The History of GUI
Containers and Components
Event Handling
Layout Management
7
实验课教学大纲
实验 1. 课程准备
JDK 安装及环境变量配
使用命令端编译、运行 Java 程序
实验 2. 基础练习
IDE 的使用
Scanner 类的使用
学习基本数据类
学习基本运算
实验 3. 控制语句
选择结构: if else
循环结构:while
实验 4. 控制语句
选择结构:swtich
循环结构: do while , for
实验 5. 维数组
声明,创建,初始化
简单的算法练习
实验 6. 静态方法
定义与调用
方法重载
实验 7 . 多维数组
声明,创建,初始化
复杂算法练习
ArrayList
实验 8. 字符串
String 类介绍
String 类下的库方
StringBuilder StringBuffer
实验 9. 类与对象一
构造方法
GetSet 方法
实验 10. 类与对象二
toString 方法
8
静态变量与方法
实验 11. 类与对象
类的组合关系
枚举类
实验 12. 面向对象程序设计一
父类与子类
继承
实验 13. 面向对象程序设计二
多态
抽象类与接口
实验 14. 综合练习
项目指导
实验 15. 综合练习
项目指导
项目展示
实验 16. 综合练习
项目指导
项目展示
Syllabus of Lab Course
Lab 1. Programming Environment Setup
Installing JDK and configuring environment variables
Practice the process of compiling and running Java programs in command line.
Lab 2. Basic Exercises
How to use IDE to write Java programs
Practice the use of the Scanner class
Learn basic data types
Learn basic operations
Lab 3. Control Statements
Selection statements including if…else
Repetition statements including while
Lab 4. Control Statements
Selection statements including switch
9
Repetition statements including do…while and for
Lab 5. One Dimensional Array
Declare, create and initialize arrays
Simple algorithms
Lab 6. Static Method
Define and invoke static method
Overload
Lab 7. Multi-Dimensional Arrays
Declare, create and initialize multi-dimensional arrays
More complicated algorithms
ArrayList
Lab 8. Strings
The String class
Library methods in String
The StringBuilder and StringBuffer classes
Lab 9. Classes and Objects 1
Constructor
Getter and Setter
Lab 10. Classes and Objects 2
toString method
Static class members: methods and fields
Lab 11. Classes and Objects 3
Composition
Enumerations
Lab 12. Object-Oriented Programming 1
Supper class and subclass
Inheritance
Lab 13. Object-Oriented Programming 2
Abstract class
Interface
Lab 14. Comprehensive exercises 1
Guidance of the course project
Lab 15. Comprehensive exercises 2
Guidance of the course project
10
Project presentation
Lab 16. Comprehensive exercises 3
Guidance of the course project
Project presentation
18.
教材及其它参考资料 Textbook and Supplementary Readings
Deitel, P. ,Deitel, H., Java: How to Program (8/e), Prentice-Hall, 2010. (Any other edition is OK)
课程评估 ASSESSMENT
19.
评估形式
Type of
Assessment
评估时间
Time
占考试总成绩百分比
% of final
score
违纪处罚
Penalty
备注
Notes
出勤 Attendance
10%
课堂表现
Class
Performance
小测验
Quiz
10%
课程项目 Projects
20%
平时作业
Assignments
30%
期中考试
Mid-Term Test
期末考试
Final Exam
30%
期末报告
Final
Presentation
11
其它(可根据需
改写以上评估方
式)
Others (The
above may be
modified as
necessary)
20.
记分方式 GRADING SYSTEM
A. 十三级等级制 Letter Grading
B. 二级记分制(通/不通过) Pass/Fail Grading
课程审批 REVIEW AND APPROVAL
21.
本课程设置已经过以下责任人/员会审议通过
This Course has been approved by the following person or committee of authority