fbpx

計算機導論與C語言基礎

Contents

如果不懂程式語言後面的演算法和程式結構,將只能是”碼農”。 尤其是C語言,因為大部份C語言將在嵌入式系統中實踐,由於嵌入式系統的資源有限,瞭解程式如何運算與最有效資源的應用對於嵌入式系統中的程式執行非常重要。  本課程將提升你成為懂得程式靈魂的程式設計師。

報名參加課程

關於此課程

你有沒有好奇過:計算機為什麼能夠進行計算?計算機程式是怎樣運行的?你是否想知道:計算機未來可能的發展趨勢有哪些?程式是如何編寫出來的?如何學習程式設計語言?程式設計語言的基本成分有哪些? 《計算導論》這門課將幫助你解決這些疑惑。 學完這門課,你將能夠解釋計算機和程式的基本運行原理以及它們的特性,向你的朋友講述計算機的歷史和發展趨勢;同時,你也將充分“熱身”,迎接“計算機程式設計語言”的學習!

製作方  

北京大學
peiking.png            geli.png

overview.png

授課大綱

歡迎加入《計算導論與C語言基礎》!

第 1 週 :  介紹

歡迎加入《計算導論與C語言基礎》!

歡迎大家來到《計算導論與C語言基礎》!在這門課程當中,我們將敲開神秘的計算機世界之門,探索它的歷史,解讀它的基本原理,討論它未來的發展趨勢;同時我們還將學習C語言這一經典的程式語言,開啟我們充滿趣味與挑戰的程式設計之旅。這個歡迎加入段讓我們在出發之前讀好“地圖”,經由觀看這兩段影片來了解一下這段奇妙的旅程將涵蓋哪些內容吧!

PS:我們這門課程一直處在不斷地建設與優化當中,吸取了很多以往課程的經典影片,所以如果你看到影片中出現了不同課程的名稱,也不要驚訝哦,因為你正在集百家所長。

計算機的基本原理

作為開場的第一門課,我們先來了解一下現代計算機運行的基本原理。我們將從歷史上的三次數學危機開始講起,引出現代計算機的基本原型——圖靈機的基本原理,進而解釋支撐現代計算機技術的幾個基礎性理論(二進制、布爾代數、數位邏輯電路)及其解決的基本問題。本次課的主要目的:幫助同學們了解現代計算機的基本原理。本次課的焦點問題:計算機為什麼能利用電路實現計算?

PS:我們這門課程一直處在不斷地建設與優化當中,吸取了很多以往課程的經典影片,所以如果你看到影片中出現了不同課程的名稱,也不要驚訝哦,因為你正在集百家所長:)

第 2 週 : 計算機的歷史與未來

本次課將帶領同學們了解計算機的演變歷史,希望通過這個歷史演變的過程幫助同學們了解“人類在計算科學方面是如何一步步積累成果“。在此基礎上,我們再來討論一下未來計算機的發展趨勢,並重點介紹了量子計算機的基本原理與研究現狀。本次課的主要目的:希望透過歷史引發大家對計算機發展現狀的思考。本次課的焦點問題:未來計算機的發展趨勢是什麼?為什麼不能把CPU造得更大些?什麼是量子計算機?

第 3 週 : 程式運行的基本原理

本次課帶大家走進計算機,了解計算機的幾個基本構成成分及其作用,在此基礎上,了解CPU指令的基本執行過程、了解計算機執行程序的過程。本次課的主要目的:了解計算機是如何運行程式的。本次課的焦點問題:為什麼說現代計算機是馮諾依曼式計算機?電路為什麼能儲存數為資訊? CPU是不是任意命令都能執行?

第 4 週 : 感性認識計算機程式

本次課也許是計算機程式設計部分“最重要”的階段課程,在這次課程中,我們將通過一個例子,感受一個結論——“計算機程式其實是對人們思維過程的一個描述”;在此基礎上,我們將立刻把自己放置於一個“計算機程式設計語言”的設計者的角度,去思考“如果讓我們設計一門程式設計語言,我們將如何設計?” 進而,在我們給出關於這個問題的“抽象回答”的基礎上,我們迅速地帶領大家“快步走進C程式”,迅速了解在C程式設計語言中,都有哪些成分。在這次課的最後,我們通過一個例子,以“感性的方式”讓大家感受了一下“什麼樣的程式是好程式”。下面就讓我們開始這次“最重要”的課程吧——

第 5 週 : 從現實問題到計算機程式

本次課程堪稱計算機程式設計部分“第二重要”的課程。本次課將在大家感受過“什麼是計算機程式”的基礎上,來回答一個非常基本的問題——“如何設計計算機程式?” 我們將明確闡述“計算機程式是人們對自己頭腦中構想的解決方案的描述”這一思想,並通過例子說明“要想寫出計算機程式,必須先想出解決方案”的基本道理。在此基礎上,我們還希望通過一個簡單的例子,讓大家“感性地”了解一下,什麼是“結構化的程式設計”(“結構化程式設計”是比“物件導向”的程式設計”更基礎的設計思想,因此,了解這種思想,非常重要!)。

第 6 週 : 理性認識C程式 導論

本次課幫助大家了解C語言的歷史,了解C語言規範(Specification)的版本演進,了解C語言的規範是一個“寬鬆”的規範;在此基礎上,我們將闡述一門程式設計語言所包含的四種基本成分 (如上所述)。焦點問題:為什麼相同的C程式在不同的C程式編譯器上,會編譯出不同的結果?

第 7 週 : C語言中的資料成分

本節我們將介紹C語言中的“資料成分”。重點在於:掌握各種數據類型在記憶體中所佔的空間大小,掌握各種資料類型的特點。

第 8 週 : C語言中的運算成分

本節我們將介紹C語言中的“運算成分”。重點在於:掌握各種運算符的基本含義,特別需要掌握“由各種運算符引起的數據類型轉換規律”。

第 9 週 : C語言中的控製成分

本節我們將介紹C語言中的“控製成分”。重點在於:掌握各種控制語句的使用方式。順便,了解一下歷史上的Goto之爭。

第 10 週 : C程式中的陣列(array, 數組)

在學習了C程式語言的幾種重要的組成成分之後,為了幫助大家能夠更好地使用已經學到的C語言成分編寫程式,我們再介紹一種非常重要的資料結構——陣列。本部分的重點在於:掌握陣列的定義、引用方法,並掌握陣列的基本作用。特別的,需要大家掌握利用陣列的下標來解決問題的“技巧”。

第 11 週 : C程式中的字串(string. 字符串)

本節我們將介紹C語言中的“控製成分”。重點在於:掌握各種控制語句的使用方式。順便,了解一下歷史上的Goto之爭。

第 12 週 : 期末考試

謝謝你一路的陪伴,我們終於來到了《計算導論與C語言基礎》這門課的最後一段,現在就讓我們給這段難忘的學習里程畫上一個圓滿的句號。我在期末考試中為大家設計了幾道有趣的程是設計題目,讓我們來一起迎接挑戰,證明自己的實力吧!如果測試沒有一次通過也不要緊,我們的自助平台課程鼓勵你反復嘗試直到取得滿意的成績,加油!如果你成功地通過了測試,那我們就相約在專項課程的下一門《C程式設計進階》中見咯!


進一步瞭解課程

i1

Supported by Coursera

你可能會有興趣

 歡迎使用 App / Email | Telegram 訂閱 網站更新

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: