Student Resources

The following resources are intended to assist students in my classes but are freely available for use in any academic endeavor.

OS and Environments

Data Science, ML/AI

Integrated Developer Environments (IDEs)

  • JetBrains makes and sells professional IDEs which are free to students with a valid edu email address. You are strongly encouraged to get a student account and learn/use these IDEs. Most of these IDEs are language specific so you will need a different one per language (IntelliJ is multi-lingual).
  • Netbeans is a free and very easy to use professional IDE that is multi-lingual. If you switch languages a lot, you may find this IDE useful.
  • Eclipse is a free and relatively easy to use professional IDE that is multi-lingual. If you switch languages a lot, you may find this IDE useful.
  • Visual Studio is free to students. It is a powerful and relatively complex IDE that is multi-lingual. It is especially useful if you will program in one of the Microsoft languages or frameworks.
  • Python and IDLE is a free interpreter and IDE. Note that IDLE is not a professional IDE and is only suitable for a beginners and/or simple rapid prototyping. Programming I students may choose to begin in IDLE but should switch to a professional IDE like PyCharm as soon as possible.
  • Dev C++ is a free Windows-only C/C++ IDE. It is not a professional IDE however it is very easy to use and is an excellent learning tool. Students should switch to a professional IDE as soon as they are comfortable with the C/C++ language and IDEs in general.

Version Control, Code Repositories

  • Git and GitHub: [ presentation ] Tutorial for creating a local project and pushing to a remote repository.
  • Download and install Git: Git is your local version control application. You will need this for class and to connect to GitHub.
  • Github Free code repository with access to free professional developer tools for students. You will need this for class and to work with GitHub In The Classroom. GitHub now requires SSH or OAuth to connect your repos. You should read more about it
  • BitBucket Free code repository with access to free professional developer tools for students. We will not use BitBucket in class, and since GitHub went free for private repos, there is little use for BitBucket anymore. However, you should still be aware of it since many companies use it.

Compilers / Interpreters

  • Python
  • C/C++
    To compile C/C++ programs you will need a compiler. There are many compilers. The standard used in courses is the GNU compiler tool chain, specifically g++. Currently, all of my C/C++ courses use VMs with Linux, so you will have g++ installed and ready to go as part of installing Linux. If you want to program C/C++ on your own for your own purposes, you will need to install g++.

    The following is provided as a guide but neither Windows nor Mac are supported by the instructor. If you have issues with your installation, you will need to search for solutions on your own. When you have it done correctly you should be able to type g++ --version at the command prompt and get a response from g++.

    • Windows
      If you want to work in the native MSDOS command prompt, that works; however, you probably want to work in some Linux-like environment. These are a couple popular options, you can try MinGW and use this tutorial to guide you, or Cygwin and use this tutorial to guide you. Cygwin will install many tools including g++, a Linux like shell (command prompt). and all the associated GNU tools.

    • Mac
      For the homebrew solution (the most common solution), try this tutorial. For the xCode solution, try this tutorial. I have little to no knowledge about Mac and cannot address issues with Mac. If you know of better tutorials/solutions, let me know, I'll post them here.

      If you truly want g++ make sure your g++ responds with an actual g++ version and not clang. If you get a clang response it means you don't actually have g++ installed, or it is not installed correctly (usually that is the result of an alias or path misconfiguration), and you will want to fix it if you want g++. Although you may actually want Clang if you are doing Mac development.

    Once you have g++ installed correctly, you will probably need to adjust your PATH environment variable to be able to call g++ from any location. Start searching and reading to learn about paths.