CSCI111: Fundamentals of Programming I Professor Sprenkle - - PDF document

csci111 fundamentals of programming i
SMART_READER_LITE
LIVE PREVIEW

CSCI111: Fundamentals of Programming I Professor Sprenkle - - PDF document

CSCI111: Fundamentals of Programming I Professor Sprenkle sprenkles@wlu.edu http://cs.wlu.edu/~sprenkle/cs111 Please respond to your survey and return tomorrow in lab https://www.facebook.com/media/set/?set=a.598522613577379.1


slide-1
SLIDE 1

1

CSCI111: Fundamentals

  • f Programming I

Professor Sprenkle

sprenkles@wlu.edu

http://cs.wlu.edu/~sprenkle/cs111

Please respond to your survey and return tomorrow in lab

Jan 7, 2019 Sprenkle - CSCI111 2

https://www.facebook.com/media/set/?set=a.598522613577379.1 073741850.309754825787494&type=3

slide-2
SLIDE 2

2

Jan 7, 2019 Sprenkle - CSCI111 3 Jan 7, 2019 Sprenkle - CSCI111 4

My Bio

  • From Dallastown, PA
  • B.S., Gettysburg College
  • M.S., Duke University
  • Ph.D., University of Delaware
  • For fun: pop culture,

gardening, Rockbridge Animal Alliance

slide-3
SLIDE 3

3

Survey Says…

  • What year are you?
  • Who has used a computer regularly?
  • Who has used the Internet regularly?
  • Who has made a web page?
  • Who has written a program?
  • Why are you taking this course?

Jan 7, 2019 Sprenkle - CSCI111 5

What is Computer Science?

  • CS = Complexity Science

Jan 7, 2019 Sprenkle - CSCI111 6

“Computer Science is no more about computers than astronomy is about telescopes.”

  • -Edsger Dijkstra
slide-4
SLIDE 4

4

Jeannette Wing

Jan 7, 2019 Sprenkle - CSCI111 7

When people talk about the smart grid, smart vehicles, and smart buildings — what makes them ‘smart’? Computer science. When people talk about personalized medicine and personalized learning, how do you think personalization is possible? Computer science. We’re not there yet, but the next generation of computer scientists can help us realize these visions — with immeasurable benefits to society and the economy.

http://www.nytimes.com/roomfordebate/2011/06/15/computer- sciences-sputnik-moment/writing-code-has-become-self-expression

(emphasis is mine)

  • Microsoft VP of Research
  • Formerly at NSF, CMU

CS == Complexity Science

  • r the Study of Complexity
  • How can it be done?

Ø Based on information Ø Managing, manipulating data Ø Possible algorithms

  • How well can it be done?

Ø Most efficient algorithm in terms of time and/or space

  • Can it be done at all?

Ø Often, proof is a program--an implementation of the above

Jan 7, 2019 Sprenkle - CSCI111 8

slide-5
SLIDE 5

5

Computer Science Fields

  • Often research involves combinations of

these fields

  • Not just programming!

Ø But programming is a tool to do much, much more!

Jan 7, 2019

Theory Other Systems

  • Architecture
  • Operating systems
  • Networks
  • Distributed and

parallel systems

  • Databases
  • Algorithms
  • Theory of

computation

Software

  • Compilers
  • Graphics
  • Software

engineering

  • Software testing

and verification,

  • Artificial

intelligence

  • Robotics
  • Natural

language processing

  • Bioinformatics
  • Visualization
  • Data science

Sprenkle - CSCI111 9

Programming Computer Science

What I do not do as a Computer Scientist

  • Fix hardware
  • Fix Microsoft Windows (or other operating

systems) problems

  • Fix Microsoft Office (or other desktop

applications) problems

Jan 7, 2019 Sprenkle - CSCI111 10

slide-6
SLIDE 6

6

What I Do as a Computer Scientist

  • Interests: Software testing, empirical studies,

distributed systems

  • Focus: Automated web application testing

Jan 7, 2019

Web Browser Web Application Server HTTP Request Response: HTML Document

