计算概论A课程详细信息

课程号 04830041 学分 3
英文名称 Introduction to Computation (A)
先修课程
中文简介 作为北京大学覆盖面最广的理科课程之一,《计算概论》课程以北大的网络教学平台为基础,以北京大学国家级计算机实验教学示范中心为依托,辅以多个具有不同专业特点的课程网站,构建了一个多层次开放的网络教学与实验环境。北京大学的网络教学平台为所有老师提供了功能完善、运行稳定的网络教学与互动平台,为学生提供了丰富多彩的教学资源。学生们可以获得整个课程网络教学环境的资源,稳步扎实地完成课程内容的学习。
英文简介 The Fundamentals of Programming

Prereq: None
Credits: 3
Mission:Understand fundamentals of computer science, understand basic and commonly used algorithms in programming, acquire the methods and skills of process - oriented programming.
It covers  computer science and engineering.
Topics include programming with the different data type, e.g, array, point, structure, link and so on. It also involves recursive algorithm, dynamic programing and greedy algorithm.
开课院系 信息科学技术学院
通选课领域  
是否属于艺术与美育
平台课性质  
平台课类型  
授课语言 中文
教材 程序设计基础,吴文虎,清华大学出版社,2006,0,0;
1. C++大学教程(第二版),Harvey  M. Deitel,电子工业出版社,2006,
参考书 0,0;
教学大纲 基本教学目的和要求
1. 以信息科学与技术学院本科新生为授课对象,讲授计算机语言程序设计基础。本课程的教学目标是使学习者掌握程序设计的基本概念、基本方法,并且在实践环节逐步掌握程序设计的技巧,并且建立良好的编成习惯,写出规范的程序代码。
2. 在这个学习过程中,学生将通过程序的结构和相应的语句,写出计算机程序,这是学生必须掌握的基本功。在这背后,我们更强调的是学生对问题抽象能力的培养,学习如何把要解决实际的问题用数学的形式表示以及符号化的方法处理。我们也注重训练学生逻辑思维的能力,学习如何分析问题,确定解题思路。此外,还要介绍一些基本的、经典的算法的知识,例如:递归、贪心算法和动态规划,开阔学生解题的思路。
3. 解决实际问题是最终的目标,因此,程序的调试也是必不可少的学习内容。
第1章 计算机与信息社会
重点:计算机和互联网的发展历程,二进制数制表示、运算及数制编码原理。
要求:了解计算机和互联网的发展历程和现状;熟练掌握二进制数制表示、二进制运算及数值二进制编码原理。
第2章 互联网与信息共享
重点:互联网的硬件设施、通信协议和基本应用,动手接入互联网的基本知识。
要求:了解互联网的硬件设施和通信协议在互联网中的角色和作用;熟悉互联网中的各类基本应用;了解自己动手组建局域网、接入互联网的相关实践知识。
第3章 计算机的基本组成
重点:计算机的结构及硬件组成,计算机系统的软件层次。
要求:掌握计算机的CPU、总线、内存和外设等设备部件之间的硬件组成关系;了解各种类型的计算机部件设备;掌握计算机“硬件、操作系统、系统软件、应用软件”的软硬件层次关系;了解计算机硬件装配过程和软件系统安装过程。
第4章 信息表示与信息输入输出
重点:声音、颜色、图像、文字等信息二进制编码的基本原理。
要求:掌握声音、颜色、图像、文字等信息二进制编码的基本原理;了解多媒体信息文件格式及编码与压缩技术,了解常用的多媒体软件;了解人机交互技术。
第5章 信息存储
重点:计算机存储系统从寄存器、高速缓存、内存到外存的层次结构。
要求:掌握计算机存储系统层次结构及各层次存储器件的特点;了解磁盘、光盘和闪存(U盘)的存储原理;
第6章 CPU的信息处理
重点:CPU的工作原理、指令及指令周期的概念;CPU访问主存储器的工作原理。
要求:了解图灵机计算的原理;掌握CPU的内部组成,及指令在CPU中执行的过程;掌握CPU访问主存储器的工作原理;了解数据(整数、浮点数)在主存储器中存储和表示。
第7章 计算机软件与硬件的协同工作
重点:操作系统的功能和作用,文件系统的概念和使用。
要求:了解操作系统引导过程,了解操作系统的主要功能和典型的操作系统的实例;了解文件系统组织文件的原理和方法;了解信息安全的基本概念,初步了解加密技术和计算机病毒防范技术。
第8章 程序设计 - 入门篇
重点:程序设计的要素和过程,高级程序设计语言的特点,C语言程序示例及程序规范。
要求:理解程序设计从问题抽象到程序测试的整个过程;了解设计语言从机器语言到汇编语言再到高级程序设计语言的发展过程;理解示例程序处理问题的过程和程序执行的关系;掌握正确的规范化的程序设计风格。
第9章 程序设计 - 基本框架
重点:变量、常量、数据类型和表达式;指令流的控制;控制台输入和输出。
要求:掌握变量、常量、数据类型和表达式等C语言中的基本概念;掌握语句顺序执行和分支循环语句对程序执行过程的控制;掌握基本的控制台输入输出方法;通过初等算法综合应用本章所学的语言点。
第10章 程序设计 - 数组和结构
重点:数组、结构、指针、字符串等数据类型;内存动态申请与释放;文件操作;排序和查找问题。
要求:熟练掌握数组、结构两种复合数据结构的概念和使用;理解指针的概念和使用指针操作数据的特点,掌握字符串的概念和使用;了解通过指针和动态内存构造运行时刻才确定长度的数组;了解基本的文件操作函数;掌握最基本的排序和查找算法。
第11章 程序设计 - 函数
重点:函数的参数传递;变量作用域;递归调用的概念及应用。
要求:掌握函数的定义与调用,理解值参和形参的差别;理解全局变量和局部变量的生命期,了解变量的作用域范围与代码块的关系;了解模块化程序设计思想(问题分解与抽象);掌握函数递归调用的原理及特点。
第12章 问题分析与算法设计
重点:程序设计优劣的判断标准(算法的时间复杂性);递归与分治、搜索与回溯、动态规划等一般的算法设计方法与思想。
要求:了解程序设计的一般性经验,了解程序设计优劣的判断标准(即算法的时间复杂性和空间复杂性);掌握应用递归方法解决具有递归结构的问题,了解分治方法对提高一般递归算法运行速度的作用;掌握应用系统的搜索方法求解问题,了解回溯对提高搜索性能上的作用;掌握应用动态规划的方法求解一般的最优化问题,了解动态规划自顶向下分解问题,自底向上求解问题的程序设计方法;了解NPC问题的性质,认识一些常见的NPC问题。
本课程课时安排为4学时/周,共64学时,包括课堂教授和上机,不同的教学班级,可以根据实际的需要适当调整课堂讲授和上机的学时分配。课程教学的环节包括:教师课堂讲授,学生在线实践及教师、助教现场辅导,学生利用网络课件和网络资源自学,学生课后作业和小组合作,教师、助教网络答疑和网络讨论等。除了传统的教学方式方法之外,我们尤其注重实践能力和创新能力的培养,设计了多种有特色的教学方法和教学手段,包括在线实践、多层次的教学辅导、在线考试、与大学生程序设计竞赛相结合、定期的教学交流与讨论等。
1. 平时成绩:25%(其中作业:15%,实验题:10%)
2. 期中考试:15%
3. 期末考试:60%
教学评估 崔斌:
学年度学期:16-17-1,课程班:计算概论A1,课程推荐得分:4.29,教师推荐得分:4.02,课程得分分数段:85-90;
学年度学期:17-18-1,课程班:计算概论A1,课程推荐得分:4.38,教师推荐得分:3.9,课程得分分数段:85-90;
学年度学期:18-19-1,课程班:计算概论A1,课程推荐得分:0.0,教师推荐得分:7.2,课程得分分数段:80-85;
学年度学期:19-20-1,课程班:计算概论A1,课程推荐得分:0.0,教师推荐得分:7.82,课程得分分数段:80-85;
学年度学期:20-21-1,课程班:计算概论A3,课程推荐得分:0.0,教师推荐得分:7.73,课程得分分数段:85-90;
学年度学期:21-22-1,课程班:计算概论A3,课程推荐得分:0.0,教师推荐得分:9.0,课程得分分数段:90-95;
学年度学期:22-23-1,课程班:计算概论A2,课程推荐得分:0.0,教师推荐得分:8.24,课程得分分数段:85-90;
学年度学期:23-24-1,课程班:计算概论A2,课程推荐得分:0.0,教师推荐得分:8.71,课程得分分数段:85-90;