程序设计实践方案的研究与实施

时间:2022-07-25 01:55:11

程序设计实践方案的研究与实施

摘要:本文根据操作系统文件系统工作原理,设计用于程序设计实践类课程的教学方案。该方案由课程目标、教学方案设计、教学内容与过程、评价体系、教学文档等内容组成,旨在使方案具有科学性、系统性、实用性和可操作性等特点。既可直接用于程序设计实践课程。该方案的设计架构、体系内容、实施手段和操作方法等,可供其他软件技术理论的实践类课程参考。

关键词:实践课程;教学方案;程序设计;软件技术

1课程目标

培养实用型、创新型人才,提升软件研发能力,构建系统、完善的理论及实践专业课程体系架构,一直是计算机专业课程和专业基础课程的根本目标。为积极落实计算机学院计算机科学与技术专业的专业培养目标,强化对学生应用编程实践能力的体系化培养,进一步构建、充实计算机软件、硬件紧密结合的基本知识架构,贯彻系统、可持续发展的培养思路和课程体系,在C语言程序设计、面向对象技术、计算机基础等先修课程基础上,加强学生软件开发能力的培养,设置并开设程序设计实践课程“计算机设计项目实践”。

课程设计方案针对专门的实用编程技术及其应用实现方法,进行特定系统功能的设计,确立实现方法,完成程序编码与调试。进一步加强程序设计基础理论技术的掌握,提升程序设计的深度和难度,培养学生设计实现较大程序的能力。为专业素质和能力的培养奠定扎实基础。

本课程的设计项目对方案设计目标、设计内容、设计思路、实施基本方法进行系统规划,学生能够了解面向具体应用的程序设计基本方法,明确系统功能、设计、实现的基本流程,理解一个实用应用程序的基本架构,掌握设计实现的应用程序的运行流程。在选择C语言编程环境及其方法的基础上,能够基于库函数或类库函数接口,运用具体编程方法,完成应用程序的设计、编码等开发工作。选择学生感兴趣的项目,构建用户自己的应用程序代码,达到熟练运用编译环境工具、开发较大型应用程序的目的。

课程方案设计的基本原则在于,通过精选应用系统的需求分析、功能设计、编码、实现、测试、提交等基本环节,展现软件开发基本过程,运用实用编程技术及其应用实现方法,培养学生实际开发经验,提升学生应用编程实力,巩固学生程序设计基本规范、基本流程的理解和实现技术,达到充实程序设计的应用知识体系、激发学生的学习兴趣和主动性、开拓学生的专业视野和实际工作能力的目的。

2教学方案设计

2.1应用系统的设计

通用操作系统的文件系统为用户数据的存储和读写等提供必备支持,应用程序设计也需要有关文件操作功能的支持,文件系统及其各项实现技术具有实用价值,C语言程序设计课程中,文件系统相关章节对文件的基本操作、编程接口、实现方法等内容进行了简要介绍,学生具备一定的理解文件系统功能和处理文件的知识基础[1]。

参考相关资料,使用高级语言实现的一个文件系统,作为一个应用原型系统,基于该系统,完成软件项目设计的各个过程[2]。

首先通过分析文件系统基本功能,理解文件系统的设计步骤,及设计实现一个简单、功能完善的模拟文件系统SMFS。该文件系统功能包括文件操作、文件存储管理、文件系统一致性和容错性管理[3]。

SMFS文件系统采用C语言设计实现。通过分析原型程序的数据结构设计、算法设计实现,掌握该应用软件的模块划分与集成,掌握编译环境、运行环境的构建与使用。

首先对现有原型系统初步改错并进行调试,查看运行结果,分析并找出原型系统仍然存在的问题。

再根据所设计的文件系统应用程序方案功能,进行设计和修改,对应用程序进行二次开发,完成应用程序的设计、编码、调试、运行。

方案的实施使学生应用能力得到锻炼和提高。学生可了解软件开发规律、开发思路和实现技术。

2.2开发平台的选择

使用PC机、Windows操作系统、高级语言编译工具及其环境,作为硬件、软件开发运行平台。选择Turbo C或 Borland C作为编译工具。开发、运行平台易建。原型软件程序已通过初步调试,可运行,为学生的调试、二次设计、开发提供有利支持和保证。方案可行性、可操作性较强。

