求计算机系的课程列表
看电脑组成,操作系统;数据库系统;软件工程;计算机网络;编译技术
请阅读信息,这可能会有所帮助。
根据不同专业对计算机的不同要求,北京大学计算机基础课程的教学体系分为三类:计算机专业(A类)、理科非计算机专业(B类)、文科专业(C类)。
为了了解北京大学计算机基础教学的课程体系和知识设置,以及学生的学习效果,我们对北京大学计算机基础教师和低年级理科生进行了计算机基础课程分类分级教学的调查。下面重点介绍北京大学计算机基础课程的教学体系、课程设置、教学效果、教学经验和教学改革。
一、北京大学计算机基础课程的教学体系
北京大学计算机基础课程的教学体系按照计算机专业(A类)、理科非计算机专业(B类)、文科专业分为三类。A班和B班有三门计算机基础课程:计算导论、数据结构与算法、微机原理。为了加强计算机专业学生的编程能力,信息学院专门开设了编程实践、数据结构和算法实践两门实践课程,对计算机专业学生进行系统的编程训练。C类计算机基础课程包括文科计算机基础(一)和文科计算机基础(二)两个学期。
在三种类型的教学体系中,不同的课程都有主持教师和讲师。这些来自北大不同院系的老师组成教学小组,共同制定教学大纲,选择教材,统一教学进度,定期交流教学经验。
1.计算机专业计算机基础课程体系(A类)
在设置计算机专业的基础课程时,我们应该考虑以下几点:
(1)首先,要让学生对计算机学科有一个整体的了解,树立学科的整体观,这不仅有利于以后的进一步学习和选择,也有利于透彻了解各个学科在整体学科中的地位和关系。
(2)设计解决问题的程序时,除了仔细分析问题,最重要的是选择合适的数据结构,设计满足约束(或更好)的算法。因此,计算机专业的学生要掌握各种常见的数据结构,深刻理解快速排序、二分法等一些经典算法的原理和时空复杂度,掌握算法设计的一般步骤。
(3)计算机专业应在理论和实践上掌握微型计算机的基本组成、工作原理和常用接口技术,树立微型计算机的整体概念,具备利用微型计算机开发硬件和软件的初步能力。此外,还要掌握汇编语言编程的基本方法和在计算机上的调试过程。
为此,北京大学计算机系开设了计算导论、数据结构与算法、数据结构实习、编程实习、微机原理等课程。其中,计算导论作为一门通用课程,是其他课程的先修课程。
2.理科非计算机专业计算机基础课程体系(B类)
非计算机专业学生学习计算机技术的目的非常明确,不是作为一门纯理论课程,而是作为一门应用技术。对于理工科非计算机专业的学生来说,虽然在学习和工作中不是以计算机为中心的,但是很多时候也离不开计算机。他们需要结合自己的专业,以计算机为工具开展工作。
与计算机专业一样,理科非计算机专业的计算机基础课程体系也设置了计算导论、数据结构与算法、微机原理三门课程。但由于他们的学习目的不同,要求也大相径庭。
3.文科专业计算机基础课程体系(C类)
文科生在计算机方面的要求低于理科非计算机专业,教学内容更倾向于应用。结合计算机的使用和应用计算机,讲解计算机与信息技术的基本知识和方法。文科专业计算机基础课程包括文科计算机基础(一)和文科计算机基础(二)两个学期。
二、该课程的主要教学目标和教学内容
每门课程的主持人和主讲人参考CCC 2002(中国计算课程,中国计算机科学与技术的课程),CC2001,《计算机基础教学白皮书》和CFC 2004(中国基础计算课程,中国高校计算机基础教育的课程体系)等课程体系,制定不同类型计算机基础教育课程的教学大纲。
1.计算机专业
计算机专业的计算机基础课程包括计算导论、数据结构与算法、数据结构与算法实践、编程实践、微机原理五门课程。其中,《计算导论》是其他课程的先修课程,而《数据结构与算法》和《数据结构与算法实践》是两门同门课程。
(1)计算导论A(54学时,3学分)
本课程的教学目标是让计算机专业的学生对计算机科学有一个整体的认识,让学生从一开始就有一个整体的看法,这不仅有助于他们对未来的深造做出选择,也有助于他们透彻地了解各个学科在整个计算机科学中的地位和关系。在教学实践中,既要遵循人们的认知习惯,又要让学生有效地掌握这门学科的哲理。
本课程的基本目的是:使学生理解‘计算科学’的含义、内容和方法,并从基础理论、基础开发技术和应用三个方面进行介绍;使学生对计算机的认识从感性、功能性认识深入到内涵、机理认识;使学生对计算机科学主要骨干课程的内容及其相互关系有一个大致的了解,对计算机科学的课程体系建立一个整体印象;为了使学生掌握编程的基本方法,他们可以用C++语言编写应用程序。
在教学实践中,我们采用了两条主线:计算科学导论和C++程序设计。也就是说在介绍计算科学的同时也讲解了C++编程。实践证明,这取得了良好的教学效果。
教学方式:既有课堂教学(多媒体教学)又有网络课堂:/mzhang/ds/
本课程的基本目的是:通过本课程的学习,学生将基本掌握数据结构和算法的设计与分析技术,提高程序设计的质量;根据所要解决问题的性质选择合理的数据结构,必要时控制时间和空间的复杂度;培养学生的逻辑思维能力、独立思考能力、分析问题和解决问题的能力、严谨的科学作风。
(4)数据结构和算法实践(每周4.2学分)
本课程是信息学院本科生的必修课。前提要求是:计算A入门,同行要求:数据结构与算法。
课程网址:/mzhang/ds/西施/index.htm
本课程的基本目的是:配合“数据结构”理论课程的学习,提高学生的实践能力;能独立实现常用基本数据结构的ADT,灵活应用STL中的基本ADT和常用数据结构集,解决一些实际问题,能独立编写中小型应用;利用基本的数据结构,结合排序、检索、文件、索引等技术,可以共同编写一个比较全面的大型应用程序。
(5)微机原理A(54学时,3学分)
本课程是信息学院本科生的必修课。先修要求是:计算导论A、数字逻辑。
本课程的基本目的是:从理论和实践上掌握微型计算机的基本组成、工作原理和常用接口技术;掌握汇编语言编程的基本方法和在计算机上的调试过程;建立微型计算机的整体概念,初步具备利用微型计算机开发硬件和软件的能力。
教学方法:课堂教学、演示和计算机实践。
2.非计算机科学专业
理科非计算机专业的计算机基础课程包括计算导论、数据结构与算法、微机原理三门课程。其中,计算导论是其他两门课程的先修课程。
(1)计算概论B(51课时,3学分)
本课程是理科本科生的基础课程B。
课程网址:/member/hujf/;FTP://162.105 . 20 . 22/courses/;/Course/计算机课程02/index.htm
本课程的基本目的是:使学生了解有关计算机和信息技术的基本概念和知识,学会使用计算机进行信息处理,使用常用软件和使用互联网;教授编程的基础知识,重点是它的基础部分。
教学方式:课堂教学,配备电脑。每节课都会布置作业,包括电脑上的作业。
(2)数据结构与算法B(2(课堂教学)+2(教学实验)课时/周,3学分)
本课程是理科本科生的必修课。
先修课程:计算导论(通过学习计算导论,要求学生具备一定的编程技能,熟练使用C的控制结构、函数定义和调用、数组、结构、指针。
课程网站:/ds/
本课程的基本要求是:从三个方面掌握线性表、栈、队列、串*、树、图、字典等常用的数据结构:每个数据结构的逻辑结构,一套相应的基本操作和实现;掌握在顺序存储结构上实现的几种重要排序算法;能够分析算法的时间和空间复杂度;对于简单的应用问题,我们应该能够选择合适的数据结构并设计有效的算法来解决它们。
教学方法:以课堂教学为主,根据教学进度安排计算机实验。计算机的内容包括:单链表、堆栈、二叉树运算、图的遍历、检索和排序。
(3)微机原理B(54学时,3学分)
本课程是理科非计算机专业的限制选修课。由于大部分非计算机专业学生没有学习过数字逻辑这门课程,所以相对于计算机系的微机原理课程,增加了数字逻辑的基本内容。内容深度也比计算机专业略浅。
本课程的基本目的是了解微型计算机的基本组成、工作原理和常用接口技术;掌握汇编语言编程的基本方法和在计算机上的调试过程;建立微机的整体概念。
教学方法:课堂教学、演示和计算机实践。
3.人文科学
文科专业的计算机基础课分两个学期教。
(1)文科计算机基础(一)(48学时,2学分)
这门课是文科必修课。本课程的目的是向文科生介绍计算机的发展、计算机的使用和维护、计算机网络的常识以及常用软件(如word、excel)的使用。通过本课程的学习,希望同学们能够熟练使用电脑,真正把电脑作为日常生活和学习的工具。
课程网址:http://162.105 . 30 . 75;http://162.105 . 30 . 75:8080;http://162.105 . 30 . 80:8000
教学方法:基础知识在课堂上讲授,其他需要动手操作的技能在电脑上实验。
(2)文科计算机基础(第二部分) (每周3.2学分)
这门课是文科必修课。本课程讲授高级计算机应用技术,由网络、多媒体、数据库、VB、ASP、网页制作、动态网页制作七个模块组成。我们把这七个模块组合起来,形成七门课程。学生可选择1或2门课程。这七门课程分别是:网络与多媒体技术、网络与数据库技术、网络与VB编程、数据库与VB编程、VB与ASP、(静态)网页制作、动态网页制作。
三,教学效果的调查结果
共有626名学生参与调查(包括网上论文和纸质论文),其中计算机专业(简称A班)学生343人(只学过计算导论的学生153人,学过数据结构与计算导论的学生71人,学过所有基础课的学生165438人)。
我们从基本信息、师资力量、教学方法、教学效果、课程安排五个方面进行了调查,并对结果进行了初步分析。由于文章篇幅所限,本文只给出教学效果,即学生对课程知识点的理解。
在教学效果的调查中,我们要求学生选择自己认为对每门课程重要的知识点(多选),让不同年级、不同专业的学生从结果中看到自己对每门课程的理解。
调查了理科(含计算机)学生对计算导论、程序设计、数据结构与算法、微机原理四门课程的理解情况。因为文科课程的内容比较简单,所以我们把所有的知识点集合在一起作为一门课程(文科计算机基础)来考察。
1.计算导论
调查结果显示,“学会编写正确简洁的程序”被所有学生(包括计算机专业和非计算机专业)认为是《计算导论》课程中最重要的知识点。计算机专业学生认为最不重要的知识点是机器指令和汇编,其次是布尔代数和逻辑电路。非计算机专业的学生认为布尔代数和逻辑电路是最不重要的知识点,其次是计算模型。
计算机专业一年级学生对《计算导论》课程中各知识点重要性的认识没有大的起伏,二年级学生(学过数据结构和微机原理的学生)对不同的知识点区别对待。二年级学生普遍认为机器指令与汇编、系统软件与应用软件、计算机网络等知识点不重要,因为内容比较简单(比如系统软件与应用软件),或者以后会学但现在不急于理解(比如计算机组成与体系结构)。
2.编程;编排
调查结果显示,学生认为最重要的知识点是指针,其次是基本程序结构;认为最不重要的知识点是贪心法,广度优先搜索。学生认为指针是编程中最重要的知识点,这与我们在教学中使用C/C++作为入门语言有关。
观察计算机专业三类学生的观点,可以看到,随着学习的深入,认为数组、递归、回溯非常重要的学生比例在增加。比如高一只有37%的学生认为数组很重要,但是高二之后,这个比例上升到70%以上。
3.数据结构和算法
调查结果显示,计算机专业学生认为数据结构中前几个最重要的知识点是:排序、二叉树、图遍历和索引(包括B树/B+树);最不重要的知识点是高级数据结构(如字符树、广义表、AVL树),其次是树。
理科非计算机专业认为最重要的知识点是线性表、二叉树和排序,最不重要的知识点是高级数据结构和索引,其次是哈希和检索。
在教学实践中,我们的教学重点与学生认为最重要的知识点基本一致。同时,教学过程中不强调的内容(如高级树形结构)也被学生认为不重要。
4.微机原理课程
调查结果显示,对计算机专业学生来说,最重要的知识是汇编语言程序格式,其次是CPU的操作和时序、指令编码格式、80x86指令系统、中断的用途和中断控制器的作用。最不重要的知识点是伪指令和宏指令,外部管脚的作用,操作数的汇编表示,存储空间的扩展。
理科非计算机专业认为微机原理中最重要的知识点依次是定时器/计数器、中断的目的和中断控制器的作用、存储器的结构、存储器的工作原理。最不重要的知识点是总线和常用总线标准、伪指令和宏指令、存储空间的扩展等。
5.文科计算机基础
因为文科课程的内容比较简单,所以我们把所有的知识点集合在一起作为一门课程(文科计算机基础)来考察。
调查结果显示,文科生对以下知识点最感兴趣:动画处理、演示文稿制作、文字处理软件的功能和用法、计算机安全和犯罪常识;最不感兴趣的知识点是计算机文化与信息社会、计算机应用相关的道德与法律概论、计算机的概念与发展史、软件与知识产权保护、计算机中的信息表示、网络教学与远程教育等。
6.教学效果总结
在分析了各个专业和年级的调查数据后,我们可以得出以下结论:
(1)在计算机专业,不同年级的学生对同一门课程的理解可能会有很大差异;在非计算机专业,不同年级的学生对同一门课程的理解基本一致。比如计算机专业对计算导论的理解,大一学生认为比较重要的知识点,比如机器指令与汇编,系统软件与应用软件,计算机网络等。,对大二学生来说都不重要。原因大概是内容比较简单,或者你以后再学。
(2)无论计算机专业还是理科非计算机专业,学生普遍认为编程中最重要的知识点是指针。这和我们在教学中使用的编程语言有很大的关系,因为目前的教学实践中一般都是把C/C++作为编程的入门语言,而C/C++中的指针功能强大但不容易掌握,所以大部分学生都认为指针是编程中最重要的知识点。Java语法没有指针,面向对象的风格更完整,学生学起来可能比C++容易。是否使用Java作为入门语言,是一个值得我们思考的问题。
(3)学生认为数据结构中最重要的知识点有快速排序、二叉树、二叉树的遍历、图的遍历、最短路径、B树/B+树等。,这和我们在教学中重点关注的内容基本一致。
(4)文科生最感兴趣的是动画处理、演示文稿制作、文字处理软件的功能与用法、计算机安全与犯罪常识,对计算机文化与信息社会、计算机应用相关的道德与法律概论、计算机的概念与发展史、软件与知识产权保护、计算机中的信息表示、网络教学与远程教育等不感兴趣。可见文科生希望老师能多讲讲自己的创造力和个性。
四、教师的教学经验和对计算机基础课程教学改革的看法。
我们通过电子邮件采访了十几位计算机基础课程的讲师。刘楚雄、、唐大师、龙、、、戴亚飞、高军、王腾蛟等老师认真回答了问卷,并提供了教学大纲等资料。他们中有教学经验丰富的老教授,也有富有创新精神的青年骨干教师;有计算机专业的老师,也有其他学院的老师担任我院计算机基础课的教学任务。
1教学经验
概括起来,教师的教学经验有以下几个方面:
(1)注意调动学生的积极性。学生可以做一些小程序,提高动手能力和信心,激发积极性;可以增加鼓励措施,比如邀请学生讲课,适当表扬,布置一些需要创造性思维的作业;可以引入一些电脑可以解决的智力游戏,让学生积极思考;在选择例题的时候,也可以选择一些短小精悍的问题,先提问,再解决,这样容易集中精力学习,等等。
(2)讲课内容注重实用性和具体性。学生对实际问题更感兴趣;具体的例子比抽象的解释更容易让人接受。学生可以用计算机解决现实生活中的一些问题,因为大多数学生都想学以致用,解决一些具体问题。在解决具体问题的过程中,他们也学会了如何解决。
(3)多和学生交流。可以在课程网站上设立留言板,在BBS上回答问题,鼓励学生与老师和助教交流等等。这样才能及时发现学生的疑惑,甚至自己的不足,并及时调整。
(4)选择内容新颖、编写精良的教材,参考精品课程网站。
2.教学改革设想
谈到计算机基础课程的教学改革,老师们提出了以下一致的看法:
(1)不同的专业要侧重不同的计算机基础课程,强调针对性。有些工科专业涉及的科学计算比较多,艺术类专业可能会关注多媒体处理。不同专业的计算机基础课程应包含针对本专业特点的内容。
(2)调整必修课和选修课的比例。有老师认为,对于一些理科专业,计算机基础课的必修课应该包括计算导论、数据结构和算法,而软件工程、Windows编程等课程可以作为选修课;对于其他很少涉及编程的理工科专业,必修课只能包括计算导论,数据结构和算法可以作为选修课。对于文科专业来说,《计算机基础》应该是必修课,而编程可以是限定或无限的课程,算法和数据结构可以是无限的课程。
(3)教学内容要应用。希望学生能够学以致用,但是从学生的反应和老师的意见来看,这方面还有很大的努力空间。
动词 (verb的缩写)结论
总的来说,我们的教学实践是成功的,但仍存在一些不足。可以总结如下:
1.教学效果评估
从学生对各门课程的理解来看,我们取得了良好的教学效果。学生认为课程中的重要知识点与教学实践中的重点基本一致。但在文科专业,学生希望学习更多关于多媒体的实用技能(动画、视频等。)处理。
2.教师评估
无论从计算机专业还是非计算机专业来说,师资队伍基本都能满足要求。大部分理科生认为老师和助教对学生是认真负责的,大部分文科生也持同样的观点。同时,我们也注意到,虽然大部分非计算机专业的学生认为老师很敬业,但并不太认可他们的能力。另外,计算机专业的《计算导论》课程需要助教。因此,建议很好地解决教师进修和收费问题。
3.课程安排和内容。
教师和学生反映,应该针对不同的学院甚至专业开设不同的计算机课程,教学内容应该与专业领域结合得更加紧密。比如编程,不同专业要区别对待。有的学院除了个别专业要掌握编程方法,其余都是现有程序的应用;但是其他一些专业对编程能力的要求很强。再比如美术相关专业,可能对电影制作要求更高。
4.教学方法
如果教师能注意调动学生的积极性,教学效果可能会更好。可以讲解或安排具有挑战性或应用性或趣味性的任务、问题或练习,增加激励和鼓励措施,在传授知识时理论联系实际,力求课程生动有趣、通俗易懂,以调动学生的积极性,吸引他们的注意力。
5.工作要求
大多数学生认为课程学习难度适中,能够独立完成作业,课程负担适当。但是理科专业,数据结构的课程作业太多,而计算导论的负担相对较轻。
国家高等院校教学与研究中心