-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
302 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,302 @@ | ||
--- | ||
theme: seriph | ||
background: https://cover.sli.dev | ||
class: 'text-center' | ||
highlighter: shiki | ||
info: | | ||
## CSCI 111: Introduction to Computer Science | ||
Learn more at [Sli.dev](https://sli.dev) | ||
transition: slide-left | ||
title: "CSCI 111: Introduction to Computer Science" | ||
mdc: true | ||
--- | ||
|
||
# CSCI 111: Introduction to Computer Science | ||
|
||
--- | ||
|
||
# Administravia | ||
|
||
--- | ||
|
||
# Instructor and Course Information | ||
|
||
<br> | ||
|
||
- **Instructor:** William J. Tolley | ||
- **Office:** Parmly 413B | ||
- **Email:** [email protected] | ||
- **Lecture Times:** Monday and Wednesday 8:00 - 9:30 AM | ||
- **Lab Time:** Friday 8:00 - 11:00 AM | ||
|
||
--- | ||
|
||
# Teaching Assistants | ||
|
||
<br> | ||
|
||
- **Payton Crawford** | ||
- **Micah Tongen** | ||
|
||
<br> | ||
|
||
--- | ||
|
||
# Evening Help Schedule | ||
|
||
<br> | ||
|
||
| | 6pm – 7pm | 7pm – 8pm | 8pm – 9pm | | ||
|-----------|----------------|----------------|----------------| | ||
| **Sunday** | Saad, Janeet, Lakpa | Saad, Janeet, Lakpa | Janeet, Lakpa | | ||
| **Monday** | Mohamed, Evan, Connor | Mohamed, Evan, Connor | Mohamed, Evan | | ||
| **Tuesday** | Kidus, Elias | Kidus, Elias | Kidus | | ||
| **Wednesday** | Han, Ngoc-Anh | Han, Ngoc-Anh | Lakpa | | ||
| **Thursday** | Sanjog, Evan | Sanjog, Evan | Evan | | ||
|
||
|
||
--- | ||
|
||
# Introductions | ||
|
||
--- | ||
|
||
## Background | ||
|
||
- **Hometown**: Chuckey, Tennessee | ||
- **Education**: | ||
- Bachelor's in **Philosophy** and **Computer Science** from **Berea College** | ||
- Graduate studies at **University of New Mexico**, **UC Berkeley**, and **Arizona State University** | ||
|
||
## Personal Life & Interests | ||
|
||
- **Family**: I'm married and have a daughter, two cats, and a bunny | ||
- **Hobbies**: Reading, backpacking, camping, hunting, and making music | ||
|
||
## Favorites | ||
|
||
- **Books**: *Neuromancer* and *Shogun* | ||
- **Movie**: *O Brother, Where Art Thou?* | ||
- **Music**: **black metal**, **thrash**, **bluegrass**, and **90s neotraditional country** | ||
|
||
--- | ||
|
||
# Who are you? | ||
|
||
--- | ||
|
||
|
||
# What You’ll Learn | ||
|
||
<br> | ||
|
||
- How to think like a computer scientist | ||
- Designing and implementing algorithms | ||
- Fundamentals of Python programming | ||
- Problem-solving techniques and debugging | ||
- Using Linux for development | ||
- Introduction to computing systems and logic | ||
|
||
--- | ||
|
||
# What Is Computer Science? | ||
|
||
--- | ||
|
||
# What is Science? | ||
|
||
--- | ||
|
||
# What is Science? | ||
|
||
- **Karl Popper**: Science advances through **falsifiability**, where a hypothesis must be testable and capable of being proven wrong. | ||
- **Thomas Kuhn**: Science progresses through **paradigm shifts**, not linear accumulation of knowledge. | ||
- **Paul Feyerabend**: There’s no single **scientific method**; “anything goes” in the advancement of knowledge. | ||
|
||
Is computer science **falsifiable**, **progressive**, or **revolutionary**? | ||
|
||
--- | ||
|
||
# What is Computing? | ||
|
||
--- | ||
|
||
# What is Computing? | ||
|
||
- **Claude Shannon**: Defined computing as the processing and transmission of information, laying the foundation for **information theory**. | ||
- Is **computing** something humans do, or is it intrinsic to machines? | ||
- How do **algorithms** fit into this? | ||
|
||
--- | ||
|
||
# What is a Computer? | ||
|
||
--- | ||
|
||
# What is a Computer? | ||
|
||
- **Turing Machine**: A mathematical abstraction that helps define computation. | ||
- **Physical Computers**: Machines that perform computations following **predefined rules**. | ||
|
||
Does a **computer** have to be a machine? | ||
|
||
--- | ||
|
||
# Is Computer Science a Science? | ||
|
||
--- | ||
|
||
# Is Computer Science a Science? | ||
|
||
- **Karl Popper**: Does computer science follow the same principles as **falsifiability** in natural sciences? | ||
- **Kuhn’s Paradigms**: Has computer science had **paradigm shifts**, or is it still evolving within a single framework? | ||
- **Feyerabend’s Anarchy**: Is the structure of computer science methodologically diverse enough to be considered scientific? | ||
|
||
--- | ||
|
||
# Thinking Outside the Box | ||
|
||
--- | ||
|
||
# Thinking Outside the Box | ||
|
||
- Are we **creating knowledge** in computer science or simply creating **tools**? | ||
- Can computers **discover** things, or are they always bound by human-made rules? | ||
- What happens when **technology** drives the direction of "science"? | ||
--- | ||
|
||
# Applications of Computer Science | ||
|
||
<br> | ||
|
||
- Powers everything from mobile apps to self-driving cars | ||
- Enables new fads like **AI**, **machine learning**, and **blockchain** | ||
- Crucial in **healthcare**, **finance**, **entertainment**, and more | ||
- Careers in cybersecurity, software development, research, etc. | ||
|
||
--- | ||
|
||
# Connections to Philosophy, Logic, and Math | ||
|
||
<br> | ||
|
||
- **Philosophy**: What can computers "know"? Ethical considerations in AI and machine learning | ||
- **Logic**: The foundation of algorithms and computational processes | ||
- **Mathematics**: Discrete math, probability, and calculus in problem-solving and analysis | ||
|
||
--- | ||
|
||
# Introduction to Linux | ||
|
||
--- | ||
|
||
# Why Linux? | ||
|
||
<br> | ||
|
||
- Linux is widely used in programming, especially for servers, cloud computing, and software development | ||
- It’s open-source, customizable, and free | ||
- Learning Linux will make you comfortable with many development environments | ||
|
||
--- | ||
|
||
# Basic Linux Commands | ||
|
||
<br> | ||
|
||
- `ls`: List files in the current directory | ||
- `pwd`: Show the current directory | ||
- `cd`: Change the current directory | ||
- `mkdir`: Create a new directory | ||
- `rm`: Remove files or directories | ||
- `cp`: Copy files or directories | ||
- `mv`: Move or rename files | ||
- `cat`: Display the contents of a file | ||
- `grep`: Search for specific patterns or keywords in files | ||
- `find`: Search for files and directories | ||
- `head`/`tail`: View the beginning or end of a file | ||
- `nano` or `vim`: Edit text files | ||
|
||
--- | ||
|
||
# Practical Linux Use Cases | ||
|
||
<br> | ||
|
||
- **Programming**: Running scripts, compiling code, debugging | ||
- **System Administration**: Managing files, processes, and services | ||
- **Cybersecurity**: Network security tools, penetration testing | ||
|
||
--- | ||
|
||
# Introduction to Python | ||
|
||
--- | ||
|
||
# Why Python? | ||
|
||
<br> | ||
|
||
- **Easy to Learn**: Simple syntax, great for beginners | ||
- **Versatile**: Used for web development, data science, AI, automation, etc. | ||
- **Extensive Libraries**: Python has libraries for almost every task, from machine learning (e.g., TensorFlow) to web development (e.g., Django) | ||
- **Growing Popularity**: One of the most in-demand programming languages | ||
|
||
--- | ||
|
||
# Python in the Real World | ||
|
||
<br> | ||
|
||
- **Web Development**: Building websites and APIs (e.g., Instagram, Reddit) | ||
- **Data Science & Machine Learning**: Analyze large datasets, build AI models (e.g., Netflix recommendations, Google search) | ||
- **Automation**: Automate repetitive tasks like file management or web scraping | ||
- **Cybersecurity**: Write scripts to automate penetration testing and security checks | ||
|
||
--- | ||
|
||
# Whodunit | ||
|
||
--- | ||
|
||
# Command Line Murder Mystery | ||
|
||
<br> | ||
|
||
- We’re going to solve a fun mystery using Linux commands! | ||
- Navigate files and directories, and uncover clues to solve the crime | ||
- This interactive activity will teach you key Linux commands and file system navigation | ||
|
||
--- | ||
|
||
# Steps for the Murder Mystery | ||
|
||
1. Use `ls` and `cd` to navigate the file system. | ||
2. Open files with `cat` or `nano` to read clues. | ||
3. Use commands like `grep` to search through files. | ||
4. Work together in small groups and solve the mystery! | ||
|
||
--- | ||
|
||
|
||
# What We Covered Today | ||
|
||
<br> | ||
|
||
- Introductions and course overview | ||
- Why computer science matters in the real world | ||
- Basic Linux commands | ||
- Introduction to Python and its applications | ||
- Command Line Murder Mystery hands-on activity | ||
|
||
--- | ||
|
||
# For Next Class | ||
|
||
<br> | ||
|
||
- Practice Linux commands we learned today | ||
- Set up Python on your machine if you haven’t already | ||
- Submit your process for solving the murder mystery and your suspect. | ||
|
Binary file not shown.