Missing 

CSci Semester

During your Journey through the CSCI Major, you will often find that professors believe you have some background knowledge about some number of tools. 

We find that this is actually the farthest from the truth, and many, if not most, of us, do not have this background. 

We present a list of topics and tools you may wish to check out to aid in closing this knowledge gap. Other concepts are also found here! 

Basic Tools

Text Editors

At the very core of Computer Science are text documents. Regardless of the language, c++, python, javascript, every file is essentially a text file. Here are several of the recommended text editors from current and previous students.

Notepad++ is the most basic improvement on notepad. It supports a multitude of features.

Sublime is a sleeker text editor that supports several helpful features and shortcuts.

Atom is a highly customizable text editor.  Check out it's 'spiritual successor' Zed 

VSCode is one of the most widely used text editors. Don't confuse it for the purple 'Visual Studio'

Terminal (cmd, shell, bash)

The terminal, or console, is the cornerstone of working with computers. While nearly every application has a Graphical User Interface, several core functionalities are only truly accessible through the terminal. Having a basic understanding and capability with the terminal will be invaluable to you as a student.

This free course by Mama Samba Braima Nelson is an amazing crash course to get you familiar with the terminal and its basic functionalities

Cmder is a very useful utility that allows a Windows CMD shell to run like a MacOs or Linux shell.

VIM, a notorious text editor. While highly useful and efficient, it has one heck of a learning curve.

Version Control

Git & SVN

Git and SVN (Subversion) are known as Version Control Systems. These allow you to track all the changes to your code, store it remotely, and update it on the fly. It's the industry standard, and is the #1 recommended skill to know by Industry Professionals.

Git is the #1 most recommended tool to learn for programmers. It is ready to use with services like Github and Gitlab.

SVN or Subversion is another widely used version control system.  Checkout their free guide here! 

Github is the most popular online git repository service in the world. They offer a multitude of tools and services that are invaluable to programmers.

Gitlab is a popular online git repository, comparable to github. They offer many of the same services and tools.

Advanced Tools

Integrated Development Environments

Integrated Development Environments, or more typically called IDEs are a more powerful version of a text editor. As your projects get more complicated, many many more features become needed.

They are generally heavier than text editors and take more power to run, but when needed, nothing beats it.

Not to be confused with VSCode, Visual Studio is the full fledged IDE by microsoft. 

Dev-C++ is a lighter weight IDE still capable of handling large scale projects. It is highly recommended when Visual Studio is too costly to run!

JetBrains provides a family of IDEs, most known for their Intellij Java and Kotlin IDE. Many IDEs are quickly becoming favorites for many.

XCode is the MacOs default IDE for most c++ devs.

Unix , WSL and Virtual Machines

Unix is the most popular kernel, MacOs and Linux distro's are built on it. Window's, until recently was not, however they have recently provided Window's Subsystem for Linux (WSL), to allow windows user's to use a Unix System.

Virtual Machines are an alternative to using an entirely different operating system. They provide a 'virtual' instance of another computer with another OS. 

Virtual Box and VMWare are two popular providers.