We will use Github / Github Classroom to provide assignment templates and manage submissions.
Make sure you get familiar with git
.
If you are new to git
, see this book.
Students will use the OCaml programming language for the software security assignments. For more details of OCaml, see the following meterials:
- Functional Programming in OCaml (simple version)
- Functional Programming in OCaml (detailed version from Cornell CS3110)
- OCaml Tutorial Videos
- Hardcore OCaml
- Why Functional Programming Matters
- Functional Programming in 40 minutes
- Commercial Users of Functional Programming
Students will use the LLVM infrastructure and implement various tools that analyze programs written in LLVM IR code. LLVM IR code can be generated from many source languages such as C/C++/Obj-C, Swift, Rust, Scala, Haskell, WebAssembly, etc. For more details of LLVM, see this document.
Students are highly recommended to read the LLVM primer.