Computing Resources
- Limitation Enforced on CS Public Linux Machines Explains default limitations enforced on CS Linux machines and possible ways to overcome them.
- Introduction to the Computer Science Computing Resources A Brief Guide on Rutgers University, Computer Science Computing Resources
- Online video training classes on Linked-In Learning (was Lynda) LinkedIn Learning (was Lynda) contains all kinds of training resources. It is a site licensed by the University for every RU user. Sign in with the organizational portal, enter rutgers.edu, and enter your university netid and password.
- Introduction to Linux Command line on LinkedIn Learning. The basic Linux command line that will make your Computer Science easier in the future. LinkedIn Learning contains all kinds of training resources. It is a site licensed by the University for every RU user. Sign in with the organizational portal, enter rutgers.edu, and enter your university netid and password.
- Frequently Ask Questions A collection of Frequently Asked Questions on CS Resources.
- How To Documents A collection of How To Documents on CS Resources.
Remote Access
-
Using CS WebLogin to Access iLab Machines A quick guide on using your browser to access iLab Machines and its limitations.
- Accessing Computer Science Linux Desktop using Microsoft Remote Desktop This document explains how to connect to the full graphical interface of the Remote Linux Desktop using a Microsoft remote Desktop client. Note: This is the only way to do it remotely if you can access the OpenGL program or Gnome desktop.
- How to Connect To Linux Server from Windows using BitVise SSH Client-YouTube Video This is a beginner video explaining how to connect to a Linux system from Windows using the BitVise SSH Client. Ensure you have an account on the machine you want to log in. – For students enrolled in CS classes, the account is activated/created for you automatically on your first login. – For CS Faculty/Staff, users MUST create/activate their account before they can log in.
Intro to Linux
-
20 Basic Linux Commands for Beginners Explained with Examples Learn basic Linux commands with examples.
- Linux Tutorial – Learn the Bash Command Line Learn the Linux/Unix command line (Bash). Clear descriptions, command outlines, examples, shortcuts, and best practices. 99 times out of 100 new students have trouble with this stuff.
- Introduction to Linux -YouTube Video This YouTube video is one of many you can watch to familiarize yourself with Linux OS.
- Bash Beginner Guide A guide to Bash scripting to make your life easier when working with Linux
- The Most used Linux terminal Commands and what they do Informative page from makeuseof.com describing commonly used commands in Linux.
- Unix/Linux Command Reference from Fosswire A one-page summary of Intro to Linux/Unix Command
- One Page Linux Manual (pdf) Quick printable summary of useful Linux commands.
- Linux Command In Structured Order This quick reference guide introduces most commands used in Linux, broadly based on Rhel / Centos.
- How to make a directory you can share with members of your project. Detail guide on creating a directory you can share with members of your project
- Preventing Fork Bomb on Linux This guide shows you how to prevent a fork bomb while working with a fork.
- How to use the “screen” command to keep your remote task running: “Screen” is useful for those who want to keep the program running in the lab, disconnect, and resume at home. Consult the Limitation Enforced on the CS Public Linux Machines page to prevent your running processes from being terminated.
-
Tmux Command Examples To Manage Multiple Terminal Sessions This is a nice example of how to manage multiple terminals using tmux. Consult the Limitation Enforced on the CS Public Linux Machines page to prevent your running processes from being terminated.
Linux Editors
We recommend learning Emacs because it understands programming languages better than other editors (though IDEs understand them better).- Introduction to Nano Text Editor Quick learning curve text editor but limited.
- Interactive VIM Text Editor Tutorial Your interactive guide to learn VIM Text Editor and more…
- Graphical vi-vim Cheat Seat and Tutorial Learning vi or vim is not easy. But it doesn’t have to be that difficult, either.
- VI Reference Card Quick printable summary of VI Editor commands from MIT.
- Basic vi commands Basic vi Command from Colorado State University
- The vi Editor Tutorial A quick vi Tutorial from Tutorial Points.
- Learning Emacs Text Editor Your guide to learning to use Emacs and learning more about Emacs.
- Gnu Emacs Reference Card A 2-page guide to GnuEMACS, the text editor of choice.
- Emacs Command Summary A quick reference guide to EMACS, the text editor of choice.
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.
-
- Introduction to Intellij Idea Java IDE.
- 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.) Since we have already installed it, you can skip downloading and installing it using a computer science system.
- 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.
- Maven in 5 Minutes. You will want to use Maven or Gradle to build programs outside Eclipse. These download libraries allow you to create 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 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/
.
- Remember, whatever the tutorials say, don’t type “python”. Type
Programming in C
Language
-
- Intro to How C Programming Works Intro to C Programming from Camden Campus.
- Intro to C. A complete step-by-step lesson.
- The C Book This is the online version of The C Book, second edition by Mike Banahan, Declan Brady, and Mark Doran, originally published by Addison Wesley in 1991
- C Programming. A comprehensive look at the C programming language and its features.
- Network & Socket programming in C A good tutorial by CodeProject on Network and Socket 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
- Assembly Programming Tutorial Learn basic Assembly language programming using nasm assembly. (pdf)
- Assembly Language Step By Step, for Linux! A book written to make you learn assembly as your first computer language.
Programming in Rust-Lang
- Running Rust-Lang on CS Linux Machines. This short guide shows you how to activate the Rust-Lang environment on your account.
- Learning Rust-Lang, Rust-Lang Playground, and Book on The Rust Programming Language
Virtual Machines and Containers
- A Beginner-Friendly Introduction to Containers, VMs, and Docker A guide to help you understand differences in ‘virtual machines’ technology from FreeCodeCamp
Virtual Machines on CS iLab Machines
- Running Virtual Machines using KVM on CS Linux machines A quick guide to help users run VMs using KVM on CS Linux Machines
- Important: VMware will no longer be supported as of May 15, 2025, end of Spring Semester 2025.
Docker
All CS Linux machines can run docker images.- Running Docker on CS Machines Docker isn’t a virtual machine. It’s a “container” that provides somewhat similar services. Please read this before running or installing Docker, even on systems you administer yourself.
- Using Singularity for CUDA/AI Learning tools on CS machines
- Docker Tutorial for Beginners Learn how to build and deploy distributed applications with Docker
- Fast, Easy Docker Tutorial for Beginners A video series of docker tutorials for beginners from FreeCodeCamp.
Singularity
All CS machines can run Singularity- Using Singularity for CUDA/AI Learning tools on CS machines
- Singularity Basic Command Examples of basic Singularity commands to create, manage, and run containers
- Introduction to Singularity This is a PDF file from the SDSC Marty Kanes seminar.
- Singularity Examples Here, you can find files and instructions for creating and using example containers from https://cloud.sylabs.io
KVM
This section documents KVM for use on a system where you have root access. See above to use it as a normal user.- Managing KVM Using the virsh command line Basic commands to help you manage your KVM-based virtual machine. Note: this command requires root access. Note: KVM requires privileges most Rutgers CS users don’t have.
- KVM Cheatsheet A list of KVM virtualization common commands to manage your virtual machines
- How to Manage KVM Virtual Environment using Commandline Tools in Linux KVM environment management using Command Line Interface.
Web Publishing
- Publishing web pages or homepage Create HTML pages and other files in a text editor or upload them to your public_html folder.
- WordPress system. WordPress can be used by faculty and project teams.
- Rutgers WordPress site: The University also provides WordPress sites for faculty and staff.
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
- Cuda and AI / Learning Tools on Rutgers CS Systems A summary of AI/Learning tools on CS Systems
- An Introduction to Machine Learning Theory and Its Applications: A Visual Tutorial with Examples This Machine Learning tutorial introduces the basics of ML theory, laying down the common themes and concepts, making it easy to follow the logic and get comfortable with machine learning basics.
- A Gentle Guide to Machine Learning A general overview of important concepts, applications, and challenges when working with Machine Learning
- A Visual Introduction to Machine Learning a practical and visual example of machine learning
- Introduction to Machine Learning Book in PDF on Machine learning. 234 pages
Deep Learning & Neural Network
- Cuda and AI / Learning Tools on Rutgers CS Systems
- An Introduction to Neural Networks An intro to neural network from a talk given at the NSYN meeting in Edinburgh, Scotland, on 28 February 1996
- An Introduction to Image Recognition with Deep Learning learn how to write programs that recognize objects in images using deep learning
- Neural Networks and Deep Learning free online book on neural networks and deep learning
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 currentVideo cards, Hard Drives, and Systems Benchmarks, courtesy of PassMark software, to help you figure out the performance of your current or future computer.