程序设计论文范文

2022-05-09

评职称或毕业的时候,都会遇到论文的烦恼,为此精选了《程序设计论文范文(精选3篇)》,希望对大家有所帮助。摘要:该文首先分析了《C++程序设计》传统教学方法的局限以及引入基于项目的学习理论的必要性,接着介绍了基于项目的学习理论的研究成果,然后从学习项目设计、学习过程设计、学习评价三个方面阐述了《C++程序设计》项目式教学设计,最后给出了作者的实践反思。

第一篇:程序设计论文范文

《多核程序设计》概述

半导体技术的进步使单芯片多处理器成为现实并推动着多核计算技术的不断进步。浙江大学从2006年开设单独的多核课程,并联合国内五所重点高校设计编写了《多核程序设计》作为该课程的教材,对多核计算技术进行了全面深入的讲解,以期由此完善学生的知识结构。

1多核计算技术的概述

随着新材料的应用和新技术的发展,VLSI技术取得长足进步,在单个芯片上集成多个处理器核心构成多核处理器已经成为处理器技术的主流。按计算内核的对等与否,CMP可分为同构多核和异构多核。计算内核相同,地位对等的称为同构多核。然而,一般认为处理器通用核的数目在超过16个后,再增加通用处理核的数目就难以带来更大的性能提升。于是出现了一些为特别任务专门定制的专用处理核,包括面向科学计算等的“领域专用核”、图形图像处理和数字信号处理(DSP)等“行业专用核”。这些专用核的体系结构利用特定应用的特征进行定制,从而达到定制应用的高性能和高效率。

从2005年出现的英特尔与AMD的双核处理器、2006年推出的4核处理器到2007年2月英特尔公司展示的80核处理器,处理器中集成核的数目呈现迅速增多的趋势。除此之外,具有更多核和不同功能核的处理器也在研发,例如整合了1025个简单处理器的芯片Kilocore,包括1024个8位处理器和1个Power PC核。

伴随着多核处理器的发展尤其是处理器核数目的增加与处理器核功能的变化,在体系结构、软件、功耗和安全性设计等方面,巨大的挑战也随之而来。处理器的发展使得原有面向单核或者多处理器的软件架构不适于在单芯片多处理器的硬件结构上充分利用多计算核心的能力,需要相应的软件层面的共同发展。为此,软件结构的变化尤其是针对多核硬件体系结构的程序设计成为有效发挥多核计算能力的重要方面。

为了适应技术的发展,为社会培养合格的计算机人才,在大学计算机教学中开设相应的多核计算课程势在必行。计算机方向课程的开设尤其是教材的设计,不仅要注意到满足完善学生知识结构,适应计算机技术迅速发展的情况,同时也需注意到社会对于多核计算技术方面人才的需求,通过合理的设计,满足知识更新与就业两方面的要求。

2多核课程设计

多核计算技术的发展使得计算机教学发生了变化,这种变化主要来自于多核计算技术所带来的新的知识点。这些新的知识点主要包括:多核SOC芯片技术;多核芯片与传统单核微处理器、SMP的区别;多核下的各种硬件设计技术(Cache与存储一致性、网络互连、IO管理);并行体系与多核体系结构;典型多核芯片介绍;嵌入式多核芯片技术;多核平台结构与芯片组支持技术(包括固件技术);多核操作系统;多核系统软件对并行编程的支持;多线程编程对多核的支持;多核多线程编程技术(主要是关于Windows与Linux操作系统);OpenMP对多核的支持;多核平台上的编译工具与编译优化技术;多核API优化函数库;多核多线程程序的性能评测工具与方法。

这些新知识点的出现,使得越来越多的高校开设多核课程以适应技术的发展与多核时代对高校计算机人才培养的新需求。例如,美国计算机专业最好的CMU、MIT、Backley、Harvard和Stanford五所高校,均通过增加新的课程或者在原有课程内容中增加多核内容的方式,以适应多核计算机的出现与发展。

因此,综合考虑上述因素,并参考国外高校的课程开设方式,浙江大学开设了自己的多核课程。浙江大学以学校计算机教学的实际情况为基本出发点,让学生了解当前计算机芯片设计领域中新兴多核体系设计的基本原理、技术难点、目前发展状况,以及对计算机领域带来的相关影响等,以通过建立体系经典理论研究和实际的发展方向之间的桥梁,为将来从事体系结构领域、系统软件领域以及相关领域的高水平研究打好扎实的基础。这是浙江大学多核计算课程设计的目标,也是我们教材设计的主要目的。