3教学内容

3.1文件系统分析

以UNIX操作系统文件系统为例,对文件系统管理数据结构及基本构成进行必要分析,了解文件系统基本工作方式及其功能实现的基本方式。动手实现一个模拟文件系统――文件应用系统。

3.2文件应用系统规划

文件应用系统设计功能包括,提供一个文件操作接口函数库,基于该函数库实现一个简单的文件系统,提供高效的存储管理功能。该文件系统提供较好的容错性能,系统崩溃时进行数据的一致性检测,确保数据不丢失。

基于文件函数库的基本文件操作函数,设计实现一个简单的单用户文件系统。文件系统功能设计简化为以下几个模块。

Naming:将文件名映射为文件占用的磁盘块,空闲磁盘块管理的内存与磁盘数据结构,称为磁盘空闲表。该表可跟踪磁盘上每一个磁盘块分配使用情况,该表永久存放在磁盘上,文件系统启动时放入内存,指导文件的空间分配。

Allocated:磁盘块的分配记录,即文件系统的物理组织。采用索引节点方式进行文件分配磁盘块的管理。每个文件拥有唯一I节点,每个文件的属性信息存放在该文件的I节点中。此外,目录文件中包含该目录下子目录名及其I节点或文件名及其I节点,用于按目录逐级查找,将文件名映射到I节点上。

文件操作包括:创建文件;修改文件;删除文件等。

容错性、一致性的设计。文件系统的恢复策略。确保文件数据的完整性、持久性。

3.3文件应用系统数据结构设计

全局数据结构包括:文件系统文件最大数量;文件系统最大空间;文件系统操作提示符――字符串;文件系统名称――文件名表示;文件系统文件指针;文件I节点――结构体类型;文件I节点指针;文件I节点表――数组。

3.4文件函数库设计

文件系统应能永久存储数据,物理上存储数据的是磁盘。为简单起见,使用一个文件模拟磁盘。将文件磁盘块大小设定为4KB,每个磁盘块有唯一编号,每个文件以磁盘块为单位存储数据。

磁盘函数库模拟真实的硬件接口,设计为函数实现,函数接口提供良好的调试接口,为将磁盘驱动器接口映射为模拟的磁盘函数库函数接口。磁盘函数库设计如下函数:

void creat_file_system()

函数功能:创建一个文件,包括文件管理数据和实体数据结构,表示文件系统。

void open_file_system();

函数功能:打开或创建文件系统,错误返回error;正确则返回文件系统指定的文件管理数据和实体数据结构位置指针。

int new_a_file(char *file_name)

函数功能:搜索文件系统,查出可用空闲管理块,存入指定文件名,返回管理数据位置指针,否则,返回-1。

int del_a_file(char *file_name)

函数功能:搜索文件系统,查出指定文件,从文件系统中删除该文件,返回该文件位置指针,否则返回-1。

void list()

函数功能:搜索文件系统,只要文件名不为空,输出文件名和文件长度,文件计数。

int open_a_file(char *file_name)

函数功能:搜索文件系统,如指定文件存在,返回指定文件所在的序号。

int offset_by_i(int i)

函数功能:返回第i个文件在文件系统存储空间的偏移量。

int write(char *file_name,int offset,char *str,int count)

函数功能:打开文件file_name,写入文件,写入文件系统管理块信息。

int read(char *file_name,int offset,int count,char *str)

函数功能:打开文件file_name,读出该文件字符串内容。

void print_help()

函数功能:输出系统文件操作提示信息,供用户选择。

int main()

函数功能:启动文件系统,进入帮助界面,用户可以输入各项操作代码,循环执行对应文件操作,或结束系统运行。

合法操作包括:①创建文件系统;②新建一个文件;③删除一个文件;④显示文件列表;⑤写入文件;⑥输出文件;⑦退出文件系统。

3.5应用文件系统运行分析

测试中,查看存在的设计缺陷。如,文件系统中文件数量的检测和控制;文件长度的检测和控制;文件系统启动确认等[4]。

