Skip to Main Content

Department of Computer Science

Technical Services and Support

Beginner’s Info

Table of Contents

Introduction to Resources

Remote Access

Intro to Linux

Linux Editors

We recommend learning Emacs, because it understands programming languages better than other editors (though IDEs understand them better).

Programming in Java


  • Learning Java Interactively has a nice interative Java learning tool that get you up to speed on Java language programming
  • Learn Java
    Codecademy has an excellent resource for you to learn Java Programming very quickly
  • Java Tutorial for Complete Beginners
    Udemy has free course on learning to program in the Java programming language. This course assumes no prior programming knowledge, just a desire to learn to program.


The default Java version on our systems is currently 11. If you’re using a tool that lets you choose, we recommend using Java 11.

  • Intro to Eclipse for Java
    Eclipse is one of the two major development enviornments for Java. (The other is Netbeans.) You can skip downloading and installing if you’re using a computer science system, since we have already installed it.
  • Maven in 5 Minutes.
    For building programs outside Eclipse, you will want to use Maven or Gradle. These download libraries for you and build Jar files, War files, etc.

Programming in Python


  • Introduction to Conda. For serious Python programming you will need a package manager. The original (and still common) one is PIP. Here’s an Introduction to PIP. Anaconda is a newer systsem. The link to conda describes its package manager. But you may also want other Anaconda tutorials, including use with IDEs
  • Spyder Introduction. For development, we suggest using an Development Environment such as Spyder. it is already installed in our Anaconda environments, so you can ignore the “conda install” commands in the introduction. Spyder has a reputation of being good for data science. Many of our users like PyCharm. Unfortunately its licensing doesn’t let us install it, but you can install the free version yourself. Warning: it has a tendency to run away, writing files until your disk quota is full.

Tool’s Notes:

  • Remember, whatever the tutorials say, don’t type “python.” Type python3 instead.
  • With pip, unless you are using your own environment, be sure to use pip install --user so the packages go in your directory. Do not update pip, even though it may tell you to.
  • Anaconda has its own package manager, conda. However it doesn’t appear to have the ability to use one of our environments and install a package in your home directory.
  • If you need to install your own packages with anaconda, you’ll have to create a whole environment, which will have copies of all the files.
  • You can use pip install --user with anaconda, however, even though they recommend using conda. This command puts the packages it installs in ~/.local/lib/pythonXX/site-packages/.

Programming in C



  • Debugging C using Command Line
    Nice documentation describing C debugging and problems with example from Yale. See particularly its treatment of Valgrind. This is a tool for finding memory problems. You’ll want to run this on any C or C++ program, to verify that you release all memory you allocate, and don’t do anything else that would corrupt memory.
  • Adding C/C++ Language support to Eclipse for Java IDE
    For an Eclipse for Java user, this guide show you how to add C/C++ Language support to Eclipse for Java IDE. Computer science systems already have a copy of Eclipse with C support added. It’s called “eclipseC”
  • Debugging C/C++ Projects in NetBeans IDE
    The following short tutorial takes you through some of the features for debugging a C or C++ project in NetBeans IDE.

Programming in Assembly

Programming in Rust-Lang

Virtual Machines and Containers

Data Science

  • CS Data Science Facilities
    This page describes primary software and systems for general use within the department.
  • Juypterhub
    How to use Jupyter to work with Spark and the Hadoop cluster.

Machine Learning

Deep Learning & Neural Network

OpenGL Programming

  • OpenGLProgramming
    Description of OpenGL versions supported on our systems, and how to access them.


  • Equivalent Windows software in Linux
    RU Lost? can’t find your familiar Windows software in Linux? This table will show you equivalent Windows software that are available in Linux. It is available in 7 languages