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
计算机程序设计基 Introduction to Computer Programming
2.
授课院系
Originating Department
计算机科学与工程系 Department of Computer Science and Engineering
3.
课程编号
Course Code
CS109
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, Department of Computer Science and Engineering, liuyp1@sustech.edu.cn
张煜群,计算机科学与工程系,zhangyq@sustech.edu.cn
Yuqun Zhang, Department of Computer Science and Engineering,
zhangyq@sustech.edu.cn
危学涛,计算机科学与工程系,weixt@sustech.edu.cn
Xuetao Wei , Department of Computer Science and Engineering, weixt@sustech.edu.cn
张锋巍,计算机科学与工程系,zhangfw@sustech.edu.cn
Fengwei Zhang, Department of Computer Science and Engineering,
zhangfw@sustech.edu.cn
陶伊达,计算机科学与工程系,taoyd@sustech.edu.cn
Yida Tao, Department of Computer Science and Engineering, taoyd@sustech.edu.cn
李卓钊,计算机科学与工程系,lizz@sustech.edu.cn
Zhuozhao Li, Department of Computer Science and Engineering, lizz@sustech.edu.cn
马昱欣, 计算机科学与工程系,mayx@sustech.edu.cn
Yuxin Ma, Department of Computer Science and Engineering, mayx@sustech.edu.cn
9.
实验员/所属学系
方式
朱悦铭,计算机科学与工程系,zhuym@sustech.edu.cn
Yuming Zhu, Department of Computer Science and Engineering,
王薇,计算机科学与工程系,wangw6@sustech.edu.cn
Wei Wang, Department of Computer Science and Engineering,
2
Tutor/TA(s), Contact
wangw6@sustech.edu.cn
贾艳红,计算机科学与工程系,jiayh@mail.sustech.edu.cn
Yanhong Jia, Department of Computer Science and Engineering,
jiayh@mail.sustech.edu.cn
王晴,计算机科学与工程系,wangq9@mail.sustech.edu.cn
Qing Wang, Department of Computer Science and Engineering,
wangq9@mail.sustech.edu.cn
王大兴,计算机科学与工程系,wangdx3@mail.sustech.edu.cn
Daxing Wang, Department of Computer Science and Engineering,
wangdx3@mail.sustech.edu.cn
10.
选课人数限额(可不填)
Maximum Enrolment
Optional
11.
讲授
Lectures
习题/辅导/讨论
Tutorials
实验/实习
Lab/Practical
其它(请具体注明)
OtherPlease specify
总学时
Total
32
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 students who have programming experience before their university study. In this course, we
will introduce the fundamentals of computer programming and common programming techniques using a popular object-
oriented programming language, Java. The students will be familiar with computer programming and be able to
construct programs for solving complex computing problems.
16.
预达学习成果 Learning Outcomes
在课程结束时,学生应该获得以下技能:
1.了解软件系统的基本模块,因特网和互联网的运行机制。
2.掌握 Java 程序设计语言的基本语法
3.掌握面向对象程序设计的四大特性:抽象,封装,继承,多态。
4.熟悉集成开发环境,并能够设计程序解决实际问题。
3
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.)
理论课教学大纲
第一讲 引言:计算机,因特网,互联网
计算机:硬件与软件
计算机组成原理
操作系统
Web 2.0
软件技术
第二讲 Java 应用程序简介
Java 开发环境
Java 程序样例解析
基本数据类型
算术运算
第三讲 控制语句 1
算法与伪代码
控制结构
选择语句 if ifelse
循环语句 while
第四讲 控制语句 2
循环语句 for dowhile
选择语句 switch
break continue 语句
逻辑运算符
结构化编程
第五讲 数组
数据结构与数组
for-each 语句
多维数组
第六讲 方法简介
模块化编程
方法声明与调用(静态方法)
方法调用栈
4
方法重载
第七讲 类与对象简介
类、对象、方法
类的声明及实例化
实例变量
用构造方法初始化对象
第八讲 字符串与包装类
字符与字符串
String
StringBuilder
基本数据类型的包装类
第九讲 类、对象及方法:深层探究 1
类成员的访问控制
默认和无参构造方法
Set Get 方法
类的设计:组合
第十讲 类、对象及方法:深层探究 2
枚举类型
垃圾回收和 finalize 方法
静态类成员:方法与域
方法重载简介
第十一讲 向对象程序设计:继
父类与子类
protected 类成员
利用继承进行软件设计与实现
Object
第十二讲 向对象程序设计:多
多态
方法重写
抽象类与抽象方法
Final 类与方法
第十三讲 型类与方法
泛型方法
泛型类
通配符
第十四讲 型集合
Collection 接口与 Collections
常见集合类型
5
常用集合方法
第十五讲 常处理
异常及其处理机制
异常类层次结构
受检异常与未受检异常
Stack traces 及异常链
第十六讲 形界面编程
图形界面发展历史
容器与模块
事件驱动模型
布局管理
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
6
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
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
7
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
实验课教学大纲
实验 1. 课程准备
JDK 安装及环境变量配置
使用命令端编译、运行 Java 程序
实验 2. 基础练习
IDE 的使用
Scanner 类的使用
学习基本数据类型
学习基本运算
实验 3. 控制语句
选择结构: if else
循环结构:while
实验 4. 控制语句
选择结构:swtich
循环结构: do while , for
实验 5. 一维数组
声明,创建,初始
简单的算法练习
实验 6. 静态方法
定义与调用
方法重载
实验 7 . 多维数组
声明,创建,初始
复杂算法练习
ArrayList
8
实验 8. 字符
String 类介绍
String 类下的库方法
StringBuilder StringBuffer
实验 9. 类与对象一
构造方法
GetSet 方法
实验 10. 类与对象二
toString 方法
静态变量与方法
实验 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
9
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
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
10
Lab 13. Object-Oriented Programming 2
Abstract class
Interface
Lab 14. Comprehensive exercises 1
Tutorials for the course project
Lab 15. Comprehensive exercises 2
Tutorials for the course project
Project presentation
Lab 16. Comprehensive exercises 3
Tutorials for 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
5%
课堂表现
Class
Performance
小测验
Quiz
5%
课程项目 Projects
20%
平时作业
Assignments
30%
期中考试
Mid-Term Test
期末考试
Final Exam
40%
期末报告
11
Final
Presentation
其它(可根据需要
改写以上评估方
式)
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