将“操作系统”当“高级C语言”如何?

计算机类专业的人才培养中,程序设计能力是基本,是“规定动作”。有了程序设计能力,系统设计和分析能力、算法思维能力、软件工程能力的培养等,才能找到入口。显然,这些能力提高了,程序设计能力再上新的层次。
  大学和培训机构,采用着两种专业教育的路线。
  大学里培养计算机人才,作为专业的系统化教育,一门课程接一门课程,各种课。这些课当中,讲语言的课有一些,但不多。给人的映像,大学里不重视语言。大学老师也一直在讲,语言是表面的东西,学好专业,真功夫在语言之外。的确,各种数学类课、算法类课、计算机组成和体系类课、开发方法和组织类的课程,都包含着对计算机的理解,包含着程序设计能力。
  但是,与此而来的,就是有一批的同学,编程的实践,只是在学语言课的时候才做,学其他课,不编程。这样的学习,达不到效果。加上应试中养成的习惯,一切为了考试,怎么考就怎么学,直把这些本来可以是非常生动的课程,学得死气沉沉。
  大学的培养方案有问题吗?作为圈内人,我知道我们的培养方案的出炉过程。国际上,有ACM和IEEE-CS的组织在把握着总的方向;国内,在国家级的教学委员会跟踪国际进展,结合国内情况,给出宏观的建议;而各个学校,参照着国内、国外的指导意见,沿袭着一些传统,考虑着行业、地区、自身发展方面的特点、目标、限制,给出具体的方案。要说方案有问题,这个话不敢轻易开口。
  但问题的确有,否则,这么多学子在校的学习状态不佳,说不过去。这里有学生学习目标、学习习惯的问题,培养方案应该要考虑到这些问题,并将帮助学生确定目标、形成习惯作为目标之一。大学做这些是不是晚了?这些是大学的事吗?这是现在大学的难处,但,问题既然在,就一定要解决。
  那,问题是什么?
  一是雷同,二是执行中的僵化。
  雷同有一定的体制背景,大家不敢动;方案制定者也是这么学过来的,当学生时怎么样忘记了,但当老师后想想还算有道理,于是不想动;除这个方案外,还可以是什么,不知道,这是不会动。
  更主要的问题就是执行了。其实,在我们的社会生活中,有太多制度还不错,就是执行差的案例了。在日常的咨询中,有太多的学生跟我说,C语言课老师就带他们做选择题,指针、文件“讲了你们也不懂,自己看书去”,学操作系统,划重点,背会就行。如此实践性强的课程,和邓三课一个学法!在大学,处理好学习和考试的辩证关系,老师得先行一步,带着学生走出来。
  总之,大学的培养有其道理,但要做的是,在专业课的学习中,要帮助学生改变学法。
  再说培训机构,走的是另一个路子。
  只看其班名,Java班、C语言就业班,直奔程序设计,给人直观映像,甚至就是学语言。其实仔细考察,授课内容中也不乏算法、计算机原理。本来,离了这些,就叨叨语言,叨不清,叨不明。
  这样做,和培训班直奔就业的目标有关。这样的表述,也让这样一种短线的教育的目标更加明确。带来的,学员目标明确地学,教了什么,就练什么。学了什么,找工作就找什么。只要去学的,学习效果,学过的,都说有收获。
  培训机构招大学准毕业生,其实承担起了其他行业中企业实习环节的任务。之所以能够这样做,算是大学计算机类专业学习失败一面的补充。学Java中用到的计算机的知识、算法的知识、工程的知识,学员在学校学过,考完试忘了而已,再次捡起来,上手会快些。更关键的是要就业了,着急了。不再是老师不盯着,作业能不做就不做,不得不做了,能抄就抄一个。所以,依靠基础,心态也对了,冠名语言的培训,也能让学生具备就业时示人的东西。
  形成的现象,问一些IT行业初入门者在做什么工作。搞底层开发的,说我搞C,搞应用开发的,说我是C#的。不准确的比喻,种玉米的,说我使镰的,铁匠说我抡锤的,出租司机讲我是捷达的。这样讲有些道理,但只见出租司机换开索纳塔似乎还能干,而使镰收玉米的,联合收割机来了,他只能歇着了,抡锤打铁的,有了煅造机,他得另找活干。
  我是大学老师,我知道在我的学生里,说搞底层开发的和搞应用开发的,和说搞C搞C#的,水平不一样。但也幸亏有人在培训班,或者按培训班的做法,最后得瑟了一下,有机会说搞C搞C#,否则就得使镰抡锤了。
  我关注怎样让我的学生达到大学的培养目标:注重专业的长远,注重人的发展。其实报了培训班,不学的,学习不上路的也有。大学规模大,这样的现象更普遍。共同的是,真正学过了,才能谈效果。
  培养方案不管好坏,就那样了;老师怎么样,学生没有选择,这是我们的前提。于是,我作为老师,关注大学生的学习,也认定这是大学生和大学走出困境的一个途径。关注大学生学习,课外自主学习是重点。
  在大学的学习,要结合培养方案,需要的,是要将程序设计融进各门课来。不妨就参照培训班的模式,课外学习安排中结合语言,用程序设计的方式完成实践。例如“计算机组成”和“操作系统”课,完全可以在课外将其称为“高级C语言”。学习“计算机组成”,同步看《深入了解计算机系统》,用C语言实践;学习操作系统课,同步看和练《Linux系统编程》和《Linux程序设计》,学的也是活的操作系统;学习“编译原理”,就去实现一个最小化的高级语言。这些,都是程序设计,又都不是程序设计。
  依靠大学的培养体系,成为“科班”的人。突破大学的雷同和执行不力,借助用语言的直观表述,凭借课内外充分的结合,可以主动收获大学。
  

