This is a collection of beginners information that can help users get started with specific topics below.
Introduction to CS Resources
- 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 kind of training resources. It is site licensed by University for every RU users. Signin with organizational portal and enter rutgers.edu then enter your university netid and password.
- Introduction to Linux Command line on LinkedIn Learning. Basic linux command line that is will make your Computer Science easier in the future. LinkedIn Learning contains all kind of training resources. It is site licensed by University for every RU users. Signin with organizational portal and enter rutgers.edu then enter your university netid and password.
- Accessing Computer Science Linux Desktop using X2Go This document explains X2Go is program that enable user to access full graphical interface of a Linux system remotely as if you are sitting in front of your computer. Note: X2Go does not work with Gnome GUI nor OpenGL programs.
- Accessing Computer Science Linux Desktop using Microsoft Remote Desktop This document explains how to connect to Remote Linux Desktop full graphical interface using Microsoft remote Desktop client. Note: If you need to access OpenGL program or Gnome dekstop, this is the only way to do it remotely.
- How to Connect To Linux Server from Windows using BitVise SSH Client-YouTube Video This is a beginner video explaining how to connect to Linux system from Windows using BitVise SSH Client. Make sure you have an account on the machine you want to login to. All CS users MUST create/activate his/her account before s/he can login. Account is not activated/created for you automatically regardless what you were told by your classmates, TAs or instructors.
Intro to Linux
- Linux Tutorial – Learn the Bash Command Line Learn the Linux/Unix command line (Bash) Clear descriptions, command outlines, examples, shortcuts and best practice. 99 times out of 100 new student has troubles 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 live easier when working with Linux
- The Most used Linux terminal Commands and what they do Informative page from makeuseof.com describing common used commands in Linux.
- Unix/Linux Command Reference from Fosswire 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 Quick reference guide that introduce most set of 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 directory you can share with members of your project
- Preventing Fork Bomb on Linux This guide shows you what you need to do to prevent fork bomb while working with fork.
- How to use the “screen” command to keep your remote task running Screen is useful for those who wants to keep program running in the lab, disconnect and resume at home. Make sure you consult the Limitation Enforced on CS Public Linux Machines page to prevent your running processes from being terminated.
Linux EditorsWe 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 pages 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
- 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.
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
- 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.
- Remember, whatever the tutorials say, don’t type “python.” Type
- With pip, unless you are using your own environment, be sure to use
pip install --userso 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 --userwith anaconda, however, even though they recommend using conda. This command puts the packages it installs in
Programming in C
- 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
- 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
- A Beginner-Friendly Introduction to Containers, VMs and Docker A guide to help you understand differences of ‘virtual machines’ technology from FreeCodeCamp
VMWareAll public CS Linux machines have preinstalled VMPlayer that anyone can use to run a virtual machine.
- Running VMPlayer on CS Linux machines A quick guide to help users run VMPlayer on CS Linux machines
- Running Multiple Operating System with VMWare Player This guide shows you how to create and run another operating system virtually using VMWare Player.
- Collection of VMware images A collection of VMware images from osboxes.org
DockerAll CS Linux machines can run docker images.
- Running Docker on CS Machines Docker isn’t actually 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 Beginner Learn how to build and deploy distributed applications with Docker
- Fast Easy Docker Tutorial for Beginner A videos series docker tutorial for beginner from FreeCodeCamp.
SingularityAll 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 SDSC Marty Kanes seminar.
- Singularity Examples Here you can find files and instructions for creating and using example containers from https://cloud.sylabs.io
KVMKVM requires root privileges. You can only run this on CS machines if you run your own Linux machine virtually.
- Managing KVM Using 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.
- Server Virtualization with KVM Easy to read introduction to Virtualization using KVM from Rutgers School of Engineering Linux Course.
- 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 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 network and deep learning
- 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
- Computing Hardware BenchMarks A collection of current Videocards, Hard Drives, Systems Benchmarks, courtesy of PassMark software to help you figure out the performance of your current or future computer.