acm论文模板
ACM是全世界计算机领域影响力最大的专业学术组织。而acm论文模板,你们知道吗?这是小编为大家整理了两篇acm论文,这样你们对模板会有直观的印象!
ACM/ICPC培训管理系统的设计与实现篇一
[摘 要] 鉴于ACM国际大学生程序设计竞赛(ACM/ICPC)在人才选拔和培养方面的显著作用,如何将ACM/ICPC竞赛活动嵌入常规教学,创新教学模式,结合专业教学,加强训练管理,提高培训效益,已成为人们关注的热点问题。针对这一应用需求,本文设计并开发了基于ACM/ICPC机制的大学生程序设计培训管理系统。系统采用B/S架构,以SQL Server 2005作为后台管理数据库,Visual Studio 和ASP.NET为前端开发工具。在分析系统功能的基础上,着重阐述了该系统设计与实现的关键技术。该系统实际运行稳定、可靠,为开展ACM/ICPC竞赛培训和教学提供了一种有效管理途径。
[关键词] ACM/ICPC;培训管理系统;Web开发;ASP.NET;数据库技术
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2014 . 03. 015
[中图分类号] TP311 [文献标识码] A [文章编号] 1673 - 0194(2014)03- 0028- 03
1 引 言
ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest, ACM ICPC) 由美国计算机协会(ACM)主办,始于1970年,至今已经有40多年的历史,是世界公认的规模最大、水平最高、影响广泛的国际大学生程序设计竞赛,竞赛优胜者是各大IT企业和科研院所青睐和优先选拔的人才[1]。近些年来,伴随着ACM/ICPC大学生程序设计竞赛在国内如火如荼地开展,计算机高等教育界更加关注在计算机应用人才培养方面,如何科学合理地引入、借鉴ACM/ICPC竞赛训练经验,将ACM/ICPC竞赛活动与常规专业课程教学有机结合起来,突破传统教学内容和教学方法,以有效培养学生的学习能力、创新意识和综合素质。这其中,如何有效组织开展ACM/ICPC竞赛训练,加强培训管理,提高培训效益,亦是人们关注的热点问题。
但就目前情况来看,组织开展此项竞赛活动的训练指导或教学培训还没有一个成熟通用的、基于ACM/ICPC竞赛机制的ACM/ICPC 训练和活动的教学管理平台。具体表现在:(1)尽管一些知名院校搭建了自己的在线测试平台[2-3],但由于大多采用英文表述问题,对于英语水平不高的低年级本科生和专科学生来说,在翻译题目和理解内容方面会出现偏差,导致在这些平台上进行在线模拟测验的效果并不理想;(2)很多网站虽然提供了ACM/ICPC竞赛的相关资料,比如网上题库、相关赛题的题解等,但这些资料在网上分布得比较分散,使得学生很难集中查阅,而且由于资料的层次性和难易性区分不明显,使得学生在查阅和收集资料时遇到很多困难;(3)关于ACM/ICPC的网上论坛不少,但大多内容仅介绍ACM/ICPC的发展、竞赛取得的成绩和心得体会,学生很难在程序的求解方法和求解过程方面进行适时的互动;(4)虽然上述网上交流方式和测试学习方式符合现代化教育的理念,但是从系统管理的角度看,这些功能模块比较分散,难以真正适应目前ACM/ICPC竞赛培训管理的需要。
基于上述应用需求,结合集宁师范学院多年参加这一赛事、组织开展ACM/ICPC竞赛训练活动的管理实践经验,我们开发了一个本专科通用的ACM/ACPC培训管理系统,该系统是一个基于B/S结构的多用户在线系统, 实现了资源共享、在线讨论、在线学习测试、网络化管理等功能。
2 系统分析
2.1 系统功能结构
ACM/ICPC培训管理系统是一个B/S结构的Web应用系统。ACM/ICPC培训管理系统的主要功能是完成网络学习的综合浏览、学习资源的上传和下载、在线讨论、在线测试和系统管理等功能,系统功能结构如图1所示。
2.2 功能模块需求分析
用户登录模块为用户提供安全的访问和数据操作,防止非法用户进入系统。本系统的登录模块分为系统管理员和登录用户。系统管理员可以完成登录用户的管理和系统后台数据库管理的功能;登录用户可以参与网上资源共享、在线讨论和在线测试等多方面的操作。
资源在线模块包括浏览资源、查找资源和下载资源3个部分,用来完成网上资源的查找、阅览和下载。登录用户能够将服务器中的资源下载到本地查看或进一步学习,也可以上传自己的资源。
在线论坛模块使得用户不但可以发表意见,而且可以浏览到其他用户在论坛发表的各种意见、问题等。本模块主要包括浏览帖子、发表帖子和回复帖子3个子模块。为了能够更好地管理好论坛,本模块主要提供了3种角色:匿名用户(没有注册的用户)、已经注册的用户和管理员。当匿名用户进入论坛之后,只能对网站的页面进行简单浏览;而已经注册的用户进入论坛之后,可以发表自己的评论和回复帖子。
在线测试模块包括在线选题、在线提交、系统测试的功能[2],该模块提供了一个符合ACM/ICPC竞赛需求的学习训练平台。用户可以按照问题的说明编写源代码,并通过在线提交子模块上传给系统。系统根据用户提供的语言和源代码生成对应语言扩展名的源程序文件,调出相应的编译器来运行源程序并进行测试。通过编译、执行后,系统将运行时捕捉的输出信息同预先存放的标准测试输出文件进行比较,返回测试结果(比较一致,则返回运行成功信息,否则返回运行错误信息),并将运行成功后的有关信息(程序源代码、用户数据表的通过数量、问题类别表的通过数量、计算机耗时等)存入数据库。
系统管理模块为负责组织开展ACM/ICPC训练活动的主管教师提供一个对培训平台信息集中管理的手段。主管教师以系统管理员身份登录后,通过对数据库信息的修改来实现对系统各个模块数据信息的管理和完善,通过直接操作数据库的方式,完成对数据库存放各个模块的数据信息增加、删除和修改的功能。 3 系统设计
ACM/ICPC培训管理系统作为一个网络化培训平台,系统采用Browser/Server(浏览器/服务器)结构,由客户端、WWW服务器和数据库服务器三部分组成[4],如图2所示。
B/S模式是一种平面型多层次的网状结构,其最大的特点就是与软硬件的无关性,应用逻辑和业务处理规则在服务器端实现,客户端可以做得尽可能简单,可以只是一个多媒体浏览器。在具体实现时,使用SQL Server 2005数据库管理系统建立和管理网站数据库;运用动态网页技术(ASP.Net)开发系统,使用HTML、C#等语言编写应用程序;使用Visual Studio 2008平台进行系统开发。
3.1 Web应用系统的开发技术
ASP.Net是Microsoft.Net Framework中一套用于生成Web应用程序和XML Web Services的技术,可以创建动态的Web页面。本系统选择了Visual Studio 2008作为开发ASP.Net程序的工具,网页开发的脚本语言选用了C#语言。Visual Studio 2008 提供了各种增强功能[5],例如可视化设计器(使用 .Net Framework 加速开发),对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能,并为开发人员提供了所有相关的工具和框架支持。C#是微软公司随.Net一起发布的新的语言。C#是C/C++语言家族中第一种面向组件的编程语言。它由C和C++派生而来,是一种使用简单、面向对象、类型安全的现代编程语言。C# 不仅具有Viusal Basic的高效性,而且具有C++的强大性,它是专门为.Net设计的一种语言,在.Net中起着不可替代的作用。
3.2 数据库技术
本文采用SQL Server 2005作为数据库管理系统,并采用ADO.Net技术进行数据库的操作和访问。ADO.Net是.Net Framework用于访问数据的组件,它的一个重要优点就是可以以离线方式操作数据库,减少应用程序对服务器资源的占用,提高应用程序的效率。.Net Framework提供了4个.Net Framework数据提供程序,其中SQL Server .Net Framework数据提供程序就是用于实现对SQL Server 的连接访问[6]。SQL Server .Net Framework的框架如图3所示。
针对ACM/ICPC培训管理系统的数据管理需求分析,本系统设计了用户信息表、资源分类数据表、资源数据表、论坛模块信息表、论坛帖子信息表、回复帖子信息表、问题类别信息表、问题表列信息表和运行状态信息表9个数据库表。
4 关键技术的实现
4.1 资源上传功能的实现
在上传资源页面管理中,系统先判断文件大小和文件名是否存在,如果文件大小满足要求且文件名不存在,为了节省存储空间,先将该文件内容转成二进制流,并和其他信息一起插入到资源数据表中。
获取上传文件、测试文件大小和将文件转换成二进制流的关键代码如下:
string FileName = myFile.Value;//获取上传的文件名
HttpPostedFile UpFile = myFile.PostedFile;//获取对由客户端指定的上传文件的访问
FileLength = UpFile.ContentLength;//获取上传文件的字节大小
if (FileLength == 0)
{ Response.Write("");
}
if (FileLength > 102400000)//判断文件是否大于5M(根据自己的需要判断大小)
{ Response.Write("");
}
else
{FileName = FileName.Substring(FileName.LastIndexOf("\") +1);//文件名。
Byte[] FileByte = new Byte[FileLength];//将指定文件储存到数组
Stream ObjectStream = UpFile.InputStream;//建立数据流对象,该对象指向一个上载文件,读取该文件的内容
ObjectStream.Read(FileByte, 0, FileLength);//读取指定文件数据
}
4.2 测试系统的实现
在线测试模块的系统测试功能是本系统的设计关键,利用网络技术读取用户输入的源代码,并把源代码生成源代码文件。利用服务器上提供的程序编译器对源代码进行编译、链接和运行,把运行结果与数据库的标准答案进行对比并给出结果。
下面以C++程序为例来介绍系统测试功能的实现方法。主要包括以下3步:
(1)系统通过web.config文件的配置信息获取测试需要的路径配置信息,路径E:/Compiler/用于存放测试运行中需要处理的文件,路径E:/Compiler/Compiler/用于存放测试需要的编译器。
web.config文件的配置信息如下:
//编译其处理文件的文件夹
//存放编译器的文件夹
(2)系统将用户提交的源代码以文件形式存放在系统配置的路径下,源代码文件名根据系统提交源代码的时间生成,关键代码如下:
string sign=DateTime.Now.ToString().Replace("/","_").Replace(":","");//将时间格式转换成字符串格式,例如2011_5_20134803。
string path=string.Format("{0}userfile{1}", ConfigurationManager.
AppSettings["Path"],"temp" );//通过字符串格式化存放路径(E:/ Compiler/userfile/temp)
string CodePath=string.Format("{0}{1}.{2}", path,sign, "cpp");//源代码文件保存的路径和文件名
StreamWriter sw = new StreamWriter(CodePath) ;
sw.Write(code.text);//将系统提交的源代码文本(code.text)存入到指定的文件中
(3)编译、运行和测试。系统将保存好的源代码通过编译器编译后形成可执行文件,然后通过编译器执行对应的可执行文件,运行结果与数据库的测试数据进行比较,根据比较结果修改运行状态信息表对应信息的测试结果字段。
5 结 语
本文在总结分析目前ACM/ICPC培训管理信息平台建设现状的基础上,结合集宁师范学院的管理实践经验,设计并实现了一个ACM/ICPC培训管理系统。通过对系统功能、当前网络开发工具及数据库开发技术进行分析,介绍了该应用系统的开发环境和实现的技术。该系统运行稳定、可靠,不仅为组织开展ACM/ICPC竞赛指导训练提供了一种有效管理途径,而且为ACM程序设计爱好者提供了一个良好的网络学习环境。
主要参考文献
[1]龚丹,徐红梅. ACM-ICPC工作对高校日常教学影响的探讨[J].内蒙古师范大学学报:教育科学版,2011,24(9).
[2]杨志伟,曾艳姗. 基于Linux的ACM在线评测系统研究[J].计算机与现代化,2010(6):166-169.
[3]韩立毛,徐秀芳,时顺. 基于Web的ACM/ICPC自动评测系统的设计与实现[J].电脑知识与技术,2009,5(35).
[4]解季萍,凌永发. 基于Web 的远程教学资源数据库连接访问机制研究[J].云南师范大学学报:自然科学版,2005,25(2):22-24.
[5]张德瑞,杨晓东,张华龙. 在Visual Studio 2008中开发OPC客户端[J].可编程控制器与工厂自动化,2013(6):69-72.
[6]张玉荣. 基于.Net Framework的用户服务系统的实现[J]. 中原工学院学报,2010,21(2):46-49.
基于ACM平台的C语言实验课程教学实践篇二
摘 要 以建构主义教学理论为指导思想,“台州学院在线程序设计综合实验平台”为桥梁的C语言实验课程,突破传统实验课程教学考几个方面的弊端,在教学各个环节中引入计算机自动评判方法,把传统的以“教师为中心”的教学模式转变成以“学生为中心”的趣味性和竞争性的自主学习过程,有效地将课内外教学和过程考核有机结合,极大地提高了教学效率。
关键词 建构主义 ACM平台 C语言实验课程 程序设计
中图分类号:G424 文献标识码:A DOI:10.16400/j.cnki.kjdkz.2016.01.064
C Language Experimental Course Teaching
Practice Based on ARM Platform
CHEN Rongqin, WANG Aidong, YING Jianjian
Abstract Constructivism teaching theory as the guiding ideology, "Taizhou University online program design comprehensive experimental platform" for the C language experimental curriculum bridges, breaking the traditional experimental teaching curriculum test several aspects of the drawbacks, the introduction of computers in all aspects of automatic evaluation method teaching, to put into traditional "teacher-centered" teaching mode "student-centered" self-learning process interesting and competitive, effectively combine inside and outside process of teaching and examination courses, and teaching efficiency is greatly improved.
Key words constructivism; ACM platform; C Language experimental course; program design; self learning
1 理论背景
建立在建构主义教学理论基础上并具有较强指导意义的教学方法有目标驱动教学法、任务驱动教学法和项目驱动教学法。目标驱动教学法是以目标为主线,学生为中心、教师为主导的一种教学方法。严惠新(2012)叙述了目标驱动法在“计算机基础”教学过程的设计原则和实施过程。张红波等(2011)以课程知识应用、企业需求和学生就业相关需求为目标,结合学生主观感受的体验式课程教学模式,充分调动了学生的学习积极性,有效利用了课堂时间,十分值得借鉴。同样,任务驱动教学法也颇受欢迎。所谓任务驱动教学法,就是以学生为中心,以任务为驱动的一种探究性学习和协作学习模式。其教学理念就是针对教学目标,教师设计教学任务,将所要学的概念、技能蕴含在所要解决的任务之中。黄美琼(2012)分析了“任务驱动,案列教学”教学法的实施方法和优势,并进行了教学设计举例。此外,(卞琛,2008)认为项目驱动教学法也是一种探究式教学模式,就是让学生在一个典型的信息处理的“项目”的驱动下,展开教学活动。引导学生由简到繁、由易到难、循序渐进地完成一系列“项目”,从而得到清晰的思路、方法和知识的脉络。胡孟杰等(2013) 针对程序设计课程传统教学中存在的问题,以强化实践能力和创新能力培养为目标,探索项目驱动教学法在程序设计课程教学中的运用。总之,三种理论殊途同归,都突出学生的主体性地位,强调学生分析问题和解决问题的能力,对C语言实验课程的教学都具有实质性的指导意义。
2 传统实验课教学模式的弊端和分析
通过对C语言实验课程教学的初步调查,我们发现目前大部分C语言实验课程教学还是采用传统的实验教学模式,这种教学模式普遍存在以下几个方面的问题。
2.1 “教”的模式落后
(1)教师布置的实验任务往往是实验指导书上的内容,学生容易依样画葫芦完成实验,缺少对问题的分析以及实验框架设计过程,对后续的项目设计能力培养尤为不利。(2)实验课程通常只要求完成规定题目,实验数目和题目数目均受到限制,由此造成了学生“代码量”严重不足,限制了程序设计能力的提高。(3)教师之间“各自为政”缺乏信息共享,没有利用好现有的优质资源和先进的教学方法,工作量大,但教学效果差。(4)教师除了在课堂上教学外,无法在课余时间监督和管理学生的学习状况。
2.2 “学”的方法不佳
(1)学生学习以“教师为中心”。只有在课堂上请教教师,但教师精力有限,往往无法在课堂解决所有学生的问题。由于缺乏交流平台,师生和生生之间很难形成良好的沟通交流机制。(2)学生的学习较为“被动”。低年级的学生普遍存在“被动性”接受知识的习惯,无法主动从互联网上搜集到优秀的学习资源并自主学习,需要教师在实验课程中给予引导。(3)由于低年级学生缺乏明确的目标,学习兴趣普遍不浓。相比于传统的教学,计算机游戏更具有趣味性和挑战性,易引起学生的兴趣,从而让学生沉迷其中,荒废了学业。(4)学生之间缺乏良性的竞争环境,学生的实验成绩往往在课程结束时才能知道。在完成实验内容的前提下,大部分学生没有深入探索的动力。而且实验课程没有良好的激励机制,学生之间又缺乏良性竞争,最终会影响整体教学质量。