时间: 2024-08-29 09:55:56

将“操作系统”当“高级C语言”如何?的相关文章

高级程序设计语言学习2

高级程序设计语言的学习,不仅要学习具体语言的使用,更要学会如何快速掌握一门新的编程语言. 编程语言相对于自然语言来说,结构更简单,只是在计算机新功能的出现.开源的流行的现在,编程语言的种类越来越多,语言的内容越来越多.但是,内容增多,在很大一定程度上只是类库的扩充,这些在一定程度上不用我们完全去记忆,只在需要时搜索.查询. 编程语言知识点: 数据,数据是从硬件内存.寄存器抽象上来的,也可以成为变量,简单的有整数.布尔值.字符,还有字符串.浮点数等.这些是几乎所有编程语言都有.不同语言在数据方面的

android客户端与服务器交互数据(基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合)

在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,做过JAVA ME的人都知道有KSOAP这个第三方的类库,可以帮助我们获取服务器端webService调用,当然KSOAP已经提供了基于android版本的jar包 首先下载KSOAP包:ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar包 然后新建android项目 以

高级程序设计语言概述

常用的高级程序设计语言 常用的高级程序设计语言 语言 特点 FORTRAN 数值计算 COBOL 事务处理 PASCAL 结构化程序设计 LISP 函数式程序设计 PROLOG 逻辑程序设计 C 系统程序设计 Smalltalk 面向对象程序设计 Java Internet应用,可移植性 Python 解释型 高级程序设计语言的优点 相对机器语言或汇编语言,高级程序设计语言 更接近于数学语言和工程语言,更直观.自然和易于理解 更容易验证其正确性.改错 编写程序的效率更高 更容易移植 程序设计语言

高级程序设计语言

高级语言的初级阶段实际上是从低级语言(机器语言和汇编语言)向高级语言的过渡,其代表是第一个高级语言Fortran语言,初期高级语言中的问题是表达式处理,这一点从Fortran名称的含义(FORmula TRANsformation language)可以看出,Fortran.Basic语言引入了变量.表达式.语句等概念,由于当时计算机应用的重点是数值计算,所以它与低级语言的主要区别也体现在表达式计算的自动处理上,而且把表达式的计算进一步引入到重复语句的控制和数组下标,更体现出"高级"编

高级着色语言简介

HLSL中提供的true和false关键字与C++相同. int:32位有符号整数 half:16位浮点数 float:32位浮点数 double:64位浮点数 float2 float3 float4 分别为 2D 3D 4D向量. 复合分量:(以下为复制操作)不一定要复制每个分量,可以只复制x.y分量. float4 u = {1.0f, 2.0f, 3.0f, 4.0f}; float4 v = {0.0f, 0.0f, 5.0f, 6.0f}; v = u.wyyx; // v = {4

高级c语言第一次作业刘子威

C语言程序的基本语句能完成功能的体会.(结合飞机游戏等) 数据输出包括字符输出函数putchar()和格式输出函数printf().数据输入包括字符输入函数getchar()和格式输入函数scanf() 飞机软件中default:printf('\n 错误,请重新选择...\n'); void print(int [][N]);//输出函数 void movebul(int [][N]);//子弹移动函数 void movepla(int [][N]);//敌机移动函数 void setting

Android高级-SQL语言

--创建表 第一种方式 create table t_hui( id integer,// name text, sex text, //第一个参数为要创建的字段名,第二个参数为字段的类型 ) 第二种方式 create table t_hui( id integer,//  primary key autoincrement //设置id为主键,并且自增加 name text, unique //unique 代表该字段的值只能是唯一的,不能有重复 sex text, not null defa

阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第1节 Scanner类_3-Scanner的使用步骤

Scanner如何进行键盘输入,引用类型就包含了Scanner,它就是引用类型,所以也有这三个步骤, 导包.创建.使用 先通过api文档找到它.左边输入要查找scanner.双夹scanner右边就会出现了. 在java.util包里面 第一步导包,因为我们的代码还没有用上,所以现在还是灰色的 2.创建对象 有这么多的构造方法,但是没有哪个是留空的, 我们必须在小括号内写上内容.那么写什么呢? 只要在小括号内写上System.in就可以了 代表的含义是从键盘进行输入 3.使用 需要调用对象当中的

阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第6节 static静态_13_静态static关键字修饰成员方法

static关键字 用来修饰方法的情况 任何使用这个静态方法呢? 可以直接通过对象名称的方式进行调用. 更好的写法是通过类名称进行调用. 分别定义成员变量和静态变量 静态方法里面不能用this 原文地址:https://www.cnblogs.com/wangjunwei/p/11206517.html