版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《计算概论》北京大学信息科学技术学院·公共必修课·课程导学Contents目录北京大学《计算概论》课程介绍,涵盖课程定位、内容体系、教学资源与学习策略。01课程定位与学习背景02计算概论模块内容体系03程序设计基础模块内容体系04教学资源与考核体系05学习策略与课程展望Chapter01课程定位与学习背景理解《计算概论》在北大信息学科培养体系中的角色与大学学习的转变LEARNINGTRANSFORMATION大学学习的特点与转变从高中到大学,学习模式发生根本性转变:课程数量与类别大幅增加、教学进度显著加快、自主学习取代被动接受成为核心方式,学生需要尽快建立自我驱动的学习习惯和时间管理能力。01课程体系多元化:涵盖公共必修课、专业基础课、通识选修课等多个层次,需要学生统筹规划每学期课业负荷。02教学节奏加快:单次课堂信息密度高,一节课可能覆盖教材一整章内容,课后及时复习消化成为必要环节。03自主学习主导:图书馆资源、在线平台和学术讲座成为课堂之外的重要知识获取渠道。04自我管理能力:从作息安排到课外活动选择,都需要学生独立判断、合理取舍、主动规划。北京大学图书馆·自主学习场景CourseOverview课程基本信息《计算概论》是北大信息科学技术学院面向一年级本科生开设的专业基础主干课程,3学分、无先修要求,定位为"计算机科学技术的第一门课程",兼具理论认知与实践编程双重目标。课程信息一览表信息项详细内容课程名称计算概论(IntroductiontoComputing)课程号00131410学分3学分开课院系信息科学技术学院/数学科学学院先修课程无(零基础可学)课程定位计算机科学技术第一门专业基础主干课授课语言中文为主课程周期16周(含上机实践环节)课程面向零基础学生开设,3学分、16周完成,是北大信息学科培养体系的入门基石STRUCTURE课程双模块结构概论部分构建认知框架,程序设计部分培养实操能力,二者相辅相成,前者提供理论支撑,后者是核心技能落地。课程由两大模块构成,课时分配体现了理论认知与实践技能的培养侧重。计算概论模块—占总课时15%,构建学生对计算科学的整体认知框架,涵盖计算思维、问题抽象与计算机科学核心概念的导论。15%课时程序设计基础模块—占总课时85%,系统培养编程实操能力,涵盖语法基础、控制结构、函数、数组与算法入门等核心技能。85%课时课时分配比例数据来源:北京大学计算概论课程大纲COURSEOBJECTIVES课程双重目标课程目标涵盖理论认知与实践技能两大维度:理论层面建立计算思维与计算机基础知识框架,实践层面掌握操作系统使用与C语言编程能力,二者共同构成计算机科学入门的完整素养体系。理论知识目标01初步建立"计算思维",学会以算法化、抽象化的方式分析和解决现实问题,培养逻辑推理与问题分解能力02了解个人计算机硬件系统的组成及各部件(CPU、内存、输入输出设备)的功能与协同工作机制03理解操作系统的基本功能,掌握信息表示、处理、存储的底层原理与数据管理机制04了解互联网与计算机网络的基本架构、通信协议及数据传输原理实践技能目标01熟练使用Windows操作系统及办公软件(Word、Excel、PowerPoint)进行文档处理与数据分析02掌握搜索引擎、电子邮件、FTP等互联网工具的高效使用与信息安全意识03熟练使用VisualC++编程环境进行C语言程序开发、调试和运行,理解编译链接过程04具备独立设计并编写C语言程序解决实际问题的能力,掌握模块化程序设计方法Chapter02计算概论模块内容体系从图灵机到冯诺依曼架构,建立计算机科学的认知框架THEORETICALFOUNDATIONS计算机的基本原理:从数学危机到图灵机计算机的理论基础源于数学史上的'判定问题',图灵于1936年提出图灵机模型,从理论上界定了'可计算性'的边界,这一抽象模型成为现代所有计算机的理论基石。01数学危机催生图灵机数学史上的几次危机推动了人类对'计算'本质的深入思考,希尔伯特的'判定问题'直接催生了图灵机的诞生。判定问题02图灵机的三重结构图灵机由无限长纸带、读写头和状态控制器组成,虽为抽象模型却完整定义了'算法'与'可计算性'的概念。可计算性03四步操作定义计算图灵机的运行机理包含读取、写入、移动和状态转换四个基本操作,所有现代计算机程序均可归结为这些操作的组合。四步操作04二进制:计算的数学基础数的二进制表示和布尔运算构成了计算机内部信息处理的数学基础,一切数据最终都以0和1的形式被计算。0与1CHAPTER·COMPUTINGHISTORY计算机的历史与未来计算机发展经历了机械计算、电子管、晶体管、集成电路到大规模集成电路五个阶段,摩尔定律驱动算力持续翻倍;当前传统芯片逼近物理极限,量子计算正在开启下一代计算范式。ENIAC(1946)—世界上第一台通用电子计算机01早期计算设备如算盘、计算尺、巴贝奇差分机代表了人类对自动化计算的不懈追求,为现代计算机奠定思想基础PRE-COMPUTING021946年ENIAC诞生标志着电子计算机时代开启,从电子管到晶体管再到集成电路,计算体积缩小百万倍、速度提升亿万倍194603摩尔定律预言芯片晶体管密度每18-24个月翻倍,这一规律持续驱动了半个多世纪的信息技术革命18–24MO04当前硅基芯片制程逼近物理极限,量子计算机利用量子叠加与纠缠原理,有望在特定问题上实现指数级算力突破QUANTUMARCHITECTURE程序运行的基本原理:冯诺依曼架构冯诺依曼架构以"存储程序"为核心思想,将程序指令与数据共同存储在存储器中,CPU按顺序取指、分析、执行,这一架构自1945年提出至今仍主导现代计算机的设计。硬件五大部件01CPU:运算器负责算术和逻辑运算,控制器负责指令调度,二者合称中央处理器02存储器:内存速度快、断电丢失;外存容量大、持久化,程序运行时需加载到内存03输入输出:键盘、鼠标等输入设备与显示器、打印机等输出设备构成信息流闭环程序执行过程01加载:程序以二进制指令序列存储在外存,运行前先加载到内存指定地址空间02取指:程序计数器(PC)指向下一条待执行指令地址,按顺序从内存中取出指令03执行循环:每条指令经历"取指→译码→执行→写回"四步,直至遇到结束指令COMPUTERSCIENCEFUNDAMENTALS信息的表示:二进制与布尔运算计算机以二进制(0和1)表示一切信息,源于电子器件的双稳态特性;布尔运算(与、或、非)构成逻辑处理的数学基础,所有复杂的计算和判断均由基本布尔运算组合实现。01二进制数的幂次表示每一位代表2的一个幂次,如十进制13=1101₂=2³+2²+2⁰,与电子开关的通断状态天然对应。02三种基本布尔操作AND(与)、OR(或)、NOT(非)——如1AND0=0,1OR0=1,NOT1=0,构成逻辑运算的基石。03逻辑门电路组合所有复杂算术运算(加减乘除)在硬件层面均可通过布尔逻辑门电路的组合来实现。04一切信息归结二进制文字用编码表示(ASCII/Unicode),图片用像素矩阵,声音用采样量化——最终皆为0与1。COMPUTERSYSTEMS计算机系统组成:硬件与软件计算机系统由硬件系统(物理实体)和软件系统(指令集合)共同构成,硬件提供计算能力,软件赋予计算意义,操作系统作为二者之间的桥梁管理全部资源调度。硬件系统01输入设备:键盘、鼠标、扫描仪、摄像头等,负责将外部信息转换为计算机可处理的数字信号02输出设备:显示器、打印机、音箱等,将计算机处理结果以人类可感知的形式呈现03处理器(CPU):计算机的"大脑",负责执行所有算术运算、逻辑判断和指令调度软件系统01系统软件:操作系统(Windows、Linux、macOS)负责资源管理和任务调度,是所有应用运行的基础平台02应用软件:办公软件、浏览器、编程IDE等,面向具体任务为用户提供直接服务03驱动程序:连接硬件与操作系统的中间层,确保各类外设能被系统正确识别和使用CHAPTER04·NETWORKING计算机网络与互联网基础计算机网络通过通信线路与协议将多台设备互联,互联网作为全球最大的网络基于TCP/IP协议族运行;理解分层架构、IP寻址和数据包传输机制是掌握后续网络编程与信息安全的基础。数据中心服务器机房—互联网物理基础设施01网络分类:按覆盖范围分为局域网(LAN)、城域网(MAN)和广域网(WAN),互联网本质上是全球广域网的集合02TCP/IP协议:TCP负责可靠传输,IP负责路由寻址,二者协同确保数据包准确到达目的地,是互联网通信标准03IP地址与DNS:IP地址是设备的唯一标识(如),域名系统将人类友好的网址映射为IP地址04应用层协议:HTTP、FTP、SMTP分别支撑网页浏览、文件传输和电子邮件等日常互联网功能Chapter03程序设计基础模块内容体系以C语言为核心工具,四个迭代周期带你从入门到独立编程CURRICULUMDESIGN四个迭代学习周期程序设计基础部分采用四阶段迭代式教学设计:从感性认知到理性分析、从结构化函数到复杂数据结构,层层递进,每个周期配合编程作业巩固实操能力,降低初学者的学习曲线。周期01感性认识通过阅读和运行现成程序,直观理解"程序是告诉计算机的话",建立编程的初步直觉阅读·运行周期02理性认识系统学习C语言的数据成分、运算成分和控制成分,理解变量、表达式和流程控制的精确含义数据·运算·控制周期03结构化编程学习函数的定义、声明和调用,掌握"分而治之"的结构化程序设计方法论分而治之周期04复杂数据结构深入指针、结构体、链表等进阶内容,为后续数据结构与算法课程打下坚实基础指针·链表FundamentalsC语言的由来、标准与程序构成C语言诞生于1972年贝尔实验室,以语法简洁、贴近底层、功能强大著称,至今仍是系统编程和计算机科学教学的首选语言;一个C程序由预处理指令、头文件、主函数和语句序列构成。历史演进与标准由DennisRitchie于1972年在贝尔实验室开发,最初用于编写Unix操作系统,后经历K&RC、ANSIC(C89)、C99、C11等多个标准演进,持续保持语言活力。1972双重语言能力兼具高级语言的抽象能力和低级语言的硬件操控能力,是Linux内核、嵌入式系统和编译器的首选开发语言,实现效率与控制的完美平衡。Linux程序基本结构#include预处理指令引入头文件、intmain()主函数作为程序入口、花括号{}内的语句序列构成执行逻辑,形成清晰的代码组织范式。main()编程开发环境课程使用VisualC++或类似IDE,提供代码编辑、编译、链接和调试的一体化开发体验,支持项目管理和错误诊断功能。IDEDataTypes·CLanguageC语言数据成分:变量与数据类型C语言通过变量存储数据,变量的类型决定了内存分配方式和可表示的数值范围;掌握int、float、char、bool等基本数据类型及其输入输出方法,是编写任何程序的基础前提。整数型·int占4字节,可表示约±21亿的整数,溢出会导致数据错误,需注意最大最小整数的边界。±2.1×10⁹浮点型·float/doublefloat单精度提供7位有效数字,double双精度提供15位有效数字,用于表示小数和科学计算。7/15Digits字符型·char占1字节,以ASCII码存储单个字符,如'A'=65;字符串本质上是字符数组。ASCII·1Byte变量命名规则以字母或下划线开头,区分大小写,不能使用保留字(如int、return),建议使用有意义的英文命名。A–Z·a–z·_OperatorsC语言运算成分C语言提供赋值、算术、关系、逻辑、位运算等丰富运算符体系,初学者需重点区分赋值与比较运算符、理解整数除法的截断特性以及自增运算符的前缀后缀差异。基础运算符01赋值运算符(=)将右侧表达式的值存入左侧变量,注意与比较运算符(==)严格区分02算术运算包含加、减、乘、除和取余(%),整数除法结果自动截断小数03自增(++)和自减(--)有前缀后缀之分:++i先加后用,i++先用后加逻辑与位运算01关系运算符返回0(假)或1(真),用于构建条件判断表达式02逻辑运算符(&&、||、!)组合多个条件,具有短路求值特性03位运算直接操作二进制位,在底层编程和性能优化场景中应用广泛CONTROLFLOWC语言控制成分:分支与循环C语言通过分支语句(if/switch)实现条件选择、循环语句(for/while)实现重复执行、跳转语句(break/continue)实现流程控制,三者共同构成结构化程序设计的逻辑基础。分支语句if-else根据条件表达式的真假选择执行不同代码块,支持嵌套和多分支(elseif)结构switch-case适用于对单一变量的多个确定值做分支选择,比多重if-else更清晰高效if/switch循环语句for循环适用于已知重复次数的场景,语法为for(初始化;条件;更新){循环体}while循环适用于条件驱动的重复执行,先判断后执行;do-while则先执行一次再判断for/while流程控制break用于跳出当前循环或switch语句;continue跳过本轮循环剩余代码进入下一轮goto虽可实现任意跳转,但破坏程序结构化,课程中不鼓励使用,推荐用break/continue替代break/continueArraysinCC程序中的数组数组是C语言中最基础的批量数据存储结构,通过连续内存空间和统一名称加下标的方式高效管理同类型数据集合,配合循环语句可实现对大量数据的批量处理和遍历操作。一维数组定义定义格式为"类型名数组名[大小]"(如inta[10]),下标从0开始,a[0]到a[9]共10个元素。inta[10]二维数组结构可理解为"表格"结构(如intm[3][4]),第一个下标表示行、第二个表示列,在内存中按行优先顺序存储。行优先存储循环与批量操作数组的核心价值在于配合for循环实现批量操作:遍历、查找最大/最小值、求和、排序等算法都基于数组。遍历·排序越界访问风险数组越界是初学者最常见的错误——访问超出数组大小的下标不会报错,但会导致不可预期的内存数据被篡改。内存篡改Strings&CharacterArrayC程序中的字符串C语言中字符串是以'\0'结尾的字符数组,理解其存储方式和输入输出机制是文本处理的基础;需特别注意输入缓冲区残留字符对后续读取的干扰,以及字符串操作中的边界安全。字符串本质字符串是字符数组,以空字符'\0'标记结束。如"Hello"实际占用6字节——5个可见字符加1个结束符。'\0'结尾输入方式单字符用getchar()或scanf("%c");字符串用scanf("%s")遇空格截断,或fgets可读取整行。scanf·fgets缓冲区问题上一次输入残留的换行符'\n'可能被下一次读取捕获,需用fflush或额外getchar清除。'\n'残留常用函数strlen求长度、strcpy复制、strcmp比较、strcat拼接,均需包含<string.h>头文件。string.hCHAPTER·FUNCTIONSC程序中的函数函数是结构化程序设计的核心抽象工具,通过将复杂问题分解为独立的功能模块实现"分而治之";掌握函数的定义、声明、调用、参数传递和作用域规则,是编写可维护程序的关键能力。函数基础作用域与参数01函数定义格式为"返回类型函数名(参数列表){函数体}",如intadd(inta,intb){returna+b;}📋函数体必须用花括号包裹,返回类型需与return语句匹配02先声明后调用,声明告诉编译器函数的名称、参数和返回类型🔔声明通常放在头文件或调用点之前,避免编译错误03参数传递:实参的值复制给形参(值传递),函数内修改形参不影响原始变量💡值传递保证了调用者数据的安全性,是C语言默认机制04局部变量仅在定义它的函数内有效,函数结束后自动销毁;全局变量在整个程序生命周期内可见🎯合理控制变量作用域可减少命名冲突、降低维护难度05数组参数传递的是首地址而非复制整个数组,因此函数内可修改原数组内容⚠️数组长度需额外传递,函数内sizeof无法获取原数组大小RECURSION函数的递归递归是函数调用自身的编程技巧,通过将问题分解为同类子问题实现优雅求解;每个递归函数必须包含基准情形和递归步骤。递归的本质函数"自己调用自己",但必须有明确的终止条件(基准情形),否则会无限递归导致栈溢出崩溃。基准情形阶乘n!=n×(n-1)!,基准情形1!=1,每次递归将问题规模缩小1直到触达基准。n!斐波那契数列F(n)=F(n-1)+F(n-2)展示递归的树形展开,朴素递归效率低,可用动态规划优化。F(n)汉诺塔将n个盘子的移动分解为三步递归操作,是理解递归分治思想的经典范例。分治POINTER指针:C语言的终极利器指针是存储内存地址的特殊变量,赋予C语言直接操控内存的能力,是实现动态数据结构、高效参数传递和底层系统编程的基础;但也因野指针、内存泄漏等问题成为初学者最大挑战。01指针变量存储另一个变量的内存地址,定义格式为'类型名*指针名',取地址用&,取值用**p&&02实现函数间数据共享(通过地址修改原变量)、动态内存分配(malloc/free)和高效数组遍历malloc/free03野指针(未初始化就使用)和悬空指针(指向已释放内存)是最常见错误,会导致不可预期的程序崩溃野指针·悬空指针04数组名本质是指向首元素的常量指针,指针算术运算(p++、p+n)可直接遍历数组p++/p+nDATASTRUCTURES结构体与链表结构体将不同类型数据封装为复合类型,链表则基于结构体与指针实现动态内存管理,二者共同构成C语言中从基础数据类型到复杂数据结构的关键桥梁,为后续算法课程奠定基础。STRUCTDEFINITIONstructStudent{charname[20];intid;floatscore;};·p->nameLINKEDLISTNODEstructNode{intdata;structNode*next;};malloc·insert·delete·traverse结构体(struct)01结构体定义格式为struct结构体名{成员列表};,允许将不同类型数据(如姓名+学号+成绩)封装为一个逻辑整体02结构体变量通过.运算符访问成员(如),结构体指针通过->访问(如p->name)链表01链表是由节点组成的动态数据结构,每个节点包含数据域和指向下一节点的指针域,不需要预先确定大小02核心操作包括创建节点(malloc)、插入、删除和遍历,均依赖指针操作实现03相比数组,链表在中间位置插入/删除时效率更高(O(1)vsO(n)),但随机访问效率较低CHAPTER04教学资源与考核体系教材选用、编程环境、辅导资源与成绩评定方式全面说明COURSERESOURCES教材与参考书目课程以许卓群等编著的《计算概论》为主教材,辅以两本程序设计参考书和在线实践平台;学习应以课件为提纲、教材为主线,同时积极利用图书馆和在线资源进行拓展学习。类型书名作者出版社/年份主教材《计算概论(第二版)》许卓群、李文新、罗英伟、汪小林清华大学出版社,2009参考书《计算概论-程序设计阅读题解》汪小林、罗英伟、李文新清华大学出版社,2011参考书《程序设计导引及在线实践》李文新、郭炜、余华山清华大学出版社,2007在线资源中国大学MOOC《计算概论与程序设计基础》李戈(北京大学)爱课程平台主教材配合两本参考书和MOOC在线课程,构建课内课外结合的完整学习资源体系PRACTICALENVIRONMENT上机操作环境与工具课程每周安排2小时上机实践,要求学生掌握Windows操作系统、办公软件、互联网工具和VisualC++编程环境四类工具的使用,其中VC++编程环境是课程实操的核心平台。Windows操作系统文件管理、系统设置、任务管理等基本操作,是所有软件运行的基础平台MicrosoftOffice三件套Word文档编辑、Excel数据处理和PowerPoint演示制作,大学学习必备通用技能互联网工具浏览器、FTP文件传输、搜索引擎和电子邮件,日常信息检索与在线学习的基本工具VisualC++编程环境集代码编辑、编译、链接和调试于一体的IDE,是C语言编程实践的核心开发平台CATEGORY01操作系统与办公软件操作系统提供基础运行环境,Office套件满足学术文档处理需求。二者共同构成日常计算的基本工具层。WindowsWordExcelPPTCATEGORY02互联网与编程工具互联网工具支撑信息获取与协作,VC++集成开发环境则是课程编程实践的核心平台。ChromeFTPVC++IDELEARNINGRESOURCES教学辅导与在线资源课程构建了"MOOC视频+在线评测+助教答疑+课程论坛"四位一体的辅导体系,鼓励学生遵循"先独立思考、再查阅资料、最后寻求帮助"的问题解决路径,培养自主学习能力。MOOC视频课程中国大学MOOC平台提供北大李戈老师主讲的完整视频课程,16周教学内容可反复观看和复习。16周在线评测系统在线评测系统(OJ)支持代码自动提交与判题,每次编程作业配有测试用例,即时验证程序正确性。自动判题助教答疑辅导助教定期安排线上与线下答疑时间,针对编程作业和概念理解中的疑难问题提供一对一辅导。一对一课程论坛社区课程论坛和学习社区提供同学间的互助讨论平台,常见问题和经典解法在论坛中积累了丰富资源。互助社区ASSESSMENT考核方式与成绩构成课程考核采用"平时作业30%+上机考试20%+期末考试50%"的多元评价体系,强调过程性学习与编程实操并重。HOMEWORK30%平时作业涵盖编程练习与纸面作业两部分,持续巩固课堂所学知识点,培养编程思维与动手能力。PRACTICAL20%上机考试检验实际编程能力与调试技巧,要求在限定时间内独立完成编程任务,强调实操水平。FINALEXAM50%期末考试作为最大权重环节,综合考查课程全部核心知识,涵盖理论理解与问题分析能力。成绩构成比例过程性学习与期末考试并重CHAPTER05学习策略与课程展望高效学习编程的方法论与《计算概论》在后续课程中的衔接价值LEARNINGMETHODOLOGY编程学习的四个核心策略编程是一门"做中学"的技能型学科,高效学习需要遵循递进路径,被动阅读教材远不如主动编写和调试程序有效。基础与方法01先打基础再进阶按"变量→运算→控制流→函数→指针"的顺序逐个击破,不跳步、不贪多。每个概念务必通过代码实践巩固,形成扎实的基本功后再进入下一阶段。02先构想再编码用流程图或伪代码梳理思路,明确输入、处理逻辑和输出,再翻译为C代码。良好的设计习惯能减少调试时间,提升代码质量与可维护性。练习与纠错03多敲代码少看书编程是技能而非知识,看懂例题不等于会写,每天至少保证1小时上机实践。手指记忆比大脑记忆
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026生物诊断试剂生产企业产业风险评估与投资策略
- 2026中国农业物联网传感器市场机遇与挑战全景分析报告
- 2025届新疆沙湾市四下数学期中复习检测试题(含答案)
- 森林公园康养亭廊木结构监理细则
- 中学心育课教学设计:时间管理
- 国家战略性新兴产业集聚发展基地建设标准
- 麻醉师资格培训试题及参考答案
- 阴暗心理测试题及详细答案
- 江苏省2015高中英语 Unit2 Growing pains reading教学设计 牛津译林版必修1
- 新教材高中地理 第六章 自然灾害 第一节 气象与水文灾害教案(1)新人教版必修1
- 吉林省延吉市2026年社工岗招聘考试试卷-含答案解析
- 物业小区电梯故障困人应急演练脚本
- 【小升初分班考】2026年河北省承德市平泉市数学仿真模拟试卷 有答案
- DL-T573-2021电力变压器检修导则
- LY/T 1575-2023汽车车厢底板用竹胶合板
- 被执行人生活费申请书范文
- KWFB无密封自控自吸泵(服务)课件
- 浙江绍兴杭绍临空示范区开发集团有限公司招聘15名企业合同制人员模拟预测(共500题)笔试参考题库附答案详解
- GB/T 3098.15-2023紧固件机械性能不锈钢螺母
- 发展经济学 马工程课件 7.第七章 工业化与信息化
- 新《义务教育法》解读
评论
0/150
提交评论