通过分析多核的知识点,浙江大学将多核计算课程分成了两个层次:以编程训练为主的本科多核计算课程和以编程为基础以多核理论与发展为主要内容的研究生课程。本科课程的名称为并行计算与多核编程,作为专业选修课程。多核的本科课程完全以编程训练为主,结合多核编程工具,通过编程作业锻炼学生对多核编程能力的培养。对于研究生课程,名称为多核计算,主要着眼于当前多核技术的研究热点和多核技术的高级课题,在研究生的体系结构课程和超大规模集成电路基础上作进一步提高,结合操作系统、编译原理、编程方法等交叉学科,介绍在体系结构上的多核理论与相关学科对此的相应发展。

3多核课程教材设计

3.1概况

由于多核计算技术相对较新且仍在不断发展,目前国内外多核计算方向的著作以科学论文为主,偏向于研究与探索,浙江大学结合科研的实际情况,由任课教师采用科学论文作为研究生课程的主要教学材料。

而对于基础教材而言,由于多核计算方面的书籍还是刚刚起步,因此可供选择的余地较少。此外,由于多核计算是一门动手能力和理论要求都很强的课程,需要更加重视实践环节,为学生设计实践训练,同时,目前多核底层调优软件是由英特尔公司推出,能实现多核的编译、运行库、性能测试、多线程检测与优化,对多核教学帮助极大。因此,浙江大学采用了基于英特尔的软硬件,作为实践的基础培训。有鉴于此,目前浙江大学的多核课程2006年使用的教材是由英特尔公司的(孟加拉)Shameem Akhter与(美)Jason Roberts撰写、Intel出版的《Multi-core Programming: Increasing Performance through Software Multi- threading》,2007年3月电子工业出版社推出了由李宝峰、富弘毅、李韬三位博士翻译的中文版,我们参与了该书的审稿工作。该书是国内第一本全面讲解多核程序设计的书,同时,由于它介绍了基于Intel多核平台的性能评测和调优工具,相对适合于目前的教学。

由于该书的作者是英特尔的平台结构师与软件工程师,尽管参与了多核处理器的架构与软件设计,对多核计算技术了解非常深入,但是其写作目的与风格均是工程师写给工程师的书,并不适用于大学教材。与此同时,由于多核计算技术毕竟是正在发展当中,目前国内外的确缺乏多核编程的教材。

3.2《多核程序设计》

为了适应多核计算技术的发展,促进国内多核课程的建设,浙江大学、清华大学、北京大学、复旦大学、上海交通大学合作编写了《多核程序设计》教材,将于2007年7月由清华大学出版社出版。清华大学、北京大学、上海交通大学、复旦大学分别在2006年秋冬学期,开始开展多核方向的教学。

本书的主要目的是作为多核计算课程的教材使用,而从对多核技术知识点的分析可以发现,适合作为教材编写的主要是多核体系结构程序设计的相关内容,因此本书在编写时以多核计算技术的基础知识概论为基础,以多核程序设计方法为骨干,主要包括基础并行程序设计方法、多线程基础、利用线程API进行程序设计、OpenMP与MPI,以及多线程应用程序的调试和测试工具的使用等,以帮助大学生学习编写多核体系结构下高性能程序代码。

本书共分为八章,以多核技术导论为始,以多核软件工具介绍为终,分别覆盖了基本的多核体系基础、并行计算基础、多核体系下线程理论、Windows与Linux多线程编程与调优、OpenMP多线程编程与调优、MPI多线程编程与调优和多核软件工具的使用。从结构上看,本书的内容主要包括三个方面:

(1) 多核理论。这部分内容包括了本书前三章的内容。第一章为多核技术导论,简要介绍微处理器发展史、并行计算机、超大规模集成电路与系统芯片发展、片上多核处理器架构与典型多核芯片架构、芯片组对多核的支持,以及操作系统对多核处理器的支持方法。第二章是并行计算基础,介绍并行计算机体系结构、并行计算模型、进程与线程、并行编程环境、并行编程语言与编译器、并行计算性能评测,并介绍常用并行数值算法,例如并行矩阵乘法、线性代数方程组并行求解方法、快速傅立叶变换。最后介绍并行编译器。第三章详细介绍线程的基本概念,包括多线程的概念,用户级线程和内核级线程,多线程的映射模型,线程的生命周期,多线程环境下的进程控制语义,以及线程的同步,包括互斥量(mutex)、信号量、条件变量、锁的粒度与死锁。

