加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

软件工程专业有哪些课程?以清华大学的软件学院本科课程为例

(2016-02-14 21:28:14)
标签:

清华大学

清华大学的软件学院

软件工程

如何选大学专业

如何选大学

 

http://s9/mw690/002W7iLNzy6ZmRoAc8U18&690

 

2014-2015 学年度本科课程介绍
软件学院

04100012 算法设计及其复杂性分析 学分 32 学时
04100041 大数据技术导论 学分 16 学时
34100202 软件工程( 1) 学分 32 学时
34100152 程序设计实践 学分
34100212 软件工程( 2) 学分 32 学时
34100224 离散数学 学分 64 学时
34100232 程序设计实训 学分 64 学时
34100245 数据结构与算法( 1) 学分 80 学时
34100254 数据结构与算法( 2) 学分 64 学时
34100294 计算机与网络体系结构(1) 学分 64 学时
34100304 计算机系统软件( 1) 学分 96 学时
34100325 软件工程( 3) 学分 80 学时
34100333 软件理论基础(1) 学分 48 学时
34100344 计算机与网络体系结构( 2) 学分 64 学时
34100352 软件理论基础(2):函数式语言程序设计 学分 32 学时
44100301 专业素质教育 学分 32 学时
44100343 Web 前端技术实训课程 学分 48 学时
44100354 计算机系统软件( 2) 学分 64 学时
44100365 专业专题训练 学分 80 学时
44100375 数字媒体(1):图形与动画 学分 80 学时
44100385 云数据管理(1) 学分 80 学时
44100395 网络系统(1) 学分 80 学时
44100415 数字媒体(2):多媒体 学分 80 学时
44100425 软件系统建模与验证( 1) 学分 80 学时
44100432 软件系统建模与验证( 2) 学分 32 学时
44100445 云数据管理(2) 学分 80 学时
44100472 软件文化概论 学分 32 学时
44100484 软件系统建模与验证( 1) 学分 64 学时


