Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
3a8bbc2
Adds seminar LMS instructions for first module
dbosk Oct 17, 2023
6ad5df3
Merge branch 'master' into v2023p2
dbosk Nov 14, 2023
401758c
Adds slides to course overview
dbosk Jan 31, 2024
e69720e
Improves 02-passwd slides for seminar
dbosk Jan 31, 2024
684dd0a
Adds WIP on anonymity module
dbosk Feb 29, 2024
182e947
Adds empty fig/ and missing .gitignore
dbosk Feb 29, 2024
182b4e4
Adds WIP on scientificity module
dbosk Feb 29, 2024
15d94bd
Clarifies the course overview
dbosk Apr 5, 2024
5347596
Switches to didactic package with sidecaptions
dbosk Apr 9, 2024
eebf154
Improves passwd
dbosk Apr 9, 2024
bbbbecd
Adda Arve's exercise on extending old software
dbosk Apr 26, 2024
6c3cdd6
Adds teaching material
dbosk Apr 26, 2024
1afd9e5
Updates final assignment and seminar
dbosk Apr 27, 2024
b308611
Merge branch 'v2024p4' into add-anonymous-communication-module
dbosk Apr 29, 2024
72ef210
Improves scientificity module
dbosk May 28, 2024
934e29b
Improves final seminar slides
dbosk Jun 4, 2024
d220c9a
Moves course-design into modules/00-intro
dbosk Nov 4, 2024
18a4bcd
Adds didactic submodule
dbosk Nov 7, 2024
a6d178a
Fixes some minor cosmetic things in intro
dbosk Nov 7, 2024
11303ab
Switches intro to use didactic package
dbosk Nov 7, 2024
0012d40
Adapts Makefiles to course-design being 00-intro
dbosk Nov 7, 2024
f63bad3
Updates intro for v2024p2
dbosk Nov 11, 2024
345500e
Adds new slides for seminar
dbosk Nov 18, 2024
8806026
Adds grade.sh to set grades for seminar participation
dbosk Nov 20, 2024
5aab8ee
Adds seminar slides on models in security
dbosk Dec 9, 2024
e43e212
Adds reflection assignment for scientificity
dbosk Dec 11, 2024
73d9a53
Adds first working grading script
dbosk Dec 19, 2024
e61faed
Adds grading script for grading seminar participation
dbosk Dec 19, 2024
d6705f1
Adds feedback for incomplete participation in seminars
dbosk Dec 19, 2024
926bece
Adds seminar slides for the scientificity module
dbosk Dec 19, 2024
4c5e32e
Fix the grading script to only grade project assignments
dbosk Dec 20, 2024
a63a0ad
Adds more examples from grading
dbosk Dec 20, 2024
5d9e019
Adapts to having one more assignment in INL1 (final report)
dbosk Jan 9, 2025
1e50e9d
Emphasizes more that we don't do unnecessary grading
dbosk Jan 9, 2025
06fb7e1
Merge pull request #54 from OpenSecEd/add-grading-scripts
dbosk Jan 9, 2025
be27e82
Improve grading Makefile
dbosk Feb 5, 2025
19533ca
Improves grading script structure
dbosk Feb 5, 2025
03968ae
Grading script: Only give feedback after the last seminar
dbosk Feb 5, 2025
2bc46bb
Bugfixes grading: Fix course matching and feedback
dbosk Feb 6, 2025
fda973a
Adds another check for when to grade students
dbosk Feb 6, 2025
67f0a2b
Grading: Improves students_to_grade
dbosk Feb 6, 2025
dee1a85
Adds more content to intro lecture
dbosk Apr 3, 2025
9eaf1e6
Improves seminar attendance grading script
dbosk Apr 23, 2025
63757a0
Improves 02-passwd seminar slides
dbosk Apr 23, 2025
4f30ab7
Improve models seminar slides
dbosk Apr 29, 2025
5e23089
Renames formal-methods to models
dbosk May 7, 2025
3d2d364
Adds slides used in the seminar on qualitative and quantitative methods
dbosk May 12, 2025
25107ee
Fixes bug that prevents compiling seminar.tex
dbosk May 12, 2025
83abf41
Adds discussion for {SoKScienceOfSecurity} paper
dbosk May 12, 2025
269522b
Emphasizes the Bloomish verbs in the learning objectives
dbosk May 12, 2025
6a6bad2
More discussion questions to 05-scientificity
dbosk May 13, 2025
882444c
Adds missing .gitignore
dbosk May 16, 2025
cd58e8a
Changes from sc to llm for interacting with the LLM
dbosk May 26, 2025
65377e0
Fix grading script: improve error handling and clean up test files
dbosk May 28, 2025
75b0705
Refactor reflection grading script to use llm package instead of Smar…
dbosk May 28, 2025
3878ebc
Adds 4.1 model
dbosk May 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
[submodule "bibsp"]
path = bibsp
url = https://github.com/dbosk/bibsp.git
[submodule "didactic"]
path = didactic
url = https://github.com/dbosk/didactic.git
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
SUBDIR= course-design
SUBDIR+= modules

