Skip to Main Content

Department of Computer Science

Technical Services and Support

General Computing Info

This collection of beginner information 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 interactive Java learning tool that gets 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 a 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 21. If you’re using a tool that lets you choose, we recommend using Java 21. The most common IDE among professionals who use Java is IntelliJ Idea. (On our systems, it is called “idea”.) It has greatly surpassed Eclipse, Netbeans, and VSCode. We recommend learning it if you want an IDE.

Programming in Python

Language

    • Using Python on CS Linux machines
      Read this even if you already know Python. This guide shows you the steps you need to do to activate the CS Python virtual environment.
    • Learning Python
      Codecademy is 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
      It’s 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 and runs entirely in the cloud.”
    • Spyder Introduction. For development, we suggest using a 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 for 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 tends 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 use your environment, be sure to use pip install --user so the packages go into your directory. Do not update pip, even though it may tell you to.
    • VScode and pycharm are roughly tied for IDEs in terms of number of users.
    • If you need to install your packages with a Python environment, create a whole environment with copies of all the files.
    • You can use pip install --user. 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 the remote computer.
    • A Crash Course Tutorial on VSCode
      For users who prefer to use VSCode, watching a crash course on developing using VSCode may be the best way to spend time.
    • Debugging C using Command Line
      Nice documentation describing C debugging and problems with an 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 a Java user using Eclipse, this guide shows you how to add C/C++ Language support to Eclipse for Java IDE. 
    • 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
    A how to use Jupyter to work with Spark and the Hadoop cluster.
Machine Learning
Deep Learning & Neural Network
OpenGL Programming
  • OpenGLProgramming
    Provides a description of OpenGL versions supported on our systems and how to access them.
Misc
  • Visual approach to software engineering.
    Level up your engineering and system design skills. Join the growing community of engineers who prefer our visual approach to software engineering.
  • Explainshell.com
    write down a command line to see the help text that matches each argument
  • 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 is available in Linux. It is available in 7 languages
  • Computing Hardware Benchmarks
    A collection of current Video cards, Hard Drives, and Systems Benchmarks, courtesy of PassMark software, to help you figure out the performance of your current or future computer.

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