Technical Foundations

INFO 498F

What?

Why?

How?

{what?}

Learn the technical skills and tools necessary for working with information

Write code

# You'll write lots of code in this class.  

# Right now it might look like non-sense:

x <- 10

# But it's super powerful
square <- function(a) {
    return (a*a)
}

# Any guess what y is?
y <- square(x)

Manage Code

Work with Data

Largest changes in life exp.
Maldives (+42)
Bhutan (+35)
# You'll write code to do this!

Learning how to learn

{why?}

Excel

Tableau

... too many more....

Why write code to work with data?

Why write code for data

Fully customizable

Repeatable

Transparent

Scalable

Why not write code for data

Time consuming

Error prone

Unclear

{but... why do this at all?}

Discover

Communicate

Predict

{who?}

{your amazing TA team!}

Introduce yourself to your neighbors

Why you enrolled in this class?

Something outside of class you enjoy?

A topic/field you would like to apply data/code skills to

{how?}

Follow along!

bit.ly/info498f

Class/Lab

Mixed lecture/exercise format

Collaboration

Engagement

Supportive

Assignments

Weekly independent assignments

Open-ended group project

Stretch skills from class

Ensure everyone is on track

Policies

Due before class

Penalized 10% per day, down to 50%

Plagiarism will not be tolerated

How to solve problems

Experiment with different approaches

Google

Post on slack

{orientation}

Language levels

High-level languages

Compiled

Interpreted

Write entire program

One line at a time

Less cumbersome/strict

Faster

Java, C, Scala

R, Python, Ruby

R

Built for working with data

Open-source

RStudio is a great IDE

Extraordinarily popular

{the command-line}

A distinction

Writing a program

Leveraging syntax

Create software

Interact with software

Reusable

Done once

both use syntax!

Abilities are predefined

Can define your own!

(the line may be blurry)

Command line

Text-based interface

Allows you to provide instructions to your computer

Very useful for efficiently interacting with programs

Spotlight search (mac)

command (and) space

Spotlight search (mac)

search for "terminal"

Open terminal

directory

machine

prompt

user

Determine directory (folder)

CLI

GUI

pwd

command (and) i

(print working directory)

filepath

Tree-structure

Change directory (folder)

CLI

GUI

cd a1-git-started

directory

(change directory)

List directory contents

CLI

GUI

ls

(list contents)

Make a new directory

CLI

GUI

mkdir new-folder

right click

(make directory)

Highly suggested practice

Command line on codecademy

Up Next....

Version control

info498-1

By Michael Freeman

info498-1

Class introduction

  • 1,730