Skip to Main Content

Department of Computer Science

Technical Services and Support

General Computing Info

This is a collection of beginners information that can help users get started with specific topics below.

Computing 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

Language

    • Learning Java Interactively
      LearnJavaOnline.org 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.

Tools

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.

    • Java Development with NetBeans IDE
      Quick 10 minutes tutorial of using NetBeans to do Java Development,
    • Intro to Eclipse for Java
      Eclipse is one of the two major development environments 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.
    • Using VisualCode for Remote Development [video]
      A quick tutorial on remote development using VSCode. Remote development allows you to use VSCode IDE on your local computer while your work and execution are on remote computer.
    • A Crash Course Tutorial on VSCode
      For those users who prefer to use VSCode, watching a crash course on how to develop using VSCode may be time best spent.
    • 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

Language

    • Using Python on CS Linux machines
      Read this even if you already know Python. This guide shows you steps you need to do to activate CS python virtual environment.
    • Learning Python
      Codecademy has an excellent resource for you to learn Python language very quickly.
    • Intro to Python for Data Science
      DataCamp has a free course on using Python for Data Science
    • Best Python Resources for Beginners and Professionals
      A very nice collection of python language resources for everyone.
    • Python & Deep Learning on the Cloud using Google Colab with GPU support
      Colaboratory is a Google research project created to help disseminate machine learning education and research. It’s a Jupyter notebook environment that requires no setup to use and runs entirely in the cloud.”
    • 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

Language

Tools

    • Using VisualCode for Remote Development [video]
      A quick tutorial on remote development using VSCode. Remote development allows you to use VSCode IDE on your local computer while your work and execution are on remote computer.
    • A Crash Course Tutorial on VSCode
      For those users who prefer to use VSCode, watching a crash course on how to develop using VSCode may be time best spent.
    • 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
Web publishing
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.
Misc

and many more such as our Introduction to CS ResourcesGetting Started,  along with HowTo’s pages