C++初學紀錄

學習動機

高一升高二暑假參加「SITCON 學生計算機年會」後對資訊領域產生興趣,詢問同學和爬文後決定 從應用最廣泛的 C++語言入門,也因其能奠定扎實的電腦知識和程式基礎,因而選擇了 C++。

學習內容和方式:

內容

照 SCIST 教材編排,學習 C++基礎語法:變數、資料型別、運算子、選擇結構、迴圈 結構、陣列、二維陣列、搜尋與排序。

方式

自主學習時間觀看 SCIST 釋出的教學影片,搭配教材和提供的例題鞏固所學的語法, 並在課餘時間到 Zero Judge 練習更多題目。

計畫書&解題紀錄

  1. 計畫書
  2. 解題紀錄

學習經歷與突破:

109 學年度上學期(學習語法)

數學能力:部分題目要用到較難的數學觀念或公式,但我還沒學過。

  • 舉例:學到陣列時常常需要矩陣的觀念,但高二上還沒學到。
  • 突破:當時空下的題目,等到高二下學到時回頭解就有解出來。

除錯能力:如果程式碼出錯,我很難察覺自己的錯誤,因此自學時常常會因為這 樣而洩氣。

  • 舉例 1:迴圈的題目,我比較熟悉用 for,所以遇到要用 while 的題目邏輯就 會打結。
  • 突破:多次詢問同學,熟悉 while 會出現的情況。
  • 舉例 2:有時答案錯誤但找不出自己是從哪個部分出錯,只能透過別人幫忙
    debug 才知道。
  • 突破:學習在程式的每一個小段落輸出,檢查自己的程式碼是在哪個部
    分出錯。

時間管理:自學很考驗自律,彈性學習時間很容易因分心而沒完成計畫進度。

  • 舉例:考前一週或當週的彈性學習時間常常被我拿去讀書。
  • 突破:因為無法避免考前讀書,我會在考完後另找時間將進度補齊。

109 學年度下學期(成果檢核)

  1. 2021/01/09 大學程式設計先修檢測 觀念第2級/實作第2級
    比起平常每個觀念獨立的題目,APCS的題目是將全部的觀念結合成一題,而當時的我因為沒考過且程式思維訓練不足,導致觀念和實作都只有第2級,但也因此我在考完後學會先在白紙上寫出思考迴路,還有擷取題目關鍵字以找出適 合的解法。

  2. 2021/01/30 NHDK 四校聯合初學者程式設計實體賽 團體第4名 個人第13名

  • 第一次參加實體賽
  • 學會比賽時用子題撈分
  • 發現團體賽的優點(效率更高、自己的盲點組員可以幫忙糾正)
    nhdk
  1. 2021年奧林匹亞選訓營選拔推廣計畫線上練習賽(TOI)累積成績830/900分
  • 心得:2020年10月有參加過一次TOI練習賽,當時對解題的切入還很生疏,又因為要在90分鐘內解出3題感到十分緊張,所以最終只完成一題,經過一 學期的練習,我學會如何檢查自己的程式碼、找出錯誤所在,我認為這項技 巧幫助我許多,讓我在2021年3月、4月、5月三次練習賽能夠獲得300、 230、300的佳績。
  • 體悟:程式就像學習語言一樣要不斷練習,因為寒假時很少接觸因此我幾乎 把語法忘光了,所以我在這學期常常趁讀書閒暇到Online Judge寫個幾題, 來保持手感。
  • 困難:因為有時間限制,所以解題時太緊張一直出錯,導致時間流失就壓縮 到姐後面題目的時間。
  • 轉折:在編譯器一直找不出錯誤,所以我想到之前學過的先將題目脈絡寫在 紙上順過一次,再轉成程式碼就能知道錯誤所在。
    toi
  1. 校內資訊學科能力競賽 決賽 第二名 因爲之前已經有過幾次練習賽的經驗,時間壓力的影響減少不少,也就沒緊張到思緒亂掉,這也讓我再次體悟到程式是需要不斷練習以訓練自身的邏輯思維。

自我省思

自我評價

從零開始到現在能有基本的程式能力,雖然期間也會因爲時間管理不佳拖延進度,或 是因為解不出來而感到挫折想放棄,但整體而言我認為 109 學年度自學程式的努力是成果 可以看見的。

做得好的部分:

  • 觀念不懂的都有詢問同學 or 上網查詢。
  • 看完影片後,能夠將 SCIST 提供的練習題寫完。
  • 考試前會複習不熟悉的語法(e.g. 排序和搜尋的函式)

做得不好的部分:

  • 考前會把彈性學習時間用來讀書。
  • 沒有掌握好時間導致進度拖延。
  • 解不出來時很容易心浮氣躁。

心得:

從高一開始,為了探索自己未來的志向我就不斷在各個領域嘗試,參加不同類型的營 隊和活動,高一升高二的暑假,因緣際會下參加 SITCON 進而對資訊領域產生好奇,因 此,109 學年度我決定利用彈性學習時間自學程式。

學習的過程中,我學會自己安排長期的學習計畫,此外,每當弄清楚一個觀念或解出 一個題目都讓我十分有成就感,這份悸動使我未來還想繼續接觸更多資訊相關的技術。

綜合上述,我認為學習程式不但讓我明瞭自己的志向,也激發強烈的好奇心,並從中 找到成就感,之後我也會持續鍛鍊運算思維,並思考資訊科技在生活中的應用

未來規劃

  1. 演算法和資料結構:學完基礎程式語言後,我希望能再精進自己的程式能力,因此想學習難度較高且應用廣泛的演算法和資料結構,所以在 109 學年度下學期我有選修進階程式語言。
  2. 人工智慧:這幾年新興的 AI 科技勢必是未來的趨勢,我認為它的應用讓我們的生活更加方便,因此想要了解其原理,甚至實作出讓自己生活更方便的應用,所以 在 2020 年 5 月到 8 月我參加經濟部工業局主辦的「AIGO-高中職生 AI 扎根系 列活動」。

本博客所有文章除特别声明外,均采用CC BY-SA 4.0 协议 ,转载请注明出处!