Skip to content

Resources for the Course

Books and References

We're loosely following a homegrown book:

Other than that, the following books/sources are good references for portions of the course:

Below are some shorter "cheat sheet" style notes:

Typesetting Computer Science/Math Documents

In addition to prose, technical documents contain code and mathematical expressions. While Microsoft Word, Pages, and Google Docs can typeset code and math, LaTeX turns out to be one of the best options and the most popular choice when it comes to preparing technical documents.

Homework Template

For this course, we have created a simple template for you, and it will look like this PDF after you compile it.

LaTeX is built from Don Knuth's TeX typesetting language, and has grown through community support to be both extremely powerful and easy to use.

A good place to start is this excellent tutorial: Getting to Grips with LaTeX.

Other than that, there are any number of excellent resources about how to use LaTeX; a few are listed here for your convenience:

LaTeX source files can be created with any text editor. Excellent choices include:

  • Visual Studio Code (Vscode)
  • Vim,
  • Emacs, and
  • Sublime

If you prefer LaTeX specific IDEs, check out the following:

Working With Java Code

Writing Java programs in a plain-text editor is generally painful. There are a number of good integrated-development editor (IDE) options. We recommend the following:

  • IntelliJ IDEA is arguably the most advanced Java IDE out there. The community education is free and is more than adequate for the class. With your mahidol.edu email address, you can request an education license for the ultimate version (normally $599 + tax) at no cost.
  • Visual Studio Code (Vscode) is much lighter weight and is generally adequate for this class. You should definitely install the Java langauge extension. Check out this guide.

Aside from IDEs, Java Visualizer is a website that allows you to visualize what the code is doing.