ACM程序设计竞赛》教学大纲

课程代码

045101161

课程名称

ACM程序设计竞赛

英文名称

ACM Programming Design Contest

课程类别

专业领域课

课程性质

选修

学时

总学时:32上机学时:0 实验学时:0 实践学时:0

学分

2.0

开课学期

第三学期

开课单位

计算机科学与工程学院

适用专业

计算机科学与技术全英联合班,全英创新班

授课语言

中文授课

先修课程

高级语言程序设计,数据结构

毕业要求(专业培养能力)

本课程对学生达到如下毕业要求有如下贡献:

1. 工程知识: 培养学生熟练掌握英语,掌握扎实的计算机科学与技术专业基本原理、方法和手段等方面的基础知识用于解决复杂工程问题,并通过计算机系统分析、建模和计算等方面的先进方法,为将所学基础知识应用到计算机科学与技术研发和工程实践做好准备。

2. 问题分析: 培养学生能够创造性地利用计算机科学基本原理解决计算机领域遇到的问题。

3. 设计/开发解决方案: 能够设计针对计算机工程复杂问题的解决方案,设计满足特定需求的计算机软硬件系统,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。

4. 研究: 培养学生具备计算机系统相关知识并对计算机工程复杂问题进行研究,具有计算机系统研发基本能力、具备问题分析和建模的能力,具有系统级的认知能力和实践能力,掌握自底向上和自顶向下的问题分析方法。

课程培养学生的能力(教学目标)

通过本学科的教学,使学生能掌握ACM程序设计竞赛的基本知识,掌握高级数据结构、离散数学、初等数论、数值计算、人工智能、时空平衡、图算法、排序与查找算法、计算几何等内容,并能综合运用这些知识,来解决 ACM-ICPC程序设计竞赛的题目。

课程简介

本课程主要是向学生介绍有关ACM程序设计竞赛的相关知识,让学生掌握竞赛的相关算法,并学会运用这些算法去解答程序设计竞赛题目

教学内容与学时分配

(一)ACM-ICPC简介1学时

(二)高级数据结构4学时

(三)离散数学    2学时

(四)初等数论    3学时

(五)数值计算    2学时

(六)人工智能算法3学时

(七)时空平衡    3学时

(八)动态规划    4学时

(九)图算法        6学时

(十)计算几何    4学时

实验教学(包括上机学时、实验学时、实践学时)

教学方法

讲授基础理论知识,结合具体的问题讲授概念与理论,辅以课上讨论、在OJ上做习题等多项教学手段。

考核方式

本课程注重过程考核,成绩比例为:

平时作业(上机)和课堂表现:40%

期末考试(上机考试):40%

教材及参考书

参考教材:罗勇军,算法竞赛入门到进阶 (第1版),2019,清华大学出版社。

参考资料:

Thomas H.CormenCharles E.LeisersonRonald L.RivestClifford Stein. Introduction to Algorithms. MIT press.


制定人及制定时间

冼楚华,2019410


 “ACM Programming Design Contest” Syllabus

Course Code

045101161

Course Title

ACM Programming Design Contest

Course Category

Specialty-related Course

Course Nature

Elective Course

Class Hours

32

Credits

2.0

Semester

The third semester

Institute

School of Computer Science and Engineering

Program Oriented

Computer Science and Technology Full English Creative Class

Teaching Language

Chinese

Prerequisites

Advanced Programming Language, Data Structure

Student Outcomes

(Special Training Ability)

1.Engineering Knowledge: An ability to apply knowledge of English, solid knowledge of professional basic principles, methods and means of computer science and technology for solving complex engineering problems, to well prepare the required knowledge applied to the computer science and technology research & development and engineering practice through computer systems analysis, modeling and calculation and any other aspects of the advanced approach.

2.Problem Analysis: An ability to creatively use the basic principles of computer science to solve the problems encountered in the computer field.

3.Design / Development Solutions: An ability to design solutions for computer engineering complex problems, to design computer hardware and software systems that meet with specific requirements, and to embody innovation awareness in the design process and take into account social, health, safety, cultural and environmental factors.

4.Research: An ability to develop computer system-related knowledge and research computer engineering complex issues, to develop the basic capacity of computer systems research & development, systematic cognitive and practice, master the Bottom-up and top-down problem analysis methods.


Teaching Objectives

This course is to cultivate the students to master some related knowledge of ACM-ICPC, which includes advanced data structures, discrete mathematics, the premier of number theory, numeric algorithms, AI algorithms, time-storage balance, graph algorithm, sort and search algorithm, computation geometry, etc. And from this course, the students should develop an ability to use these algorithms to solve some programming contest problems.   

Course Description

This course is to introduce the related knowledges of ACM programming contest. From this course, the students will study some algorithms using in programming contest and use these algorithms to solve the problems in the programming contests.

Teaching Content and Class Hours Distribution

1. Brief introduction of ACM-ICPC     1

2. Advance Data Structures            4

3. Discrete Mathematics              2

4. Preliminary of Number Theory       3

5. Numeric Computation              2

6. AI Algorithms                     3

7. Time-storage Balance                3

8. Dynamic Programming              4

9. Graph Algorithms                  6

10. Computation Geometry             4

Experimental Teaching

No

Teaching Method

(1)Theoretical learning in the class;

(2)Experiments on the Online Judge.

Examination Method

1. Experiments 40%

2. Online Examination 60%

Teaching Materials and Reference Books

Teaching Materials:

罗勇军,算法竞赛入门到进阶 (第1版),2019,清华大学出版社。

Reference Book:

Thomas H.CormenCharles E.LeisersonRonald L.RivestClifford Stein. Introduction to Algorithms. MIT press.

Prepared by Whom and When

Chuhua Xian, 2019/04/10


专业课程思政建设内容

序号

课程名称

任课教师

职称

学院

育人目标

教学特色

预期成效

1

ACM程序设计竞赛

冼楚华

副教授

计算机科学与工程学院

1.实现计算机科学专业教学与立德树人教育的有机融合;
2.
激发学生“实干兴邦”的爱国奋斗精神。

以华南理工大学ACM程序设计竞赛历年取得的成绩的历史故事,结合时代需要的信息化要求,传达华工一代一代优秀计算机专业任务脚踏实地、立足创新的优良作风的传承。

1.以“ACM程序设计竞赛”的第一堂课为抓手,实现专业教育与课程思政的有效结合;
2.
结合“新工科”建设、“人工智能”等国家战略,激发学生的爱国情怀,树立学生服务国家产业需要的卓越工程师精神。