(2) 多核编程与调优。包括了本书第四至七章的内容,分别讲述了不同操作系统与不同多线程编程技术下,怎样进行多线程编程和调优来充分利用多核处理器的效率。其中第四章是教学生如何在Windows下通过多线程方法进行多核编程及调优,首先介绍了Windows线程库,然后通过例子介绍了使用win32线程API进行线程创建、管理、终结,并介绍线程执行和资源存取方法,以及多线程调试与优化技术,包括调试、跟踪、线程命名等。第五章介绍了在Linux下使用多线程进行多核编程及调优的方法,与前一章类似,首先介绍POSIX线程库Pthreads,然后是结合例子介绍基本线程的操作与线程的属性,最后是使用GDB 调试线程以及线程的调优。第六章介绍OpenMP编程及性能优化方法,结合使用Microsoft Visual Studio.Net 2005教育学生如何编写OpenMP程序,并教育学生使用OpenMP编写多线程应用程序的技巧,包括循环并行化、并行区域编程、线程同步,最后分析OpenMP多线程应用程序的性能。第七章是MPI编程及性能优化,介绍了最常用和稳定的MPICH安装和配置过程,并详细介绍了MPI编程基础知识与MPI群集通信、MPI程序排错方法与性能分析优化方法。最后简要介绍了MPI-2。

(3) 多核软件工具。包括了本书第八章。由于目前的多核软件工具基本上是由英特尔公司开发并提供教学使用,因此本章的工具介绍基本上以英特尔的各种调优与性能分析工具为主,这既符合目前的实际教学状况,也符合社会需求。第八章所介绍的多核软件工具包括编译器对多核的支持、VTune性能分析器、MKL数学核心函数库、Thread Checker线程检查器、Thread Profiler线程档案器的使用与实验。

由于多核课程是对动手实践能力要求高的一门课程,在进行教材设计时,除了上述的书面教材之外,还需要设计配套的实验教案等实践教学内容。因此,本书在编写时也设计并实现了完整的教案、实验代码与实验环境,以便多核教学的正常进行。

《多核程序设计》一书体现了在本文第二节多核课程设计提出的多核课程教学的目标,结合了五所大学进行多核课程教学的教师们的经验。我们将对《多核程序设计》一书的设计思想与结构展现在此,希望能够起到抛砖引玉的作用,为国内高校的多核课程建设提供一个完整的教学过程示范,推动大学开展多核程序设计课程。

4总结与展望

本文提出了浙江大学多核课程教材的设计方法作为一种探索,希望为计算机教学课程体系在多核技术上的变化提供经验。多核计算技术方兴未艾,大学计算机课程教学需要适应多核计算机的发展与变化,不断地更新多核课程的设计与内容。可以预见,未来对多核课程的设计必将推陈出新,同时,多核教材的设计也必然会受到影响,出现新的设计理念。

作者:陈天洲 曹 捷 王靖淇

第二篇:《C++程序设计》项目式教学设计

摘要:该文首先分析了《C++程序设计》传统教学方法的局限以及引入基于项目的学习理论的必要性,接着介绍了基于项目的学习理论的研究成果,然后从学习项目设计、学习过程设计、学习评价三个方面阐述了《C++程序设计》项目式教学设计,最后给出了作者的实践反思。

关键词:基于项目的学习;《C++程序设计》教学;项目式教学 学习过程;学习评价

1 概述

《C++程序设计》是面向对象的编程语言,计算机及相关专业的专业基础课,内容丰富,包含基本数据类型、控制语句、数组、指针、类、继承、多态、输入输出。按照传统的教学方法,老师先讲原理,然后学生上机实践,存在不少问题,学生学习起来很累,教师也教得很辛苦。

1.1 学生的学习主动性不高

教师讲学生练,学生处于被动接受的状态,不利于发挥学生学习的主动性,学生满足于完成老师的作业完成任务,学习的钻研不够,越学越困难。

1.2 学生的动手能力不强

以知识点为中心,辅以一定的案例,学生对教师的例子,习惯于只字不落的简单模仿,只求运行结果,C++编程能力、调试程序等方面的动手能力难以得到很好的发展。

1.3 学生缺乏实际的项目经验

学生完成的都是原理性的例题,没有参加过C++实际项目的开发经验,而企业非常看重实际项目的分析问题、解决问题的能力、合作能力,不利于学生求职以及适应工作。

基于项目的学习,作为是一种新建构主义下的研究性教学模式,强调协作学习、自主探究和创新发展,以培养学生良好的学习方式为目的,着眼于培养学生解决实际问题的能力,真正体现“以学生发展为本,以学生人人成功为目标 ,以学生学会学习为中心,以培养学生创新能力为核心”的教育思想内涵[1]。针对传统《C++程序设计》教学中存在的上述问题,拟引入基于项目的学习理论对课程进行改革,以项目为依托开展教学,激发学生的学习主动性,培养学生的动手能力,增长学生的项目经验。

