Computer Systems and Programming Tools#
About this course#
In this course we will study the tools that we use as programmers and use them as a lens to study the computer system itself. We will begin with two fundamental tools: version control and the shell. We will focus on git and bash as popular examples of each. Sometimes understanding the tools requires understanding an aspect of the system, for example git uses cryptographic hashing which requires understanding number systems. Other times the tools helps us see how parts work: the shell is our interface to the operating system.
About this syllabus#
This syllabus is a living document. You can get notification of changes from GitHub by “watching” the repository You can view the date of changes and exactly what changes were made on the Github commit history page.
Creating an issue is also a good way to ask questions about anything in the course it will prompt additions and expand the FAQ section.
Should you download the syllabus and rely on your offline copy?
No, because the syallabus changes
About your instructor#
Name: Dr. Sarah M Brown Office hours: listed on communication page
Dr. Sarah M Brown is a third year Assistant Professor of Computer Science, who does research on how social context changes machine learning. Dr. Brown earned a PhD in Electrical Engineering from Northeastern University, completed a postdoctoral fellowship at University of California Berkeley, and worked as a postdoctoral research associate at Brown University before joining URI. At Brown University, Dr. Brown taught the Data and Society course for the Master’s in Data Science Program. You can learn more about me at my website or my research on my lab site.
You can call me Professor Brown or Dr. Brown, I use she/her pronouns.
The best way to contact me is e-mail or an issue on an assignment repo. For more details, see the Communication Section