Sprenkle - CSCI111 11

Client

What I Do as a Computer Scientist

Jan 7, 2019

Find the error(s)!

Sprenkle - CSCI111 12

slide-7
SLIDE 7

7

Find the Errors

Jan 7, 2019 Sprenkle - CSCI111 13 Jan 7, 2019 Sprenkle - CSCI111 14

slide-8
SLIDE 8

8

Jan 7, 2019 Sprenkle - CSCI111 15

PPTX bug

Digital Humanities

Jan 7, 2019 Sprenkle - CSCI111 16

slide-9
SLIDE 9

9

Digital Humanities

Jan 7, 2019 Sprenkle - CSCI111 17

MEET SOME MORE COMPUTER SCIENTISTS

Jan 7, 2019 Sprenkle - CSCI111 18

slide-10
SLIDE 10

10

Jamie White ‘17

Software Engineer at Amazon, eBook division

Jan 7, 2019 Sprenkle - CSCI111 19

Patrick Ozark ‘17

Senior Bioinformatician at Northwestern University – the Feinberg School of Medicine

Promoted after 15 months as Bioinformatics Analyst

Jan 7, 2019 Sprenkle - CSCI111 20

slide-11
SLIDE 11

11

Lex McGriff ‘18

  • Technology Analyst with

Citi, in Jacksonville, FL

  • Interned with J.P.

Morgan Chase

Jan 7, 2019 Sprenkle - CSCI111 21

Johanna Goergen ‘16

Jan 7, 2019 Sprenkle - CSCI111 22

Software engineer at Optimizely, a startup in San Francisco Optimizely: A/B testing and personalization Johanna: on the application backend team, writing and maintaining the company's REST API

slide-12
SLIDE 12

12

Haley Archer-McClellan ‘15

  • Focus: web app that tracks

Freedom of Information Act (FOIA) requests received by the board

Ø meeting with the team that uses that app Ø developing requirements Ø monitoring legislation that impacts the Freedom of Information Act and our client's business processes Ø developing and testing our app

Jan 7, 2019 Sprenkle - CSCI111 23

Computer Applications Programmer/Analyst IT division, Federal Reserve Board

Samantha O’Dell ‘15

  • Computer Science and

English double major

  • Associate Technical Writer

at Google

Jan 7, 2019 Sprenkle - CSCI111 24

http://www.wlu.edu/transformative- education?feature=true&id=x10977

slide-13
SLIDE 13

13

Lucy Simko McGee ‘11 and Camille Cobb ‘12

  • Security and Privacy Lab

Jan 7, 2019 Sprenkle - CSCI111 25

Interned with Google’s Geo Oceans team. Worked for the Dept of Defense on Cybersecurity

Christyann Pulliam

  • Double major in CS and Political

Science from Gettysburg College

  • Law Degree from Wake Forest

University

  • Patent Examiner at the US Patent and

Trademark Office

Ø Focus: Search engines, DB apps

Jan 7, 2019 Sprenkle - CSCI111 26

Julianne Campbell ‘18 is at Vanderbilt University Law School for IP Law

slide-14
SLIDE 14

14

Erich Geist food banks

Jan 7, 2019 Sprenkle - CSCI111 27

We use data analytics, computer systems, servers, programming, network and database administration all the time to provide the data necessary to inform our donors, government officials, advocates, and the general public about our mission to feed the hungry. Without good computer science…there is no food.

Personal Correspondence

Your Bios

  • Where you’re from
  • Your year
  • A fun fact

Jan 7, 2019 Sprenkle - CSCI111 28

slide-15
SLIDE 15

15

Hilary Mason

  • Founder of Fast Forward

Labs

Ø a machine intelligence research company

  • Formerly Chief Scientist

at bitly.

  • “Teaching someone to

program is like giving them a superpower.” quote in Glamour, November 2011

Jan 7, 2019 Sprenkle - CSCI111 29

What This Course Is About

Jan 7, 2019

From 30 Rock

Problem Solving!