2 基于项目的学习理论介绍

基于项目的学习的理论及其应用都开始于美国, 是开展研究性学习的主要学习模式之一。国外关于基于项目的学习的研究成果丰富,理论己经基本成熟,实践的例子也很多。

2002年宁波大学的刘景福副教授、江西师范大学教学论研究中心钟志贤教授在《外国教育研究》上发表的《基于项目的学习(PBL)模式研究》中给出了基于项目的学习的定义,以学科的概念和原理为中心,以制作作品并将作品推销给客户为目的,在真实世界中借助多种资源开展探究活动,并在一定时间内解决一系列相互关联着的问题的一种新型的探究性学习模式[2]。它的理论基础是建构主义学习理论、杜威的实用主义教育理论和布鲁纳的发现学习理论。

2009年中央电教馆章雪梅老师在《基于项目的学习及其教学设计》一文中指出,基于项目的学习是一种强调主动探究和创新实践的教学模式,它的教学设计的关键环节包含问题设计、过程设计和评价设计[3]。项目是基于项目的学习的核心,所有的学习都是围绕项目展开的,项目提供了学习的方向、学习的动机和学习的应用。学习评价的出发点应当是促进学习者个人和小组的进步,学习评价包括自主学习的能力、问题解决的能力以及小组合作技能。

2011年重庆大学金凡路老师在《职业教育立体多元化项目主题式教学评价构想》一文中提出通过多元化评价主体、多层化评价内容、多样化评价方式、适切化评价时机、系统化评价标准等来建构立体化项目主题式教学评价体系[4]。

3 《C++程序设计》项目式教学设计

《C++程序设计》项目式教学设计可以分为学习项目设计,学习过程设计,学习评价三个方面。

3.1 学习项目设计

选择合适的项目,既能涵盖基本的语言机制,又具有一定的实用意义,难度适中,有利于激发学习的学习兴趣,使他们积极的投入到项目的学习。经过两学期的教学实践与改进,设计出如下学习项目。

3.2 学习过程设计

遵循基于项目的学习理论,针对《C++程序设计》的教学特点,该文把学习过程分为创设情境、教师示范、项目设计与分工、项目实施、项目演示五个步骤。以第六章类与对象中学生成绩管理系统为例,说明学习过程设计。

创设情境:回顾第4章数组学习中的学生成绩管理系统(简易)版本,要求使用面向对象分析方法,识别出其中的类,并编写相关代码。

教师示范:教师讲解完成该项目所需的基本知识,面向对象的分析方法,类的定义,对象的定义与使用,共同分析人事管理系统中的类以及对象。

项目设计与分工:以2-3人小组为单位,分析学生信息管理系统中的类与对象,讨论类定义包含的属性和方法,main函数的设计,并分工到小组成员,教师巡视,查看小组进度。

项目实施:小组成员完成自己的模块,调试错误,集成程序,遇到问题可以小组成员讨论,可以上网搜索资料,也可以请教教师。

项目演示:以小组为单位,演示程序,展示学习成果。

3.3 学习评价设计

学习评价采用多元化评价主体,自评、组评、教师评价三者相结合;评价内容不仅包括知识技能,还包括团队精神、沟通能力以及创新能力,进行综合评价,学习评价表设计如表2所示。

4 反思

在《C++程序设计》课程教学中引入基于项目的学习理解,是一次全新的尝试。学生是知识的主动建构者,有利于调动学生学习的积极性,养成良好的自主学习习惯。教学内容是具有实际意义的编程项目,有利于学生职业能力的培养与形成,贴近IT企业需求和市场定位。学习方式采用小组学习,有利于学生团队精神、沟通能力的发展,提高学生的社会适应能力。教师是学习的组织者、引导者、咨询者、评价者,对于教师提出了更高的要求,不断学习,积极学习前沿C++编程技术,深入企业实践,甚至联合领域的专家,才能更好的胜任教学工作。

参考文献:

[1] 邬彤.基于项目的学习在信息技术教学中的应用[J].中国电化教育,2009(6).

[2] 刘景福,钟志贤.基于项目的学习(PBL)模式研究[J].外国教育研究,2002(1).

[3] 章雪梅.基于项目的学习及其教学设计[J].教育信息技术,2009(2).

[4] 金凡路.职业教育立体多元化项目主题式教学评价构想[J].职教论坛,2011(3).

[5] 周玉芬.高职教育基于项目的学习活动设计[J].职教论坛,2007(14).