INCLUDE_MAKEFILES?= ./makefiles
Expand Down
8 changes: 8 additions & 0 deletions adm/grading/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
_minted-vetcyb-grading/
test-grade_reflections.txt
test-grade_reflections-err.txt
vetcyb-grading.out
vetcyb-grading.pdf
vetcyb-grading.sh
vetcyb-grading.toc
vetcyb24p2.reflections.d/
35 changes: 35 additions & 0 deletions adm/grading/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
NOWEAVEFLAGS=-delay
LATEXFLAGS=-shell-escape

.PHONY: all
all: vetcyb-grading.pdf vetcyb-grading.sh

.INTERMEDIATE: vetcyb-grading.tex
vetcyb-grading.pdf: vetcyb-grading.tex
vetcyb-grading.sh: vetcyb-grading.sh.nw

vetcyb-grading.pdf: prompts.toml

GRADE_RESULTS=test-grade_reflections-err.txt

vetcyb-grading.pdf: ${GRADE_RESULTS}
vetcyb-grading.pdf: ./instruction-qualitative.md ./submission-qualitative.md

${GRADE_RESULTS}: test-grade-reflections.sh
bash $<

test-grade-reflections.sh: vetcyb-grading.sh.nw vetcyb-grading.sh
${NOTANGLE.sh}

.PHONY: clean
clean:
${RM} vetcyb-grading.pdf vetcyb-grading.sh
${RM} *.aux *.fdb_* *.fls *.log *.pdf *.tex
${RM} test-grade-reflections.sh
${RM} test-grade_reflections.txt
${RM} test-grade_reflections-err.txt


INCLUDE_MAKEFILES=../../makefiles
include ${INCLUDE_MAKEFILES}/noweb.mk
include ${INCLUDE_MAKEFILES}/tex.mk
45 changes: 45 additions & 0 deletions adm/grading/grade_seminar.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
oldIFS=$IFS
IFS=$'\n'

course="${1}"
seminar_date="${2}"
file="${3}"

teachers="(dbosk|masvanbe|elzen|gylje)@kth.se"

get_grade_data() {
tail -n +2 ${file} \
| grep -Ev "${teachers}" \
| cut -d, -f 2,3,5 \
> participation-seminar.csv

for user in $(cat participation-seminar.csv | cut -d, -f 1 | sort -u)
do
echo -n "$user ";
sum_minutes=0;
for minutes in $(grep $user participation-seminar.csv | cut -d, -f 3)
do
sum_minutes=$(($sum_minutes + $minutes));
done;
echo $sum_minutes;
done
}

open ${file} &
get_grade_data
read -p "Enter the limit in minutes: " limit_minutes

for result in $(get_grade_data)
do
user=$(echo $result | cut -d ' ' -f 1);
minutes=$(echo $result | cut -d ' ' -f 2);
if [ $minutes -ge $limit_minutes ]
then
canvaslms grade -c ${course} -a "Live seminar ${seminar_date}" \
-u $user -g complete
else
canvaslms grade -c ${course} -a "Live seminar ${seminar_date}" \
-u $user -g incomplete \
-m "You had $minutes minutes of participation out of more than $limit_minutes minutes."
fi
done
24 changes: 24 additions & 0 deletions adm/grading/instruction-qualitative.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

# Reflection on qualitative methods

## Metadata

- Unlocks: None
- Due: None
- Locks: None
- Ungraded submissions: 28
- Submission type: ['online_text_entry', 'online_upload']
- URL: https://canvas.kth.se/courses/50613/assignments/318671
- Submissions: https://canvas.kth.se/courses/50613/assignments/318671/submissions?zip=1

## Instruction

What do qualitative methods contribute to security? How do they
complement the other methods that we\'ve talked about?

