(live: 2s)[
(stop:)
It was a dark and stormy night.
(live: 2s)[
(stop:)
The -40 degree wind chills, typical of Calgary in July, froze her fingers.
(live: 2s)[
(stop:)
At last she unlocked the door and burst into the room, only to see the blinking cursor of a terminal.
(live: 2s)[
(stop:)
She would have to use... [[The Command Line Interface]].
Click on the highlighted text to continue.
]
]
]
]
CPSC 399.07
In the hands of a skilled practitioner, the Unix command line is a powerful tool, permitting tasks to be completed and data to be processed in a fraction of the time.
The “Unix philosophy” underlying it is a substantially different way of thinking about tools than people are used to seeing any more, akin to learning how to program in different paradigms.
This is freakin' amazing! [[Sign me up!]]
[[I'm skeptical]]. Surely you can't have a whole course on using the command line?
I'm confused. [[What is the command line?]]I'll be assuming a basic familiarity with writing programs in a high-level language like – but not limited to – Python.
All that's required is an introductory course in programming, like CPSC 217, CPSC 231, DATA 211, or ENGG 233. You don't even have to be a Computer Science major to take this course!
Interesting! [[When is it?]]
I'm sold. [[How do I register?]]
Well spotted!
You'll learn how to use the command line, of course, and beyond that the command line is used as a vehicle to cover a wide range of useful topics, including:
* efficient data processing
* task automation
* regular expressions
* Git
* Markdown
* and much, much more!Most computers, tablets, and phones now have a graphical interface, where you use a mouse or touch the device in order to give it commands and make things happen.
This wasn't always the case.
Once upon a time, computers didn't have a graphical interface. You typed textual commands on a keyboard, and were shown the output from those commands in textual form. Effectively you had a language-based interface.
While some tasks can be handled efficiently with graphical interfaces, the ability to use the command line can be faster, more flexible, and more powerful. It also requires thinking about solving problems in a different way.All 399.xx courses are listed as “by permission of the department.” I've asked the Undergraduate Science Centre to let in students who've completed CPSC 217, CPSC 231, DATA 211, or ENGG 233, which should cover most cases. In other words, you should just need to contact Science Advising and they'll give you permission to register.
[[I have more questions.]]This course is being taught by (link-reveal: "John Aycock")[(goto-url: "https://cspages.ucalgary.ca/~aycock")].
Feel free to email me (aycock@ucalgary.ca) if you have questions.In Fall 2025, there are two sections:
* MWF 10-10:50 am
* MWF 11-11:50 am
There are no tutorials or labs; we'll be doing hands-on work during the lecture time. You should have a laptop or tablet with a keyboard that you can bring to class.