Scientific Computing and Productivity Course Introduction Dr. C.D. Clark III ██ Welcome! Today we are going to go over how the class is organized and what to expect this semester. 2 / 33 ██ Roster 3 / 33 ██ About Me • Dr. C.D. Clark III • Arrived at FHSU in 2011 after graduating from here in 2004 • Created this class to help students learn some of the tools that I had to learn on my own 4 / 33 ██ About this Class The main objective of this class is to learn how to use Linux and the command line to be productive doing science. We will learn how to use tools like: • The command line and shell scripting • Text processing and data analysis tools • Gnuplot for plotting data • LaTeX for document preparation • git for version control • Python for scientific computing • And more... 5 / 33 ██ About this Class: Software Requirements You will need to install the following software for this class: • Linux (various installation options available) • Microsoft Teams (for class communication) 6 / 33 ██ About this Class: Structure • Live demo lectures will be recorded each day during the regularly scheduled class time ◦ The majority of lecture time will be spent doing "live demos" with some practice problems mixed in • Link to the video hosting site is in Blackboard • Homework problems will be posted on the class website ◦ These will consist of a PDF and "tarball" ◦ To complete the homework, you will take a Blackboard quiz and upload a tarball ◦ I will also assign severl "video submissions" throughout the semester. These will ask you to create a screen recording demonstrating something we are learning. Note: The online and on-campus version of this class share a single Blackboard shell. 7 / 33 ██ About this Class: Grade 8 / 33 ▓▓▓ Course Grade Category │ Weight ─────────┼─────── Homework │ 40% Projects │ 20% Exams │ 40% 9 / 33 ▓▓▓ Letter Grades Grade │ Cutoff ──────┼─────── A │ 88% B │ 76% C │ 60% D │ 44% 10 / 33 ██ Getting Linux Installed The first thing we need to do is get Linux installed. There are several options for getting Linux on your computer. I have outlined these on Blackboard, so please read the information, watch the videos, and let me know if you have any questions. 11 / 33 ██ Class Team • I have created a Microsoft Team for this class • I will post links to the lecture recordings there • This is also the best way to get in touch with me 12 / 33 ██ Class Website I have a website for this class: http://hostcat.fhsu.edu/cdclark/classes/Phys_312/ • Course materials will be posted here • For example, these slides are posted there... 13 / 33 ██ Book • The book for this class will be used as a reference • The class schedule will not be based on the book • Homework assignments will not be out of the book • We will cover several topics that are not in the book 14 / 33 ██ Book (continued) So why do we have a book? Use it as a reference and tutorial resource for the command line. 15 / 33 ██ Topic Outline (High Level) 1. Command line fundamentals 2. Shell scripting and automation 3. Working with files and patterns 4. Text processing and data analysis 5. Pipes and the Unix philosophy 6. Plotting with Gnuplot 7. Python for scientific computing 8. Document preparation with LaTeX 9. Version control with git 10. Text editors (vim) 11. Remote access with ssh 12. Final project 16 / 33 ██ Why Linux? 17 / 33 ██ Why Linux? Freedom • Linux is free • Most programs that run on Linux are free • You don't have to worry about entering license numbers, which computer to install something on, or paying for updates 18 / 33 ██ Why Linux? (continued) Tools • Linux is built FGBG (for geeks by geeks) • Many tools for doing technical work are readily available: ◦ compilers (C/C++/FORTRAN/etc.) ◦ interpreters (Python/Perl/etc.) ◦ Graphing software ◦ LaTeX ◦ many, many more 19 / 33 ██ Why Linux? (continued) Resume • Linux is used in many research labs • Valuable skill for scientific computing careers • Industry standard for high-performance computing 20 / 33 ██ Why learn the command line? Productivity • How many times have you collected data, created a spreadsheet, calculated results, and inserted a table into a Word document? • What happens if you find out your data is bad, and you need to redo some measurements? Or maybe you had an error in your calculation. • Wouldn't it be nice if you could just recollect the data or fix the calculation, press a button, and have your entire report updated? 21 / 33 ██ Why learn the command line? (continued) Automate Tedious Tasks • Computers were made to do tedious things. Why not let them? • The command line can be easily scripted, meaning you can easily save a series of commands and run them later 22 / 33 ██ Why learn the command line? (continued) Street Cred • I mean, right? 23 / 33 ██ The CLI is Back! The command line interface is experiencing a renaissance! Modern AI coding tools and "agentic" development are bringing the CLI back into the spotlight. Knowing the command line isn't just for old-school hackers anymore - it's becoming essential for working with cutting-edge AI development tools. https://www.ikangai.com/agentic-coding-tools-explained-complete-setup-guide-for-claude-code-aider-and-cli-based-ai-development/ 24 / 33 ██ AI and This Class Let's be honest: AI can probably do most of the homework problems in this class. 25 / 33 ██ AI and This Class (continued) But here's the thing... If you want to use AI to do your homework for you, you should drop this class. That is not what this class is about. 26 / 33 ██ Why Learn When AI Can Do It? Yes, AI is good at coding and knows how to use the command line. But at some point, a human has to review any work that AI has done. We need people who know how to do this stuff. 27 / 33 ██ The Real Value of This Class The whole purpose of this class is to give students the time (and excuse) to learn these valuable skills. These skills will make you more productive - with or without AI. • Working with AI? You need to understand what it's doing and verify its work • Working without AI? These skills are essential for scientific computing • Either way? You win by knowing how these tools work This class gives you permission to take the time to learn properly. 28 / 33 ██ Motivating Example In December of 2020, FHSU had its first virtual commencement. • Nearly 3000 students graduated • FHSU displayed a certificate-style slide with each student's name, and read every student's name while their slide was displayed • I was able to write a script to generate ALL the files in less than 4 minutes 29 / 33 ██ Motivating Example (continued) • The script used a command line image processing program to insert the student's name, college, and degree • If this had been done with a GUI (graphical program) it would have taken at least ~3000 minutes (50 hours) • If a mistake was found, or we wanted to make a change, every image would have to be recreated... • With the script? Just run it again. Takes 4 minutes. 30 / 33 ██ First Week Plan • We will take this first week to get setup • Ask to join the class Team • Get Linux installed on something
◦ Choose the option that works best for you from the list in Blackboard and work on getting Linux installed • Read the information on Blackboard ◦ Watch the videos posted in the "How-to" folder • Record a video showing your (working) setup 31 / 33 ██ Last Slide 32 / 33 33 / 33