Site Loader

Параметры, цоколевка и аналоги стабилитрона КС107А

Описание стабилитрона КС107А

Стабилитрон кремниевый сплавный, малой мощности.
Предназначен для работы в стабилизаторах напряжения и в качестве термокомпенсирующего элемента.
Выпускается в металлостеклянном корпусе с гибкими выводами.
Тип стабилитрона приводится на корпусе.
Корпус стабистора в рабочем режиме служит отрицательным электродом (катодом).
Масса стабилитрона не более 1 грамма.

Размеры стабилитрона КС107А

Характеристики стабилитрона КС107А

Номинальное напряжение стабилизации стабилитрона 0,7 В
Номинальный ток стабилизации стабилитрона 10,0 мА
Максимально-допустимая рассеиваемая мощность на стабилитроне 125 мВт
Минимальное напряжение стабилизации стабилитрона 0,63 В
Максимальное напряжение стабилизации стабилитрона 0,77 В
Дифференциальное сопротивление стабилитрона 7,0 Ом
Температурный коэффициент стабилизации стабилитрона -34 10-2 %/°С
Минимальный ток стабилизации стабилитрона 1,0 мА
Максимальный ток стабилизации стабилитрона 100 мА
Максимально-допустимая температура корпуса стабилитрона 125 °С

Каталог радиолюбительских схем.

Параметры стабилитронов и стабисторов малой мощности Каталог радиолюбительских схем. Параметры стабилитронов и стабисторов малой мощности

Параметры стабилитронов и стабисторов малой мощности

Тип
прибора
Предельные значения
параметров при Т=25°С
Значения параметров
при Т=25°С
Тк.мах
п.)

°С

Uст.ном.

B

при
Iст.ном.
mA
Рмакс.

mBt

Uст. rст.

Om

aст.
10-2
%/°С
Iст.
мин
B
мах
B
мин
mA
мах
mA
Д219С 0,57 1,0 50 120
Д220С 0,59 1,0 50 120
Д223С 0,59 1,0 50 120
Д808 8,0 5,0 280 7,0 8,5 6,0 7,0 3,0 33 125
Д809 9,0 5,0 280 8,0 9,5 10 8,0 3,0 29 125
Д810 10,0 5,0 280 9,0 10,5 12 9,0 3,0 26 125
Д811 11,0 5,0 280 10,0 12 15 9,5 3,0 23 125
Д813
13,0 5,0 280 11,5 14 18 9,5 3,0 20 125
Д814А 8,0 5,0 340 7,0 8,5 6,0 7,0 3,0 40 125
Д814А1 8,0 5,0 340 7,0 8,5 6,0 7,0 3,0 40 125
Д814Б 9,0
5,0
340 8,0 9,5 10 8,0 3,0 36 125
Д814Б1 9,0 5,0 340 8,0 9,5 10 8,0 3,0 36 125
Д814В 10,0 5,0 340 9,0 10,5 12 9,0 3,0 32 125
Д814В1 10,0 5,0 340 9,0 10,5 12 9,0 3,0 32 125
Д814Г 11,0 5,0 340 10,0 12 15 9,5 3,0 29 125
Д814Г1 11,0 5,0 340 10,0 12 15 9,5 3,0 29 125
Д814Д 13,0 5,0 340 11,5 14 18 9,5 3,0 24 125
Д814Д1 13,0 5,0 340 11,6 14 18 9,5 3,0 24 125
2С102А 5,1 20,0 300 4,84 5,36 17 ±1,0 3,0 58 125
КС107А 0,7 10,0 125 0,63 0,77 7,0 -34 1,0 100 125
2С107А 0,7 10,0 125 0,63 0,77 7,0 -34 1,0 100 125
2С111А 6,2 10,0 150 5,66 6,76 35 -6,0 3,0 22 125
2С111Б 6,8 10,0 150 6,24 7,38 28 ±5,0 3,0 20 125
2С111В 7,0 10,0
150
6,43 7,59 18 ±1,0 3,0 20 125
2С112А 7,5 5,0 150 6,82 8,21 16 ±4,0 3,0 18 125
2С112Б 8,2 5,0 150 7,49 8,95 14 4 3,0 17 125
2С112В 9,1 5,0 150 8,25 9,98 18 6 3,0 15 125
КС113А 1,3 10,0 200 1,17 1,43 12 -42 1,0 100 125
2С113А 1,3 10,0 200 1,17 1,43 12 -42 1,0 100 125
КС119А 1,9 10,0 200 1,72 2,1 15 -42 1,0 100 125
2С119А 1,9 10,0 200 1,72 2,1 15 -42 1,0 100 125
2С124Д1 2,4 3,0 50 2,2 2,6 180 -7,5 0,25 20,8 125
2С127А1 2,7 3,0 50 2,43 2,97 180 -20 1,0 6 85
2С127Д1 2,7 3,0 50 2,5 2,9 180 -7,5 0,25 18,5 125
КС130Д1 3,0 3,0 50 2,8 3,2 180 -7,5 0,25 16,7 125
2С130Д1 3,0 3,0 50 2,8 3,2 180 -7,5 0,25 16,7 125
КС133А 3,3 10,0 300 2,97 3,63 65 -11 3,0 81 125
КС133Г 3,3 5,0 125 3 3,6 150 -10 1,0 37,5 125
2С133А 3,3 10,0 300 2,97 3,63 65 -11 3,0 81 125
2С133Б 3,3 10,0 100 3 3,7 65 -10 3,0 30 125
2С133В 3,3 5,0 125 3,1 3,5 150 -10 1,0 37,5 125
2С133Г 3,3 5,0 125 3 3,6 150 -10 1,0 37,5 125
2С133Д1 3,3 3,0 50 3,1 3,5 180 -7,5 0,25 15,2 125
2С136Д1 3,6 3,0 50 3,4 3,8 180 -7,0 0,25 13,9 125
КС139А 3,9 10,0 300 3,51 4,29 60 -10 3,0 70 125
КС139Г 3,9 5,0 125 3,5 4,3 150   1,0 32 125
2С139А 3,9 10,0 300 3,51 4,29 60 -10 3,0 70 125
2С139Б 3,9 10,0 100 3,5 4,3 60 -10 3,0 26 125
2С139Д1 3,9 3,0 50 3,7 4,1 180 -6,5 0,25 12,8 125
2С143Д1 4,3 3,0 50 4 4,6 180 -6,0 0,25 11,6 125
КС147А 4,7 10,0 300 4,23 5,17 56 -9. ..10 3,0 58 125
КС147Г 4,7 5,0 125 4,2 5,2 150 -7,0 1,0 26,5 125
2С147А 4,7 10,0 300 4,23 5,17 56 -9…10 3,0 58 125
2С147Б 4,7 10,0 100 4,1 5,2 56 -8…+2 3,0 21 125
2С147В 4,7 5,0 125 4,5 4,9 150 -7,0 1,0 26,5 125
12С147Г 4,7 5,0 125 4,2 5,2 150 -7,0 1,0 26,5 125
12С147У1 4,7 3,0 50 4,2 5,2 220 -8,0 1,0 10,6 125
12С147Т1 4,7 3,0 50 4,4 4,9 220 -8,0 1,0 10,6 125
2С147Т9 4,7 3,0 200 4,4 4,9 220 -8,0 1,0 38 125
2С151Т1 5,1 3,0 50 4,8 5,4 180 -6. ..3 1,0 10 125
КС156А 5,6 10,0 300 5,04 6,16 46 ±5,0 3,0 55 125
КС156Г 5,6 5,0 125 5 6,2 100 7,0 1,0 22,4 125
2С156А 5,6 10,0 300 5,04 6,16 46 ±5,0 3,0 55 125
2С156Б 5,6 10,0 100 5 6,4 45 -4…7 3,0 18 125
2С156В 5,6 5,0 125 5,3 5,9 100 5,0 1,0 22,4 125
2С156Г 5,6 5,0 125 5 6,2 100 7,0 1,0 22,4 125
2С156У1 5,6 3,0 50 5 6,2 160 -4. ..6 1,0 9 125
2С156Т1 5,6 3,0 50 5,3 5,9 160 -4…6 1,0 9 125
2С156Т9 5,6 3,0 200 5,3 5,9 160 -4…6 1,0 34 125
2С156Ф 5,6 5,0 125 5,3 5,9 30 4,0 1,0 20 125
КС162А 6,2 10,0 300 5,8 6,6 35 -6,0 3,0 50 100
КС162В 6,2 10,0 150 5,8 6,6 -6,0 3,0 22 100
2С162А 6,2 10,0 150 5,66 6,76 35 -6,0 3,0 22 125
2С162Б1 6,2 3,0 21 5,89 6,51 15 6,0 1,0 3,4 85
2С162В1 6,2 3,0 21 5,58 6,82 25 6,0 1,0 3,4 85
КС168А 6,8 10,0 300 6,12 7,48 7 ±6,0 3,0 45 125
КС168В 6,8 10,0 150 6,3 7,3 28 ±5,0 3,0 20 100
2С168А 6,8 10,0 300 6,12 7,48 28 ±6,0 3,0 45 125
2С168Б 6,8 10,0 100 6 7,5 15 7,0 3,0 15 125
2С168В 6,8 10,0 150 6,24 7,38 28 ±5,0 3,0 20 125
2С168К1 6,8 0,5 20 6,46 7,14 200 5,0 0,1 2,94 125
2С168К9 6,8 0,5 200 6,46 7,14 200 5,0 0,1 27 125
2С168Х 6,8 0,5 20 6,5 7,1 200 5,0 0,5 3 125
КС170А 7,0 10,0 150 6,43 7,59 20 ±1,0 3,0 20 100
2С170А 7,0 10,0 150 6,43 7,59 18 ±1,0 3,0 20 125
КС175А 7,5 5,0 150 6,82 8,21 16 ±4,0 3,0 18 100
КС175Ж 7,5 0,5 125 7,1 7,9 40 7,0 0,5 17 125
КС175Ц 7,5 0,5 125 7,1 7,9 200 6,5 0,1 17 125
2С175А 7,5 5,0 150 6,82 8,21 16 ±4,0 3,0 18 125
2С175Ж 7,5 4,0 150 7,1 7,9 20 7,0 0,5 20 125
2С175К1 7,5 0,5 20 7,13 7,88 200 6,5 0,1 2,66 125
2С175Х 7,5 0,5 20 7,1 7,9 200 6,5 0,1 2,65 125
2С175Ц 7,5 0,5 125 7,1 7,9 200 6,5 0,1 17 125
2С175Ц1 7,5 0,1 20 7,1 7,9 820 6,0 0,05 2,65 85
2С180А 8,0 5,0 125 7 8,5 8 7,0 3,0 15 125
КС182А 8,2 5,0 150 7,6 8,8 14 3,0 17 100
КС182Ж 8,2 4,0 125 7,4 9 40 8,0 0,5 15 125
КС182Ц 8,2 0,5 125 7,8 8,6 200 7,0 0,1 15 125
КС182Ц1 8,2 0,1 20 7,8 8,6 820 6,5 0,05 2,5 85
2С182А 8,2 5,0 150 7,49 8,95 14 4,0 3,0 17 125
2С182Ж 8,2 4,0 150 7,8 8,7 40 8,0 0,5 18 125
2С182К1 8,2 0,5 20 7,79 8,61 220 7,5 0,1 2,44 125
2С182Х 8,2 0,5 20 7,8 8,6 200 7,5 0,5 2,5 125
2С182Ц 8,2 0,5 125 7,8 8,6 200 7,0 0,1 15 125
2С190А 9,0 5,0 125 8 9,5 12 8,0 3,0 13 125
КС191А 9,1 5,0 150 8,5 9,7 18 3,0 15 100
КС191Ж 9,1 4,0 125 8,6 9,6 40 9,0 0,5 14 125
КС191Ц1 9,1 0,1 20 8,6 9,6 820 7,5 0,05 2,24 125
КС191Ц 9,1 0,5 125 8,6 9,6 200 8,0 0,1 14 125
2С191А 9,1 5,0 150 8,25 9,98 18 6,0 3,0 15 125
2С191Ж 9,1 4,0 125 8,6 9,6 40 9,0 0,5 16 125
2С191К1 9,1 0,5 20 8,65 9,56 220 8,0 0,1 2,2 125
2С191Х 9,1 0,5 20 8,6 9,6 200 8,0 0,5 2,24 125
2С191Ц 9,1 0,5 125 8,6 9,6 200 8,0 0,1 14 125
КС196А 9,6 5,0 200 9,1 10,1 18 3,0 20 125
КС196Б 9,6 5,0 200 9,1 10,1 18 3,0 20 125
КС196В 9,6 5,0 200 9,1 10,1 18 3,0 20 125
КС196Г 9,6 5,0 200 9,1 10,1 18 3,0 20 125
2С205А 10,0 5,0 150 9,12 10,9 22 6,0 3,0 13 125
КС210А 10,0 5,0 150 3,0 14 100
КС210Б 10,0 5,0 150 9,3 10,7 22 6,0 3,0 14 100
КС210Ж 10,0 4,0 125 9 11 40 9,0 0,5 13 125
КС210Ц 10,0 0,5 125 9,5 10,5 200 8,5 0,1 12,5 125
КС210Ц1 10,0 0,1 20 9,5 10,5 820 8,0 0,05 2 85
2С210А 10,0 5,0 125 9 10,5 15 9,0 3,0 11 125
2С210Б 10,0 5,0 150 9,5 10,5 22 6,0 3,0 14 125
2С210Ж 10,0 4,0 150 9,5 10,5 40 9,0 0,5 15 125
2С210К1 10,0 0,5 20 9,5 10,5 220 9,0 0,1 2 125
2С210К 10,0 0,5 20 9,5 10,5 200 9,0 0,5 2 125
2С210Ц 10,0 0,5 125 9,5 10,5 200 8,5 0,1 12,5 125
КС211Ж 11,0 4,0 125 10,4 11,6 40 9,2 0,5 12 85
КС211Ц 11,0 0,5 125 10,4 11,6 200 8,5 0,1 11,2 85
КС211Ц1 11,0 0,1 20 10,4 11,6 820 8,5 0,05 1,8 85
2С211А 11,0 5,0 125 10 12 19 9,5 3,0 10 125
2С211Ж 11,0 4,0 150 10,4 11,6 40 9,2 0,5 14 125
2С211И 11,0 5,0 150 10,5 11,5 23 7,0 3,0 13 125
2С211К1 11,0 0,5 20 10,5 11,5 200 9,5 0,1 1,8 125
2С211Х 11,0 0,5 20 10,4 11,6 200 9,5 0,5 1,8 125
2С211Ц 11,0 0,5 125 10,4 11,6 200 8,5 0,1 11,2 125
КС212Ж 12,0 4,0 125 10,8 13,2 40 9,5 0,5 11 125
КС212Ц 12,0 0,5 125 11,4 12,6 200 8,5 0,1 10,6 125
КС212Ц1 12,0 0,1 20 11,4 12,6 820 8,5 0,05 1,7 125
2С212В 12,0 5,0 150 10,9 13,1 24 7,5 3,0 12 125
2С212Ж 12,0 4,0 150 11,4 12,6 40 9,5 0,5 13 125
2С212К1 12,0 0,5 20 11,4 12,6 200 9,5 0,1 1,7 125
2С212Ц 12,0 0,5 125 11,4 12,6 200 8,5 0,1 10,6 125
2С212Х 12,0 0,5 20 11,4 12,6 200 9,5 0,5 1,7 125
КС213А 13,0 5,0 150 3,0 10 125
КС213Б 13,0 5,0 150 12,1 13,9 25 8,0 3,0 10 125
КС213Ж 13,0 4,0 125 12,3 13,7 40 9,5 0,5 10 125
2С213А 13,0 5,0 125 11,5 14 22 9,5 3,0 9 125
2С213Б 13,0 5,0 150 11,9 14,2 25 7,5 3,0 10 125
2С213Ж 13,0 4,0 150 12,3 13,7 40 9,5 0,5 12 125
КС215Ж 15,0 2,0 125 13,5 16,5 70 10,0 0,5 8,3 125
2С215Ж 15,0 2,0 150 14,2 15,8 70 10,0 0,5 10 125
КС216Ж 16,0 2,0 125 15,2 16,8 70 10,0 0,5 7,8 125
2С216Ж 16,0 2,0 150 15,2 17 70 10,0 0,5 9,4 125
КС218Ж 18,0 2,0 125 16,2 19,8 70 10,0 0,5 6,9 125
2С218Ж 18,0 2,0 150 17 19 70 10,0 0,5 8,3 125
КС220Ж 20,0 2,0 125 19 21 70 10,0 0,5 6,2 125
2С220Ж 20,0 2,0 150 19 21 70 10,0 0,5 7,5 125
КС222Ж 22,0 2,0 125 19,8 24,2 70 10,0 0,5 5,7 125
2С222Ж 22,0 2,0 150 20,9 23,1 70 10,0 0,5 6,8 125
КС224Ж 24,0 2,0 125 22,8 25,2 70 10,0 0,5 5,2 125
2С224Ж 24,0 2,0 150 22,8 25,2 70 10,0 0,5 6,3 125
2С291А 91,0 1,0 250 86 96 700 11,0 0,5 2,7 125
Uст. ном. номинальное напряжение стабилизации стабилитрона;
Iст.ном. номинальный ток стабилизации стабилитрона;
Рмакс. максимально-допустимая рассеиваемая мощность на стабилитроне;
Uст. напряжение стабилизации стабилитрона;
rст. дифференциальное сопротивление стабилитрона;
aст. температурный коэффициент стабилизации стабилитрона;
Iст. ток стабилизации стабилитрона;
Тк.макс. максимально-допустимая температура корпуса стабилитрона;
Тп. макс. максимально-допустимая температура перехода стабилитрона.
Источник материала