04100012 算法设计及其复杂性分析 2 学分 32 学时
The design and analysis of computer algorithm
本课程目的是使同学初步熟悉《算法设计及其复杂性分析》有趣而富有挑战的科研方法,经历其过程,了
解如何设计算法解决实际问题,并能进入计算复杂度这一重要而神奇的世界。教学方式是教师首先介绍关
于算法的基本理论并布置相应的问题,这些问题在不同的学期会有所不同,不过都具有很强的理论价值和
应用价值,其中曾经包括素数判定问题( 2002 年印度理工学院的一位教授和两位本科生在该问题上取得重
要进展,成果发表在《 Science》上)、利用前缀翻转操作进行整数排序问题(微软创始人比尔盖茨( Bill Gates)
在读大学二年级时在该问题取得有意义进展,成果发表在《 Discrete Mathematics》上)等一些有趣而易于
理解的问题。同学可以自由组成学习研讨小组,尝试展开相关问题的研究工作。教师将在科研方法上给予
指导,并且每周将进行一次面对面的专题研讨。最终学生提交问题求解报告以及一些中间过程报告,教师
根据问题的解决程度以及求解过程中提出思想的创新性等评定成绩。选课指导:本课程富有挑战性,需要
较大的勇气以及强烈的求知欲望和上进心。请想混学分或担心学习力不从心的同学不要选这门课。据往届
同学反映,本课程作业量大,富有挑战性,需要付出很大的努力,最终收获也很大。部分同学的研究成果
已经形成了学术论文。
04100041 大数据技术导论 1 学分 16 学时
Introduction of Big Data Technology
近年来,“大数据”作为一个新的名词在众多领域得到关注,包括科学、工程、医疗、卫生、经济、商业,
乃至整个社会。除了直观理解的“规模大”( Volume)特征以外,大数据还具有“高吞吐率”( Velocity),
“多样性”( Variety),“价值稀疏”( Value)等多个 V 特征。本课程侧重引导学生对大数据管理与应用的学
习兴趣和路线。从当前行业现状出发,利用一些真实案例,向学生介绍行业中大数据存在的真实情况,引
出一系列大数据所带来的价值与挑战,使得学生对相关背景和存在问题建立初步轮廓。通过介绍大数据相
关技术,让学生对大数据管理技术有一个大致了解,从而引导学生对后续相关课程的选则。此外,本课程
还将介绍知名大学在大数据研究方面的最新进展,以及潜在的研究方向,激发同学进一步学习研究的热情。
34100152 程序设计实践 2 学分
Practice of Programming
本门课程的目的是培养学生一自学为主熟练掌握一种新的编程环境和编程语言的能力。培养学生综合运用
所学知识,独立对软件的应用需求进行分析和整理,以协作的方式共同完成软件系统的设计,开发和测试,
体验软件项目开发的全过程。教学计划主要分两个阶段进行:首先通过一周的教学和练习使学生对.NET 框
架和 C 语言有一个基本的入门知识,要求学生通过自学和练习熟练掌握编程环境和编程技巧。在此基础上,
学生以三人为单位组成项目小组,根据《实验说明书》的要求以协作的方式完成一个完整的软件项目开发
任务。软件项目开发任务具有一定的开放性,要求学生自己对软件的需求进行分析,并进行功能设计。项
目开发过程中要求小组人员责任分工明确,开发过程阶段划分明确。在每个阶段学生需要提供详细的技术
说明文档并以 ppt 的形式在全班进行报告。项目开发过程应该包括:需求分析和功能设计阶段,系统设计
和模型设计阶段,软件演示和测试阶段。
34100202 软件工程( 1) 2 学分 32 学时
Software Engineering1
本课程采用基本原理和方法讲解与案例教学相结合的方法,讲解过程式程序设计语言及其程序设计技术,
包括包括数据类型与表达式、顺序结构程序设计、选择结构程序设计、循环控制、数组、函数、指针、结
2014-2015 学年度本科课程介绍
构体等内容,使学生理解程序设计语言的基本结构,掌握程序设计的基本思想、方法和技巧。
34100212 软件工程( 2) 2 学分 32 学时
Software Engineering (2)
面向对象已成为计算机领域的主流技术之一, C++语言有效支持面向对象设计思想,应用十分广泛。课程
将以 C++语言为基础,详细介绍用 C++进行面向对象的程序设计的核心思想,注重实用的 C++面向对象程
序设计方法,阐述如何提高程序的可复用性和可维护性,以及如何提高程序编写效率和程序的运行效率。
本课程要求学生建立面向对象的思维模式,并能训练地用 C++实现这些思路。具体包括理解对象建立、封
装、继承、多态、析构等技术手段,理解面向对象的程序设计思想,掌握程序调试和验证的基本方法。通
过完成一定工作量的编程练习,掌握有一定规模的程序设计方法,培养编写实用程序的基本素质。
34100224 离散数学 4 学分 64 学时
Discrete Mathematics
本课程是软件学院的基础数学课程,以离散量为研究对象,即面向计算机科学的应用,同时欲揭示相关理
论的内在联系。本课程主要包括以下内容:( 1)数理逻辑部分:包括命题及其符号化、命题公式及其真值、
命题逻辑等值演算、命题逻辑的推理理论、谓词的概念及其符号化、谓词等值演算,范式以及谓词的推理
理论及公理化等内容。( 2)集合论:包括集合的概念、运算;关系及其表示,关系的性质,等价关系与等
价类、相容关系、偏序关系以及格与布尔代数;函数的概念,反函数和复合函数,模糊子集等内容。( 3)
实数集合与集合的基数、康托定理以及连续统假设等。( 4)代数结构部分:主要介绍代数系统的定义和性
质,半群、群及子群、陪集等的定义和性质及其判定,介绍特殊的群类及群的同态、同构基本定理,介绍
环和域的概念及基本性质,环的同态、同构基本定理等内容。
34100232 程序设计实训 2 学分 64 学时
Practical Training For Programming
本课程是以实践为主的高级语言程序设计课程,是软件工程课组的重要组成部分。本课程采用基于问题的
教学与学习方法。本课程将设计几类适合学生学习与实践的问题(因为每个学期均需要变更问题,所以具
体问题和分类方法可能会有所变化)。问题通常为三大类,例如:基本程序类、平台类和竞赛类。其中基本
程序类侧重于面向对象程序设计的一些思维模式、重要知识点、难点或易发生错误的知识点。平台类和竞
赛类均侧重于面向对象的程序设计的综合应用,提高学生学习的自主性和学习乐趣。本课程的第一个环节
是提出问题。在本课程的第二个环节中,学生将分成为小组,每个小组一般为 3 人,且不超过 3 人。学生
通过小组讨论分析并通过面向对象程序设计的方法解决问题。本课程的最后一个环节是汇报、讨论以及讲
评,从而培养学生综合应用计算机语言程序设计的能力。
34100245 数据结构与算法( 1) 5 学分 80 学时
Data Structrue and algorithm1
本课程教学内容包括图论和数据结构和两部分。图论在计算机理论、算法以及工程实践中均起着非常重要
的作用,通过图论这一在计算机理论、算法以及工程实际中都起着重要作用的基础学科,培养学生的抽象
思维和严格逻辑推理能力,并使学生掌握处理离散结构所必须的描述工具和方法, 从而为数据结构和算法
课的学习奠定基础。数据结构是计算机程序设计的重要理论基础,它所讨论的知识内容和提倡的技术方法,
无论对进一步学习计算机领域的其它课程,还是对从事软件工程的开发,都有着不可替代的作用。通过本
门课程的学习,帮助学生正确理解和掌握图论和数据结构相关的基本概念、基本定理、基本算法及实现方
法,了解相关知识在计算机各个领域的重要应用,同时培养学生将实际问题抽象为数学问题并利用相应的
数学基本理论分析方法和算法解决问题的能力,使学生学会从问题入手,分析研究计算机处理的数据结构
的特性,以便为应用所涉及的数据选择适当的逻辑结构、存储结构及其相应的操作算法,并初步掌握时间
2014-2015 学年度本科课程介绍
和空间分析技术。在理论和实践上都为后续其它计算机专业课程的学习奠定坚实的基础。
34100254 数据结构与算法( 2) 4 学分 64 学时
Data Structure and Algorithms (2)
本课程将围绕算法分析与设计的基本理论、基础知识、基本方法和基本技能等核心内容,以及数据管理、
智能系统和信息检索等领域所需要的基础性方法与新技术,通过丰富的案例,使学生掌握本课程所涉及的
关键技术,并提高实践和动手能力。本课程的主要内容包括:
1. 函数增长
2. 分治法
3. 随机算法
4. 排序算法
5. 动态规划
6. 贪心算法
7. 均摊分析与堆
8. NP 完全性理论
9. 近似算法
10. 多维数据访问方法
11. 图像与多媒体
12. 文本数据访问方法
13. 智能技术中的数据结构
14. 序列数据访问
34100294 计算机与网络体系结构(1) 4 学分 64 学时
Architecture of Computer and Network(1)
针对软件工程学科对计算机与网络原理的培养需求,围绕计算机与网络体系结构,讲解的主要知识点包括:
汇编级机器组织、接口与通信、存储系统组织、功能组织、多处理器和其他系统组织、性能提高技术和实
时与嵌入式系统。
通过这些内容的讲解,并结合混合程序设计、微处理器的软件模拟等实践工作,使学生具备以下能力:
1)系统化认知计算机与网络的基本原理与组织,了解硬件与软件的有效组织;
2)掌握设计与实现计算机与网络的能力。
34100304 计算机系统软件( 1) 4 学分 96 学时
Computer System Software (1)
本课程围绕两类资源(即硬件资源、数据资源和软件资源)的一体化管理及应用,讲解的知识点主要包括:
操作系统概述、进程管理、存储管理、 IO 设备管理、文件系统、操作系统安全;分布式系统概述、分布式
算法和体系结构; Web 技术、分布式对象框架、中间件、面向服务的体系架构;网格计算、云计算。
通过这些内容的讲解,并结合开源的 Unix操作系统 xv6、Linux操作系统 Ubuntu、开源的应用服务器 GlassFish
等,使学生具备以下能力:
1) 具备基于操作系统的核心概念、基本原理,深入分析并改造开源 Linux 操作系统的能力;
2) 具备对分布式系统或中间件设计、构建与优化的能力;
3) 具备编写或构造系统软件的基础理论和专门知识。
34100325 软件工程( 3) 5 学分 80 学时
Software Engineering(3)
2014-2015 学年度本科课程介绍
本课程从软件生命周期的角度讲解软件工程的基本原理和基本方法,使学生掌握需求分析、软件设计、软
件测试、软件演化、软件过程与管理等方面的基础知识,建立软件开发的系统化与工程化观念和质量意识,
能够综合利用软件工程的方法与技术,以小组方式进行中大规模软件开发,为将来从事大型软件系统的开
发与维护打下扎实的基础。
34100333 软件理论基础(1) 3 学分 48 学时
Software Theory(1)
这门课主要介绍形式语言、自动机、可计算性及相关内容,包括:基础知识;确定性有限自动机、非确定
性有限自动机;正则表示与语言;正则语言与正则文法;正则语言的性质、 Pumping 引理及应用;上下文
无关文法与语言;下推自动机、确定性下推自动机;上下文无关语言的性质、上下文无关语言的 Pumping 引
理及应用;图灵机、非递归可枚举的语言、问题的不可判定性等.
34100344 计算机与网络体系结构( 2) 4 学分 64 学时
Architecture of Computer and Network 2
针对软件工程学科对计算机与网络原理的培养需求,围绕计算机与网络体系结构,《计算机与网络体系结构
2》讲解的主要知识点包括:汇编级机器组织、实时与嵌入式系统、程序设计语言概述、虚拟机、语言翻译
简介、语言翻译系统等。
教学重点在于从“程序员角度”系统化介绍计算机与网络的基本原理及组织,突出软件与硬件的有效组织。
为学生掌握设计与实现计算机、网络和高级程序设计语言的能力打下良好基础。
34100352 软件理论基础(2):函数式语言程序设计 2 学分 32 学时
Functional Programming
函数式语言是编程语言的一个重要分支。相比命令式语言(如 C, Java 等),函数式语言更加抽象和简洁,
数学特性更强,更贴近于人的直接思维,便于书写出精简且严谨的程序。本课程的讲解基于纯函数式语言
Haskell。我们首先介绍基础知识(包括语法、语义等),然后介绍函数式语言的设计方法(包括递归、模式
匹配等),再进一步说明函数式语言区别于命令式语言的特点(无副作用、惰性求值、类型推导等),最后
介绍函数式语言在实际工程中的使用方法。
44100301 专业素质教育 1 学分 32 学时
Introduction of Professional Diathesis
通过本课程的学习,让学生了解软件专业的发展过程和基本内容、职业素质的基本要求、软件专业对人的
素质的基本要求,使学生树立正确的专业观和人生观,明确大学四年的学习目标,制定切实可行的实现计
划。
44100343 Web 前端技术实训课程 3 学分 48 学时
Web Front-end Technology
本课程由百度企业有经验的前端开发工程师主讲,结合当前流行的 Web 前端技术以及企业产品开发实践,
针对目前 Web 前端富交互领域和 Web 前端展现领域的研究热点和关键技术,课程从多个方面对 Web 前端
技术和架构进行讲解和分析,主要内容包括 web 交互技术发展趋势、浏览器渲染技术、 CSS 样式之美,
HTML5&CSS3 技术, JS 关键技术、 JS 架构设计以及地图 API 开发等,使学生掌握 Web 前端技术以及前端
工程性的开发方法。
44100354 计算机系统软件( 2) 4 学分 64 学时
Computer System Software(2)
2014-2015 学年度本科课程介绍
本课程围绕数据资源的管理及应用,讲解的知识点主要包括:数据库设计理论、技术与方法; SQL 语言及
数据库调用接口、嵌入式 SQL;数据库管理系统体系结构与基础算法;数据库安全。
通过这些内容的讲解,并结合开源的数据库管理系统 HSQL、开源的非结构化数据管理引擎 LaSQL 等,使
学生具备以下能力:
1) 具备数据库系统设计能力、数据库应用开发和管理能力以及数据库核心系统实现技术与开发能力;
2) 具备编写或构造系统软件的基础理论和专门知识。
44100365 专业专题训练 5 学分 80 学时
Project Training
本课程结合实际的工程项目,让学生参与软件系统的整体规划,独立完成模块的需求调研、需求分析、系
统设计、系统测试、系统实施、文档编写。
44100375 数字媒体(1):图形与动画 5 学分 80 学时
Digital Media(1): Computer Graphics and Animation
光栅图形学;
真实感图形学;
几何建模;
关键帧动画;
变形体动画;
过程动画;
关节动画;
基于物理的动画
44100385 云数据管理(1) 5 学分 80 学时
Cloud Database Management(1)
理解分布式计算环境下云数据管理的基本概念,包括大规模数据的分布与并行处理、大数据(半结构与非
结构化数据)组织模型及其存储管理基本原理和方法,基于云数据服务的一些具有挑战性的研究问题;掌
握云数据集成与大数据分析技术,包括数据仓库、信息集成、多维数据分析技术;掌握大数据智能处理技
术、典型算法及其应用技术;掌握信息检索基础知识与应用技术;了解主流的非关系数据管理系统,培养
学生大规模数据管理的独立思维、分析和解决实际应用问题的能力。课程分别从基础、系统和应用三方面
讲解云数据管理基础、云数据( NoSQL 和 SQL)管理系统和云数据管理应用。基础部分覆盖大数据基本概
念、云数据挖掘和云数据质量;系统部分讲解分布与并行数据管理和云数据集成与分析;应用与实践部分
介绍信息检索与服务等。
本课程分系统篇(云数据管理 1)和应用篇(云数据管理 2),系统篇包括云数据管理基础和分布式数据库
管理,应用篇包括数据分析与挖掘、多媒体信息检索和综合实践。
计划每周 10 个学时,每次 2/3 学时,包括 8 次研讨课,每次 2 学时,内容包括论文报告、自学讨论等。
44100395 网络系统(1) 5 学分 80 学时
Network System(1)
本课程讲解云计算的历史背景与工业现状、核心支撑技术,并研讨云计算的一系列高级课题。同时讲解 P2P
网络及其典型应用、 P2P 关键技术。
44100415 数字媒体(2):多媒体 5 学分 80 学时
Digital Media(2): Multimedia
本课程一方面讲授数字图像、视频、音频处理的基本概念、基本原理、典型方法、实用技术,同时还介绍
2014-2015 学年度本科课程介绍
图像、音频、视频处理在各个领域中的应用和国际上有关的最新研究成果,包括图像编辑、拼接、变形、
着色、抠像、图像检索、以图搜图、视频内容分析、音频管理等,扩展学生们的知识面和学术视野。在课
程一开始就帮助学生们建立一个图像处理软件框架和音视频管理与搜索框架,帮助学生们掌握开发数字媒
体软件的基本方法和技巧,通过将每堂课介绍的算法不断加入到这个软件中,最终在课程结束时实现一个
自己的实用多媒体处理软件,提高编程能力。并通过开放式的大作业,通过自发阅读相关论文,提出新的
想法并编程实现,不断提高大作业的质量,激发学生们进一步研究探索的兴趣以及团队协作的能力,为学
生今后从事多媒体方向的工程开发和学术研究打下坚实的基础。
44100425 软件系统建模与验证( 1) 5 学分 80 学时
Modeling and Verification of Software Systems: Part I
本课组致力于从系统学的角度,以形式化方法为主线,介绍重要的软件建模、验证等技术。课程教学中,
主要采用案例教学的方法,以工具为载体,讲解软件系统建模与验证的基本原理及其在系统开发流程中的
具体应用。
在系统建模部分,课组依托典型软件系统建模语言,讲解软件系统建模的基本方法,包括同步与异步、抽
象于精化、形式化与非形式化建模等内容。在形式化验证部分,课组结合具体工具讲解模型检测的基本原
理和主要工具,覆盖可满足性判定、时序逻辑、模型检测算法等内容。
44100432 软件系统建模与验证( 2) 2 学分 32 学时
Modeling and Verification of Software Systems: Part II
本课组致力于从科研和新型软件角度,引导同学们对软件系统建模与验证的高级课题和前沿科学问题进行
初步的研究工作。课程教学中,主要采用研讨教学的方法,通过教师设置一些前沿的科学问题,带领学生
进行论文阅读、创新性思考、通过组织研讨、辩论和教师点评,培养学生独立发现问题和解决问题的能力。
44100445 云数据管理(2) 5 学分 80 学时
Cloud Data Management (2)
针对分布式环境下复杂、海量数据服务的需求,围绕云数据管理系统建设及其应用讲解的知识点主要包括:
云数据管理基础、大数据存储技术、分布与并行数据管理、云数据集成与分析、数据仓库与云数据挖掘、
信息检索与服务。
通过这些内容的讲解,并结合非结构化数据库管理平台中的分布式文件存储、类 SQL 引擎、图像数据检索、
文本数据挖掘等实践平台,使学生具备以下能力
1) 掌握云数据管理系统体系结构、大数据处理基本技术、非结构化数据管理模型与数据处理方法;
2) 具备云数据分布式存储设计、面向应用的分布式数据管理的能力;
3) 掌握智能数据处理方法与算法,具备信息检索、云数据服务和智能数据处理的能力;
4) 具备构建大数据管理系统的基础理论和系统的专门知识。
44100472 软件文化概论 2 学分 32 学时
Introduction to Software Culture
培养本科生了解软件文化的历史渊源及产生背景,理解软件分类的基本原则,掌握软件未来应用领域。
软件文化概论( 2 学分,共 32 学时)授课教师:覃征
1. 软件历史( 16 学时)
( 1) 计算机的历史 ( 8 学时)
概述计算机的产生、发展以及计算机外延设备等。
( 2)软件的历史(8 学时)
概述软件的定义、编程语言的发展、软件及软件企业的发展等
2014-2015 学年度本科课程介绍
2. 软件分类( 8 学时)
( 1)系统软件( 4 学时)
包括操作系统、数据库系统、驱动程序、编程开发工具、编译工具等
( 2)应用软件( 4 学时)
包括通用软件、行业应用软件、嵌入式应用软件、移动社交软件等
3. 软件应用( 8 学时)
( 1)软件的应用领域( 4 学时)
包括软件在工业、农业、医疗、娱乐、互联网、移动等产业的应用
( 2)软件的未来应用( 4 学时)
包括软件在太空、科学探索、新能源、物联网等领域的应用
44100484 软件系统建模与验证( 1) 4 学分 64 学时
Modeling and Verification of Software Systems(1)
本课组致力于介绍重要的软件分析验证技术。课程教学主要采用案例教学的方法,以工具为载体,讲解软
件系统分析与验证的基本原理及其在系统开发流程中的具体应用。
本课程面向计算机软件专业高年级本科生开设,介绍软件分析与验证的基本方法及原理。本课程覆盖的理
论内容包括:时序逻辑、不动点理论、可满足性理论、模型检测算法、运行时验证、程序验证等。本课程
还将结合实际项目和工具讲解软件分析与验证技术在软件开发中的具体应用。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有