[6] 孙庚.项目教学法在C++程序设计课程教学中的实践[J].计算机教育,2008(2).

作者:苏美娟

第三篇:《Java程序设计》课程网站的设计与实现

摘要:为方便Java课程教学,加强师生之间课后交流,该文使用ASP.NET技术和SQL2000数据库设计并开发了《Java程序设计》教学网站。该网站分四大主要模块:网络考试中心,在线留言,资源中心,后台管理,同时还实现发布新闻和添加相关链接的功能。

关键词:ASP.NET;SQL2000;JAVA课程

Key words: ASP.NET;SQL2000; JAVA course

近年,Java面向對象程序设计语言因其具有的跨平台性、分布式及安全性等特点[1],在当今网络时代得到广泛应用和发展。作为一种有生产力的编程工具,学习《Java程序设计》课程有助于学生在掌握面向过程程序设计和可视化程序设计基础上,能够更深入地掌握面向对象编程技术,且更有利于开发网络环境下的应用程序。

目前师生之间Java课程的教与学多局限于课堂上面对面的方式,而课后教师与学生之间更深入的交流和探讨,因缺少一定场地而受到限制,最终导致师生互动的机会减少。针对此现状,本文使用ASP.NET[2]技术和SQL2000数据库[3]设计一个Java课程网上学习平台,以满足在线学习及便于师生随时随地交流的目的。

1 需求分析

Java课程网站建设的目标是使教学更加方便,方便学生自己学习,提高学生自学能力,也节省学生、老师的时间。要求所设计系统操作方便、更新及时、易于维护管理。拥有动态更改信息;网上答疑;课程教学等基本功能。学生进入网站后可根据系统功能对该课程进行信息浏览,查看课件,提出问题及学习等;教师进入网站后也可对课程的一些信息进行浏览,对学生提出的问题进行回复,而后台教师需要进入系统对网站进行维护,更新信息、修改信息或者删除某些信息。

因此该系统需要满足的需求为:具有良好的人机界面,以方便操作;学生查看教学信息,下载课件,网上发帖等;教师查看学生提出的问题并进行回答;教师发布,整理留言和教学资源等。

2 网站功能设计

按照需求分析的结果,网站总体结构设计如图1所示,角色上主要包括学生、教师和系统管理员;功能上主要包括网络考试中心,在线留言,资源中心及后台管理,同时还实现发布新闻和添加相关链接的功能。

3 网站主要功能分析

3.1用户注册及管理员登录

用户包括普通用户和管理员,所有用户先注册然后登录系统,权限不同则登录成功后相应的界面不同。

3.2网站功能显示

将网站的每个功能模块显示出来,如图2所示,包括:资源中心,考试中心,后台管理,在线留言及使用帮助等。

3.3资源中心

资源中心主要功能包括查看与课程相关的文档及任课教师等信息。

3.3.1电子文档

图3所示的主要功能是上传和下载电子文档。为便于学生课后复习,教师可将课堂上教学用的Java课件等文档进行上传供学生浏览。

3.3.2网站课程实践

为加强学生动手能力,从而将理论与实践相结合,每个知识点都对应有实践环节,每一实验都明确具体内容及相关要求(图4)。

3.4考试中心

图5所示Java课程的网上考试阅卷,在时间和空间上都不必受传统考试的限制,可提高考试和阅卷效率。

3.5后台管理

管理员可以对科目、试题库及发布的资源等信息进行增加或修改等管理。

3.5.1 科目大类管理

如图6所示,可以增加或删除科目大类,同时给大类编号。

3.5.2 具体科目管理

学好Java,还应该熟悉其课程体系,了解其所属大类的与其相关的其他科目(图7),从而明确该课程的重要性。

3.5.3试题库管理

图8所示为课程体系中各门课程的试题库。

3.6在线留言

师生均可在线留言,但需要事先进行注册(图9),然后通过登录界面进入留言板块。

4 结束语

为便于学生在线学习及师生之间随时随地进行Java课程教学的交流,本网站实现了Java教学资源管理与查看、试题库管理与查看、在线留言及发布相关新闻等功能,有助于学生更方便更深入地掌握Java语言。

参考文献:

[1] 张白一, 崔尚森.面向对象程序设计———Java[M] .西安: 西安电子科技大学出版社, 2013.

[2] 明日科技. ASP.NET从入门到精通[M]. 北京: 清华大学出版社, 2013.

[3] 赵增敏. SQL Server 2000 实用教程[M]. 北京: 电子工业出版社, 2008.

作者:王丽爱

上一篇:奥运经济论文范文下一篇:市场需求论文范文