日期:2020/4/9
前言
這次幫高三的學生模擬面試,報名的13個學生大致上目標是這幾個科系:電機、電子、機械、土木,不過我是物理老師,怎麼面試的學生都是報名工學院的科系啊?還好我多少懂一些目前熱門的主題,像是 Python、AI、Arduino,再加上一些關於電學的知識,至少能問出一些東西。
必備的問題
自我介紹、申請動機、讀書計畫,這三項是一定要準備的,有些學生會在自我介紹時就接著說明申請動機和讀書計畫,只要教授想聽就繼續講下去。
另一個必備的問題是關於科系的課程,要先仔細研究過這個科系的課程網頁,至少要知道系必修、系選修有什麼課程,科系是否有分組,要如何增加自己的專業能力,這樣連接到未來展望才會有說服力。
從備審資料中找問題
有些學生為了推銷自己,在備審資料中特別強調自己過去修過與科系相關的課程,或是做過與科系相關的作品,這樣應該能引起教授的興趣,但是教授有興趣就會想知道更多訊息,如果教授進一步追問時要能回答才行。簡單地說,敢寫進備審資料就要能回答。以下是這次模擬面試,學生的備審資料中讓我特別想問的主題。
科展作品
有些學生在備審資料中強調他參加過科展,我會請他介紹自己的科展作品,再問他從科展中學到什麼。如果他的科展作品與申請的科系差異較大,例如作品偏化學但申請機械系,我會再問他做科展的經驗如何幫助他學習這個科系的課業。
Python
有些學生宣稱他為了大學科系的需求,已經花了一段時間自學 Python,剛好我也會寫一些簡單的 Python 程式,於是就給他以下這行程式碼,問他如果執行 print(a) 會輸出什麼。
a = [i**2 for i in range(10)]
答案是
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
如果上一題有回答出來,就可以試試看兩層的 for 迴圈,這是印出九九乘法法的程式
for i in range(2, 10, 1):
for j in range(2, 10, 1):
print("{:d} * {:d} = {:d}".format(i, j, i*j), end='\t')
print('')
輸出是
2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18
3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27
4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36
5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45
6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54
7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63
8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72
9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
如果這樣還能回答出來,那就再問一個經典的費氏數列 (Fibonacci sequence)
$$0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, \dots$$
表達式為
$$F_0 = 0$$
$$F_1 = 1$$
$$F_n = F_{n-1} + F_{n-2}$$
這是不使用遞迴的寫法
def fib(n):
a = []
for i in range(n+1):
if i == 0:
a.append(0)
elif i == 1:
a.append(1)
else:
a.append(a[i-1] + a[i-2])
return a[-1]
print(fib(10))
這是使用遞迴的寫法
def fib(a):
if a == 0:
return 0
if a == 1:
return 1
return fib(a-1) + fib(a-2)
print(fib(10))
如果連使用遞迴的寫法都能看懂,以高中生而言算是程度很不錯了。
Arduino
好幾個申請電子、電機科系的學生,宣稱他在高二多元選修課用 Arduino 以及一些套件製作藍芽自走車,剛好我也會寫一點點 Arduino 程式,就先來個範例程式:使 Arduino Uno 板上內建的 LED 閃爍週期為2秒
# define LED 13
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
如果可以的話再多加個可變電阻,用可變電阻控制 LED 的亮度,搭配以下的電路圖。
電路圖
# define LED 5
# define POT A0
int val = 0 ;
int voltage = 0;
void setup() {
pinMode(LED, OUTPUT);
pinMode(POT, INPUT);
Serial.begin(9600);
}
void loop() {
val = analogRead(POT);
voltage = map(val, 0, 1023, 0, 255);
analogWrite(LED, voltage);
Serial.print("val = ");
Serial.print(val);
Serial.print("; voltage = ");
Serial.println(voltage);
}
如果學生真的有自己寫過 Arduino 程式碼,應該能夠看懂以上的程式用途才對。
英文面試
有的學生會申請與國外大學合作的雙學位學程,需要用英文面試。首先是用英文自我介紹,說明申請動機及讀書計畫。如果是電機系的學生,我可能會請他念以下這段文字,然後再請他解釋這是什麼物理定律。
The induced electromotive force in any closed circuit is equal to the rate of change of the magnetic flux enclosed by the circuit.
答案是法拉第電磁感應定律 (Faraday's law of induction)。也有可能用英文問一些電磁學或電子學相關的名詞。
結語
由於我不是教授,只能依照我對教授的印象,猜測教授可能會如何面試。如果想要對學生更有幫助,還是需要請教授來模擬面試會更好。
沒有留言:
張貼留言