Sprenkle - CSCI111 30

slide-16
SLIDE 16

16

Computational Problem Solving 101

  • Computational Problem:

A problem that can be solved by logic

  • To solve the problem:
  • 1. Create a model of the problem
  • 2. Design an algorithm for solving the problem using

the model

  • 3. Write a program that implements the algorithm

Jan 7, 2019 Sprenkle - CSCI111 31

Computational Problem Solving 101

  • Algorithm: a well-defined recipe for solving a

problem

Ø Has a finite number of steps Ø Completes in a finite amount of time

  • Program

Ø An algorithm written in a programming language Ø Also called code Ø As code base grows, becomes an application

Jan 7, 2019 Sprenkle - CSCI111 32

slide-17
SLIDE 17

17

What to Expect from this Class

  • First programming course
  • Lots to learn!

Ø Introductions to a lot of new ideas

  • Different way of thinking

Ø Similar yet different from math Ø May get stuck but ask for help!

  • Writing some basic programs

Ø Foundations for more complex, sophisticated code

  • Great power, great responsibility

Jan 7, 2019 Sprenkle - CSCI111 33

Where You Can Go From Here

Jan 7, 2019 Sprenkle - CSCI111 34

CSCI 111

FOP I

CSCI 112

FOP II

CSCI 210

Computer Organization

CSCI 250

Introduction to Robotics

CSCI 209

Software Development

CSCI 253

Genetic Algorithms Web Applications, Mobile Applications, AI, OS, Distributed Systems, …

slide-18
SLIDE 18

18

Class Details

  • Course web page

Ø http://www.cs.wlu.edu/~sprenkle/cs111 Ø Check schedule frequently for updates

  • Monday, Wednesday, Friday lectures

Ø Slides posted after class, in PDF format Ø Don’t copy down slides verbatim

  • A lot isn’t on the slides
  • Use PDF slides later to review
  • Tuesday labs

Ø “Pre-lab” assignments in the textbook Ø Programming projects due on Friday

Jan 7, 2019 Sprenkle - CSCI111 35

Class Details

  • 3 Exams

Ø 2 Exams (see schedule online for dates) Ø Final Exam

  • Discussion of broader issues in CS

Ø Articles about computer science’s effect on everything

  • Get big picture of CS

Ø Write up on Sakai, due Fridays by 11 a.m. Ø Discussion Friday Ø Opportunities for extra credit for finding, reading, summarizing additional articles

Jan 7, 2019 Sprenkle - CSCI111 36

slide-19
SLIDE 19

19

Instructor Responsibilities

  • Keep your interest in CS
  • Prompt, constructive feedback on assignments
  • Office hours:

Ø Wednesday 2:30 – 5 p.m., Thursday: 2:30-5 p.m. Ø Email for appointments

  • Respond within 24 hours to emailed questions

Jan 7, 2019 Sprenkle - CSCI111 37

Student Responsibilities

  • Check W&L email and course web page

frequently for updates

Ø Review entire syllabus online

  • Attend and participate in class and lecture

Ø Mandatory attendance Ø Be respectful to other students

  • Arrive promptly to lecture/lab

Ø Bring your notes and handouts

  • Turn off cell phone
  • Be patient, flexible, and learn from mistakes

Jan 7, 2019 Sprenkle - CSCI111 38

slide-20
SLIDE 20

20

Textbook

  • Online textbook
  • Supplement to the material

Ø Different perspective, additional practice problems

  • Register for the class (instructions on course

schedule page)

Jan 7, 2019 Sprenkle - CSCI111 39

Consequence: my lecture slides and handouts and your notes are vitally important

  • Reference frequently
  • Bring with you to lab!

Your TODO List

  • Review the course web page and syllabus

Ø Schedule (may change)

  • Complete the survey and submit to me

tomorrow

Jan 7, 2019 Sprenkle - CSCI111 40

slide-21
SLIDE 21

21

Summary

  • Meet & greet
  • What is computer science?
  • What is this class?

Jan 7, 2019 Sprenkle - CSCI111 41