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 EditorsWe 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 17. If you’re using a tool that lets you choose, we recommend using Java 17. The most common IDE used with Java among professionals 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 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 supportColaboratory 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.
    • VScode and pycharm are roughly tied for IDEs in terms of number of users.
    • 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