Resources

Python 3

High level programming language for algorithms with extensive library support (for example, Numpy for computation heavy numerical/scientific tasks). We recommend (but do not require) using Python 3 or Java for the course.

Java

High level object oriented programming language for scalable software design with extensive standard library support. We recommend (but do not require) using Python 3 or Java for the course.

Finding and Reading CompSci Research Papers

LaTeX

Recommended for typesetting mathematics heavy text. LaTeX is the standard for research publications in computer science. All assignments for the course must be typed; LaTeX is the recommended way, but is not required (if, for example, you prefer to use Microsoft Word or some similar software for writing reports).

Reviewing Discrete Math and Data Structures and Algorithms

These resources may be useful if you need to review topics from previous courses. You are not expected to review all of these materials, just pick and choose what is helpful and contact the instructor if you need help.

Git

Useful for version control of your code.

Gradescope