3.6应用文件系统的再设计方案

根据学生对原型系统的理解和掌握程度进行自行设计。测试改进方案的系统运行的完善性和健壮性。

4教学过程

本课程课堂授课课时为8学时,上机实践学时为24学时。教学采用讲课、上机交替进行的方式。便于学生及时把教师交付的每个任务贯彻落实、设计实现,教师能将学生实践中出现的问题,利用课堂教学及时反馈、说明、给出指导意见。

教师在授课期间,对设计方案的设计思想、设计方法、实现系统功能、实现技术及方法、编译运行环境等进行简要讲解、说明。学生在上机实践环节过程中,完成项目方案的设计实现,通过接受教师检查、验收、答辩等环节,提交实验报告。锻炼和提升分析,设计,文字、语言表述,实现,工具运用等能力。

该方案教学过程可设计为三个阶段。

4.1授课内容设计

该阶段完成进行系统开发的技术理论、程序架构、软硬平台搭建等准备工作。从项目设计目标、方案设计、实施过程及要求、编程技术分析、系统功能等方面进行授课。指导学生奠定扎实基础,为进行下一阶段的实践作好准备。为了比较系统全面了解有关软件开发的基本概念、基本过程,设计授课内容按系统功能驱动的方法展开,紧密结合实现编程技术,引导学生逐步系统了解开发一个特定应用系统所必需掌握的基本概念和基本技术。

教师在8学时的授课中,首先向学生明确说明方案系统的功能,然后进行功能的分解,直至完成模块的划分,讲解需要的编程技术,实现模块功能,学生在此基础上,设计模块内部的算法流程,并实现、调试、运行软件系统。

4.2实践内容设计

上机实践24学时。实践环节以课题组模式进行工作,利于互相帮助,培养合作能力和意识。学生以课题组为单位进行方案论证、设计、开发环境构建、分工、单元开发、调试、系统运行,完成项目实践报告的编写。组长是项目主持人。该过程能使学生明确软件开发的各个环节,结合自身条件对每个环节进行自己的设计实现。课题组学生可按以下实施内容及步骤开展工作,并按计划接受教师的检查和评估。

每2人自由结为一个课题组。可以均衡学生的能力,达到互助的目的。确立方案的功能及设计基本方法,设计模块函数功能及其编程接口。

安装开发环境、调试开发工具。对于开发使用的 C/C++语言环境及工具、函数等作必要的调试。

分析设计系统功能,划分每位同学的模块分工明细。完成各自的功能模块设计、编码实现、调试,并接受教师检查、评估。

课题组完成系统集成调试。提交调试报告和系统使用说明书,并接受教师软件验收。

项目实践上机环节的内容可操作性强、实施要求具体、目标明确,便于对学生的研究能力、协调协作能力、软件系统分析设计能力、编码能力,解决问题能力、语言、书面表述能力等作一个综合的培养、评价、考核。

5评价体系

对学生方案设计实现的评价,旨在通过实践的各个环节的监督检查,深入了解学生的进展情况、方案实施效果、出现的问题等,为学生提供指导、建议,考核设计与实现结果是否达到方案目标的要求。

针对项目实践课程的目标和特点,必须规划、确立学生成绩评价标准。否则,课程开设效果难以保证。对学生方案设计实现的评价,旨在通过实践的各个环节的监督检查,深入了解学生的进展情况、方案实施效果、出现的问题等,为学生提供指导、建议,考核设计与实现结果是否达到方案目标的要求。

课程实施过程分为:课堂教学,课题组完成系统分析设计的理解、模块功能设计与划分、编程实现与调试、软件验收、答辩等。

学生成绩评价体系设计根据每位学生的各个部分的实施情况进行评估。学生应提交规定格式、内容的文档、实验报告,完成编码、调试、软件验收,学生在阶段检查时对设计实现内容进行讲解、答辩。答辩对学生的系统总体设计模式与运行模式进行考核,确认学生是否对软件系统的设计流程、运行流程及其出现的问题,有全面的理解。敦促学生全面系统地完成项目实践整个实施计划与实施过程。

学生成绩评价体系包括文档成绩评估设计和软件验收答辩两个部分。

