Bristol computer science conversion 第一學期心得
今年運氣好的申請上bristol的 cs conversion,由於之前在網路上沒看到太多的文章在講這個科系,我打算分享一下我這學期所學的東西以及自己的心得
第一學期有3門課 Programming in C, Overview of computer architecture以及Introduction of computer science。由於疫情的因素,這學期的課程以半實體半線上為主一個禮拜有4堂 programming in C, 2堂overview of computer architecture和1堂introduction of computer science,每個禮拜會有一定的recording要再上課之前看完才有辦法知道老師在說什麼。
接下來我將一ㄧ討論每一堂課的課程:
programming in C:
這堂課也是我選bristol的主要原因,因為C對於程式語言非常重要,有相當多其他的程式語言是以C為基礎撰寫的。
一個禮拜有4堂,會有3堂是LAB課,1堂是Q&A session,LAB有就是有4到5個助教,讓你再上課的時候問問題,老師並不會上課教任何東西,因為課全部都在網路上了,主要就是練習題卡住的時後可以問這些助教,對我來說是很有用的,因為有時候可能一個小問題可能會卡個1天都是有可能的,有助教的幫忙可以很快地找到自己寫code的bug。
在正式開學之前會有一週的課要上,我覺得自己很幸運的上了這些課程,因為進度是非常的快,在開學之前就把基本的c教完,像是if else, array, loop都講完了。正式開學的第一堂大概就開始教2D array, pointer, recursion這些東西,以我商學院的背景加上只看過cs50影片的人來說是非常的吃力,雖然作業不是硬性規定要寫,但是為了讓自己熟悉c也是ㄧ天要花個2小時練習。之後每2個禮拜會有作業,佔比大概都是每個作業佔10%的總成績,越後面的作業佔比會越來越高。而且難度對非常新手來說也是有挑戰性的,可能都要花個2,3天的時間寫,當然也是有強者一個下午就寫完。不過教授也是算仁慈,只要跑得出來就會及格(及格是50分)但要高分就真的不簡單,再來就是第4週將會有一個array的考試要在1小時之內把array的題目寫完,總共會有2題,分數也是只有0分,50分以及100分,但是題目是不難的,如果有好好練習題目以及準備好老師給的mock exam應該會能拿到滿分,最後將會有一個final ,這次我們的final是要用c寫一個新的程式語言,在放完聖誕假期之後要交,所以會有將近3個禮拜的時間寫,雖然有很多時間寫,但是因為沒有助教的幫忙所以其實還是寫得很辛苦,還好我有遇到很多很神的同學。在這邊突然覺得在這邊也是需要去認識同學去social的。
至於教授說的內容,老實說我覺得可能是因為要把c在ㄧ學期內學完,都是沒有很深,尤其是data structure這部分教的非常基礎,比較多都還是要自己去學習,教授只是講的很大概而已。一開始很不習慣這種教學(因為講的真的很基礎),總是覺得上網看其他的課程教的還比較好,但是習慣之後,也覺得學習程式語言本來就是要自己要學,教授本來就只是來引進門而已。
對我來說重要的事有認識不少的好朋友可以一起互相問問題,畢竟有時候助教不在的時候,和大家一起討論可以學到更多。
Overview of computer architecture:
這部分是大家抱怨最多的,因為今年剛好換教授,講的不是非常讓大家滿意,可能一個小時的recording要看個2個小時才會聽懂,而且考試非常的難,單看講義會拿非常低分,不過我個人覺得是非常有趣的課程,整個課程分上下兩部分第一部分,是從Boolean algebra 的理解知道Transistor logic and CMOS 是怎麼做出來的,然後用這個transistor做出memory跟storage,總而言之就是讓我們知道整個程式語言最基礎的硬體架構是怎麼來的。第一部分的LAB課,教如何使用logisim(一個套件)來做出簡單的memory跟storage 以及用nand board來實現。
第二部分則是開始進入到CPU到用軟體的部分,
Introduction of computer science :
一個禮拜會有ㄧ堂,主要就是在介紹關於CS相關的專業,像是Intelligent Systems, Computational Neuroscience, Cyber security 等等 他們各個在試著解決什麼問題,然後每週會有一些小考試關於線上影片的內容,學期末會需要交一份2000字的報告,內容就是選一個有興趣的內容,然後把寫ㄧ份intro就可以了