To help you think about this, return to [How do you know it\'s secure?
Passwords](https://canvas.kth.se/courses/50613/assignments/315624 "How do you know it's secure? Passwords").
How did the different methods fit together there?



23 changes: 23 additions & 0 deletions adm/grading/instruction-statistics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

# Reflection on the use of statistics

## Metadata

- Unlocks: None
- Due: None
- Locks: None
- Ungraded submissions: 27
- Submission type: ['online_text_entry', 'online_upload']
- URL: https://canvas.kth.se/courses/50613/assignments/318595
- Submissions: https://canvas.kth.se/courses/50613/assignments/318595/submissions?zip=1

## Instruction

In what ways do we use statistics in security research? Consider how the
papers you\'ve read so far have used statistics.

What about machine learning? (Machine learning is basically black-box
automated statistics.)



36 changes: 36 additions & 0 deletions adm/grading/prompts.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Prompt config files
# more details and examples at https://github.com/efugier/smartcat#configuration

[empty]
api = "openai"
messages = []
char_limit = 100000

[default]
api = "openai"
model = "gpt-4o"
temperature = 1.0
char_limit = 100000

[[default.messages]]
role = "system"
content = "You are an extremely skilled programmer and scientist with a keen eye for detail and an emphasis on readable code. You have been tasked with acting as a smart version of the cat unix program. You take text and a prompt in and write text out. For that reason, it is of crucial importance to just write the desired output. Do not under any circumstance write any comment or thought as your output will be piped into other programs. Do not write the markdown delimiters for code as well. Sometimes you will be asked to implement or extend some input code. Same thing goes here, write only what was asked because what you write will be directly added to the user's editor. Never ever write ``` around the code. Make sure to keep the indentation and formatting. "

[4o]
api = "openai"
model = "gpt-4o"
temperature = 0.5
char_limit = 100000

[[4o.messages]]
role = "system"
content = "You are an extremely skilled programmer and scientist with a keen eye for detail and an emphasis on readable code. You have been tasked with acting as a smart version of the cat unix program. You take text and a prompt in and write text out. For that reason, it is of crucial importance to just write the desired output. Do not under any circumstance write any comment or thought as your output will be piped into other programs. Do not write the markdown delimiters for code as well. Sometimes you will be asked to implement or extend some input code. Same thing goes here, write only what was asked because what you write will be directly added to the user's editor. Never ever write ``` around the code. Make sure to keep the indentation and formatting. "

[o1]
api = "openai"
model = "o1-preview"
char_limit = 100000

[[o1.messages]]
role = "user"
content = "You are an extremely skilled programmer and scientist with a keen eye for detail and an emphasis on readable code. You have been tasked with acting as a smart version of the cat unix program. You take text and a prompt in and write text out. For that reason, it is of crucial importance to just write the desired output. Do not under any circumstance write any comment or thought as your output will be piped into other programs. Do not write the markdown delimiters for code as well. Sometimes you will be asked to implement or extend some input code. Same thing goes here, write only what was asked because what you write will be directly added to the user's editor. Never ever write ``` around the code. Make sure to keep the indentation and formatting. "
16 changes: 16 additions & 0 deletions adm/grading/submission-qualitative.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
- Course: DA2215 HT24 (vetcyb24-p2)
- Assignment: Reflection on qualitative methods
- Student: Studenten Studentensdotter <user@kth.se>
- Submission id: 24972065
- Submitted at: 2024-12-11T14:54:21Z
- Graded at: None
- Grade: None
- Graded by: None
- Speedgrader: https://canvas.kth.se/...
# Body

<p>Qualitative methods are very important for security research as they offer insights into the why and how of security-related behaviour, and decisions. They often involve human factors, e.g. why choose this password, how is the usability of this library. Quantitative data cannot give us this kind of information.</p>
<p>For example for statistical data (quantitative data), qualitative data can give insights into the why, it provides context and meaning.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

57 changes: 57 additions & 0 deletions adm/grading/test-grade_reflections-err-first.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
### sc
##### 1
vetcyb24p2 user1@kth.se Reflection on the use of statistics: No

The reflection lacks a direct focus on the use of statistics as it seems to divert more towards machine learning and cybersecurity without elaborating sufficiently on how statistics is specifically used and its implications.
##### 2
vetcyb24p2 user1@kth.se Reflection on the use of statistics: No

The reflection is vague and lacks a clear and relevant discussion about the use of statistics specifically. It briefly mentions statistics and machine learning but does not demonstrate a thorough reflection on the use of statistics as was asked for in the assignment.
##### 3
##### 4
vetcyb24p2 user1@kth.se Reflection on the use of statistics: No

The reflection provided is quite general and lacks depth in discussing the specific use of statistics. The mention of machine learning and cybersecurity, while interesting, seems somewhat unrelated to the assignment's focus on reflecting on the use of statistics.
##### 5
vetcyb24p2 user1@kth.se Reflection on the use of statistics: No, the reflection lacks a focused analysis on the specific use of statistics. The student briefly mentions statistics without providing a deeper or direct reflection on its application or implications, which was the central task.
### sc 4o
##### 1
vetcyb24p2 user1@kth.se Reflection on the use of statistics: No

The reflection does not specifically address the use of statistics in a detailed or relevant manner as requested. It briefly mentions statistics but quickly shifts focus to machine learning and cybersecurity without a thorough discussion on statistics.
##### 2
vetcyb24p2 user1@kth.se Reflection on the use of statistics: No

The reflection does not specifically address the use of statistics in a meaningful way. It briefly mentions statistics but lacks depth and relevance to the assignment prompt. The focus shifts to machine learning and cybersecurity, which are not directly related to the topic of statistics.
##### 3
##### 4
vetcyb24p2 user1@kth.se Reflection on the use of statistics: No

The reflection does not specifically address the use of statistics in detail. It briefly mentions statistics as a tool but does not provide a relevant reflection on its use as required by the assignment. The mention of machine learning and cybersecurity is not directly related to the reflection on the use of statistics.
##### 5
vetcyb24p2 user1@kth.se Reflection on the use of statistics: No

The student's reflection lacks depth and relevance to the specific assignment on the use of statistics. The reflection is too general and does not specifically address the use of statistics in the context of the course or assignment.
### sc o1
##### 1
vetcyb24p2 user1@kth.se Reflection on qualitative methods: No

The instruction is missing, so it's not possible to determine if the student made an honest effort.
##### 2
vetcyb24p2 user1@kth.se Reflection on qualitative methods: No, the instruction was not provided, so cannot evaluate the student's reflection for relevance.
vetcyb24p2 user2@kth.se Reflection on qualitative methods: No

The instruction was not provided, so it's not possible to determine if the student made an honest effort.
##### 3
vetcyb24p2 user1@kth.se Reflection on the use of models, part I: No

Cannot evaluate because the instruction is not provided.
vetcyb24p2 user2@kth.se Reflection on the use of models, part II: No. The instruction was not provided, so it's not possible to evaluate whether the student made an honest effort or attempted a relevant reflection based on what was asked.
vetcyb24p2 user3@kth.se Reflection on the use of models, part I: No

The assignment instructions were not provided, so I cannot determine if the student has made an honest effort based on what was asked.
##### 4
vetcyb24p2 user4@kth.se Reflection on the use of models, part I: No

The instruction was not provided as context, so I cannot determine if the student made an honest effort.
##### 5
18 changes: 18 additions & 0 deletions adm/grading/user1-statistics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
- Course: DA2215 HT24 (vetcyb24-p2)
- Assignment: Reflection on the use of statistics
- Student: Student Studentensson <user1@kth.se>
- Submission id: 24966368
- Submitted at: 2024-12-11T19:42:23Z
- Graded at: None
- Grade: None
- Graded by: None
- Speedgrader: https://canvas.kth.se/courses/50613/gradebook/speed_grader?assignment_id=318595&student_id=154870
## reflection.md

```markdown
The statistic is an useful tool, that helps us capturing the big picture. But we need to take this into account as this can also mean that the individual cases may be quite different.

The machine learning is an emerging field, that we need to understand as it changes everything and the cybersecurity is no exception.

```

13 changes: 13 additions & 0 deletions adm/grading/user2-statistics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
- Course: DA2215 HT24 (vetcyb24-p2)
- Assignment: Reflection on the use of statistics
- Student: Studenten Studentensson <user2@kth.se>
- Submission id: 24966347
- Submitted at: 2024-12-11T17:35:37Z
- Graded at: None
- Grade: None
- Graded by: None
- Speedgrader: https://canvas.kth.se/courses/50613/gradebook/speed_grader?assignment_id=318595&student_id=110079
# Body

<p>They used success rates from Mls trained with real-world and syntetic data to to compare how realistic data compares to syntetic. They also analyse false positive rates, precision and recall to measure effectivness in WF+WO attacks.&nbsp;&nbsp;</p>

14 changes: 14 additions & 0 deletions adm/grading/user5-statistics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
- Course: DA2215 HT24 (vetcyb24-p2)
- Assignment: Reflection on the use of statistics
- Student: Stentina Studentensdotter <user5@kth.se>
- Submission id: 24966371
- Submitted at: 2024-12-10T15:05:24Z
- Graded at: None
- Grade: None
- Graded by: None
- Speedgrader: https://canvas.kth.se/courses/50613/gradebook/speed_grader?assignment_id=318595&student_id=173646
# Body

<p>Statistics play a vital role in security research for several reasons. <br>For example the first paper used live statics gathered by the Tor project to prove that their developed client closely matches a real network in performance. They essentially analysed patterns of the Tor networked and compared them with their developed simulation client.<br>The second paper, used statistics in their background section to quantify risk and the third paper measured the accuracy of WF classification an attacker can achieve in a real world scenario, which assessing the effectiveness of the attack. <br>There are of course many more (e.g. access risk based on history, evaluate performance, experiments to study user behaviour for something like password reuse), but I will stop at the ones found in the papers.</p>
<p>Machine learning essentially operates completely on the statistics of the data it was trained on. Therefore, all the things explained above can be done by an ML algorithm without a human having to spend time on it. However, an ML is only ever as good as the data it was trained on and also brings many other problems. Consequently, it is a useful tool but one need to be careful when using it and verify the results.</p>

Loading