Course Introduction
Welcome!
Taking stock
- Students entering Advanced Programming should have taken an introductory
programming course, one of
- Programming Your World, where you learned
- Intermediate Programming, Principles and Practice, where you learned
- What's next?
- Deepen and broaden your knowledge
- Expand your programming skills. How to think about programming.
- 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.
- Grading, assignments and submission
- Writing and reading programs. Grading criteria.
- 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…