附近找茶_北京新茶嫩茶wx网_600块3小时快餐无限次_附近50元过夜联系电话号码

English|設為首頁|加入收藏

課程思政

《高級語言程序設計(上)》課程思政教學案例

發(fā)布者:劉濤/文  時間:2024-04-15 13:31:34  瀏覽:

課程名稱

高級語言程序設計(上)

授課對象所屬專業(yè)

物聯(lián)網工程

課程類型

專業(yè)教育

開課年級

2023級

課程性質

專業(yè)課

課程總學時

42

一、課程簡介(300字左右)

《高級語言程序設計(上)》是高等院校物聯(lián)網工程專業(yè)學生的一門基礎專業(yè)課程,課程以C語言為教授程序設計的描述語言,結合語言介紹程序設計的基本原理、技巧和方法。本課程主要包括以下內容:程序設計基本概念、基本數據類型、運算符與表達式、數據輸入輸出函數、基本語句結構(順序結構程序設計、選擇結構程序設計和循環(huán)結構程序設計)、函數以及編譯預處理等。本課程旨在培養(yǎng)學生具有設計計算機程序、編寫程序和調試程序的能力。同時,為后續(xù)在嵌入式平臺進行交叉編譯以及程序開發(fā)打下扎實的基礎。

課程堅持立德樹人的教育之本,針對課程構建具有思政育人的理論與實踐教學,將思政元素融入教學各個環(huán)節(jié)。通過教學案例,鼓勵學生透過知識和內容,挖掘蘊含在知識背后的思維方式、價值觀和文化意義。培養(yǎng)學生的科學素養(yǎng),強化學生的創(chuàng)新意識,提高學生的創(chuàng)新能力。培養(yǎng)學生樹立和踐行社會主義核心價值觀,增強責任意識,鮮明政治取向,促使學生成長成才,并最終實現(xiàn)知識傳授與價值引領相結合的育人目標。

二、案例基本信息

1.案例名稱:從歷史的輝煌到今天的奮發(fā)圖強——楊輝三角

2.對應章節(jié):第五章第6節(jié)

3.課程講次:2課時

三、案例教學目標

目標:通過對楊輝三角起源認知,把循環(huán)結構概述、while語句、do-while語句、for語句以及循環(huán)的嵌套的理解及應用融入其中,從歷史角度激發(fā)學生的愛國熱情和民族自豪感,同時也讓學生樹立堅定的信念,嚴謹的科學態(tài)度,開拓的創(chuàng)新精神,向科學家學習,成長為思想政治可靠、專業(yè)技術優(yōu)秀的建設人才。

重點:while、do-while和for語句的應用。

難點:循環(huán)的嵌套。

四、案例主要內容

1.利用楊輝三角理解goto語句以及用goto語句構成循環(huán)。

2.利用楊輝三角熟練掌握while、do-while以及for語句。

3.利用楊輝三角掌握循環(huán)嵌套的應用。

4.通過楊輝三角使學生知道楊輝及中國在世界數學界的歷史成就,激發(fā)學生的愛國熱情和民族自豪感,向科學家學習嚴謹的科學態(tài)度和開拓的創(chuàng)新精神。

五、案例教學設計

1、歷史引入:從南宋杰出數學家楊輝所著的《詳解九章算法》出發(fā)。

楊輝,字謙光,南宋時期杭州人。在他1261年所著的《詳解九章算法》一書中,輯錄了三角形數表,稱之為“開方作法本源”圖。歷史上曾經獨立繪制過這種圖表的數學家有:賈憲 中國北宋11世紀 《釋鎖算術》。楊輝 中國南宋1261《詳解九章算法》記載之功。朱世杰 中國元代1299《四元玉鑒》級數求和公式。阿爾·卡西 阿拉伯1427《算術的鑰匙》。阿皮亞納斯 德國1527。米歇爾.斯蒂費爾 德國1544《綜合算術》二項式展開式系數。薛貝爾 法國1545。B·帕斯卡 法國1654《論算術三角形》。

2、歷史故事與三角樣式:探究楊輝三角的歷史故事和三角樣式,分析模型特點,確定數組結構。

