2019亚洲日韩新视频_97精品在线观看_国产成人精品一区二区_91精品网站在线观看

基于計算機系統(tǒng)能力培養(yǎng)的程序語言選用分析

來源:期刊VIP網(wǎng)所屬分類:計算機信息管理時間:瀏覽:

  摘 要:計算機類專業(yè)的學(xué)生掌握編程解決問題的基本技能,是基本的專業(yè)素質(zhì)。算法是程序設(shè)計的靈魂,是用系統(tǒng)方法描述解決問題的方法,是從編程通向計算思維的必由之路。計算機類專業(yè)的“系統(tǒng)能力”,是計算機類專業(yè)相較于其他專業(yè)的核心競爭力。本文總結(jié)了六年來采用不同編程語言進行教學(xué)的比較,討論了如何貫通專業(yè)學(xué)生的這些專業(yè)基本素質(zhì)和核心能力,為我們進行教學(xué)時編程語言選擇提供了基于系統(tǒng)能力的可行方案。

  關(guān)鍵詞:程序設(shè)計;數(shù)據(jù)結(jié)構(gòu)與算法;計算機系統(tǒng);編程語言

計算機技術(shù)論文

  1 引言(Introduction)

  數(shù)據(jù)結(jié)構(gòu)與算法課程曾經(jīng)用偽代碼教學(xué),旨在掌握算法思維本身。現(xiàn)在基本采用一門具體的編程語言進行教學(xué),可能是Linus Torvalds說:“Talk is cheap,show me the code.”,也可能是程序執(zhí)行時間比算法復(fù)雜度分析更有感覺。當(dāng)前計算機系統(tǒng)能力的培養(yǎng)也是一個倒逼的動力,因為體驗代碼的執(zhí)行、調(diào)試程序的bug,是讓學(xué)生深入理解計算機系統(tǒng),加強工程能力培養(yǎng)的必由之路[1-4]。

  目前,計算機類專業(yè)的程序設(shè)計基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)與算法這兩門課程的教學(xué),選擇同一門編程語言進行兩門課程的連續(xù)教學(xué)是較好的選擇。這樣為學(xué)生“學(xué)好一門編程語言”+“計算思維”這個主線提供了很好的條件[5]。

  那么是讓學(xué)生自主選擇課程的這一門編程語言,還是根據(jù)專業(yè)課程體系的需要進行設(shè)定,這是我們進行課程體系設(shè)計的時候容易引起爭論的話題。我們根據(jù)TIOBE編程語言排行榜以及網(wǎng)上招聘和地區(qū)人才需求,“所學(xué)即所用”“一點打透”等原則,在學(xué)生中試行了學(xué)生自由選擇排名前列的幾種編程語言進行這兩門課程的教學(xué)。現(xiàn)在根據(jù)計算機系統(tǒng)能力建設(shè)的趨勢,回歸了簡單的C語言路線。這又會讓人想起發(fā)明C語言的Dennis M. Richie說:“Keep it simple stupid”[6]。我們做了一些思考和總結(jié),供專家和同行們參考。

  2 面向?qū)ο缶幊陶Z言的特點(Characteristics of object oriented programming language)

  我們以Java語言為例來說明用面向?qū)ο缶幊陶Z言來進行程序設(shè)計基礎(chǔ)+數(shù)據(jù)結(jié)構(gòu)與算法課程教學(xué)的特點。Java的優(yōu)勢在于實現(xiàn)了面向?qū)ο蟮闹饕夹g(shù)(封裝、繼承與多態(tài)、接口等),而放棄了容易引起混亂的技術(shù)(例如多繼承)。

  (1)封裝。在數(shù)據(jù)結(jié)構(gòu)與算法課程教學(xué)中,數(shù)據(jù)抽象是首先要面對的主題。現(xiàn)在的面向?qū)ο蠹夹g(shù)已經(jīng)很成熟,如果選擇將數(shù)據(jù)成員(數(shù)據(jù)結(jié)構(gòu))設(shè)為私有屬性隱藏起來,通過調(diào)用公有成員方法(算法)訪問私有數(shù)據(jù),Java完成了定義自己的數(shù)據(jù)類型(數(shù)據(jù)抽象)和對這些數(shù)據(jù)操作的封裝。數(shù)據(jù)類型和相關(guān)操作(算法)有了密切相關(guān)性,定義了一個類的數(shù)據(jù)成員(數(shù)據(jù)結(jié)構(gòu))之后,相應(yīng)的算法就是同一個類中的各種方法,就可以創(chuàng)建對象,以及派生出更多的細分、實用的類。

  (2)泛型。泛型是Java 5以上版本提供的支持這一目標(biāo)的方式之一。泛型也就是參數(shù)化類型,例如Stack是某種元素的棧,而Stack處理的就是String對象。同理,Queue就是處理Date對象[7]。

  算法中經(jīng)常需要進行對象的大小比較,一般采用兩種方法實現(xiàn)泛型,從而實現(xiàn)對象間可比較。一是用Object表示泛型,二是用Comparable接口類型表示泛型。用Comparable接口類型表示泛型時(從JDK 1.5開始,在java.lang.Comparable中使用了泛型),需要定義對象為Comparable接口的實例,然后調(diào)用Comparable的compareTo方法(需要重寫)就可以進行對象間的比較操作[8]。

  推薦閱讀:計算機論文發(fā)表的普通期刊

主站蜘蛛池模板: 额尔古纳市| 舒城县| 洮南市| 临洮县| 华宁县| 新昌县| 榆树市| 遂昌县| 临沂市| 谷城县| 南京市| 普格县| 自治县| 太湖县| 洛隆县| 麻城市| 清镇市| 尤溪县| 宁晋县| 宁安市| 衢州市| 长白| 赣州市| 汝州市| 商丘市| 松潘县| 荆门市| 囊谦县| 子洲县| 高雄县| 山阳县| 黄浦区| 清涧县| 济南市| 克山县| 新巴尔虎左旗| 珠海市| 台东市| 全州县| 郧西县| 宁南县|