a computer grammer sitting on before a white board

開始 CS61B 學習資料結構及演算法

因為剛開始要啟動這個課程的資源時繞了一點路,想簡單分享一下: 可以上哪個版本? 怎麼提交作業? 前言 CS61B 是 UC Berkeley 在電腦科學的「入門課」,關於它的討論在 PTT、一畝三分地等論壇,或是直接 google 都可以找到學習心得的分享,就不多在此贅述這門課程的特點。 課程以英文以及 Java 程式語言來教學,但不要求有 Java 基礎,課程中會逐步帶到。反倒是因為此課有前置課程– CS61A,以 Python 程式語言教學電腦科學基礎的課程,在 CS61B 中會常聽到教授以 Python 作為對比來幫助理解。 延伸閱讀:CS61A 跟 CS61B 的差別 可以上哪個版本? 首先可以打開瀏覽器,搜尋:CS61B,就能看到最新一季的課程頁面;以這篇文章撰寫的時間是 CS61B Spring 2024,在看到網頁中 Course Info 這個頁面的最下面,有個 “Auditing CS61B” 的條目– 提到目前可以使用的 “public” autograder 是 Spring 2021。這門課程是透過 Gradescope 的服務來做自動化評分,而此頁提供的課程碼– MB7ZPY,開啟的畫面如下圖。 上圖中,可以看到還有個 CS61B Spring 2019,那就是非 “public” 的課程碼開啟的– 如果是直接從課程網站的 week 1 開始跟著做,基本上影片都能看,直到跟著 Lab 1 的教學到了註冊 Gradescope 並開始了第一個提交才會發現…提交會失敗呀😅。 怎麼提交作業? 先回到有公開評分器的 CS61B SP21 的頁面,跟著 Lab 1 的說明:...

March 13, 2024 · Yu-Pang

有趣的 TypeScript 型別用法與機制 Part 2

繼上一篇 – 有趣的 TypeScript 型別用法與機制,這次閱讀到 Gabriel Vergnaud 的 Type-Level TypeScript 這系列文章的第 1 到 4 章,屬於免費閱讀的章節,讓我重新認識了 TypeScript (以下簡稱 TS) 的型別系統;該系列文章中有提供即時的程式碼編輯區塊,每一章最後都有小測驗,閱讀與學習的體驗都很棒,非常值得一看。 這篇文章的內容是我個人針對這系列做的一個學習筆記,在寫這篇文章時也意外發現其實 Gabriel 提到的內容,TS 官網上都有條目寫到;過去只是讀過,從沒理解過😅。 Levels of Language 貫穿該系列文章的第一個重點;language of values (value-level) 和 language of types (type-level),JavaScript (以下簡稱 JS) 因為(還)沒有型別的語法所以 100% 是 value-level 語言。 還沒有,但正在提案中的型別註釋– tc39/proposal-type-annotations: ECMAScript proposal for type syntax that is erased - Stage 1 如果對 TS 實作不陌生,有個錯誤就是:'Somthing' only refers to a type, but is being used as a value here– TS Playground;正是這個 value 和 type 的概念。於是乎,TS 不只是給 JS 寄住的外殼,而是用來撰寫型別,type-level 程式語言。...

December 16, 2022 · Yu-Pang