Welcome to CS2043, Spring 2021 edition!

This site is a work in progress. Stay tuned for more details!

Course Syllabus

Download Course Syllabus (not final version)

About the Course

The goal of CS2043 is to introduce you to the UNIX/Linux "command line" and its accompanying tools. UNIX and UNIX-like systems are increasingly being used on personal computers, mobile phones, web servers and many other systems. In additional to traditional UNIX and Linux distributions, MacOS X, Android, and iOS are all based on UNIX systems. Microsoft also supports the WSL (Windows Subsystem for Linux) which allows you to, among other things, run a UNIX shell on your Windows machine. When done with this class you should feel comfortable navigating any UNIX shell prompt, installing UNIX/Linux systems and understanding any shell script that you may encounter down the road. We'll cover basic commands through script writing and visit some of the more common tools used today!

Course Staff and Office Hours

Ron DiNapoli, Lecturer — 441B Gates Hall

Limited in-person appointments available
ZOOM hours FOR THE WEEK of 3/22:
Thursday, 7PM - 9PM (zoom link)

Jason Huang, Undergraduate TA

ZOOM hours FOR THE WEEK OF 3/22:
Tuesday, 5PM - 7PM (zoom link)
Wednesday, 3PM - 5PM (zoom link)

Jacob Kraizman, Undergraduate TA

Tuesday, 7PM - 9PM (zoom link)
Thursday, 1PM - 3PM (zoom link)

Course Management

Most of the day to day operation of the class will be handled through the Computer Science department's CMS Course Management System. Just before our first class I will add everyone on the course roster into CMS. If you do not find CS2043 as a class you have access to in CMS after Wednesday's lecture, please contact me!

I have also enabled Piazza for this class. You will need to self-enroll here if you'd like to participate!


Many of you will already be familiar with installing Linux and running it either as a primary operating system on your personal machines or through virtualization. Even though users of MacOS machines and Linux machines have access to a shell natively, I'd recommend you consider installing a virtualization environment on your machine so that course work (which may entail changing permissions, writing scripts that may delete things, etc.) doesn't have an (accidental) negative or sometimes destructive impact on your machine! For more information on virtualization, please visit Get a Virtualization Environment on this site!