Lectures on Computing

Over the last few years we've done several courses, short-courses and lecture series on various computing topics. Here are notes from some of them.
  • Linux System Administration for Researchers
    This course aims to provide a practical introduction to System Administration for researchers who find themselves in charge of a Linux computer. We take a nuts-and-bolts approach to each topic, examining realistic problems that the system administrator may encounter. Although many of the details will be Linux-specific, much of the course's content will be of general value, including overviews of computer hardware and the principles of networking.

  • Practical Computing for Science and Engineering
    This course will give you a kit of skills and tools that will help you do great things even if you're not a mathematical prodigy. All you need is a little computing expertise. This course is designed for novice programmers: no programming experience is required! We'll teach you all the basic skills you need. We'll focus on using using computers to solve common problems you'll encounter in science and engineering. In particular we'll talk about using computers to analyze data, simulate data, and visualize data.

  • Fundamentals of Computational Physics
    This course covers the application of computers to solving basic problems in physical science, including an introduction to programming in C(C++), use of external libraries, and implementation of basic algorithms with a focus on numerical methods, error analysis and data fitting, and simulating physical processes. Prerequisites include one semester of physics and one semester of calculus. No previous computer experience is required.

    This course was developed as Physics 254 and, later, Physics 2660 by Prof. Bob Hirosky. These notes are by Bryan Wright, and are derived from Prof. Hirosky's curriculum.

  • Geek Hours: A Series of "Chalk-Talks" on Computing Topics
    These talks cover things like "make", shell scripts, gnuplot, perl, SSI and compilers and libraries.

  • Linux System Administration: Networks and Filesystems
    This course aims to provide a practical introduction to two aspects of Linux system administration (networking and filesystems) for technically-experienced people who find themselves in charge of a Linux computer. We take a nuts-and-bolts approach to each topic, examining realistic problems that the system administrator may encounter. Although many of the details will be Linux-specific, much of the course's content will be of general value, including overviews of computer hardware and the principles of networking.

  • Introduction to Scientific Computing
    In this short-course we'll try to get you up and programming! I hope you'll learn at least four important skills:

    • How to connect to a remote computer,
    • create programs there,
    • run them,
    • and view the results.

    We'll be using the C programming language under the Linux operating system. The goal is for you to understand the mechanics and concepts of scientific programming.

  • Spock with a Beard: A Linux Guy Learning OS X Internals in a Hurry
    This was a blog that Bryan Wright maintained during the OS X 10.5 "Tiger" era. Some of the information may still be useful.