三角形數表最早引自11世紀中葉(約公元1050年)賈憲的《釋鎖算術》,并繪畫了“古法七乘方圖”。故此,楊輝三角又被稱為“賈憲三角”。元朝數學家朱世杰在《四元玉鑒》(1303年)擴充了“賈憲三角”成“古法七乘方圖”。意大利人稱之為“塔塔利亞三角形”(Triangolo di Tartaglia)以紀念在16世紀發(fā)現(xiàn)一元三次方程解的塔塔利亞。在歐洲直到1623年以后,法國數學家帕斯卡在31歲時發(fā)現(xiàn)了“帕斯卡三角”。布萊士·帕斯卡的著作Traité du triangle arithmétique(1655年)介紹了這個三角形。帕斯卡搜集了幾個關于它的結果,并以此解決一些概率論上的問題,影響面廣泛,Pierre Raymond de Montmort(1708年)和亞伯拉罕·棣·美弗(1730年)都用帕斯卡來稱呼這個三角形。21世紀以來國外也逐漸承認這項成果屬于中國,所以有些書上稱這是“中國三角形”(Chinese triangle)。

中國古代數學家在數學的許多重要領域中處于遙遙領先的地位。中國古代數學史曾經有自己光輝燦爛的篇章,而楊輝三角的發(fā)現(xiàn)就是十分精彩的一頁。

下面講解三角樣式及模型:

每個數等于它上方兩數之和。

每行數字左右對稱,由1開始逐漸變大。

第n行的數字有n項。

前n行共[(1+n)n]/2個數。

