acm論文模板
ACM是全世界計算機領域影響力最大的專業(yè)學術組織。而acm論文模板,你們知道嗎?這是學習啦小編為大家整理了兩篇acm論文,這樣你們對模板會有直觀的印象!
ACM/ICPC培訓管理系統的設計與實現篇一
[摘 要] 鑒于ACM國際大學生程序設計競賽(ACM/ICPC)在人才選拔和培養(yǎng)方面的顯著作用,如何將ACM/ICPC競賽活動嵌入常規(guī)教學,創(chuàng)新教學模式,結合專業(yè)教學,加強訓練管理,提高培訓效益,已成為人們關注的熱點問題。針對這一應用需求,本文設計并開發(fā)了基于ACM/ICPC機制的大學生程序設計培訓管理系統。系統采用B/S架構,以SQL Server 2005作為后臺管理數據庫,Visual Studio 和ASP.NET為前端開發(fā)工具。在分析系統功能的基礎上,著重闡述了該系統設計與實現的關鍵技術。該系統實際運行穩(wěn)定、可靠,為開展ACM/ICPC競賽培訓和教學提供了一種有效管理途徑。
[關鍵詞] ACM/ICPC;培訓管理系統;Web開發(fā);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多年的歷史,是世界公認的規(guī)模最大、水平最高、影響廣泛的國際大學生程序設計競賽,競賽優(yōu)勝者是各大IT企業(yè)和科研院所青睞和優(yōu)先選拔的人才[1]。近些年來,伴隨著ACM/ICPC大學生程序設計競賽在國內如火如荼地開展,計算機高等教育界更加關注在計算機應用人才培養(yǎng)方面,如何科學合理地引入、借鑒ACM/ICPC競賽訓練經驗,將ACM/ICPC競賽活動與常規(guī)專業(yè)課程教學有機結合起來,突破傳統教學內容和教學方法,以有效培養(yǎng)學生的學習能力、創(chuàng)新意識和綜合素質。這其中,如何有效組織開展ACM/ICPC競賽訓練,加強培訓管理,提高培訓效益,亦是人們關注的熱點問題。
但就目前情況來看,組織開展此項競賽活動的訓練指導或教學培訓還沒有一個成熟通用的、基于ACM/ICPC競賽機制的ACM/ICPC 訓練和活動的教學管理平臺。具體表現在:(1)盡管一些知名院校搭建了自己的在線測試平臺[2-3],但由于大多采用英文表述問題,對于英語水平不高的低年級本科生和??茖W生來說,在翻譯題目和理解內容方面會出現偏差,導致在這些平臺上進行在線模擬測驗的效果并不理想;(2)很多網站雖然提供了ACM/ICPC競賽的相關資料,比如網上題庫、相關賽題的題解等,但這些資料在網上分布得比較分散,使得學生很難集中查閱,而且由于資料的層次性和難易性區(qū)分不明顯,使得學生在查閱和收集資料時遇到很多困難;(3)關于ACM/ICPC的網上論壇不少,但大多內容僅介紹ACM/ICPC的發(fā)展、競賽取得的成績和心得體會,學生很難在程序的求解方法和求解過程方面進行適時的互動;(4)雖然上述網上交流方式和測試學習方式符合現代化教育的理念,但是從系統管理的角度看,這些功能模塊比較分散,難以真正適應目前ACM/ICPC競賽培訓管理的需要。
基于上述應用需求,結合集寧師范學院多年參加這一賽事、組織開展ACM/ICPC競賽訓練活動的管理實踐經驗,我們開發(fā)了一個本??仆ㄓ玫腁CM/ACPC培訓管理系統,該系統是一個基于B/S結構的多用戶在線系統, 實現了資源共享、在線討論、在線學習測試、網絡化管理等功能。
2 系統分析
2.1 系統功能結構
ACM/ICPC培訓管理系統是一個B/S結構的Web應用系統。ACM/ICPC培訓管理系統的主要功能是完成網絡學習的綜合瀏覽、學習資源的上傳和下載、在線討論、在線測試和系統管理等功能,系統功能結構如圖1所示。
2.2 功能模塊需求分析
用戶登錄模塊為用戶提供安全的訪問和數據操作,防止非法用戶進入系統。本系統的登錄模塊分為系統管理員和登錄用戶。系統管理員可以完成登錄用戶的管理和系統后臺數據庫管理的功能;登錄用戶可以參與網上資源共享、在線討論和在線測試等多方面的操作。
資源在線模塊包括瀏覽資源、查找資源和下載資源3個部分,用來完成網上資源的查找、閱覽和下載。登錄用戶能夠將服務器中的資源下載到本地查看或進一步學習,也可以上傳自己的資源。
在線論壇模塊使得用戶不但可以發(fā)表意見,而且可以瀏覽到其他用戶在論壇發(fā)表的各種意見、問題等。本模塊主要包括瀏覽帖子、發(fā)表帖子和回復帖子3個子模塊。為了能夠更好地管理好論壇,本模塊主要提供了3種角色:匿名用戶(沒有注冊的用戶)、已經注冊的用戶和管理員。當匿名用戶進入論壇之后,只能對網站的頁面進行簡單瀏覽;而已經注冊的用戶進入論壇之后,可以發(fā)表自己的評論和回復帖子。
在線測試模塊包括在線選題、在線提交、系統測試的功能[2],該模塊提供了一個符合ACM/ICPC競賽需求的學習訓練平臺。用戶可以按照問題的說明編寫源代碼,并通過在線提交子模塊上傳給系統。系統根據用戶提供的語言和源代碼生成對應語言擴展名的源程序文件,調出相應的編譯器來運行源程序并進行測試。通過編譯、執(zhí)行后,系統將運行時捕捉的輸出信息同預先存放的標準測試輸出文件進行比較,返回測試結果(比較一致,則返回運行成功信息,否則返回運行錯誤信息),并將運行成功后的有關信息(程序源代碼、用戶數據表的通過數量、問題類別表的通過數量、計算機耗時等)存入數據庫。
系統管理模塊為負責組織開展ACM/ICPC訓練活動的主管教師提供一個對培訓平臺信息集中管理的手段。主管教師以系統管理員身份登錄后,通過對數據庫信息的修改來實現對系統各個模塊數據信息的管理和完善,通過直接操作數據庫的方式,完成對數據庫存放各個模塊的數據信息增加、刪除和修改的功能。 3 系統設計
ACM/ICPC培訓管理系統作為一個網絡化培訓平臺,系統采用Browser/Server(瀏覽器/服務器)結構,由客戶端、WWW服務器和數據庫服務器三部分組成[4],如圖2所示。
B/S模式是一種平面型多層次的網狀結構,其最大的特點就是與軟硬件的無關性,應用邏輯和業(yè)務處理規(guī)則在服務器端實現,客戶端可以做得盡可能簡單,可以只是一個多媒體瀏覽器。在具體實現時,使用SQL Server 2005數據庫管理系統建立和管理網站數據庫;運用動態(tài)網頁技術(ASP.Net)開發(fā)系統,使用HTML、C#等語言編寫應用程序;使用Visual Studio 2008平臺進行系統開發(fā)。
3.1 Web應用系統的開發(fā)技術
ASP.Net是Microsoft.Net Framework中一套用于生成Web應用程序和XML Web Services的技術,可以創(chuàng)建動態(tài)的Web頁面。本系統選擇了Visual Studio 2008作為開發(fā)ASP.Net程序的工具,網頁開發(fā)的腳本語言選用了C#語言。Visual Studio 2008 提供了各種增強功能[5],例如可視化設計器(使用 .Net Framework 加速開發(fā)),對 Web 開發(fā)工具的大量改進,以及能夠加速開發(fā)和處理所有類型數據的語言增強功能,并為開發(fā)人員提供了所有相關的工具和框架支持。C#是微軟公司隨.Net一起發(fā)布的新的語言。C#是C/C++語言家族中第一種面向組件的編程語言。它由C和C++派生而來,是一種使用簡單、面向對象、類型安全的現代編程語言。C# 不僅具有Viusal Basic的高效性,而且具有C++的強大性,它是專門為.Net設計的一種語言,在.Net中起著不可替代的作用。
3.2 數據庫技術
本文采用SQL Server 2005作為數據庫管理系統,并采用ADO.Net技術進行數據庫的操作和訪問。ADO.Net是.Net Framework用于訪問數據的組件,它的一個重要優(yōu)點就是可以以離線方式操作數據庫,減少應用程序對服務器資源的占用,提高應用程序的效率。.Net Framework提供了4個.Net Framework數據提供程序,其中SQL Server .Net Framework數據提供程序就是用于實現對SQL Server 的連接訪問[6]。SQL Server .Net Framework的框架如圖3所示。
針對ACM/ICPC培訓管理系統的數據管理需求分析,本系統設計了用戶信息表、資源分類數據表、資源數據表、論壇模塊信息表、論壇帖子信息表、回復帖子信息表、問題類別信息表、問題表列信息表和運行狀態(tài)信息表9個數據庫表。
4 關鍵技術的實現
4.1 資源上傳功能的實現
在上傳資源頁面管理中,系統先判斷文件大小和文件名是否存在,如果文件大小滿足要求且文件名不存在,為了節(jié)省存儲空間,先將該文件內容轉成二進制流,并和其他信息一起插入到資源數據表中。
獲取上傳文件、測試文件大小和將文件轉換成二進制流的關鍵代碼如下:
string FileName = myFile.Value;//獲取上傳的文件名
HttpPostedFile UpFile = myFile.PostedFile;//獲取對由客戶端指定的上傳文件的訪問
FileLength = UpFile.ContentLength;//獲取上傳文件的字節(jié)大小
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)編譯、運行和測試。系統將保存好的源代碼通過編譯器編譯后形成可執(zhí)行文件,然后通過編譯器執(zhí)行對應的可執(zhí)行文件,運行結果與數據庫的測試數據進行比較,根據比較結果修改運行狀態(tài)信息表對應信息的測試結果字段。
5 結 語
本文在總結分析目前ACM/ICPC培訓管理信息平臺建設現狀的基礎上,結合集寧師范學院的管理實踐經驗,設計并實現了一個ACM/ICPC培訓管理系統。通過對系統功能、當前網絡開發(fā)工具及數據庫開發(fā)技術進行分析,介紹了該應用系統的開發(fā)環(huán)境和實現的技術。該系統運行穩(wěn)定、可靠,不僅為組織開展ACM/ICPC競賽指導訓練提供了一種有效管理途徑,而且為ACM程序設計愛好者提供了一個良好的網絡學習環(huán)境。
主要參考文獻
[1]龔丹,徐紅梅. ACM-ICPC工作對高校日常教學影響的探討[J].內蒙古師范大學學報:教育科學版,2011,24(9).
[2]楊志偉,曾艷姍. 基于Linux的ACM在線評測系統研究[J].計算機與現代化,2010(6):166-169.
[3]韓立毛,徐秀芳,時順. 基于Web的ACM/ICPC自動評測系統的設計與實現[J].電腦知識與技術,2009,5(35).
[4]解季萍,凌永發(fā). 基于Web 的遠程教學資源數據庫連接訪問機制研究[J].云南師范大學學報:自然科學版,2005,25(2):22-24.
[5]張德瑞,楊曉東,張華龍. 在Visual Studio 2008中開發(fā)OPC客戶端[J].可編程控制器與工廠自動化,2013(6):69-72.
[6]張玉榮. 基于.Net Framework的用戶服務系統的實現[J]. 中原工學院學報,2010,21(2):46-49.
基于ACM平臺的C語言實驗課程教學實踐篇二
摘 要 以建構主義教學理論為指導思想,“臺州學院在線程序設計綜合實驗平臺”為橋梁的C語言實驗課程,突破傳統實驗課程教學考幾個方面的弊端,在教學各個環(huán)節(jié)中引入計算機自動評判方法,把傳統的以“教師為中心”的教學模式轉變成以“學生為中心”的趣味性和競爭性的自主學習過程,有效地將課內外教學和過程考核有機結合,極大地提高了教學效率。
關鍵詞 建構主義 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)以課程知識應用、企業(yè)需求和學生就業(yè)相關需求為目標,結合學生主觀感受的體驗式課程教學模式,充分調動了學生的學習積極性,有效利用了課堂時間,十分值得借鑒。同樣,任務驅動教學法也頗受歡迎。所謂任務驅動教學法,就是以學生為中心,以任務為驅動的一種探究性學習和協作學習模式。其教學理念就是針對教學目標,教師設計教學任務,將所要學的概念、技能蘊含在所要解決的任務之中。黃美瓊(2012)分析了“任務驅動,案列教學”教學法的實施方法和優(yōu)勢,并進行了教學設計舉例。此外,(卞琛,2008)認為項目驅動教學法也是一種探究式教學模式,就是讓學生在一個典型的信息處理的“項目”的驅動下,展開教學活動。引導學生由簡到繁、由易到難、循序漸進地完成一系列“項目”,從而得到清晰的思路、方法和知識的脈絡。胡孟杰等(2013) 針對程序設計課程傳統教學中存在的問題,以強化實踐能力和創(chuàng)新能力培養(yǎng)為目標,探索項目驅動教學法在程序設計課程教學中的運用??傊?,三種理論殊途同歸,都突出學生的主體性地位,強調學生分析問題和解決問題的能力,對C語言實驗課程的教學都具有實質性的指導意義。
2 傳統實驗課教學模式的弊端和分析
通過對C語言實驗課程教學的初步調查,我們發(fā)現目前大部分C語言實驗課程教學還是采用傳統的實驗教學模式,這種教學模式普遍存在以下幾個方面的問題。
2.1 “教”的模式落后
(1)教師布置的實驗任務往往是實驗指導書上的內容,學生容易依樣畫葫蘆完成實驗,缺少對問題的分析以及實驗框架設計過程,對后續(xù)的項目設計能力培養(yǎng)尤為不利。(2)實驗課程通常只要求完成規(guī)定題目,實驗數目和題目數目均受到限制,由此造成了學生“代碼量”嚴重不足,限制了程序設計能力的提高。(3)教師之間“各自為政”缺乏信息共享,沒有利用好現有的優(yōu)質資源和先進的教學方法,工作量大,但教學效果差。(4)教師除了在課堂上教學外,無法在課余時間監(jiān)督和管理學生的學習狀況。
2.2 “學”的方法不佳
(1)學生學習以“教師為中心”。只有在課堂上請教教師,但教師精力有限,往往無法在課堂解決所有學生的問題。由于缺乏交流平臺,師生和生生之間很難形成良好的溝通交流機制。(2)學生的學習較為“被動”。低年級的學生普遍存在“被動性”接受知識的習慣,無法主動從互聯網上搜集到優(yōu)秀的學習資源并自主學習,需要教師在實驗課程中給予引導。(3)由于低年級學生缺乏明確的目標,學習興趣普遍不濃。相比于傳統的教學,計算機游戲更具有趣味性和挑戰(zhàn)性,易引起學生的興趣,從而讓學生沉迷其中,荒廢了學業(yè)。(4)學生之間缺乏良性的競爭環(huán)境,學生的實驗成績往往在課程結束時才能知道。在完成實驗內容的前提下,大部分學生沒有深入探索的動力。而且實驗課程沒有良好的激勵機制,學生之間又缺乏良性競爭,最終會影響整體教學質量。