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(H) Introduction to Computer Programming A (H)
2.
授课院系
Originating Department
计算机科学与工程系 Department of Computer Science and Engineering
3.
课程编号
Course Code
CS107
4.
课程学分 Credit Value
3
5.
课程类别
Course Type
通识必修课程 General Education (GE)Required Courses
6.
授课学期
Semester
秋季 Fall
7.
授课语言
Teaching Language
中英双语 English & Chinese
8.
他授课教师)
Instructor(s), Affiliation&
Contact
For team teaching, please list
all instructors
余剑峤,助理教授,计算机科学与工程系,yujq3@sustech.edu.cn
Jianqiao Yu, Assistant Professor, Department of Computer Science and Engineering,
yujq3@sustech.edu.cn
9.
/教、学系
方式
Tutor/TA(s), Contact
待公布 To be announced
10.
选课人数限额(不填)
Maximum Enrolment
Optional
授课方式
Delivery Method
习题/辅导/讨论
Tutorials
实验/实习
Lab/Practical
其它(请具体注明)
OtherPlease specify
总学时
Total
11.
学时数
32
64
2
Credit Hours
12.
先修课程、其它学习要求
Pre-requisites or Other
Academic Requirements
NA
13.
后续课程、其它学习规划
Courses for which this course
is a pre-requisite
14.
其它要求修读本课程的学系
Cross-listing Dept.
教学大纲及教学日历 SYLLABUS
15.
教学目标 Course Objectives
本课程主要面向具有一定编程基础的大学本科生。本课程将介绍面向对象程序设计语言的基础知识和编程技术,并对
基本数据类型和数据结进行教授。学生将要学习两门主流程设计语言 Java Python,学会如何使用编程语言进
程序设计,解决实际问题。
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.
We will also introduce preliminary knowledge on data types and data structures. The students will be familiar with two
popular programming languages, i.e., Java and Python. They will be able to construct programs for solving general
problems.
16.
预达学习成果 Learning Outcomes
在课程结束时,学生应该获得以下技能:
1. 了解软件系统的基本模块,因特网和互联网的运行机制。
2. 掌握 Java Python 程序设计语言的基本语法。
3. 掌握面向对象程序设计的四大特性:抽象,封装,继承,多态。
4. 熟悉集成开发环境,并能够设计程序解决实际问题。
5. 了解基础数据类型及数据结构。
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.
5. Understand basic data types and data structures.
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 程序样例解析
基本数据类型
算术运算
第三讲 控制语
算法与伪代码
控制结构
选择语句 if if…else…
循环语句 while
循环语句 for do…while
选择语句 switch
break continue 语句
逻辑运算符
结构化编程
第四讲 数组与方法
数据结构与数组
for-each 语句
多维数组
模块化编程
方法声明与调用(静态方法)
方法调用栈
方法重载
第五讲 类与对象简介
类、对象、方法
类的声明及实例化
实例变量
用构造方法初始化对象
第六讲 字符串与包装类
字符与字符串
String
StringBuilder
基本数据类型的包装类
第七讲 类、对象及方法:深层探究 1
类成员的访问控制
4
默认和无参构造方法
Set Get 方法
类的设计:组合
第八讲 类、对象及方法:深层探究 2
枚举类型
垃圾回收和 finalize 方法
静态类成员:方法与域
方法重载简介
第九讲 面向对象程序设计:继
父类与子类
protected 类成员
利用继承进行软件设计与实现
Object
第十讲 面向对象程序设计:多
多态
方法重写
抽象类与抽象方法
Final 类与方法
第十一讲 泛型类与方法
泛型方法
泛型类
通配符
第十二讲 泛型集合
Collection 接口与 Collections
常见集合类型
常用集合方法
第十三讲 异常处理
异常及其处理机制
异常类层次结构
受检异常与未受检异常
Stack traces 及异常链
第十四讲 Python 编程语言基础 1
变量
列表、多元组、字典
控制流
循环
第十五讲 Python 编程语言基础 2
列表解析式
Python 模块与引用
方法与类
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
Algorithms and Pseudo Code
Control Structures
Selection Statements if and if…else
Repetition Statements while
Repetition statements for and do…while
Selection statement switch
Break and continue Statements
Logical Operators
Structured Programming
Chapter 4 Arrays and Methods
Data Structure and Arrays
Enhanced for Statement
Multidimensional Arrays
Modular programming
Method declaration and invocation (static methods)
Method call stack
Method overloading (an introduction)
Chapter 5 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 6 Strings and Wrapper Classes
Fundamentals of Characters and Strings
Class String
Class StringBuilder
6
Wrapper Classes of Primitive Types
Chapter 7 Classes, Objects and Methods: A Deeper Look 1
Controlling Access to Members
Default and No-Argument Constructors
Set and Get Methods
Composition
Chapter 8 Classes, Objects and Methods: A Deeper Look 2
Enumerations
Garbage Collection and Methods finalize
Static Class Members: Methods and Fields
Method Overloading
Chapter 9 Object-Oriented Programming: Inheritance
Superclasses and Subclasses
Protected Members
Software Engineering with Inheritance
Object Class
Chapter 10 Object-Oriented Programming: Polymorphism
Polymorphism
Method Overriding
Abstract Classes and Methods
Final Methods and Classes
Chapter 11 Generic Classes and Methods
Generic Methods
Generic Classes
Wildcards
Chapter 12 Generic Collections
Interface Collection and Class Collections
Lists, Sets, Maps
Collections Methods
Chapter 13 Exception Handling
Exceptions and Their Handling
Exception Class Hierarchy
Checked/Unchecked Exceptions
Stack Traces and Chained Exceptions
Chapter 14 Python Programming Fundamentals 1
Variables
List, tuple, dictionary
Control flow
Loop
Chapter 15 Python Programming Fundamentals 2
7
List comprehension
Python modules and mport
Function and Class
Standard library
Chapter 16 Basic Algorithm and Data Structure
Sorting and Searching
Stack and Queue
Symbol table
实验课教学大纲
实验 1. 课程准备
JDK 安装及环境变量配
使用命令端编译、运行 Java 程序
实验 2. 基础练习
IDE 的使用
Scanner 类的使用
学习基本数据类
学习基本运算
实验 3. 控制语句
选择结构:if else
循环结构:while
选择结构:swtich
循环结构: do while , for
实验 4. 数组
声明,创建,初始化
简单的算法练习
声明,创建,初始化
复杂算法练习
ArrayList
实验 5. 类与对象一
构造方法
GetSet 方法
实验 6. 字符串
String 类介绍
String 类下的库方
StringBuilder StringBuffer
实验 7. 类与对象二
toString 方法
8
静态变量与方法
实验 8. 静态方法
定义与调用
方法重载
实验 9. 类与对象三
类的组合关系
枚举类
实验 10. 面向对象程序设计一
父类与子类
继承
实验 11. 面向对象程序设计二
多态
抽象类与接口
实验 12. 泛型类与方
泛型类
泛型方法
实验 13. 综合练习一
项目讲解
项目指导
实验 14. Python 基础
Python 环境配置
使用文本编辑器编写 Python 程序
使用 IDE 编写并运行 Python 程序
实验 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.
9
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
Selection statements including switch
Repetition statements including do…while and for
Lab 4. Array
Declare, create and initialize arrays
Simple algorithms
Declare, create and initialize multi-dimensional arrays
More complicated algorithms
ArrayList
Lab 5. Classes and Objects 1
Constructor
Getter and Setter
Lab 6. Strings
The String class
Library methods in String
The StringBuilder and StringBuffer classes
Lab 7. Classes and Objects 2
toString method
Static class members: methods and fields
Lab 8. Static Method
Define and invoke static method
Overload
Lab 9. Classes and Objects 3
Composition
Enumerations
Lab 10. Object-Oriented Programming 1
Supper class and subclass
Inheritance
Lab 11. Object-Oriented Programming 2
Abstract class
Interface
10
Lab 12. Generic Classes and Methods
Generic class
Generic method
Lab 13. Comprehensive exercises 1
Course project introduction
Guidance of the course project
Lab 14. Python Basics
Config Python programming environment
Code Python with text editor
Code and run Python with IDE
Lab 15. Comprehensive exercises 2
Guidance of the course project
Project presentation
Lab 16. Comprehensive exercises 3
Guidance of the course project
Project presentation
18.
教材及其它参考资料 Textbook and Supplementary Readings
Paul Deitel and Harvey Deitel, Java: How to Program (10th ed., late object version), Prentice-Hall (2014)
Robert Sedgewick and Kevin Wayne, Introduction to Programming in Java: An Interdisciplinary Approach (2nd ed.),
Pearson (2017)
Robert Sedgewick, Kevin Wayne, and Robert Dondero, Introduction to Programming in Python: An Interdisciplinary
Approach (1st ed.), Pearson (2015)
课程评估 ASSESSMENT
19.
评估形式
Type of
Assessment
评估时间
Time
占考试总成绩百分比
% of final
score
违纪处罚
Penalty
备注
Notes
出勤 Attendance
10%
课堂表现
Class
Performance
小测验
Quiz
10%
课程项目 Projects
20%
平时作业
Assignments
20%
期中考试
Mid-Term Test
期末考试
Final Exam
40%
期末报告
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