第n行的m個數可表示為C(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數。

第n行的第m個數和第n-m+1個數相等 ,為組合數性質之一。

每個數字等于上一行的左右兩個數字之和??捎么诵再|寫出整個楊輝三角。即第n+1行的第i個數等于第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即C(n+1,i)=C(n,i)+C(n,i-1)。

(a+b)n的展開式中的各項系數依次對應楊輝三角的第(n+1)行中的每一項。

將第2n+1行第1個數,跟第2n+2行第3個數、第2n+3行第5個數……連成一線,這些數的和是第4n+1個斐波那契數;將第2n行第2個數(n>1),跟第2n-1行第4個數、第2n-2行第6個數……這些數之和是第4n-2個斐波那契數。

將第n行的數字分別乘以10^(m-1),其中m為該數所在的列,再將各項相加的和為11^(n-1)。11^0=1,11^1=1x10^0+1×10^1=11,11^2=1×10^0+2x10^1+1x10^2=121,11^3=1x10^0+3×10^1+3x10^2+1x10^3=1331,11^4=1x10^0+4x10^1+6x10^2+4x10^3+1x10^4=14641,11^5=1x10^0+5x10^1+10x10^2+10x10^3+5x10^4+1×10^5=161051。

第n行數字的和為2^(n-1)。1=2^(1-1),1+1=2^(2-1),1+2+1=2^(3-1),1+3+3+1=2^(4-1),1+4+6+4+1=2^(5-1),1+5+10+10+5+1=2^(6-1)。

斜線上數字的和等于其向左(從左上方到右下方的斜線)或向右拐彎(從右上方到左下方的斜線),拐角上的數字。1+1=2,1+1+1=3,1+1+1+1=4,1+2=3,1+2+3=6,1+2+3+4=10,1+3=4,1+3+6=10,1+4=5。

將各行數字左對齊,其右上到左下對角線數字的和等于斐波那契數列的數字。1,1,1+1=2,2+1=3,1+3+1=5,3+4+1=8,1+6+5+1=13,4+10+6+1=21,1+10+15+7+1=34,5+20+21+8+1=55。

3、遞推規(guī)律:由模型特點發(fā)現(xiàn)遞推規(guī)律,確定推演公式,核心代碼生成。

以下的代碼均用標準C語言寫成,可以被包括MSVC(含VC6)、GCC的多種C編譯器編譯。

(1)實現(xiàn)方式一

這個算法使用只行列位置和左側的數值算出數值:

/* yh-rt1.c -時間和空間最優(yōu)算法*/

#include <stdio.h>

#include <stdlib.h>

int main()

{

int s = 1, h; //數值和高度

int i, j; //循環(huán)計數

scanf("%d", &h); //輸入層數

printf("1\n"); //輸出第一個1

for (i = 2; i <= h; s = 1, i++) //行數i從2到層高

{ printf("1 "); //第一個1

for (j = 1; j <= i - 2; j++) //列位置j繞過第一個直接開始循環(huán)

//printf("%d ", (s = (i - j) / j * s));

printf("%d ", (s = (i - j) * s / j));

printf("1\n"); //最后一個1,換行

}

getchar(); //暫停等待

return 0;}

默認求直角三角形,可通過注釋的開關或使用編譯器的-D定義開關調節(jié)等腰三角形和菱形輸出。如果覺得復雜,可按照define使用的情況剔除因不符合ifdef條件從而未啟用的代碼之后閱讀。

(2)實現(xiàn)方式二

這個算法創(chuàng)建了一個二維數組,并且通過上一行的數值求當前行。在反過來再次打印時,這個程序會使用以前算好的值,從而節(jié)省了重復迭代的時間。

/* yh-2d.c -二維數組迭代*/

#include<stdio.h>

#define M 10 //行數

// #define PYRAMID //金字塔,會額外填充空格

// #define REVERSE //反向再來一次,得到菱形

int main(void)

{

int a [M][M], i, j; //二維數組和循環(huán)變量,a[行][列]

for (i = 0; i<M; i++) //每一行

{

#ifdef PYRAMID

for (j = 0;j <= M-i; j++) printf (" ");

#endif //填充結束

for (j = 0; j <= i; j++) //賦值打印

printf("%4d", (a[i][j] = (i == j || j == 0) ? 1 : //首尾置1

a[i - 1][j] + a[i - 1][j - 1] )); //使用上一行計算

printf("\n");

}

#ifdef REVERSE

for(i = M-2; i >= 0; i--)

{

#ifdef PYRAMID

for (j = 0;j <= M - i; j++) printf(" ");

#endif //填充結束

for (j = 0;j <= i; j++) printf("%4d",a[i][j]); //直接使用以前求得的值

printf("\n");

}

#endif //菱形結束

getchar(); //暫停等待

}

(3)實現(xiàn)方式三

這一個使用大數組寫成,風格更接近教科書上的VC6代碼。

/* yh-rt3.c -較為暴力的大數組*/

#include <stdio.h>

#include "string.h"

int main()

{ int a[10000]; //容器,由n*(n+1)/2<=10000可知,n<=141

int b,CR,i; //b為當前行數,CR為要求顯示的行數,i為循環(huán)數

printf("請輸入要顯示的行數(3~141):");

scanf("%d",&CR);

YHSJ(CR);

a[1]=a[2]=1; //前兩行數值少且全為1,故直接輸出

printf("%d\n",a[1]);

printf("%d %d\n",a[1],a[2]);

for(b=3;b<=CR;b++) //從第三行開始判斷

{ for(i=b;i>=2;i--) //從倒數第一個數開始加

a[i]=a[i]+a[i-1]; //楊輝三角的規(guī)律,沒有值的數組默認為0

for(i=1;i<=b;i++) //顯示循環(huán)

printf("%d ",a[i]);

printf("\n"); //換行

}

return 0;}

六、教學反思

通過這次課的講解,使學生知道楊輝是中國宋代著名的數學家,他整理楊輝三角領先于法國數學家帕斯卡近400年,這是我國數學史上偉大的成就。通過對楊輝三角起源認知,激發(fā)學生的愛國熱情和民族自豪感,同時也讓學生樹立堅定的信念,向科學家學習,成長為思想政治可靠、專業(yè)技術優(yōu)秀的建設人才。

通過學生參與和接受程度,不斷更新課程思政教學內容。教學過程的記錄、行為學觀察進行評價、反饋,為后續(xù)教學保留寶貴教學經驗;通過表格量化考核、學生撰寫心得體會,并結合診斷性評價以及形成性評價的結果,給予學生定性或定量的評價。

物聯(lián)網工程教研室供稿

責編:魏東平 審稿:董西偉 劉妍