MICS Prerequisite Prep Resources

The references below are provided to help you prepare for the math and programming requirements of the Master of Information and Cybersecurity (MICS) program delivered online by the UC Berkeley School of Information (I School).

Math

Programming

* Highest priority

College Algebra

This math self-study guide focuses on concepts used in the MICS first semester Cryptography course.

Provider: UC Berkeley
Cost: Free
Availability: Self-Paced
More Information: Math Self-Study Guide

Return to Top

Statistics

The following chapters on Probability Theory will be helpful preparation for Privacy Engineering, Applied Machine Learning and Usable Privacy and Security:

  • Note on the Use of the Book.
  • Introduction.
  • Chapter I, The Sample Space.
  • Chapter V, Conditional Probability; Stochastic Independence, Sections 1–4.
  • Chapter IX, Random Variables; Expectation, Sections 1–5 and 9.
  • Chapter VI, The Binomial and the Poisson Distributions.

Provider: Archive.org
Cost: Free
Availability: Self-Paced
More Information: An Introduction to Probability Theory and Its Applications

Return to Top

C

Knowing the C programming language is important for understanding exploitable vulnerabilities in low-level infrastructure (i.e., machine and system processes). It is used extensively in the Software Security course and is also useful for the Operating System Security class and for implementing cryptography protocols.

Provider: Steve Summit
Cost: Free
Availability: Self-Paced
More Information: Steve Summit C Programming Course
Additional Resources: C-Programming Self-Study Guide for MICSBerkeley C for Programmers GuidePointers and Memory from Stanford CS Library 

Return to Top

Python

Python will get you started writing programs more quickly than other languages as it allows you to focus on your development task rather than programming language syntax. The MICS Cryptography, Network Security and Applied Machine Learning courses use Python.

Provider: JetBrains
Cost: Free
Availability: Self-Paced
More Information: PyCharm Edu by JetBrainsPython Self-Study Guide for MICS and Python Self-Study Guide Solutions for Jupyter Notebooks (instructions to download this self-study guide are in the self-assessment)
Additional Resources: Introduction to Python by UdacityLearn PythonThink Python

Return to Top

UNIX and Shell Scripting

The basics of UNIX programming, shell scripting, and using the command line (not the Graphical User Interface) are necessary for working with Operating Systems.

Provider: LinuxCommand.org
Cost: Free
Availability: Self-Paced
More Information: Learning the Shell
Additional Resources: UNIX Tutorial for Beginners

Return to Top

Java

The MICS Software Security course makes some use of Java. (It is not essential that you know Java for the MICS program.)

Provider: UC Berkeley
Cost: Free
Availability: Self-Paced
More Information: Java for Programmers
Additional Resources: Java Concurrency by VogellaConcurrency by Oracle

Return to Top

C++

The MICS Software Security course makes some use of C++. (It is not essential that you know C++ for the MICS program.)

Provider: cppreference.com
Cost: Free
Availability: Self-Paced
More Information: C++ Reference
Additional Resources: C++ FAQ by ISOCPP.org

Return to Top

Learn more about MICS