Student Resources

The following resources are intended to assist students in my classes but are freely available for use for any academic purpose by anyone. Theses resources are subject to change and will be modified, updated, and improved as needed.

OS and Environmental Tutorials

Data Science, ML/AI

Language Tutorials

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.

Compilers / Interpreters

  • Python: You will need the Python interpreter.
  • C/C++: To compile C/C++ programs you will need a compiler. There are many compilers. The standard used for class will be the GNU compiler tool chain, specifically g++. Use the following links to get setup. 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: However you get to a point that you can run a very recent version of g++ at the command prompt, that's fine. If you want to work in the native MSDOS command prompt, that will work, 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. NOTICE: Mac users, make sure your g++ responds with an actual g++ version and not clang. This will be discussed more in class but if you get a clang response it means you don't actually have g++ installed (or not installed correctly), and you will probably want to fix it. You can get away with Clang, but you have to be aware of some subtle differences that may affect your work.
    • Linux: You're probably already good to go because... Linux.
    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.

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 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.

Web Development Resources

  • jQuery: A powerful wrapper library for JavaScript that enables cleaner, neater, easier to code and read JavaScript.This site uses jQuery.
  • BootStrap: A simple and very powerful library to build mobile-friendly, mobile-first Websites quickly. This site uses Bootstrap.
  • BootStrap Free Templates: Free Bootstrap templates and themes to get you up and running quickly with Bootstrap.
  • Bootstrap Customizer: A tool to quickly customize Bootstrap menus. This site uses this tool.
  • CodeIgniter: A simple and free PHP MVC framework. While arguably not suitable for enterprise development, CodeIgniter is an excellent learning tool, as well as being an excellent fast and lightweight MVC framework. This site uses this framework.
  • Laravel: A free and powerful PHP enterprise-grade MVC framework.
  • React.js: A free and powerful JavaScript library for building user interfaces. React.js is a more modern approach to UI/UX. Note than React.js is not compatible with jQuery or Bootstrap (it's an either-or, not both).