This book teaches the concept of relational data workflows in DataJoint. We provide some equivalent SQL for reference, but SQL knowledge is not required. To get the most out of this course, you should be comfortable with the following tools.
Command-Line Proficiency¶
You’ll frequently interact with systems through a terminal or shell. You don’t need to be a guru, but you should know how to navigate directories (cd), list files (ls), and run basic commands. The shell is the universal language for automation and remote computing.
Python Fundamentals¶
Python is our language for interacting with databases. You should understand variables, data types (strings, integers, lists, dictionaries), loops, and functions. We will touch on more advanced concepts like decorators, but a solid foundation is key.
Git and GitHub¶
In collaborative science and software, version control is non-negotiable. We expect you to have a GitHub account and be familiar with the basic workflow: clone, add, commit, and push. This is how you’ll manage your code and assignments.
Jupyter Notebooks¶
This textbook itself is built using Jupyter. You should know how to launch, navigate, and run code within Jupyter Notebooks or JupyterLab. The concept of “literate programming”—mixing executable code, text, and results—is central to reproducible science.
(If you’re new to these tools, MIT’s “The Missing Semester of Your CS Education” is an excellent resource.)