Linux & git
Pen and Paper in Pairs
Multiply these numbers
491 x 673
This number is the product of two numbers. What are they? \[ 1247 = a \times b \]
This number is the product of two numbers. What are they? \[ 80851 = c \times d \]
RSA-2048 cryptography is based on the difficulty of a problem like this:
I generate two large, random prime numbers, \(p\) and \(q\), each of length 1024 bits. I then give you the product \[ n=p \times q \]
Find \(p\) and \(q\).
Generating an ssh key pair
- If you have Microsoft Windows on you laptop, install the Windows Subsystem
for Linux as follows:
- Open a
PowerShell Give the command
wsl --install
- Open a
- Terminal
- Generate ssh key
- Generate a key of type
ed25519 - How to Generate SSH keys in Windows 10 and Windows 11
On Mac, open Terminal
ssh-keygen -t ed25519
- Your private key is
~/.ssh/id_ed25519 - Your public key is
~/.ssh/id_ed25519.pub
- Generate a key of type
Taking stock
- Students entering Advanced Programming should have taken Intermediate Programming, Principles and Practice, where you learned low-level and pointer programming using C
- What's next?
- Deepen and broaden your knowledge
- Expand your programming skills. How to think about programming.
- Writing and reading programs.
- Software development tools: automation & collaboration
Where to next?
- Many programming languages. There is a baffling array of programming languages you could learn.
- For each programming language there are many libraries. There are around 100 libraries in just the Python Standard Libraries alone.
- Many frameworks. Even for something as specific as choosing a framework to build a web site in Python there are dozens of choices.
- We can narrow the choices down somewhat by categorising programming languages into Programming Paradigms.
Course choices
Motivation
- Essence, Substance & Tools
- Programming at the lowest levels with Nand2Tetris
- Programming at the highest levels by writing interpreters for programming languages.
- Free and open-source software
- Free as in beer (gratis)
- Free as in speech (libre)
Ground rules
- Course Manual
- In class: sometimes laptop, sometimes pen and paper.
- Mondays: learning. Thursdays: practising.
- Grading, assignments and submission
- Attendance, presence, tardiness, distractions.
- Guidelines on the use of Generative AI
A common platform
- Operating Systems
- In the Beginning Was the Command Line
- How to Use The Command Line
- code editor: Emacs
- It gets messy out there…