Параметры стабилитронов и стабисторов (Всё по лабораторным работам) — документ

Описание файла

Файл «Параметры стабилитронов и стабисторов» внутри архива находится в следующих папках: Всё по лабораторным работам, S-4-08. Документ из архива «Всё по лабораторным работам», который расположен в категории «». Всё это находится в предмете «электроника и микропроцессорная техника» из раздела «», которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе «лабораторные работы», в предмете «электроника и микропроцессорная техника» в общих файлах.

Онлайн просмотр документа «Параметры стабилитронов и стабисторов»

Текст из документа «Параметры стабилитронов и стабисторов»

Параметры стабилитронов и стабисторов.

Тип

прибора

Uст, В

Uпр, В

(при Iпр, мА)

rст, Ом

(при Iст, мА)

Iст

мин.

ном.

макс.

Iст, мА

мин

макс.

КС106А-1

2,9

3,2

3,5

0,5

500 (0,275)

0,01

0,5

КС107А

0,7

10

1

100

КС108А

6,4

7,5

<15 (7,5 Ма)

3

10

КС115А

1,45

3

3

КС119А

1,9

10

15 (10)

1

100

КС124Д-1

2,2

2,4

2,6

180 (3)

0,25

21

КС126А

2,7

5

120 (5 мА)

1

135

КС126Б

3

5

120 (5 мА)

1

125

КС126В

3,3

5

120 (5 мА)

1

115

КС126Г

3,9

5

120 (5 мА)

1

95

КС126Д

4,7

5

100 (5 мА)

1

85

КС126Е

5,6

5

50 (5 мА)

1

70

КС126Ж

6,2

5

35 (5 мА)

2

64

КС126И

6,8

5

30 (5 мА)

3

58

КС126К

7,5

5

20 (5 мА)

5

53

КС126Л

8,2

5

20 (5 мА)

6

47

КС126М

9,1

5

30 (5 мА)

7

43

КС127Д-1

2,5

2,7

2,9

180 (3)

0,25

18

КС128А

2,7

5

120 (5мА)

135

КС128Б

3

5

120 (5мА)

125

КС128В

3,3

5

120 (5мА)

115

КС128Г

3,9

5

120 (5мА)

95

КС128Д

4,7

5

100 (5мА)

85

КС128Е

5,6

5

50 (5мА)

70

КС128Ж

6,2

5

35 (5мА)

64

КС128И

6,8

5

30 (5мА)

58

КС128К

7,5

5

20 (5мА)

53

КС128Л

8,2

5

20 (5мА)

47

КС128М

9,1

5

30 (5мА)

43

КС130Д-1

2,8

3

3,2

180 (3 мА)

0,25

17

КС1333А

3,3

10

1 (50)

65 (10)

3

81

КС133Г

2,95

3,65

150 (5)

1

37,5

КС133Д-1

3,1

3,3

3,5

0,25

180 (3)

0,05

15

КС136Д-1

3,4

3,6

3,8

180 (3)

0,25

14

КС139А

3,3

5

1 (50)

60 (10)

3

79

КС139Г

3,5

4,3

150 (5)

1

32

КС139Д-1

3,7

3,9

4,1

180 (3)

0,25

13

КС143Д-1

4

4,3

4,6

180 (3)

0,25

12

КС147А

4,7

10

1 (50)

56 (10)

3

58

КС147Г

4,2

5,2

5

150 (5)

1

26,5

КС164М-1

6

6,7

1,5

<120 (1,5 мА)

0,5

3

Стабилитроны

Тип Предельные значения Значения параметров при Т=25°С Тк. мах(Тп.) °С возможная замена
Uст.ном. при Iст.ном. Рмакс. мин макс rст. aст. Iст. мин Iст. макс
В мА мВт B B Ом %/°С мА мА
2С102А 5,1 20 300 4,84 5,36 17 ±1,0 3 58 125 BZX79-C5V1
КС107А 0,7 10,0 125 0,63 0,77 7,0 -34 1,0 100 125
2С107А 0,7 10,0 125 0,63 0,77 7,0 -34 1,0 100 125
2С111А 6,2 10 150 5,66 6,76 35 -6 3 22 125 BZX79-C6V2
2С111Б 6,8 10 150 6,24 7,38 28 ±5,0 3 20 125 BZX79-C6V8
2С111В 7,0 10,0 150 6,43 7,59 18 ±1,0 3,0 20 125
2С112А 7,5 5 150 6,82 8,21 16 ±4,0 3 18 125 BZX79-C7V5
2С112Б 8,2 5 150 7,49 8,95 14 4 3 17 125 BZX79-C8V2
2С112В 9,1 5 150 8,25 9,98 18 6 3 15 125 BZX79-C9V1
КС113А 1,3 10,0 200 1,17 1,43 12 -42 1,0 100 125
2С113А 1,3 10,0 200 1,17 1,43 12 -42 1,0 100 125
КС119А 1,9 10,0 200 1,72 2,1 15 -42 1,0 100 125
2С119А 1,9 10,0 200 1,72 2,1 15 -42 1,0 100 125
2С124Д1 2,4 3,0 50 2,2 2,6 180 -7,5 0,25 20,8 125
2С127А1 2,7 3,0 50 2,43 2,97 180 -20 1,0 6 85
2С127Д1 2,7 3,0 50 2,5 2,9 180 -7,5 0,25 18,5 125
КС130Д1 3,0 3,0 50 2,8 3,2 180 -7,5 0,25 16,7 125
2С130Д1 3,0 3,0 50 2,8 3,2 180 -7,5 0,25 16,7 125
2С133А 3,3 10 300 2,97 3,63 65 -11 3 81 125 BZX79-C3V3
КС133А 3,3 10 300 2,97 3,63 65 -11 3 81 125 BZX79-C3V3
2С133Б 3,3 10 100 3 3,7 65 -10 3 30 125 BZX79-C3V3
КС133Г 3,3 5,0 125 3 3,6 150 -10 1,0 37,5 125
2С133В 3,3 5,0 125 3,1 3,5 150 -10 1,0 37,5 125
2С133Г 3,3 5,0 125 3 3,6 150 -10 1,0 37,5 125
2С133Д1 3,3 3,0 50 3,1 3,5 180 -7,5 0,25 15,2 125
2С136Д1 3,6 3,0 50 3,4 3,8 180 -7,0 0,25 13,9 125
2С139А 3,9 10 300 3,51 4,29 60 -10 3 70 125 BZX79-C3V9
КС139А 3,9 10 300 3,51 4,29 60 -10 3 70 125 BZX79-C3V9
2С139Б 3,9 10 100 3,5 4,3 60 -10 3 26 125 BZX79-C3V9
КС139Г 3,9 5,0 125 3,5 4,3 150
1,0 32 125
2С139Д1 3,9 3,0 50 3,7 4,1 180 -6,5 0,25 12,8 125
2С143Д1 4,3 3,0 50 4 4,6 180 -6,0 0,25 11,6 125
2С147А 4,7 10 300 4,23 5,17 56 -9. ..10 3 58 125 BZX79-C4V7
КС147А 4,7 10 300 4,23 5,17 56 -9…10 3 58 125 BZX79-C4V7
2С147Б 4,7 10 100 4,1 5,2 56 -8…+2 3 21 125 BZX79-C4V7
КС147Г 4,7 5,0 125 4,2 5,2 150 -7,0 1,0 26,5 125
2С147В 4,7 5,0 125 4,5 4,9 150 -7,0 1,0 26,5 125
12С147Г 4,7 5,0 125 4,2 5,2 150 -7,0 1,0 26,5 125
12С147У1 4,7 3,0 50 4,2 5,2 220 -8,0 1,0 10,6 125
12С147Т1 4,7 3,0 50 4,4 4,9 220 -8,0 1,0 10,6 125
2С147Т9 4,7 3,0 200 4,4 4,9 220 -8,0 1,0 38 125
2С151Т1 5,1 3,0 50 4,8 5,4 180 -6. ..3 1,0 10 125
2С156А 5,6 10 300 5,04 6,16 46 ±5,0 3 55 125 BZX79-C5V6
КС156А 5,6 10 300 5,04 6,16 46 ±5,0 3 55 125 BZX79-C5V6
2С156Б 5,6 10 100 5 6,4 45 -4…7 3 18 125 BZX79-C5V6
КС156Г 5,6 5,0 125 5 6,2 100 7,0 1,0 22,4 125
2С156В 5,6 5,0 125 5,3 5,9 100 5,0 1,0 22,4 125
2С156Г 5,6 5,0 125 5 6,2 100 7,0 1,0 22,4 125
2С156У1 5,6 3,0 50 5 6,2 160 -4. ..6 1,0 9 125
2С156Т1 5,6 3,0 50 5,3 5,9 160 -4…6 1,0 9 125
2С156Т9 5,6 3,0 200 5,3 5,9 160 -4…6 1,0 34 125
2С156Ф 5,6 5,0 125 5,3 5,9 30 4,0 1,0 20 125
2С162А 6,2 10 150 5,66 6,76 35 -6 3 22 125 BZX79-C6V2
КС162А 6,2 10 300 5,8 6,6 35 -6 3 50 100 BZX79-C6V2
КС162В 6,2 10 150 5,8 6,6 -6 3 22 100 BZX79-C6V2
2С162Б1 6,2 3,0 21 5,89 6,51 15 6,0 1,0 3,4 85
2С162В1 6,2 3,0 21 5,58 6,82 25 6,0 1,0 3,4 85
2С168А 6,8 10 300 6,12 7,48 28 ±6,0 3 45 125 BZX79-C6V8
КС168А 6,8 10 300 6,12 7,48 7 ±6,0 3 45 125 BZX79-C6V8
2С168Б 6,8 10 100 6 7,5 15 7 3 15 125 BZX79-C6V8
2С168В 6,8 10 150 6,24 7,38 28 ±5,0 3 20 125 BZX79-C6V8
КС168В 6,8 10 150 6,3 7,3 28 ±5,0 3 20 100 BZX79-C6V8
2С168К1 6,8 0,5 20 6,46 7,14 200 5,0 0,1 2,94 125
2С168К9 6,8 0,5 200 6,46 7,14 200 5,0 0,1 27 125
2С168Х 6,8 0,5 20 6,5 7,1 200 5,0 0,5 3 125
КС170А 7,0 10,0 150 6,43 7,59 20 ±1,0 3,0 20 100
2С170А 7,0 10,0 150 6,43 7,59 18 ±1,0 3,0 20 125
2С175А 7,5 5 150 6,82 8,21 16 ±4,0 3 18 125 BZX79-C7V5
КС175А 7,5 5 150 6,82 8,21 16 ±4,0 3 18 100 BZX79-C7V5
КС175Ж 7,5 0,5 125 7,1 7,9 40 7,0 0,5 17 125
КС175Ц 7,5 0,5 125 7,1 7,9 200 6,5 0,1 17 125
2С175Ж 7,5 4,0 150 7,1 7,9 20 7,0 0,5 20 125
2С175К1 7,5 0,5 20 7,13 7,88 200 6,5 0,1 2,66 125
2С175Х 7,5 0,5 20 7,1 7,9 200 6,5 0,1 2,65 125
2С175Ц 7,5 0,5 125 7,1 7,9 200 6,5 0,1 17 125
2С175Ц1 7,5 0,1 20 7,1 7,9 820 6,0 0,05 2,65 85
2С180А 8,0 5,0 125 7 8,5 8 7,0 3,0 15 125
2С182А 8,2 5 150 7,49 8,95 14 4 3 17 125 BZX79-C8V2
КС182А 8,2 5 150 7,6 8,8 14 3 17 100 BZX79-C8V2
КС182Ж 8,2 4,0 125 7,4 9 40 8,0 0,5 15 125
КС182Ц 8,2 0,5 125 7,8 8,6 200 7,0 0,1 15 125
КС182Ц1 8,2 0,1 20 7,8 8,6 820 6,5 0,05 2,5 85
2С182Ж 8,2 4,0 150 7,8 8,7 40 8,0 0,5 18 125
2С182К1 8,2 0,5 20 7,79 8,61 220 7,5 0,1 2,44 125
2С182Х 8,2 0,5 20 7,8 8,6 200 7,5 0,5 2,5 125
2С182Ц 8,2 0,5 125 7,8 8,6 200 7,0 0,1 15 125
2С190А 9,0 5,0 125 8 9,5 12 8,0 3,0 13 125
2С191А 9,1 5 150 8,25 9,98 18 6 3 15 125 BZX79-C9V1
КС191А 9,1 5 150 8,5 9,7 18 3 15 100 BZX79-C9V1
КС191Ж 9,1 4,0 125 8,6 9,6 40 9,0 0,5 14 125
КС191Ц1 9,1 0,1 20 8,6 9,6 820 7,5 0,05 2,24 125
КС191Ц 9,1 0,5 125 8,6 9,6 200 8,0 0,1 14 125
2С191Ж 9,1 4,0 125 8,6 9,6 40 9,0 0,5 16 125
2С191К1 9,1 0,5 20 8,65 9,56 220 8,0 0,1 2,2 125
2С191Х 9,1 0,5 20 8,6 9,6 200 8,0 0,5 2,24 125
2С191Ц 9,1 0,5 125 8,6 9,6 200 8,0 0,1 14 125
КС196А 9,6 5,0 200 9,1 10,1 18 3,0 20 125
КС196Б 9,6 5,0 200 9,1 10,1 18 3,0 20 125
КС196В 9,6 5,0 200 9,1 10,1 18 3,0 20 125
КС196Г 9,6 5,0 200 9,1 10,1 18 3,0 20 125

CS107 Руководство по x86-64

Совместная работа сотрудников CS107 (Эрик, Джули, Нейт)

x86-64 (также известный как просто x64 и/или AMD64) — это 64-разрядная версия набора инструкций x86/IA32. Ниже приведен наш обзор его функций, которые имеют отношение к CS107. Эти темы более подробно освещены в главе 3 учебника B&O. См. также наш лист x86-64 для компактного справочника.

В таблице ниже перечислены наиболее часто используемые регистры (шестнадцать регистров общего назначения и два специальных).Каждый регистр имеет ширину 64 бита; младшие 32-, 16- и 8-битные части выбираются по имени псевдорегистра. Некоторые регистры предназначены для определенной цели, например, %rsp используется в качестве указателя стека или %rax для возвращаемого значения из функции. Другие регистры являются универсальными, но их обычное использование зависит от того, принадлежит ли вызывающей стороне или принадлежащей вызываемой стороне . Если функция binky вызывает winky , мы ссылаемся на binky как на вызывающую , а на winky как на вызываемую . Например, все регистры, используемые для первых 6 аргументов и возвращаемого значения, принадлежат вызываемому. Вызываемый объект может свободно использовать эти регистры, перезаписывая существующие значения без каких-либо мер предосторожности. Если %rax содержит значение, которое вызывающая сторона хочет сохранить, перед выполнением вызова вызывающая сторона должна скопировать это значение в «безопасное» место. Регистры, принадлежащие вызываемому абоненту, идеально подходят для временного использования вызываемым абонентом. Напротив, если вызываемый объект намеревается использовать регистр, принадлежащий вызывающему, он должен сначала сохранить его значение и восстановить его перед выходом из вызова.Регистры, принадлежащие вызывающей стороне, используются для локального состояния вызывающей стороны, которое необходимо сохранить при дальнейших вызовах функций.