文档成绩评估设计。组长及其组员负责组织编写实验报告,实验报告的详细格式及内容的规范要求见附录。其中包括分析设计、系统调试、系统运行手册、设计实现的模块和调试等内容。根据实验报告的可读性、创新性、结构内容完整性、工作量等因素,评估每位学生的文档成绩。

软件验收答辩。根据教师提出的系统需求和设计方案建议,以课题组为单位进行系统分析设计,每人独立进行模块详细设计及编码调试工作,根据提交的模块设计实现文档和调试文档,学生对模块使用的数据结构及算法设计进行讲解、答辩。教师根据讲解简明、思路清楚、工作量饱满、使用技术有独到之处等方面给予成绩评定。根据提交的实验报告进行软件系统验收,根据系统的运行功能实现、界面设计、编码技术运用等评估学生的验收成绩。考核分值分布如表1所示。

表1考核分值分布表

考核内容百分比

系统分析设计报告10%

模块详细设计报告10%

原运行系统调试报告15%

系统调试报告用户手册15%

阶段检查25%

验收检查25%

6教学文档及环境支撑

计算机设计项目实践包括24学时的上机操作,需要完成课程软件系统开发与文档组织编写,是以学生自主完成为主,教师指导为辅的实践过程。为配合师生的需求,提高学生的工作效率,支持文档的编写、系统的设计实现、编码、调试等诸多具体要求,一个方便实用的文档及具体要求支持体系十分必要。教学文档可提前提交给学生参考,一般包括:①授课教案;②实验指导书;③应用软件开发环境;④课程实践环节参考手册;⑤网上教学资源平台;⑥教学大纲;⑦实验大纲;⑧授课计划;⑨实验上机学期计划表。

7课程实践环节参考手册设计

特别设置一个实践环节参考手册,对课程设计所有环节具体要求和实施办法作一说明。为学生方便地编写文档和规范地完成实施过程,提供规范文档体系参考与指导,使学生的成果体系完整、有据可查。

附录一,实验报告规范模板;附录二,实验任务书;附录三,报告文档内容格式参考;附录四,进度安排及成果提交;附录五,实验报告撰写规范;附录六,成绩评估表。

8结语

操作系统技术对于大学计算机专业课体系教育的重要性勿容置疑,实践教学对理论教学有延伸和提升的作用,其教学重要性、迫切性、科学性越来越得到国内外同行的共识,如何将实用技术引入实践教学

环节一直是教学中探索的重点和难点。本方案的创新性在于系统全面地设计了实践类课程的各个环节,提供了较全面的方案设计内容,有一定的参考价值。方案具有较好的可操作性和可移植性,可供其他计算机专业课的实践环节参考。该方案已应用于教学,对学生拓展应用编程技术,进行软件开发具有较好的效果。

该方案具有技术实用、平台易建、功能明确、难度适中的特点。通过方案的实施,学生系统软件分析能力和应用软件的开发能力能得到一个全面的实践和锻炼。

参考文献:

[1] 谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2006(6):150-210.

[2] 卢军. Linux0.01内核分析与操作系统设计[M]. 北京:清华大学出版社,2004(6):139-198.

[3] 孟庆昌,牛欣源. 操作系统[M]. 2版. 北京:电子工业出版社,2009(11):183-216.

[4] 赵斌. 软件测试技术经典教程[M]. 北京:科学出版社,2007(5):1-59.

Research and Implementation of Programming Practice Project

NIU Xin-yuan

(School of Computer, Beijing Information Science and Technology University, Beijing 100101, China)

Abstract: The paper, according to the mechanism of operating system file system and a case of design and implementation. A programming practice project is designed and implemented. The project includes that course claim , teaching plan design ,teaching process and content ,evaluation system, course reference manual, etc. All can make and ensure the project being scientific, systematicness, practicability and operability. The project can be applied in programming practice course directly. Its design architecture, system and content, implemented means and operational method can be referenced by the other software technology practicing course.

Key word: practice course; teaching project; programming; software technology

上一篇:基于准职业人目标的高职网络技术人才培养关键... 下一篇:以多层次计算机专业职称资格证书为主线的人才...