Регистр Обычное использование Младшие 32 бита Младшие 16 бит Младшие 8 бит
%rax Возвращаемое значение, принадлежащее вызываемому абоненту %еах %ax %все
%rdi 1-й аргумент, принадлежащий вызываемому абоненту %edi %di %dil
%rsi 2-й аргумент, принадлежащий вызываемому абоненту %esi %si %sil
%rdx 3-й аргумент, принадлежащий вызываемому абоненту %edx %дх %дл
%rcx 4-й аргумент, принадлежащий вызываемому абоненту %ecx %сх %кл
%r8 5-й аргумент, принадлежащий вызываемому абоненту %r8d %r8w %r8b
%r9 6-й аргумент, принадлежащий вызываемому абоненту %r9d %r9w %r9b
%r10 Скретч/временный, принадлежащий вызываемому абоненту %r10d %r10w %r10b
%r11 Скретч/временный, принадлежащий вызываемому абоненту %r11d %r11w %r11b
%rsp Указатель стека, принадлежащий вызывающей стороне %исп %sp %spl
%rbx Локальная переменная, принадлежащая вызывающей стороне %ebx %bx %бл
%rbp Локальная переменная, принадлежащая вызывающей стороне %эбп % п. н. %баррель
%r12 Локальная переменная, принадлежащая вызывающей стороне %r12d %r12w %r12b
%r13 Локальная переменная, принадлежащая вызывающей стороне %r13d %r13w %r13b
%r14 Локальная переменная, принадлежащая вызывающей стороне %r14d %r14w %r14b
%r15 Локальная переменная, принадлежащая вызывающей стороне %r15d %r15w %r15b
%rip Указатель инструкций
%flags Биты кода состояния/состояния

Верный своему характеру CISC, x86-64 поддерживает различные режимы адресации. Режим адресации — это выражение, которое вычисляет адрес в памяти для чтения/записи. Эти выражения используются в качестве источника или назначения для инструкции mov и других инструкций, которые обращаются к памяти. В приведенном ниже коде показано, как записать непосредственное значение 1 в различные ячейки памяти на примере каждого из доступных режимов адресации:

.
  movl $1, 0x604892 # прямой (адрес является постоянным значением)
movl $1, (%rax) # косвенный (адрес находится в регистре %rax)

movl $1, -24(%rbp) # непрямой со смещением
                            (адрес = база %rbp + смещение -24)

movl $1, 8(%rsp, %rdi, 4) # непрямой со смещением и индексом масштабирования
                            (адрес = база %rsp + displ 8 + индекс %rdi * масштаб 4)

movl $1, (%rax, %rcx, 8) # (частный случай масштабируемого индекса, предполагается, что displ равен 0)

movl $1, 0x8(, %rdx, 4) # (индекс масштабирования особого случая, предполагается, что основание равно 0)

movl $1, 0x4(%rax, %rcx) # (частный случай масштабируемого индекса, предполагается масштаб 1)
  

Примечание о суффиксах инструкций : многие инструкции имеют суффикс ( b , w , l или q ), который указывает разрядность операции (1, 2, 4 или 8 байтов, соответственно). Суффикс часто опускается, когда разрядность может быть определена из операндов. Например, если регистр назначения — %eax , он должен быть 4 байта, если %ax — 2 байта, а %al — 1 байт. Некоторые инструкции, такие как movs и movz , имеют два суффикса: первый для исходного операнда, второй для адресата. Например, movzbl перемещает 1-байтовое исходное значение в 4-байтовое место назначения.

Если адресатом является подрегистр, записываются только определенные байты в подрегистре, за одним исключением: 32-битная инструкция обнуляет старшие 32 бита регистра назначения .

Мов и Леа

Наиболее частая команда, с которой вы столкнетесь, это mov в одном из ее многогранных вариантов. Mov копирует значение из источника в место назначения. Источником может быть непосредственное значение, регистр или ячейка памяти (выраженная с помощью одного из приведенных выше выражений режима адресации). Местом назначения является либо регистр, либо ячейка памяти. Памятью может быть не более одного источника или получателя. Суффикс mov (b, w, l или q) указывает, сколько байтов копируется (1, 2, 4 или 8 соответственно).Для инструкции lea (загрузить эффективный адрес) исходным операндом является ячейка памяти (с использованием режима адресации, описанного выше), и он копирует вычисленный адрес источника в место назначения. Обратите внимание, что lea не разыменовывает исходный адрес, а просто вычисляет его местоположение. Это означает, что lea — не более чем арифметическая операция, обычно используемая для вычисления значений простых линейных комбинаций, которые не имеют ничего общего с ячейками памяти!

  mov src, dst # общая форма инструкции dst = src
мов $0, %eax # %eax = 0
movb %al, 0x409892 # запись по адресу 0x409892 младшего байта %eax
mov 8(%rsp), %eax # %eax = значение, считанное с адреса %rsp + 8

lea 0x20(%rsp), %rdi # %rdi = %rsp + 0x20 (без разыменования!)
lea (%rdi,%rdx,1), %rax # %rax = %rdi + %rdx
  

Инструкция mov копирует одинаковое количество байтов из одного места в другое. В ситуациях, когда перемещение копирует меньшую битовую ширину в большую, варианты movs и movz используются для указания того, как заполнять дополнительные байты, либо с расширением знака, либо с заполнением нулями.

  movsbl %al, %edx # копирование 1-байтового %al, расширение знака в 4-байтовый %edx
movzbl %al, %edx # копирование 1-байтового %al, расширение нулями до 4-байтового %edx
  

Следует отметить особый случай: mov для записи 32-битного значения в регистр также обнуляет старшие 32 бита регистра по умолчанию, т.е.e выполняет неявное расширение нулями до разрядности q. Это объясняет использование таких инструкций, как mov %ebx, %ebx , которые выглядят нечетными/избыточными, но на самом деле используются для расширения нулями от 32 до 64. Учитывая такое поведение по умолчанию, нет необходимости в явном мовзлк инструкция. Вместо знакового расширения с 32-битной на 64-битную существует инструкция movslq .

Инструкция cltq является специализированной movs , которая работает с %rax .Эта инструкция без операнда выполняет расширение знака на месте %rax ; разрядность источника равна l, разрядность получателя равна q.

  cltq # работает с %rax, знак-расширяет 4-байтовый src до 8-байтового dst
                 сокращение для movslq %eax,%rax
  

Арифметические и побитовые операции

Двоичные операции обычно выражаются в форме с двумя операндами, где второй операнд является как источником операции, так и адресатом. Источником может быть непосредственная константа, регистр или ячейка памяти.Назначение должно быть либо регистром, либо памятью. Памятью может быть не более одного источника или получателя. Унарные операции имеют один операнд, который является одновременно источником и получателем, который может быть либо регистром, либо памятью. Многие арифметические инструкции используются как для знаковых, так и для беззнаковых типов, т. = src not dst # dst = ~dst (побитовая инверсия) shl count, dst # dst <<= count (сдвиг влево dst по позициям count), синоним sal sar count, dst # dst >>= count (арифметический сдвиг вправо dst по количеству позиций) shr count, dst # dst >>= count (логический сдвиг вправо dst на количество позиций) # некоторые инструкции имеют специальные варианты с разным количеством операндов imul src # один операнд imul предполагает другой операнд в %rax вычисляет 128-битный результат, сохраняет старшие 64 бита в %rdx, младшие 64 бита в %rax shl dst # dst <<= 1 (без счета => допустим 1, то же самое для sar, shr, sal)

Ответвления и другое использование кодов состояния

В специальном регистре %eflags хранится набор логических флагов, называемых кодами условий .Большинство арифметических операций обновляют эти коды. Условный переход считывает коды условий, чтобы определить, переходить на ветку или нет. Коды условий включают ZF (нулевой флаг), SF (знаковый флаг), OF (флаг переполнения, знаковый) и CF (флаг переноса, беззнаковый). Например, если результат был равен нулю, устанавливается ZF, если операция переполнилась (в знаковый бит), устанавливается OF.

Общий шаблон для всех ветвей заключается в выполнении операции cmp или test для установки флагов, за которой следует вариант инструкции перехода, который считывает флаги, чтобы определить, нужно ли перейти на ветвь или продолжить.Операнды для cmp или test являются немедленными, регистровыми или ячейками памяти (максимум с одним операндом памяти). Существует 32 варианта условного перехода, некоторые из которых являются синонимами. Вот несколько примеров инструкций ветки.

  cmpl op2, op1 # вычисляет результат = op1 - op2, отбрасывает результат, устанавливает коды условий
test op2, op1 # вычисляет результат = op1 и op2, отбрасывает результат, устанавливает коды условий

jmp target # безусловный переход
je target # прыжок равный, синоним jz прыжок ноль (ZF=1)
jne target # переход не равен, синоним jnz jump не равен нулю (ZF=0)
js target # переход со знаком (SF=1)
jns target # переход без знака (SF=0)
jg target # прыжок больше чем, синоним jnle прыжок не меньше или равно (ZF=0 и SF=OF)
jge target # прыжок больше или равно, синоним jnl прыжок не меньше (SF=OF)
jl target # прыжок меньше чем, синоним jnge jump не больше или равно (SF!=OF)
jle target # прыжок меньше или равен, синоним jng прыжок не больше (ZF=1 или SF!=OF)
ja target # прыжок выше, синоним jnbe прыжок не ниже и не равен (CF=0 и ZF=0)
jae target # прыжок выше или равно (CF=0)
jb target # прыжок ниже, синоним jnae прыжок не выше и не равен (CF=1)
jbe target # перейти ниже или равно (CF=1 или ZF=1)
  

Сеткс и мовкс

Есть два других семейства инструкций, которые считывают/реагируют на текущие коды состояния. Инструкции setx устанавливают регистр назначения в 0 или 1 в зависимости от состояния условия x . Инструкции cmovx будут условно выполнять перемещение в зависимости от того, выполняется ли условие x . x является заполнителем для любого из условных вариантов: e , ne , s , ns и т. д.

  sete dst # установить dst на 0 или 1 в зависимости от условия ноль/равно
setge dst # установить dst в 0 или 1 в зависимости от условия больше/равно
cmovns src, dst # продолжить mov, если выполнено условие ns
cmovle src, dst # продолжить перемещение, если выполняется условие le
  

Для инструкции setx адресатом должен быть однобайтовый субрегистр (т.грамм. %al для младшего байта %rax ). Для инструкций cmovx и источник, и место назначения должны быть регистрами.

Стек вызовов функций

Регистр %rsp используется как «указатель стека»; push и pop используются для добавления/удаления значений из стека. Инструкция push принимает один операнд: непосредственное значение, регистр или ячейку памяти. Push уменьшает %rsp и копирует операнд, который должен быть помещен в стек.Инструкция pop принимает один операнд, регистр назначения. Pop копирует самое верхнее значение в место назначения и увеличивает %rsp . Также можно напрямую настроить %rsp для добавления/удаления всего массива или набора переменных с помощью одной операции. Обратите внимание, что стек растет вниз (к более низким адресам).

  push %rbx # поместить значение %rbx в стек
pushq $0x3 # поместить немедленное значение 3 в стек
sub $0x10, %rsp # скорректировать указатель стека, чтобы выделить еще 16 байтов

pop %rax # извлечь самое верхнее значение из стека в регистр %rax
добавить $0x10, %rsp # скорректировать точку стека, чтобы удалить самые верхние 16 байтов
  

Вызов/возврат используются для передачи управления между функциями. Инструкция callq принимает один операнд — адрес вызываемой функции. Он помещает адрес возврата (текущее значение %rip , что является следующей инструкцией после вызова) в стек, а затем переходит к адресу вызываемой функции. Инструкция retq извлекает адрес возврата из стека в %rip , таким образом возобновляя работу с сохраненного адреса возврата.

Для подготовки к вызову вызывающая сторона помещает первые шесть аргументов в регистры %rdi , %rsi , %rdx , %rcx , %r8 и 08 аргументы помещаются в стек), а затем выполняет инструкцию call .

  mov $0x3, %rdi # первый аргумент передается в %rdi
mov $0x7, %rsi # второй аргумент передается в %rsi
callq binky # передает управление функции binky
  

Когда вызываемый объект завершает работу, он записывает возвращаемое значение (если есть) в %rax , очищает стек и использует инструкцию retq для возврата управления вызывающему объекту.

  mov $0x0, %eax # запись возвращаемого значения в %rax
добавить $0x10, %rsp # освободить кадр стека
retq # возврат из текущей функции, возобновление вызова
  

Целью инструкции перехода или вызова чаще всего является абсолютный адрес, который был определен во время компиляции.Однако бывают случаи, когда цель неизвестна до времени выполнения, например, оператор switch , скомпилированный в таблицу переходов, или при вызове указателя функции. Для них целевой адрес вычисляется и сохраняется в регистре, а вариант ответвления/вызова используется je *%rax или callq *%rax для чтения целевого адреса из указанного регистра.

Отладчик имеет множество функций, позволяющих отслеживать и отлаживать код на уровне сборки. Вы можете напечатать значение в регистре, добавив к его имени префикс $ или использовать команду info reg для вывода значений всех регистров:

  (gdb) p $rsp
(gdb) информация reg
  

Команда disassemble напечатает разборку функции по имени. Команда x поддерживает формат i , который интерпретирует содержимое адреса памяти как закодированную инструкцию.

  (gdb) разобрать main // разобрать, распечатать все инструкции main
(gdb) x/8i main // дизассемблировать, вывести первые 8 инструкций
  

Вы можете установить точку останова на конкретной ассемблерной инструкции по ее прямому адресу или смещению внутри функции

  (гдб) б *0x08048375
(gdb) b *main+7 // в инструкции разбить 7 байт на main
  

Вы можете продвигаться вперед по инструкции (вместо исходной строки), используя команды stepi и nexti .

  (gdb) степи
(gdb) следующий
  

CS107 Компьютерная организация и системы

  • Итоговые оценки за курс опубликованы ср. 16 июня Ник Итоговые оценки загружены в Axess. Проверьте свою электронную почту Стэнфорда для получения более подробной информации об оценках. Хорошего лета! Надеемся, вам понравился курс!

  • Окончательные оценки проекта опубликованы во вторник. 15 июня Ник Итоговые оценки за проект опубликованы на странице журнала оценок вместе с комментариями к вашей работе.Квартили оценок функциональной части проекта (включая тесты функциональности, файл readme и оценки для dump_heap и validate_heap ) были следующими (/122): 1-й квартиль = 80, второй квартиль = 110, третий квартиль = 118. Поздравляем с завершением работы над распределителями кучи!

  • Задание 5 класса Выпущено вт. 15 июня Ник Оценки за задание 5 были опубликованы на странице журнала оценок вместе с отзывами о файле readme.Квартили оценок были следующими (/102): 1-й квартиль = 87, второй квартиль = 97, третий квартиль = 100. Поздравляем с отключением ваших хранилищ, исследованием агрегации наборов данных и обнаружением уязвимостей в банкомате!

  • Страница резюме CS107 опубликована во вторник. 8 июня Ник В качестве дополнительного ресурса к нашей заключительной заключительной лекции мы разместили страницу резюме CS107, на которой подведены итоги всего, что мы сделали в этом квартале, куда вы можете пойти дальше, а также способы дальнейшего изучения материала CS107, если вам интересно. Мы рекомендуем вам проверить это!

  • Задание 4 класса, выпущено в четверг. 27 мая Ник Оценки за задание 4 опубликованы на странице журнала оценок вместе с отзывами о стиле заданий. Квартиль баллов по функциональной части задания был следующим (/107): 1-й квартиль = 98, второй квартиль = 103, третий квартиль = 107. Отличная работа!

  • Финальный проект опубликован Вт. 25 мая Ник Итоговый проект опубликован на странице заданий.Подло выступать в качестве краеугольного камня для всех тем, которые мы рассмотрели в этом квартале, путем реализации нашего собственного распределителя кучи! Мы надеемся, что вам весело с ним. Это должно быть пятница. 4 июня в 23:59 по тихоокеанскому стандартному времени. Поскольку сейчас конец квартала, поздние заявки не принимаются для окончательного проекта. Более подробную информацию можно найти на странице задания. Важное примечание : чтобы пройти курс, вы должны реализовать неявный аллокатор свободных списков, который очищает 70% очков функциональности (подробнее на странице задания).

  • Страница рекомендаций после оценки Опубликовано Чт. 5 ноя от Ника Мы разместили страницу, содержащую информацию о часто задаваемых вопросах в последние недели курса, например, о том, как интерпретировать оценки за курс, как добиться успеха в оставшейся части курса и т. д. Мы надеемся, что вы найдете это полезным!

  • оценочные оценки опубликованы вс. 16 мая Ник Оценочные баллы за середину четверти были опубликованы через Gradescope, веб-сайт онлайн-оценки курсов.Дополнительную информацию о статистике экзамена, о том, как увидеть свой балл, а также информацию о запросах на изменение оценки можно найти на веб-странице оценивания в середине четверти. Хорошая работа над оценкой!

  • Задание 5 Опубликовано Чт. 13 мая Ник Задание 5 опубликовано в раскрывающемся списке заданий. Он призван усилить темы перевода сборки, обратного проектирования, а также доверия и конфиденциальности. Предыстория: вас наняли экспертом по безопасности в Stanford Bank (вымышленный банк на территории кампуса).Им нужно, чтобы вы расследовали сообщения о проникновении и проблемах безопасности и реплицировали проблемы, чтобы они могли их исправить. Это задание состоит из трех частей, в каждой из которых вы исследуете предполагаемые уязвимости и оцениваете риски, с которыми сталкивается банк. Эти проблемы подобны «головоломкам» C/ассемблера, и мы надеемся, что вам понравится их решать и изучать этот материал так же, как нам нравилось их создавать! Задание сдается в понедельник. 24 мая, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Задание 3 степени, выпущенное вс. 10 мая от Ника Оценки за задание 3 опубликованы на странице журнала оценок вместе с комментариями по стилю для заданий. Квартили баллов по функциональной части задания были следующими (/95): 1-й квартиль = 85, второй квартиль = 93, третий квартиль = 95. Вперед! См. наш пост Эда для получения более подробной информации об отзывах о заданиях.

  • Обновление политики для вечеринок, пт. 7 мая от Ника Мы обновили нашу политику курса в отношении посещения вечеринки, чтобы больше не требовать посещения одной вечеринки.Вместо этого мы будем считать посещение хотя бы одной вечеринки просмотра эквивалентной суммой дополнительных кредитов, и если у вас еще не было возможности посетить одну из них, но вы хотели бы это сделать, вы можете получить этот дополнительный кредит за посещение в любое время до конца квартал.

  • Оценка за середину квартала на следующей неделе Пт. 30 апреля Ник Оценка CS107 в середине квартала состоится на следующей неделе, с окном оценки с среды 5 мая в 13:00 по тихоокеанскому времени до пятницы 7 мая в 13:00 по тихоокеанскому времени , и вы можете пройти оценку в течение любого 3-часового блока в этом окне через Gradescope, на сайт онлайн-оценки.Пожалуйста, посетите веб-страницу оценки в середине четверти для получения информации об оценке, а также советов по изучению и обзорных материалов.

    Если у вас академических общежитий , напр. через OAE и еще не сообщили нам об этом, пожалуйста, сообщите нам об этом как можно скорее.

  • Задание 2 класса, выпущено в четверг. 29 апреля Ник Оценки за задание 2 опубликованы на странице журнала оценок вместе с комментариями по стилю для заданий. Квартиль баллов по функциональной части задания был следующим (/94): 1-й квартиль = 85, второй квартиль = 90, третий квартиль = 94.Хорошо сделано!

  • Задание 4 Опубликовано Чт. 29 апреля Ник Задание 4 опубликовано на странице заданий. Он предназначен для закрепления темы обобщений, раскрытия и частичности, указателей void * и указателей функций, с упражнениями, варьирующимися от реализации вашей собственной версии команды ls до реализации вашей собственной версии команды sort . Мы надеемся, что вам весело с ним! Задание сдается в среду. 12 мая, 23:59 по тихоокеанскому стандартному времени.Это продленный срок из-за оценки в середине четверти в середине (обычно мы даем около полутора недель на задание). Подробнее вы можете узнать на странице задания.

  • Задание 3 Опубликовано Чт. 22 апреля Ник Задание 3 опубликовано на странице заданий. Он предназначен для закрепления темы указателей, массивов и распределения кучи с упражнениями, варьирующимися от реализации удобной версии функции ввода-вывода файла C до реализации ваших собственных версий команд Unix «tail» и «uniq».Мы надеемся, что вам весело с ним! Задание сдается в среду. 28 апреля, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Задание 1 класс вышло ср. 21 апреля Ник Оценки за задание 1 опубликованы на странице журнала оценок вместе с комментариями по стилю заданий. Квартиль баллов по функциональной части задания был следующим (/90): 1-й квартиль = 78, второй квартиль = 86, третий квартиль = 90. Отличная работа!

  • Подать заявку на должность начальника отдела! Чт.15 апреля Ник Мы хотели передать следующее сообщение от координаторов CS198 о подаче заявления на должность руководителя секции. Они дали обзор программы в начале лекции 5 в прямом эфире, так что посмотрите и это, если хотите! «Сейчас мы принимаем заявки на руководителей секций CS106 на осень 2021 года! Чтобы подать заявку, вы должны быть в настоящее время зачислены, пройти или иметь эквивалентный опыт для CS106B / X.

    Руководители секций, нанятые в этом квартале, начнутся осенью.Руководство секцией - это обязательство на две четверти, но вы все равно можете подать заявку, если планируете поехать за границу осенью (или следующей зимой).

    Крайние сроки: , четверг, 22 апреля, 23:59 по тихоокеанскому времени, (для учащихся, завершивших курс CS106B/X) и , суббота, 8 мая, 23:59 по тихоокеанскому времени, (только для текущих учащихся CS106B). Подать заявку здесь, и, пожалуйста, дайте нам знать, если у вас есть какие-либо вопросы!

  • Задание 2 Опубликовано Чт. 15 апреля Ник Задание 2 опубликовано на странице заданий.Он предназначен для закрепления темы C Strings и подробной документации с упражнениями, варьирующимися от реализации инструментов для отображения переменных среды до реализации вашей собственной версии Unix-команды «what». Мы надеемся, что вам весело с ним! Задание сдается в среду. 21 апреля, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Задание 0 Оценки Выпущены Ср. 14 апреля Ник Оценки за задание 0 были опубликованы на странице журнала оценок вместе с отзывами о стиле для заданий.Квартиль баллов по функциональной части задания был следующим (/25): 1-й квартиль = 24, второй квартиль = 25, третий квартиль = 25. Вперед! Обратитесь к Эду за кратким отчетом о задании.

  • Вечеринки с просмотром лекций начинаются на этой неделе, пн. 12 апреля от Ника На этой неделе мы официально запускаем вечеринки с часами. Вечеринки с просмотром лекций — это неформальное время, когда вы можете собраться вместе с другими студентами и ассистентами, чтобы вместе посмотреть видеозаписи лекций.Вы можете поставить видео на паузу, когда захотите, остановиться, чтобы задать вопросы или обсудить, а также вместе лучше понять лекционный материал.

    Страница просмотра вечеринок доступна из выпадающего списка «Лекции». Проверьте его для предстоящих часовых вечеринок или добавьте свои собственные! Каждую неделю (начиная с этой недели, мы добавим в календарь) TA будут проводить вечеринки для просмотра различных подмножеств видео лекций. Мы также рекомендуем вам организовать свой собственный! Если вы хотите добавить в календарь свою собственную вечеринку просмотра, нажмите «Устроить вечеринку просмотра» и введите информацию о том, когда вы будете проводить вечеринку просмотра и что вы планируете смотреть.Мы хотим призвать вас попробовать их, чтобы убедиться, что они помогут вам изучить лекционный материал; по этой причине часть вашей оценки за контрольную лекцию (стоит 1 лекция) составляет , чтобы посетить одну вечеринку по просмотру лекций, организованную TA, до оценки в середине квартала .

  • Задание 1 Опубликовано Вт. 6 апреля Ник Задание 1 опубликовано на странице заданий. Он предназначен для закрепления тем битов, побитовых операторов и целочисленных представлений с помощью упражнений, начиная от реализации основного алгоритма «насыщенной арифметики» и заканчивая моделированием ячеек на битовом уровне и пониманием влияния целочисленных представлений на реальное программное обеспечение.Мы надеемся, что вам весело с ним! Задание сдается в среду. 14 апреля, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

    Когда вы начнете работать, мы хотим включить напоминание о руководстве по стилю курса; он содержит подробный справочник о том, как сделать так, чтобы ваши программы выглядели великолепно! Мы также добавили в это задание новый инструмент stylecheck — дополнительную информацию см. в спецификации. Кроме того, через часы помощи ТА и дискуссионный форум мы сосредоточимся на поддержке вас, чтобы вы могли отследить свои собственные ошибки.Пожалуйста, спросите нас, как лучше всего использовать инструменты (например, совершенно новый GDB!), какие стратегии следует учитывать, и посоветуйте, как улучшить процесс отладки или отследить вашу ошибку. Если у вас есть вопросы по отладке в часы работы помощника, обязательно сначала соберите информацию и изучите проблему самостоятельно, а затем заполните вопросы QueueStatus этой информацией. Начиная с будущего задания, нам потребуется эта информация при подписке на вспомогательные часы для помощи в отладке, поэтому обязательно предоставьте как можно больше информации.

  • Бесплатное онлайн-обучение CTL Sun. 4 апреля Ник Центр преподавания и обучения обратился к нам с просьбой поделиться следующим объявлением о бесплатном обучении. Хотите встретиться с опытным коллегой, чтобы обсудить концепции курса, обдумать набор задач или подготовиться к предстоящему экзамену? CTL предлагает репетиторство по предварительной записи для CS 107 в дополнение к репетиторству по ряду других курсов. Чтобы получить дополнительную информацию и назначить встречу, посетите нашу страницу назначений репетиторов и расписания занятий.У нас также есть множество ресурсов для дистанционного обучения и академический коучинг, которые помогут удовлетворить все ваши потребности в обучении! Команда CTL также ищет репетиторов на 21-22 учебный год — чтобы узнать больше об этой возможности, посетите наш веб-сайт или напишите Алексу Айерсу ([email protected]) напрямую». , обязательно соблюдайте кодекс чести курса и политику сотрудничества.Информацию о репетиторстве, в частности, можно найти на странице сотрудничества.

  • Лабораторные задания PostedSun. 4 апреля Ник Мы опубликовали лабораторные задания — вы можете просмотреть свое задание в раскрывающемся списке «лаборатории» на верхней панели инструментов. Мы сделали все возможное, чтобы назначить каждому один из лучших вариантов. В этой форме, если хотите, вы также можете присоединиться к другой лаборатории, где есть свободное место. К сожалению, если лаборатория заполнена, мы не можем принять дополнительных студентов в настоящее время, но вернитесь позже, так как количество зачислений может меняться со временем.

    Лаборатории начинаются со вторника., и вам ничего не нужно делать перед лабораторией на этой неделе — вы сможете найти ссылки Zoom для всех лабораторий на Canvas (вы увидите все ссылки на лабораторию, но присоединитесь только к той, к которой вы назначены) ближе к началу вашего лаборатория Ваш руководитель лаборатории представится и объяснит все о лаборатории и о чем она. Дополнительную информацию о лабораторных работах и ​​правилах лабораторных работ можно найти на странице информации о курсе. Увидимся в лаборатории на этой неделе!

  • Запись на лабораторию

    открыта с 17:00 до субботы.17:00 вторник. 30 марта Ник Заявки на лабораторные настройки открываются сегодня в 17:00 по тихоокеанскому времени. С этого момента и до субботы в 17:00 по тихоокеанскому стандартному времени укажите свои предпочтения в отношении лабораторной работы, которую вы хотели бы посетить в этом квартале. Обратите внимание, что предпочтение отдается , а не в порядке живой очереди; вы можете указать свои предпочтения в любое время между этими датами, а также вернуться, чтобы обновить свои предпочтения позже. Мы можем добавить дополнительные лаборатории позже на этой неделе и сообщим вам, если появятся дополнительные варианты. Вы можете получить доступ к форме настроек в раскрывающемся списке «Лаборатории» в верхней части страницы.Дополнительные сведения о лабораторных работах, включая посещаемость, отсутствующие лабораторные работы и другие правила, см. в разделе «Лабораторные работы» на странице информации о курсе.

  • Дополнительная короткая лекция 1 Видео опубликовано Вт. 30 марта Ник Поскольку у нас не было времени просмотреть всю информацию о C на слайдах лекции 1 вчера, мы разместили короткое дополнительное видео с лекцией, в котором рассказывается о более подробной информации о C, которую полезно знать, когда вы приступите к первому заданию. . Мы надеемся, что вы найдете это полезным!

  • График работы помощника опубликован Вт.30 марта Ник Мы разместили информацию о часах помощи на странице Получение помощи. В этом квартале мы будем использовать Nooks для проведения вспомогательных часов и смены персонала во время вспомогательных часов. Пожалуйста, присоединяйтесь к нашему сообществу Nooks, чтобы работать с другими студентами и получать помощь от ассистентов! Вам не нужно задавать вопросы в Helper Hours — не стесняйтесь заходить и общаться с другими в любое время! Вы также можете увидеть календарь работы помощника персонала на странице Получение помощи.

  • Задание 0 Опубликовано Пн.29 марта Ник Задание 0 опубликовано на странице заданий. Он задуман как введение в Unix и C, с упражнениями, варьирующимися от выявления лиц, получивших несанкционированный доступ к файловой системе, до изменения предоставленной программы C для приема аргументов командной строки. Надеемся, вам весело! Задание сдается в понедельник. 5 апреля в 23:59 по тихоокеанскому стандартному времени, и для этого задания не принимаются просроченные заявки (поздние дни или по другим причинам) , поэтому, пожалуйста, не забудьте отправить их до крайнего срока.

  • Применить к CS107A (ACE/Pathfinders) Sun.28 марта, Ник (на основе сообщения CS106B, написанного Соней Джонсон-Ю) CS107A, также известный как CS107 ACE, представляет собой дополнительный раздел из 1 модуля, предназначенный для создания более прочной основы в области компьютерных наук. Студенты, участвующие в ACE, будут посещать дополнительный еженедельный раздел и участвовать в специальных рабочих часах и специальных обзорных сессиях ACE. Секция запланирована на вторник и четверг с 10 до 11:00 по тихоокеанскому времени, но асинхронный вариант будет доступен для учащихся в международных часовых поясах или с конфликтами в классе.

    ACE является одной из инициатив Инженерной школы по обеспечению справедливости и инклюзивности. Мы особенно хотим предоставить возможность учащимся из малообеспеченных слоев общества или всем, кто считает, что им может понадобиться дополнительная поддержка для достижения успеха. Мы ограничиваем регистрацию, чтобы разрешить небольшие классы, которые позволяют учащимся взаимодействовать один на один с ЦС.

    Если вы хотите присоединиться к секции ACE, подайте заявку онлайн — нажмите здесь. Приложение будет открыто до 17:00 по тихоокеанскому времени в пятницу, 2 апреля.До публикации результатов заявки любой учащийся, который подает заявку или планирует подать заявку, должен посетить секции CS 107A. Дополнительную информацию о CS107A можно найти на странице часто задаваемых вопросов. Если у вас есть дополнительные вопросы об ACE, обращайтесь к Эндрю Бенсону (CS107A TA) по адресу [email protected]

  • Добро пожаловать! Солнце. 28 марта Ник Добро пожаловать в CS107! Занятия стартуют дистанционно в понедельник, 29 марта -го . Мы с нетерпением ждем встречи с вами и вместе начинаем отличный квартал! У нас будет больше подробностей о формате удаленного весеннего предложения CS107.А пока, пожалуйста, ознакомьтесь с обновленным FAQ. В нем рассматриваются вопросы о записанных лекциях, конфликтующих классах, CS107E, CS107A и многом другом. Мы надеемся, что вы найдете это полезным! Другие детали и правила курса могут быть изменены, поэтому следите за обновлениями.

  • Программа CS107

    Лекция 1 (Пн): Добро пожаловать
    Присоединяйтесь к нам, чтобы узнать, чего ожидать от CS107. Мы пройдем логистику курса, цели обучения, экскурсию по удивительным фактам о современных системах
    Слайды
    Раздаточный материал с обзором курса
    B&O Ch 1 (беглый обзор главы для краткого обзора того, что подразумевается под системами, и предварительный просмотр тем)
    Видео Tron из класса
    Интересное чтение: системные программисты и зомби (название действительно говорит само за себя)
    Нет лаборатории в течение первой недели (рабочие часы доступны для помощи с assign0, см. календарь) Краткое руководство по UNIX от выпускницы CS107 Эллисон Юэн
    Лекция 2 (пт): Переход на C
    Увлекательный тур по C для программистов на C++, использующих среду Unix.
    Слайды
    Освежите в памяти синтаксис C, типы данных, операторы, структуру управления, вызовы функций.
    K&R Ch 1, 2, 3 (пропустить разделы о массивах до следующей лекции) или EssentialC разделы 1, 2, 4
    Лекция 3 (Пн): Указатели и массивы C
    Теперь пришло время для сложных частей C, включая использование * и &, массивы и указатели, арифметику указателей.
    Слайды
    ВИДЕО
    K&R Ch 1.6, 5.1-5.5 или Essential C section 3 по механике указателей и массивов.Обратите особое внимание на взаимосвязь между массивами и указателями и на то, как указатели/массивы передаются в качестве параметров.
    Лабораторная работа 1: Программирование на C под Unix
    Практическая работа с C и написание простой версии команды Unix
    K&R (1.9, 5.5, Приложение B3) или Essential C section 3 для C-strings и библиотечных функций string.h. C-строки примитивны по сравнению со строками Java/C++, обратите внимание на ручные усилия, необходимые для правильного использования, и подводные камни, которых следует избегать.Ознакомьтесь с нашими руководствами по инструментам Mercurial и gdb.
    Лекция 4 (пт): Подробнее об указателях
    Продолжение работы по C-строкам после лабораторной работы на этой неделе, попытка выявить незначительные различия между массивами/указателями (при этом подчеркнув их сходство), представить динамические память с malloc и free, а также сравнение/сопоставление стека и кучи (malloc). Одна сложная проблема, которую нужно решить, — это указатели на указатели (point[ter]-ception!).
    Слайды
    К&Р 5.6-5.9 (снятые части массивов multi-d)
    Лекция 5 (пн): void* , универсальные функции
    Приведения типов указателей, нетипизированные void* указатели и их использование для универсального поведения. Указатели функций и использование в качестве обратных вызовов клиента. Написание универсальных функций, будучи клиентом универсальных функций.
    Слайды
    K&R 5.11 (указатели функций). Для void* не так много нового чтения, будьте готовы к дальнейшему применению механики указателей, массивов и арифметики указателей для манипулирования указателями неопределенного типа.
    Лабораторная работа 2: Память C
    Изучение указателей/массивов, использование/написание обобщений C, использование инструментов для понимания и отладки памяти
    Наши направляющие для инструментов Valgrind и gdb
    Лекция 6 (Пт): Указатели функций и обратные вызовы
    Решите все открытые проблемы на void* . Функции обратного вызова (указатели функций).
    Слайды
    К&Р 2.9
    Лекция 7 (пн): Знакомство с представлением данных семейства Integer типов char, short, int, long, беззнаковое двоичное, шестнадцатеричное и целочисленное представление с дополнением до двух.
    Слайды
    Для целых чисел см. B&O Ch 2.1-2.3 (ознакомьтесь с формальными доказательствами, но это важно для получения твердых практических знаний о дополнении до двух и поведении целочисленных операций). Это важно прочитать перед лекцией/лабораторной!
    Лабораторная работа 3: Биты и байты
    Практические занятия с битами и целыми числами
    Лекция 8 (Пт): Еще биты и байты Усечение и расширение знака. Смешанные операции сравнения со знаком и без знака.Побитовые операторы и использование байтов в качестве коллекций логических значений.
    Слайды
    B&O Остальные главы 2.
    Лекция 9 (пн): IEEE Floating Point
    Вы узнали, как представляются целые числа (в типах данных C char, short, int, long), теперь мы рассмотрим вещественные числа (в C типы данных float и double). В качестве примера мы будем использовать вымышленный тип данных — «мини-поплавок». Это не тип C, но он использует те же принципы, что и полное представление с плавающей запятой и двойное представление IEEE с меньшим количеством битов, поэтому с ним легче практиковаться.
    Слайды
    B&O Ch 3.4 по размещению данных и доступу, 3.5 по операциям ALU, 3.6 по структурам управления. В этих разделах много подробностей, особенно при освоении сборки, но не поддавайтесь искушению бегло просмотреть. Крайне важно получить прочную основу для этих основ, для чего необходимо внимательно следить за сборкой и выполнять упражнения для самопроверки, чтобы убедиться, что вы все сделали правильно.
    Лаборатория 4: Поплавки
    Практическая диссекция поплавком
    ПРОМЕЖУТОЧНАЯ #1 ЧЕТВЕРГ
    Лекция 10 (пт): Введение в AMD64, перемещение данных
    Представление указателей, структур, инструкций.Познакомьтесь с ассемблером/машинным языком и узнайте, что происходит под капотом компилятора C. Архитектура набора инструкций AMD64 и его всемогущая инструкция mov . Режимы адресации, размещение данных и доступ к переменным различных типов.
    Слайды
    B&O 3.1-3.3 для получения справочной информации об AMD64 и машинном коде. Очень внимательно прочитайте B&O 3.4 о режимах адресации и передаче данных. Множество режимов адресации — это одна из причин, по которой буква C ставится в CISC для AMD64.
    Направляющая Handy CS107 AMD64
    Лекция 11 (Пн): Структура данных и доступ к ним, операции АЛУ
    Свяжите оставшиеся режимы адресации с их использованием при доступе к C-переменным/указателям/массивам/структурам. Затем дело за арифметическими и логическими операциями. В этих лекциях мы проследим большую часть ассемблерного кода. Прочитав перед лекцией, вы сможете лучше следовать ей, не теряясь.
    Слайды
    Б&О Гл. 3.4 по размещению данных и доступу, 3.5 по операциям ALU. В этих разделах много подробностей, особенно при изучении сборки AMD64, но не поддавайтесь искушению бегло просмотреть. Крайне важно получить прочную основу для этих основ AMD64, для чего необходимо внимательно следить за сборкой и выполнять упражнения для самопроверки, чтобы убедиться, что вы все сделали правильно.
    Лаборатория 5: AMD64
    AMD64 во всей красе
    ВАЖНАЯ СПРАВКА: Наше руководство AMD64
    Лекция 12 (Пт): Управление
    Реализация if-else и циклов (for/while/do-while) и две реализации операторов switch.
    Слайды
    B&O Ch 3.6 по элементам управления и переключателям.
    Лекция 13 (Пн)
    Протокол вызывающего/вызываемого для вызовов функций, передачи параметров, вызова/возврата и управления служебным стеком. Используйте это понимание для изучения функций стека: почему рекурсия работает, локальные переменные дешевы, как работают переменные аргументы и регистры, сохраняемые вызывающим/вызываемым.
    Слайды
    ВИДЕО
    Б&О 3.7
    Лабораторная работа 6: Анализ стека среды выполнения
    Одна из моих любимых лабораторных работ — множество увлекательных исследований со стеком!
    Лекция 14: Процесс сборки
    Изучение шагов преобразования кода C в исполняемый файл: препроцессор, компилятор, ассемблер, компоновщик.Эти шаги часто вместе называются «компилятором» в CS106 и других настройках, но мы углубимся в детали.
    Слайды
    B&O Ch 7 (пропустить 7.12 на PIC)
    Лекция 15 (Пн): Оптимизация кода
    Что делают и чего не делают оптимизирующие компиляторы. Изучите такие преобразования, как свертывание констант, устранение общих подвыражений, снижение прочности, перемещение кода, развертывание циклов. Инструменты синхронизации и профилировщики для измерения производительности кода.
    Слайды
    B&O 5.1-5.6 и 5.13-5.15, обезжиренное 5.7-5.11.
    Лабораторная работа 8: Процесс сборки
    Этапы компиляции, инструменты для проверки исполняемых файлов
    ПРОМЕЖУТОЧНАЯ #2 ЧЕТВЕРГ
    Лекция 16 (пт): Управление кучей
    Как куча вписывается в адресное пространство. Проектные решения для реализации malloc/realloc/free. Компромиссы производительности (пропускная способность, использование). Сравните/сопоставьте стек с распределением кучи.
    Слайды
    B&O Ch. 9.9-9.11 посвящены реализации распределения кучи, сборщикам мусора и неправильному использованию памяти. В 9.9.12 много очень подробного кода. Сейчас можно просмотреть этот код (если вы уверены, что понимаете лежащие в его основе принципы), но в конечном итоге вам будет поручено написать распределитель кучи, и вы захотите подробно изучить его. знакомый с этим кодом на тот момент, поэтому инвестиции сейчас окупятся позже. 🙂
    Лекция 17 (Пн): Иерархия памяти, локальность, кэширование
    Понимание иерархии хранения (регистры -> кэши -> память -> файлы) и как свойства меняются при движении вниз (быстро/маленькое/дорогое => большое /медленно/дешево).Временная и пространственная локальность ссылки и ее влияние на производительность. Кэши и написание дружественного к кешу кода. Измерение производительности памяти с помощью callgrind с симуляцией кеша.
    Слайды
    B&O 5.12, 6.1-6.3 и 6.5-6.7, обезжиренное 6.4. Чтение становится довольно плотным, что наиболее важно для получения общей картины.
    Лаборатория 7: Оптимизация кода и памяти
    Эксперименты по оптимизации, профилирование
     
    (без лекций - преподаватель находится в другом городе) TA будут работать в Hewlett 200 в часы занятий.Нет лекции. (Мы выдвинулись вперед в обычном расписании лекций на квартал, заменив лекции по понедельникам выходными, поэтому эту лекцию можно смело отменить, не сокращая темы.)
    Лекция 18 (Пн): Проектирование кэш-памяти и конвейерная обработка процессора
    Краткий обзор некоторых тем проектирования аппаратного обеспечения, которые пересекаются с нашими темами программного обеспечения CS107.
    Слайды
    Если вас интересуют эти темы, берите EE108 и/или EE180!
    Лабораторная работа 8: Дизайн кэша, итоговый обзор экзамена  
    Лекция 20 (Пт): Подведение итогов
    Завершение тем курса, предварительный просмотр курсов/возможностей после 107 и попытка довести до конца все незавершенные вопросы.Задавайте вопросы, если они у вас есть!
    ЗАКЛЮЧИТЕЛЬНЫЙ ЭКЗАМЕН
    Среда, 22 марта, с 15:30 до 18:30

    CS107 Компьютерная организация и системы

  • Задание 7 классов выпущено сб. 28 марта Джерри В журнале оценок опубликовано 7 оценок за задание. Центры сертификации рассмотрели файлы readme проекта, реализации validate_heap и качество кода, и вы должны быть в состоянии просмотреть свой журнал оценок, чтобы прочитать то, что они сказали.Если у вас есть какие-либо вопросы о том, почему что-то было оценено именно так, вы должны сначала написать своему оценщику, а затем написать Лизе или мне, если есть неразрешенная драма. Медиана по заданию составила 106 баллов из 112, что на целых шесть баллов выше, чем в прошлом квартале. Без сомнения, многие из вас выиграли от дополнительного времени, но я особенно впечатлен тем, что баллы были такими высокими, потому что все были лишены возможности общаться с другими студентами в часы личного кабинета.

    Лиза и я будем подсчитывать итоговые оценки завтра и в понедельник, и мы отправим их не позднее вечера вторника.

    Всем здоровья и безопасности.

  • Задание 7 Крайний срок: среда, 25 марта, 23:59 ср. 18 марта от Джерри Университет только что разослал всем преподавателям электронное письмо с рекомендациями по выпускным экзаменам, незавершенным выпускным проектам и тому, какие разумные сроки теперь могут быть установлены. Задание 7 фактически является вашим последним проектом, и мы с Лизой установили крайний срок выполнения задания 7 в ближайшую среду, 25 марта, в 23:59.Мы будем оценивать работы assign7 в четверг и пятницу и возвращать оценки в субботу, 28 марта.

    Мы с Лизой будем работать в течение следующих семи дней, как и некоторые из наших центров сертификации. Вы можете ознакомиться с текущим расписанием рабочих часов, которое вскоре будет заполнено дополнительными часами помимо уже запланированных.

  • Задание 6 Класс Выпущено Ср. 18 мар от Лиза Оценки за задание 6 опубликованы на странице журнала оценок вместе с отзывами о заданиях.Средний балл по заданию был 79 из 84. Отличная работа!!!!

  • Срок выполнения задания 7 приостановлен на неопределенный срок, рабочие часыПн. 16 мар от Джерри Как вы, возможно, читали в последние часы, университет предписывает, чтобы все невыполненные сроки — в нашем случае срок assign7 — были отложены на неопределенный срок, пока мы не почувствуем некоторую стабильность. Честно говоря, мы с Лизой не могли не согласиться. По крайней мере, на данный момент распределители кучи не должны занимать первое место в списке обязательных действий прямо сейчас.

    Мы свяжемся с вами, когда все снова обретет форму. Вы можете работать над Заданием 7, если хотите, конечно, но если у вас есть какая-либо причина обратить внимание на более важные дела, то вы должны сделать это, не заботясь о каких-либо сроках. Другими словами, CS107 должен быть последним, о чем вы будете думать в обозримом будущем.

    У нас с Лизой на этой неделе будет несколько рабочих часов, и мы постараемся придерживаться того, что у нас сейчас запланировано. Учитывая изменчивость окружающего нас мира, нам может понадобиться перенести их в последнюю минуту, но мы постараемся этого не делать.Поскольку сейчас нет никаких приближающихся крайних сроков, мы с Лизой больше не требуем, чтобы наши центры сертификации проводили свои онлайн-рабочие часы. У них, как и у вас, вероятно, есть более насущные дела.

    Университет ничего не сказал о сроках выставления оценок, но мы свяжемся с вами, как только узнаем больше.

  • Неделя выпускных экзаменов, обновлено, пт. 13 мар от Лиза Учитывая безотлагательность ситуации в кампусе и в округе Санта-Клара, мы приняли решение о следующей обновленной политике:

    Крайний срок льготного периода для задания 7 перенесен на пятницу, 20 марта, 15:30 по тихоокеанскому времени. Крайний срок выплаты 5% бонуса сегодня, 23:59, не изменится. Учитывая, что многие студенты теперь должны немедленно выехать из общежитий, а крайний срок нашего assign7 выпадает на эти критические выходные, мы приняли это решение, чтобы у каждого была возможность сдать задание распределителя кучи, которым они гордятся. Обратите внимание, что крайний срок — 15:30, а не полночь, и это абсолютно жесткий крайний срок.

    Выпускной экзамен в пятницу, 20 марта, проводиться не будет. Вместо этого мы рассчитаем вашу оценку за курс следующим образом:

    • 17% (исходный) промежуточный экзамен по кривой
    • 15% (исходное) участие лаборатории
    • 35% (исходных) заданий
    • 16% (новый) в зависимости от того, что выше (95) и (кривой промежуточный экзамен)
    • 17% (новое) средневзвешенное значение при назначении с 5 по 7

    Кривой промежуточный результат рассчитывается следующим образом: Промежуточный экзамен считается кривым, когда средний балл ниже 80%.При искривлении средняя оценка повышается до 80 %, самая высокая оценка – до 100 %, а все остальные оценки линейно увеличиваются соответствующим образом (например, учащийся с баллом, находящимся на полпути между максимальным и средним, получает 90 % ).

    Рассуждение. Вторя нашему сообщению в прошлый раз: Джерри и я пришли к этому политическому решению из-за специфики CS107 — в частности, распределитель кучи — это ключевое назначение, которое мы не отменяли и не делали необязательным (в отличие от того, что произошло в других классах).Мы заботимся о вашем благополучии и психическом здоровье, и мы также заботимся о том, чтобы вы закончили этот курс, рассматривая свой собственный распределитель кучи как точку достижения. Пожалуйста, из уважения к своим сверстникам и преподавателям поймите, что все в университете находятся в критической ситуации. Если вы видите дезинформацию о правилах курса, специфичных для CS107, и не используйте эту политику курса в качестве рычага для изменений в других курсах.

    Пожалуйста, прочтите сообщение Piazza для получения дополнительной информации.

  • Неделя выпускных экзаменов по четвергам. 12 мар от Лиза Пожалуйста, прочтите сообщение Piazza для получения дополнительной информации. Это сообщение устарело.

  • Обновлены сроки выполнения задания 7, вторник. 10 марта Джерри Мы живем в интересные времена 🙂

    Теперь, когда университет настоятельно призывает студентов покинуть кампус, мы хотим, чтобы каждый мог сделать именно это, если захочет. Признавая, что путешествовать, использовать malloc и коллгринд одновременно практически невозможно, мы продлеваем крайний срок выплаты 5%-ного бонуса до пятницы, 23:59.Мы также хотим быть справедливыми к тем, кто уже пошел на жертвы, чтобы уложиться в первоначальный срок в четверг, поэтому мы собираемся сделать следующее:

    • Те, кто представит исходный срок в четверг в 23:59, получат бонус в размере 8% вместо 5%.
    • Те, кто отправит заявку до нового крайнего срока — в пятницу в 23:59 — все равно получат 5% бонус .
    • Те, кто представит новый крайний срок льготного периода в воскресенье в 23:59, все еще могут получить полный кредит, хотя без бонуса .
  • Заключительный экзамен Пт. 20 марта 15:30–18:30 PSTПн. 9 марта Джерри Заключительный экзамен CS107 состоится в пятницу, 20 марта, по телефону , с 15:30 до 18:30 по тихоокеанскому стандартному времени . Пожалуйста, посетите веб-страницу финального экзамена для получения информации об экзамене, а также советов по обучению и обзорных материалов. Экзамен, скорее всего, будет основываться на новой версии BlueBook для финального экзамена, и мы предоставим ссылку на новую версию, как только она станет доступной. Зашифрованный файл для экзамена будет опубликован перед экзаменом, и вы будете уведомлены, когда он будет доступен.Загрузите файл заранее, чтобы подготовиться к началу экзамена. Мы предоставим пароль для разблокировки экзамена за пять минут до опубликованного времени начала и разместим этот пароль здесь и на Piazza.

  • Обновление логистики курса, вс. 8 марта Лиза и Джерри (объявление поста на площади) Мы понимаем, что в кампусе было много рекомендаций относительно личных встреч в свете нового коронавируса. Вот несколько обновлений о том, что вы можете ожидать от CS107 в последние две недели квартала:

    Часы работы помощника : Мы продолжим проводить часы помощника, как указано в Календаре Google.Все часы помощника CA будут использовать QueueStatus, где у вас есть возможность зарегистрироваться удаленно и поговорить с персоналом курса через Google Hangouts. Большинство вспомогательных часов также будут иметь физическое местонахождение (в офисе Хуана или Джерри/Лизы), но сотрудники курса, которые решат проводить удаленные часы, отметят свое местоположение как «только удаленное» в календарном событии. Редактировать: с понедельника, 9 марта, все рабочие часы работают удаленно — только в соответствии с общими правилами кампуса.
    Лекция/лаборатория : Мы не будем проводить ни лекций, ни лабораторных работ в течение мертвой недели.
    Заключительный экзамен : Заключительный экзамен будет проводиться через BlueBook и запланирован как можно ближе к нашему выпускному экзамену. Вам не обязательно находиться в кампусе, чтобы сдать экзамен, но вам потребуется постоянное подключение к Интернету. Более подробная информация будет опубликована в понедельник.
    Обзорная сессия итогового экзамена : В среду, 18 марта, с 12:15 до 3:15, во время финальной недели мы проведем обзорную сессию под руководством CA. Эта сессия будет записана. Более подробная информация будет опубликована в понедельник.

    Мы благодарим вас за терпение, пока мы думаем, как справиться с этой ситуацией как сообщество.

  • Пятничная лекция (6 марта) отменена, ср. 4 марта, Лиза В свете рекомендаций кампуса против крупномасштабных мероприятий, а также ваших сжатых сроков в конце квартала, мы решили отменить заключительную лекцию, запланированную на эту пятницу, 6 марта. Презентация размещена здесь (и на странице расписания), если вам интересно, что будет после этого курса.

    Джерри и я будем проводить вспомогательные часы во время запланированного времени лекций (12:30-13:50), так что заходите, если у вас есть вопросы по последнему заданию.Подробная информация о пересмотре выпускного экзамена под руководством CA во время финальной недели будет опубликована после получения дополнительной информации. Спасибо! 🙂

  • Задание 5 класса Выпущено ср. 4 марта, Лиза Оценки за задание 5 опубликованы на странице журнала оценок вместе с комментариями к вашим файлам README. Средний балл по заданию был 33/35 — отличная работа!

  • Задание 7 Опубликовано Пн. 2 марта, Лиза Задание 7 опубликовано на странице заданий. Подло выступать в качестве краеугольного камня для всех тем, которые мы рассмотрели в этом квартале, путем реализации нашего собственного распределителя кучи! Мы надеемся, что вам весело с ним.Задание должно быть выполнено в четверг. 12 марта в 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Задание 4 класса выпущено сб. 22 фев от Джерри Оценки за задание 4 опубликованы на странице журнала оценок вместе с отзывами о стиле заданий. Средний балл по заданию составил 88 из 92. Всем отличной дальнейшей работы!

  • промежуточных оценок, опубликованных в четверг в Gradescope. 17 февраля Джерри Мы опубликуем промежуточные оценки через Gradescope до конца сегодняшнего дня.Решения и статистика экзаменов представлены прямо здесь. Оригинальный промежуточный срок (в формате PDF) находится здесь.

  • Задание 3 класса, выпущено в четверг. 13 фев от Лиза Оценки за задание 3 опубликованы на странице журнала оценок вместе с комментариями по стилю для заданий. Средний балл по заданию был 91/95 — отличная работа!

  • промежуточных результатов CS107 с шифрованием доступны для скачивания в четверг. 13 февраля Джерри Обязательно посетите веб-страницу промежуточного экзамена еще раз и загрузите зашифрованная версия завтрашнего экзамена.Лучше сделать это заранее, так что что вы готовы идти в трещину 12:30 вечера. Также не забудьте полностью зарядить свой ноутбук заранее и возьмите с собой любое устройство, которое вы используете для двухэтапной аутентификации!

  • Задание 5 Опубликовано Пн. 10 фев от Лиза Задание 5 опубликовано на странице заданий. Он предназначен для закрепления темы с числами с плавающей запятой и ознакомления с работой с ассемблером, с упражнениями, варьирующимися от изучения реальных приложений IEEE с плавающей запятой до исследования реализации исполняемой программы без доступа к ее исходному коду.Мы надеемся, что вам весело с ним! Задание сдается в пт. 21 февраля, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Промежуточный экзамен Пт. 14 февраля 12:30-14:20 Пн. 10 фев от Лиза Промежуточный экзамен CS107 состоится в пятницу, 14 февраля, по телефону , с 12:30 до 14:20 по номеру Hewlett 200 . Пожалуйста, посетите веб-страницу промежуточного экзамена для получения информации об экзамене, а также советов по обучению. Вы также можете найти обзорные материалы, а также загрузить программное обеспечение BlueBook. Вы должны загрузить BlueBook перед экзаменом , чтобы ознакомиться с ним.Это программа, которая может управлять экзаменационными файлами в специальном формате. Зашифрованный файл промежуточного экзамена будет опубликован в четверг. 13.02 перед экзаменом. Загрузите этот файл заранее, чтобы подготовиться к началу экзамена. Мы предоставим пароль для разблокировки экзамена в начале. Во время экзамена будет доступно ограниченное количество розеток для зарядки.

  • Задание 2 класса, выпущено в четверг. 6 фев от Лиза Оценки за задание 2 опубликованы на странице журнала оценок вместе с комментариями по стилю для заданий.Медиана по заданию была 76/80 - отлично сделано!

  • Задание 4 Опубликовано Пн. 3 фев от Джерри Задание 4 опубликовано на странице заданий. Он предназначен для закрепления темы обобщений, указателей void * и указателей на функции, с упражнениями, начиная от реализации вашей собственной версии команды ls до реализации вашей собственной версии команды sort . Мы надеемся, что вам весело с ним! Задание сдается в понедельник. 10 февраля в 23:59 по тихоокеанскому стандартному времени.Подробнее вы можете узнать на странице задания.

  • Задание 1 класса, опубликованное сегодня днем, понедельник. 27 января Джерри Мы только что выпустили подавляющее большинство оценок за Задание 1, а остальные будут опубликованы примерно в 21:00. Медиана по заданию была 74 из 80! Это отличная работа, так что продолжайте делать то, что вы делаете!

  • Задание 3 Опубликовано Пн. 27 января, Лиза Задание 3 опубликовано на странице заданий. Он предназначен для закрепления темы указателей, массивов и распределения кучи с упражнениями, варьирующимися от реализации удобной версии функции ввода-вывода файла C до реализации ваших собственных версий команд Unix tail и uniq .Мы надеемся, что вам весело с ним! Задание сдается в понедельник. 3 февраля в 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Обзор исследований в области образования Ср. 22 января Джерри Два бывших студента CS107 заинтересованы в создании платформы, которую студенты могли бы использовать для улучшения того, как они используют информацию из лекций в классе. Они просят вас потратить 30 секунд (самое большее, я обещаю), чтобы заполнить этот опрос.

  • Social Good Fellowship Вт. 21 января Джерри Бывший студент CS107 только что связался с нами и попросил определить стипендию CS + Social Good Fellowship.Стипендия обеспечивает финансирование, чтобы студенты могли работать на технических должностях в общественных организациях. Заявки принимаются до 4 февраля -го года.

  • Задание 0 Оценки ВыпущеноПн. 20 января Джерри Оценки за задание 0 были опубликованы на странице журнала оценок вместе с отзывами о стиле для заданий. Средний балл по заданию был 25/25, что во всех отношениях потрясающе! Так держать!

  • Задание 2 Опубликовано Пн. 20 января, Лиза Задание 2 опубликовано на странице заданий.Он предназначен для закрепления темы C Strings с упражнениями, варьирующимися от реализации инструментов для отображения переменных среды до реализации вашей собственной версии Unix-команды «what». Мы надеемся, что вам весело с ним! Задание должно быть выполнено в понедельник, 27 января, в 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Бесплатное обучение CTL Вт. 14 января Джерри Хотите встретиться с опытным коллегой, чтобы обсудить концепции курса, обдумать набор задач или подготовиться к предстоящему экзамену? CTL предлагает репетиторство по предварительной записи для CS107 (и некоторых других курсов, включая CS103 и CS109).Чтобы получить дополнительную информацию и назначить встречу, посетите их встречи с репетиторами и страницу расписания прямо здесь.

  • Задание 1 Опубликовано Пн. 13 января Джерри Задание 1 опубликовано на странице заданий. Он предназначен для закрепления тем битов, побитовых операторов и целочисленных представлений с упражнениями, начиная от реализации основного алгоритма «насыщенной арифметики» и заканчивая моделированием ячеек на битовом уровне и современным кодированием символов. Мы надеемся, что вам весело с ним! Задание должно быть выполнено в понедельник, 20 января, в 23:59 по тихоокеанскому стандартному времени.Подробнее вы можете узнать на странице задания.

  • Задание 0 Опубликовано Пн. 6 января, Лиза Задание 0 опубликовано на странице заданий. Он задуман как введение в Unix и C, с упражнениями, варьирующимися от выявления лиц, получивших несанкционированный доступ к файловой системе, до изменения предоставленной программы C для приема аргументов командной строки. Надеемся, вам весело! Задание сдается в понедельник. 13 января в 23:59 по тихоокеанскому стандартному времени, нет льготного периода для этого задания , поэтому не забудьте отправить его до крайнего срока.

    Время работы помощника теперь опубликовано на странице Получение помощи и начнется завтра, во вторник, 7 января.

  • Место проведения курса CS107A Пн. 6 января, Лиза CS107A, курс Pathfinder для CS107, собирается по понедельникам в 3:00 в Littlefield 103 (начиная с сегодняшнего дня, понедельник, 6 января). Для получения дополнительной информации о CS107A и CS107E ознакомьтесь с часто задаваемыми вопросами.

  • Добро пожаловать! Чт. 2 января, Лиза Добро пожаловать в CS107! Наша первая лекция состоится в понедельник, 6 января -го года в 12:30 в Hewlett 200.Мы с нетерпением ждем встречи с вами и вместе начинаем отличный квартал! Если у вас есть вопросы по курсу до начала четверти, пожалуйста, не стесняйтесь проверить часто задаваемые вопросы. В нем рассматриваются вопросы о записанных лекциях, конфликтующих классах, CS107E, CS107A и многом другом. Мы надеемся, что вы найдете это полезным!

  • CS107 Компьютерная организация и системы

  • Выставлены итоговые оценки за курс Вт. 18 июня Ник Итоговые оценки загружены в Axess. Проверьте свою электронную почту Стэнфорда для получения более подробной информации об оценках.Хорошего лета! Надеемся, вам понравился курс!

  • Итоговые оценки за экзамен опубликованы во вторник. 18 июня Ник Итоговые результаты экзаменов были опубликованы через Gradescope, веб-сайт онлайн-оценки курсов. Вы можете найти дополнительную информацию о статистике экзамена, о том, как увидеть свой балл, а также информацию о запросах на изменение оценки на веб-странице экзамена. Отличная работа на экзамене!

  • Задание 7 класса Выпущено вт. 18 июня Ник Оценки за задание 7 опубликованы на странице журнала оценок вместе с комментариями к вашей работе.Медиана по заданию составила 102/112. Поздравляем с завершением работы над распределителями кучи!

  • Задание 6 класса Выпущено Пт. 7 июня Ник Оценки за задание 6 опубликованы на странице журнала оценок вместе с комментариями к вашей работе. Медиана по заданию составила 78/84. Поздравляем с обезвреживанием бомб и обнаружением уязвимостей в банкомате!

  • Выпускной экзамен Ср. 12.06 12:15-15:15 PST в Hewlett 200 Wed. 5 июня Ник Заключительный экзамен CS107 состоится в среду, 12 июня, по телефону , с 12:15 до 15:15 по тихоокеанскому стандартному времени в Hewlett 200 .Пожалуйста, посетите веб-страницу финального экзамена для получения информации об экзамене, а также советов по обучению и обзорных материалов. Экзамен будет основываться на той же версии BlueBook, которую вы ранее загрузили для промежуточного семестра. Зашифрованный файл для экзамена будет опубликован перед экзаменом, и вы будете уведомлены, когда он будет доступен. Загрузите файл заранее, чтобы подготовиться к началу экзамена. Мы предоставим пароль для разблокировки экзамена в начале.

    Если у вас есть академическое жилье (напр.грамм. OAE) или приспособления для занятий спортом, или если у вас нет рабочего ноутбука для экзамена, сообщите нам об этом по телефону в четверг, 6 июня, в 23:59 по тихоокеанскому стандартному времени . Во время экзамена будет доступно ограниченное количество розеток для зарядки.

    Мы также проведем сессию итогового экзамена CS107 в понедельник . 10 июня с 12:30 до 13:30 по тихоокеанскому стандартному времени в 320-105 . После этого будет доступна видеозапись сеанса обзора. Пожалуйста, приходите с вопросами!

  • Задание 5 класса Выпущено вт.28 мая Ник Оценки за задание 5 опубликованы на странице журнала оценок вместе с комментариями к вашим файлам README. Средний балл по заданию был 33/35 — отличная работа!

  • Задание 7 Опубликовано Пн. 27 мая Ник Задание 7 опубликовано на странице заданий. Подло выступать в качестве краеугольного камня для всех тем, которые мы рассмотрели в этом квартале, путем реализации нашего собственного распределителя кучи! Мы надеемся, что вам весело с ним. Задание сдается в среду. 5 июня в 23:59 по тихоокеанскому стандартному времени. Поскольку сейчас конец квартала, льготный период для этого назначения отсутствует. Более подробную информацию можно найти на странице задания. Мы также разместили видеозапись лекции с дополнительным материалом, необходимым для выполнения задания – ссылку на видео и слайды вы можете найти на странице Расписание.

  • Задание 4 класса выпущено сб. 18 мая Ник Оценки за задание 4 опубликованы на странице журнала оценок вместе с отзывами о стиле заданий. Медиана по заданию была 88/92 — отличная работа!

  • Задание 6 Опубликовано Сб.18 мая Ник Задание 6 опубликовано на странице заданий. Он предназначен для усиления темы перевода сборки и реверс-инжиниринга. В задании вы будете изучать уязвимости в предоставленной программе банкомата и обезвреживать исполняемый файл «бинарной бомбы» без доступа к его исходному коду. Мы надеемся, что вам весело с ним! Задание сдается в понедельник. 27 мая, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Страница с советами после промежуточного экзамена Опубликовано в понедельник.13 мая Ник Мы разместили страницу, содержащую информацию о часто задаваемых вопросах в последние недели курса, например, о том, как интерпретировать оценки за курс, как добиться успеха в оставшейся части курса и т. д. Мы надеемся, что вы найдете это полезным!

  • промежуточные оценки опубликованы пн. 13 мая Ник Промежуточные баллы были опубликованы через Gradescope, веб-сайт онлайн-оценки курсов. Вы можете найти дополнительную информацию о статистике экзамена, о том, как увидеть свой балл, а также информацию о запросах на изменение оценки на веб-странице промежуточного экзамена.Отличная работа на экзамене!

  • Промежуточный экзамен готов к загрузке Пт. 10 мая от Ника Файл BlueBook промежуточного экзамена CS107 теперь можно загрузить с веб-страницы промежуточного экзамена. Вы должны загрузить BlueBook и файл экзамена, соответствующий вашему экзаменационному месту , до экзамена . Мы предоставим пароль для разблокировки экзамена в начале. Удачи на экзамене!

  • Задание 3 класса, выпущено в четверг. 9 мая от Ника Оценки за задание 3 опубликованы на странице журнала оценок вместе с комментариями по стилю для заданий.Средний балл по заданию был 91/95 — отличная работа!

  • Задание 5 Опубликовано Вт. 7 мая от Ника Задание 5 опубликовано на странице заданий. Он предназначен для закрепления темы с числами с плавающей запятой и ознакомления с работой с ассемблером, с упражнениями, варьирующимися от изучения реальных приложений IEEE с плавающей запятой до исследования реализации исполняемой программы без доступа к ее исходному коду. Мы надеемся, что вам весело с ним! Задание сдается в пт.17 мая, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Промежуточный экзамен Пт. 5/10 12:30-14:20 Пт. 3 мая от Ника Промежуточный экзамен CS107 состоится в пятницу, 10 мая, по телефону , с 12:30 до 14:20 в Nvidia Aud. / 420-041 (в зависимости от фамилии). Пожалуйста, посетите веб-страницу промежуточного экзамена для получения информации об экзамене, а также советов по обучению. Вы также можете найти обзорные материалы, а также загрузить программное обеспечение BlueBook. Вы должны загрузить BlueBook перед экзаменом , чтобы ознакомиться с ним.Это программа, которая может управлять экзаменационными файлами в специальном формате. Зашифрованный файл промежуточного экзамена будет опубликован в четверг. 5/9 перед экзаменом. Загрузите этот файл заранее, чтобы подготовиться к началу экзамена. Мы предоставим пароль для разблокировки экзамена в начале.

    Если у вас есть академические приспособления (например, OAE) или спортивные приспособления, или если у вас нет рабочего ноутбука для экзамена, сообщите нам об этом по телефону в воскресенье, 5 мая, в 23:59 по тихоокеанскому стандартному времени .Во время экзамена будет доступно ограниченное количество розеток для зарядки.

  • Задание 2 класса, выпущено в четверг. 2 мая от Ника Оценки за задание 2 опубликованы на странице журнала оценок вместе с комментариями по стилю для заданий. Медиана по заданию была 76/80 - отлично сделано!

  • Задание 4 Опубликовано Вт. 30 апреля Ник Задание 4 опубликовано на странице заданий. Он предназначен для закрепления темы дженериков, указателей void * и указателей на функции с упражнениями, варьирующимися от реализации вашей собственной версии команды ls до реализации вашей собственной версии команды sort .Мы надеемся, что вам весело с ним! Задание сдается в понедельник. 06.05, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Задание 3 Опубликовано Вт. 23 апреля Ник Задание 3 опубликовано на странице заданий. Он предназначен для закрепления темы указателей, массивов и распределения кучи с упражнениями, варьирующимися от реализации удобной версии функции ввода-вывода файла C до реализации ваших собственных версий команд Unix «tail» и «uniq». Мы надеемся, что вам весело с ним! Задание сдается в понедельник.29 апреля, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Задание 1 класса выпущено пн. 22 апреля Ник Оценки за задание 1 опубликованы на странице журнала оценок вместе с комментариями по стилю заданий. Средний балл по заданию составил 77/80 — отличная работа!

  • Задание 2 Опубликовано Вт. 16 апреля Ник Задание 2 опубликовано на странице заданий. Он предназначен для закрепления темы C Strings с упражнениями, варьирующимися от реализации инструментов для отображения переменных среды до реализации вашей собственной версии Unix-команды «what».Мы надеемся, что вам весело с ним! Задание сдается в понедельник. 22 апреля, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Подать заявку на должность начальника отдела! Пн. 15 апреля Ник Приложение открыто для подачи заявки на должность руководителя секции CS106, начиная с осени 2019 года! Руководство секцией - это обязательство на две четверти, но вы все равно можете подать заявку, если осенью планируете поехать за границу. Крайний срок для студентов CS107 — четверг, 25 апреля, 23:59. Подать заявку на https://cs198.stanford.edu/cs198/auth/forms/FillForm.aspx и, если у вас есть вопросы, пишите на [email protected]!

  • Задание 0 оценок выпущено пн. 15 апреля Ник Оценки за задание 0 были опубликованы на странице журнала оценок вместе с отзывами о стиле для заданий. Средний балл по заданию был 25/25 — вперед!

  • Задание 1 Опубликовано Вт. 9 апреля Ник Задание 1 опубликовано на странице заданий. Он предназначен для закрепления тем битов, побитовых операторов и целочисленных представлений с упражнениями, начиная от реализации основного алгоритма «насыщенной арифметики» и заканчивая моделированием ячеек на битовом уровне и современным кодированием символов.Мы надеемся, что вам весело с ним! Задание сдается в понедельник. 15 апреля, 23:59 по тихоокеанскому стандартному времени. Подробнее вы можете узнать на странице задания.

  • Репетиторство в Центре преподавания и обучения Чт. 4 апреля Ник Алекс Айерс, руководитель программы взаимного обучения в Центре преподавания и обучения, попросил нас опубликовать следующую информацию о обучении ниже: «Бесплатное обучение VPTL: хотите встретиться с опытным коллегой, чтобы обсудить концепции курса, продумать решить проблему или подготовиться к предстоящему экзамену? VPTL предлагает бесплатное обучение по предварительной записи для CS107 в дополнение к репетиторству по ряду других курсов.Чтобы получить дополнительную информацию и назначить встречу, посетите нашу страницу назначений репетиторов и расписания занятий.

  • Запись в лабораторию открыта по средам. 3 апреля Ник Запись в лабораторию открыта! Вы можете зарегистрироваться по ссылке на странице Лаборатории. Регистрация осуществляется в порядке очереди, поэтому мы рекомендуем регистрироваться заранее, если у вас много ограничений по расписанию. Вы также можете использовать страницу регистрации лаборатории, чтобы переключиться или отказаться от своей лаборатории. Лаборатории начнутся на следующей неделе.

  • Расписание лаборатории опубликовано Пн.1 апреля от Ника Регистрация в лаборатории открывается в среду вечером, поэтому мы разместили наши текущие предложения лабораторного времени на веб-странице Лаборатории, если вы хотите заранее спланировать свои предпочтения по датам/времени. Мы отправим записку, когда будет открыта регистрация в лабораторию.

  • Задание 0 Опубликовано Пн. 1 апреля от Ника Задание 0 опубликовано на странице заданий. Он задуман как введение в Unix и C, с упражнениями, варьирующимися от выявления лиц, получивших несанкционированный доступ к файловой системе, до изменения предоставленной программы C для приема аргументов командной строки.Надеемся, вам весело! Задание сдается в понедельник. 8 апреля в 23:59 по тихоокеанскому стандартному времени, и для этого задания нет льготного периода , поэтому не забудьте отправить его до крайнего срока.

  • Добро пожаловать! Солнце. 31 марта от Ника Добро пожаловать в CS107! Наша первая лекция состоится в понедельник, 1 апреля, в 12:30 в NVIDIA Auditorium. Мы с нетерпением ждем встречи с вами и вместе начинаем отличный квартал! Если у вас есть вопросы по курсу до начала четверти, пожалуйста, не стесняйтесь проверить часто задаваемые вопросы.В нем рассматриваются вопросы о записанных лекциях, конфликтующих классах, CS107E, CS107A и многом другом. Мы надеемся, что вы найдете это полезным!

  • CS107 Компьютерная организация и системы

  • Итоговые оценки за курс опубликованы ср. 24 мар от Лиза Итоговые оценки загружены в Axess. Хороших весенних каникул! Надеемся, вам понравился курс!

  • Окончательные оценки проекта опубликованы во вторник. 23 мар от Лиза Итоговые оценки за проект опубликованы на странице журнала оценок вместе с комментариями к вашей работе.Квартили оценок функциональной части проекта (включая тесты функциональности, файл readme и оценки для dump_heap и validate_heap ) были следующими (/122): 1-й квартиль = 97, второй квартиль = 115, третий квартиль = 118. Поздравляем с завершением работы над распределителями кучи!

  • Задание 5 класса Выпущено ср. 17 мар от Лиза Оценки за задание 5 были опубликованы на странице журнала оценок вместе с отзывами о файле readme.Квартиль оценок был следующим (/84): 1-й квартиль = 73, второй квартиль = 80, третий квартиль = 82. Поздравляем с обезвреживанием бомб и обнаружением уязвимостей в банкомате!

  • Резюме страницы CS107 Опубликовано Mon. 15 мар от Лиза В качестве дополнительного ресурса к нашей заключительной заключительной лекции мы разместили страницу резюме CS107, на которой подведены итоги всего, что мы сделали в этом квартале, куда вы можете пойти дальше, а также способы дальнейшего изучения материала CS107, если вам интересно. Мы рекомендуем вам проверить это! Мы также надеемся, что вы найдете время, чтобы заполнить форму оценки курса CS 107 в конце четверти.Мы искренне ценим любые ваши отзывы о курсе и читаем каждый отзыв, который мы получаем. Мы всегда ищем способы стать лучше! Чтобы заполнить оценку курса, перейдите в Axess, перейдите на вкладку «Студент» и выберите «Оценка курса и раздела». Заранее благодарим вас за любой отзыв!

  • Финальный проект Опубликовано Пт. 5 мар от Лиза Итоговый проект опубликован на странице заданий. Подло выступать в качестве краеугольного камня для всех тем, которые мы рассмотрели в этом квартале, путем реализации нашего собственного распределителя кучи! Вы будете реализовывать как неявный распределитель свободных списков, так и явный распределитель свободных списков! Это индивидуальный проект.Мы надеемся, что вам весело с ним. Это должно произойти в среду, 17 марта, в 23:59 по тихоокеанскому времени. Поздние заявки будут приниматься до пятницы, 19 марта, 23:59 по тихоокеанскому времени.
    Примечание . В рамках требования CR в CS107 необходимо реализовать неявный распределитель списка свободных мест, который очищает 70% функциональных точек (подробнее на странице назначения).

  • Обновления журнала оценок Чт. 4 марта, Лиза Теперь вы можете посетить страницу журнала оценок, чтобы увидеть свой текущий окончательный взвешенный балл, включающий лабораторные работы, лекции, MQA и задания через assign4.Больше информации в этом посте Эда и в нашей программе. Эта оценка будет снова обновлена ​​после того, как мы закончим оценивание assign5.

  • Оценки за середину четверти опубликованы, ср. 3 марта, Лиза Оценочные баллы за середину четверти были опубликованы через Gradescope, веб-сайт онлайн-оценки курсов. Решения и статистика экзаменов здесь. Первоначальная оценка за середину квартала (в формате PDF) находится здесь. Дополнительные сведения о подаче запросов на изменение рейтинга см. на веб-странице оценки в середине квартала. Потрясающая работа по оценке!

  • Лаборатории на этой неделе нет Вт.2 марта, Лиза Наша последняя лаборатория будет на следующей неделе. Тогда увидимся!

  • Задание 4 класса выпущено пн. 1 марта от Лизы Оценки за задание 4 опубликованы на странице журнала оценок вместе с отзывами о стиле заданий. Квартиль баллов по функциональной части задания был следующим (/92): 1-й квартиль = 79, второй квартиль = 88, третий квартиль = 92. Отличная работа!

  • Оценка за полугодие Следующая неделя Чт. 18 фев от Лиза Оценка CS107 в середине квартала состоится на следующей неделе с окном оценки с среды 24 февраля в 13:00 по тихоокеанскому времени до пятницы 26 февраля в 13:00 по тихоокеанскому времени , и вы можете пройти оценку в течение любого 3-часового блока в этом окне.Пожалуйста, посетите веб-страницу оценки в середине четверти для получения информации об оценке, а также советов по изучению. Вы также можете найти обзорные материалы, а также загрузить программное обеспечение BlueBook. Вы должны загрузить BlueBook как можно скорее, чтобы ознакомиться с ним. Это программа, которая может управлять файлами оценок в специальном формате. Зашифрованный файл для оценки будет доступен на следующей неделе в начале окна оценки.

    При наличии академических общежитий , эл.грамм. через OAE и еще не сообщили нам об этом, пожалуйста, сообщите нам об этом как можно скорее.

  • Задание 3 степени, выпущенное вс. 21 февраля от Лизы Оценки за задание 3 опубликованы на странице журнала оценок вместе с комментариями по стилю для заданий. Квартиль баллов по функциональной части задания был следующим (/95): 1-й квартиль = 86, второй квартиль = 91, третий квартиль = 95. Вперед!

  • Задание 5 Опубликовано Чт. фев.18 от Лизы Задание 5 опубликовано на странице заданий. Он предназначен для усиления темы перевода сборки и реверс-инжиниринга. Это задание состоит из двух частей. Первая часть посвящена программе снятия средств в банкоматах, содержащей некоторые уязвимости — вам нужно будет использовать свои навыки C и ассемблера, чтобы найти и продемонстрировать, как использовать эти уязвимости. Вторая часть — это двоичная программа-бомба, где вам дается исполняемая программа-бомба, которую нужно «деактивировать», используя ваши навыки сборки и обратного проектирования.Эти проблемы подобны «головоломкам» C/ассемблера, которые нужно решать, и мы надеемся, что вам понравится их решать и изучать этот материал так же, как нам нравилось их создавать! Задание сдается в пт. 5 марта в 23:59 по тихоокеанскому времени. Более подробно вы можете узнать на странице заданий.

  • Задание 2 класса выпущено сб. 13 февраля, Лиза Оценки за задание 2 опубликованы на странице журнала оценок вместе с комментариями по стилю заданий. Квартиль баллов по функциональной части задания был следующим (/80): 1-й квартиль = 72, второй квартиль = 76, третий квартиль = 80.Хорошо сделано!

  • Задание 4 Опубликовано Ср. 10 фев от Лиза Задание 4 опубликовано на странице заданий. Он предназначен для закрепления темы обобщений, указателей void * и указателей на функции, с упражнениями, начиная от реализации вашей собственной версии команды ls до реализации вашей собственной версии команды sort . Мы надеемся, что вам весело с ним! Задание сдается в среду. 17 февраля, 23:59 по тихоокеанскому времени. Подробнее вы можете узнать на странице заданий.

  • Задание 3 Опубликовано Ср. 3 февраля, Лиза Задание 3 опубликовано на странице заданий. Вы будете практиковать больше указателей, массивов и распределения кучи, реализуя функцию файлового ввода-вывода и свои собственные версии команд UNIX tail и uniq. Задание сдается в среду. 10 февраля, 23:59 по тихоокеанскому времени.
    Более подробную информацию вы можете найти на странице заданий.

    Примечание : Начиная с assign3, вы должны заполнять вопросы QueueStatus для любых вопросов по отладке в рабочие часы.Мы сосредоточены на том, чтобы поддерживать вас, чтобы вы могли отслеживать свои собственные ошибки, и наша цель — помочь вам взять на себя ответственность за свой собственный код и управлять собственной отладкой. Пожалуйста, спросите нас, как лучше всего использовать инструменты, какие стратегии следует учитывать и как улучшить процесс отладки. Два вопроса, которые необходимо заполнить в QueueStatus: (1) Какой у вас вопрос? Пожалуйста, предоставьте как можно больше информации. и (2) Какие шаги вы уже предприняли, чтобы попытаться ответить на ваш вопрос? (например, запуск gdb/valgrind, чтение страницы ресурсов и т. д.). Эта информация необходима для помощи в вопросах отладки. Если вы не предоставите достаточно информации о QueueStatus, мы можем попросить вас повторно зарегистрироваться в очереди, как только вы сможете предоставить дополнительную информацию.

  • Задание 1 класс вышло ср. 3 февраля, Лиза Оценки за задание 1 опубликованы на странице журнала оценок вместе с комментариями по стилю заданий. Квартили баллов по функциональности assign1 были (/80): 1-й квартиль = 70, второй квартиль = 77, третий квартиль = 80.Путь!

  • Задание 2 Опубликовано Ср. 27 января, Лиза Задание 2 опубликовано! Он призван укрепить тему строк C, и вы будете анализировать переменные среды и реализовывать свою собственную версию Unix-команды «what». Мы надеемся, что вам весело с ним! Задание сдается в среду. 3 февраля в 23:59 по тихоокеанскому времени. Подробнее вы можете узнать на странице заданий.

  • Задание 0 классов выпущено Вт. 26 января Лиза Оценки за задание 0 были опубликованы на странице журнала оценок вместе с отзывами о стиле для заданий.Средний балл по заданию был 25/25, что во всех отношениях потрясающе. Так держать!

  • Бесплатное онлайн-обучение CTL Вт. 26 января Лиза Центр преподавания и обучения обратился к нам с просьбой поделиться следующим объявлением о бесплатном обучении. Не стесняйтесь связаться с ними, если вы заинтересованы!

    Хотите встретиться с опытным коллегой, чтобы обсудить концепции курса, обдумать набор задач или подготовиться к предстоящему экзамену? CTL предлагает репетиторство по предварительной записи для CS 107 в дополнение к репетиторству по ряду других курсов.Чтобы получить дополнительную информацию и назначить встречу, посетите нашу страницу назначений репетиторов и расписания занятий. У нас также есть множество ресурсов для дистанционного обучения и академический коучинг, которые помогут удовлетворить все ваши потребности в обучении!

  • Задание 1 Опубликовано Пн. 18 января, Лиза Задание 1 опубликовано на странице заданий. Он предназначен для закрепления тем битов, побитовых операторов и целочисленных представлений с упражнениями, начиная от реализации основного алгоритма «насыщенной арифметики» и заканчивая моделированием ячеек на битовом уровне и современным кодированием символов.Мы надеемся, что вам весело с ним! Задание сдается в среду. 27 января, 23:59 по тихоокеанскому времени. Подробнее вы можете узнать на странице задания.

    Когда вы начнете работать, мы хотим включить напоминание о руководстве по стилю курса; он содержит подробный справочник о том, как сделать так, чтобы ваши программы выглядели великолепно! Кроме того, через часы помощи ТА и дискуссионный форум мы сосредоточимся на поддержке вас, чтобы вы могли отследить свои собственные ошибки. Пожалуйста, спросите нас, как лучше всего использовать инструменты (например, совершенно новый GDB!), какие стратегии следует учитывать, и посоветуйте, как улучшить процесс отладки или отследить вашу ошибку.Если у вас есть вопросы по отладке в часы работы помощника, обязательно сначала соберите информацию и изучите проблему самостоятельно, а затем заполните вопросы QueueStatus этой информацией. Начиная с будущего задания, нам потребуется эта информация при подписке на вспомогательные часы для помощи в отладке, поэтому обязательно предоставьте как можно больше информации.

  • Подпишитесь на TreeHacks! Солнце. 17 января, Лиза Выпускница CS107 попросила поделиться следующим объявлением со всеми студентами CS107: TreeHacks, крупнейший ежегодный хакатон в Стэнфорде! Заявки открыты на www.treehacks.com до 24 января — студенты Стэнфорда получают доступ автоматически! TreeHacks удобен для начинающих, стремится поддерживать разнообразие и инклюзивность, а также содержит множество невероятных возможностей для обучения, которые подпитывают ваше высокоэффективное творение. Дополнительную информацию о задачах этого года и о подаче заявок можно найти на сайте treehacks.com, в Instagram или Facebook. Приходите, чтобы завести друзей на всю жизнь, познакомиться с представителями будущих работодателей и построить то, что вам действительно небезразлично.

  • График работы помощника опубликован Пн.11 января, Лиза Мы разместили информацию о часах помощи на странице Получение помощи. В этом квартале мы будем использовать инструмент под названием Nooks, чтобы облегчить рабочие часы помощника и смены персонала во время вспомогательных часов. Пожалуйста, присоединяйтесь к нашему сообществу Nooks, чтобы работать с другими студентами и получать помощь от ассистентов! Вам не нужно задавать вопросы в Helper Hours — не стесняйтесь заходить и общаться с другими в любое время! Вы также можете увидеть календарь работы помощника персонала на странице Получение помощи.

  • Задание 0 Опубликовано Пн.11 января, Лиза Задание 0 опубликовано на странице заданий. Он задуман как введение в Unix и C, с упражнениями, варьирующимися от выявления лиц, получивших несанкционированный доступ к файловой системе, до изменения предоставленной программы C для приема аргументов командной строки. Надеемся, вам весело! Задание сдается в понедельник. 18 января в 23:59 по тихоокеанскому времени, и для этого задания не принимаются просроченные заявки (поздние дни или по другим причинам) , поэтому, пожалуйста, не забудьте отправить их до крайнего срока.

  • Подать заявку на CS107A (ACE/Pathfinders) Пн.4 января, автор Lisa (на основе сообщения CS106B, написанного Соней Джонсон-Ю) CS107A, также известный как CS107 ACE, представляет собой дополнительный раздел из 1 модуля, предназначенный для создания более прочной основы в области компьютерных наук. Студенты, участвующие в ACE, будут посещать дополнительный еженедельный раздел и участвовать в специальных рабочих часах и специальных обзорных сессиях ACE. Секция запланирована на вторник и четверг с 10 до 11:00 по тихоокеанскому времени, но асинхронный вариант будет доступен для учащихся в международных часовых поясах или с конфликтами в классе.

    ACE является одной из инициатив Инженерной школы по обеспечению справедливости и инклюзивности. Мы особенно хотим предоставить возможность учащимся из малообеспеченных слоев общества или всем, кто считает, что им может понадобиться дополнительная поддержка для достижения успеха. Мы ограничиваем регистрацию, чтобы разрешить небольшие классы, которые позволяют учащимся взаимодействовать один на один с ЦС.

    Если вы хотите присоединиться к секции ACE, подайте заявку онлайн — нажмите здесь. Приложение будет открыто до 17:00 по тихоокеанскому времени в пятницу, 15 января.До публикации результатов заявки любой учащийся, который подает заявку или планирует подать заявку, должен посетить секции CS 107A. Дополнительную информацию о CS107A можно найти на странице часто задаваемых вопросов. Если у вас есть дополнительные вопросы об ACE, обращайтесь к Эндрю Бенсону (CS107A CA) по адресу [email protected]

  • Добро пожаловать! Пн. 4 января, Лиза Добро пожаловать в CS107! Занятия стартуют дистанционно в понедельник 11 января -го . Мы с нетерпением ждем встречи с вами и вместе начинаем отличный квартал! У нас будет больше подробностей о формате удаленного осеннего предложения CS107.А пока, пожалуйста, ознакомьтесь с обновленным FAQ. В нем рассматриваются вопросы о записанных лекциях, конфликтующих классах, CS107E, CS107A и многом другом. Мы надеемся, что вы найдете это полезным! Другие детали и правила курса могут быть изменены, поэтому следите за обновлениями.

  • CS107 Начало работы

    Написано Крисом Греггом, Джули Зеленски и другими, с изменениями Ника Трокколи и Лизы Ян

    В этом руководстве описаны все шаги, необходимые для начала работы над вашей первой программой для CS107.Вы завершите все свои программы для CS107 на кластере миф , который представляет собой набор компьютеров в Gates B08 под управлением Linux (Ubuntu 14) и с установленными различными инструментами с открытым исходным кодом ( gcc , gdb и т. д.), которые мы будем использовать. Эти системы объединены в сеть и используют общий набор учетных записей (ваш идентификатор/пароль SUNet) и имеют общую файловую систему AFS. В кластере около 30 машин с индивидуальными именами миф2 , миф3 и так далее. Независимо от того, в какой миф вы войдете, у вас будет доступ к одному и тому же установленному программному обеспечению, вашему домашнему каталогу и всем вашим файлам.

    Первый шаг — настроить свой компьютер для удаленного входа в миф . Вход в систему с помощью команды под названием ssh позволит вам работать на мифических компьютерах так, как будто вы физически находитесь в комнате Gates B08. Хотя некоторая версия ssh доступна на всех типах компьютеров, точные детали этого шага будут различаться в зависимости от того, какой у вас компьютер.

    Нажмите для получения инструкций по установке

    Если вы успешно выполнили эти инструкции и вошли в миф, вы должны увидеть что-то вроде этого:

      =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
     миф57.Стэнфорд.edu
     Ubuntu 20.04 (5.4.0-70-общий)
     8 процессоров Intel(R) Core(TM) i7-7700K с тактовой частотой 4,20 ГГц, 31,24 ГБ ОЗУ, 31,87 ГБ подкачки
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=
       -> Чтобы получить помощь по SUNetID, AFS или каталогам классов, позвоните по номеру 725-HELP или посетите веб-сайт
          http://helpsu.stanford.edu
       -> При проблемах с аппаратным обеспечением или локальным программным обеспечением/ОС посетите
          http://support.cs.stanford.edu
       -> За исключением некоторых писем, связанных с курсом, мифы не могут
          использоваться для отправки или получения электронной почты
       -> Мифы не для рабочих нагрузок с интенсивным использованием ЦП.Для альтернативы
          компьютеры см. http://farmshare.stanford.edu
       -> Новые мифы: миф51 - 66
    
    [email protected]:~$
      

    Часть "myth57" может называть другой миф (myth2 или миф22 и т.д.). Помните, что Gates B08 содержит множество мифических машин. Когда вы подключаетесь по ssh к «myth.stanford.edu» в качестве общего имени, вы случайным образом назначаетесь одному из мифов, который в настоящее время больше всего простаивает (наименьшее количество людей пытается его использовать). Это приветственное сообщение при входе просто говорит вам, какой из них вам был назначен.Вы также можете подключиться к определенному мифу по SSH, используя имя этого мифа (например, ssh [email protected] ), но обычно вам не нужно этого делать.

    Когда вы работаете через ssh , не забывайте сохранять как можно раньше и чаще. Если вы отключитесь от ssh во время работы, вы потенциально потеряете всю работу до последнего сохранения.

    Когда вы будете готовы выйти из системы, вы можете просто закрыть окно или ввести «logout», чтобы выйти из системы.

    Когда вы работаете и вводите команды, если ваша командная строка становится слишком загроможденной, вы можете использовать команду clear для очистки текущего отображаемого вывода.Чтобы выполнить более глубокую очистку, вы можете использовать команду reset , которая полностью повторно инициализирует дисплей. Команда reset полезна, если ваш ввод-вывод каким-то образом не совпадает, но очистить будет быстрее и будет работать для большинства случаев использования.

    Мы будем использовать различные инструменты, уже установленные на мифических машинах, для работы над программами. Во-первых, нам нужно настроить их с правильными настройками.

    Эмакс

    Emacs — это текстовый редактор, который мы будем использовать в CS107 для редактирования файлов на мифических машинах.Во-первых, мы настроим Emacs для таких вещей, как управление мышью, отображение номеров строк, стандартизация отступов и т. д. Для этого сразу после входа в миф выполните следующую команду:

      wget https://cs107.stanford.edu/resources/sample_emacs -O ~/.emacs
      

    emacs ищет в вашей системе специальный файл .emacs , чтобы узнать, какие настройки вам нужны, и эта команда загружает наш готовый файл .emacs и помещает его в вашу систему.Если вы этого не сделаете, вы не сможете использовать некоторые сочетания клавиш и команды, выделенные в лекции и руководствах. Если приведенная выше команда сработала правильно, вы должны увидеть что-то вроде следующего, выведенного на ваш терминал:

      --2020-09-14 14:08:35-- https://cs107.stanford.edu/resources/sample_emacs
    Разрешение cs107.stanford.edu (cs107.stanford.edu)... 171.67.215.200
    Подключение к cs107.stanford.edu (cs107.stanford.edu)|171.67.215.200|:443... подключено.
    ... БОЛЬШЕ ТЕКСТА ЗДЕСЬ...
    Сохранение в: ‘/afs/ir/users/t/r/troccoli/.emacs’
    
    /afs/ir/users/t/r/t 100%[===================>] 1,45 КБ --.-КБ/с в 0 с
    
    14.09.2020, 14:08:35 (61,3 МБ/с) — «/afs/ir/users/t/r/troccoli/.emacs» сохранено [1489/1489]
      

    ГДБ

    GDB — это отладчик, который мы будем использовать в CS107 для отладки программ. Во-первых, мы настроим его для использования настроек по умолчанию CS107; это настраивает отладчик, чтобы он знал, что наша работа будет в 64-битных системах. Для этого сразу после входа в миф выполните следующую команду:

      wget https://cs107.stanford.edu/resources/sample_gdbinit -O ~/.gdbinit
      

    gdb ищет в вашей системе специальный файл .gdbinit , чтобы узнать, какие настройки вам нужны, и эта команда загружает наш готовый файл .gdbinit и помещает его в вашу систему. Если этого не сделать, некоторые действия могут не соответствовать руководствам и примерам в CS107.

    У каждого ученика есть свое личное файловое пространство на мифе. Прежде чем приступить к работе над программами CS107, рекомендуется создать папку для своей работы в этом квартале, чтобы вы знали, где ее найти.Попробуйте создать папку с именем «CS107» вот так:

      мкдир CS107
      

    Затем перейдите в эту папку следующим образом:

      компакт-диск CS107
      

    Теперь давайте попробуем сделать копию кода лекции 1, чтобы мы могли опробовать различные инструменты. Сделайте копию следующим образом:

      cp -r /usr/class/cs107/lection-code/lect01 lect01
      

    Это делает копию кода и помещает ее в папку, где вы в настоящее время называется lect01 .Зайдите в эту папку:

      компакт-диск lect01
      

    Давайте откроем программу args.c в Emacs, чтобы попробовать Emacs. Emacs — это текстовый редактор командной строки на мифических машинах. Он не единственный, но именно его мы будем изучать в этом квартале. Вы можете открыть файл в Emacs следующим образом:

      emacs args.c
      

    Попробуйте сейчас открыть эту программу в Emacs. Когда вы это сделаете, откройте наше руководство по Emacs и попробуйте некоторые команды, чтобы освоиться.Когда вы закончите, верните код в исходное состояние. Затем выйдите, введя Ctl-x Ctl-c. (Это Control и x вместе, затем Control и c вместе).

    Щелкните для руководства по Emacs

    Теперь попробуем запустить программу. Когда вы находитесь в папке проекта CS107, которую мы предоставили, введите команду make , чтобы скомпилировать все программы. Команда make ищет в текущем каталоге файл с именем Makefile с инструкциями по компиляции.Мы всегда предоставляем один для вас. Если все пойдет хорошо, вы должны увидеть что-то вроде этого:

      $ марка
    gcc -g3 -O0 -std=gnu99 -Wall $warnflags args.c -o args
    gcc -g3 -O0 -std=gnu99 -Wall $warnflags bool_fun.c -o bool_fun
    миф64:~/CS107/lect01$
      

    Теперь запустим нашу программу. Мы можем запустить программу в текущем каталоге, введя ее имя с префиксом ./ :

    .
      ./аргументы
      

    Вот оно! Вы должны увидеть что-то вроде этого:

      $ ./аргументы
    Эта программа получила 1 аргумент(ы)
    Аргумент 0: ./args
      

    Попробуйте добавить больше аргументов — вы можете передавать аргументы программе в терминале при ее запуске. Эти аргументы доступны в виде строковых параметров для основной функции вашей программы :

      $ ./args привет cs107!
    Эта программа получила 3 ​​аргумента(ов)
    Аргумент 0: ./args
    Аргумент 1: привет
    Аргумент 2: cs107!
      

    Поздравляем! Вы только что отредактировали и запустили собственную программу на C.Попробуйте вернуться к args.c , чтобы отредактировать код, снова скомпилировать его и запустить, чтобы увидеть изменения. Не забудьте всегда перекомпилировать с помощью команды make при внесении изменений! Если вы не запустите make , изменения не будут скомпилированы в вашу программу.

    alexxlab

    Добавить комментарий

    Ваш адрес email не будет опубликован.