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

csci111 fundamentals
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 https://www.facebook.com/media/set/?set=a. 598522613577379.1073741850.309754825787494&type=3 Jan 8, 2018 Sprenkle - CSCI111 2


slide-1
SLIDE 1

1

CSCI111: Fundamentals

  • f Programming I

Professor Sprenkle

sprenkles@wlu.edu

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

Jan 8, 2018 Sprenkle - CSCI111 2

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

slide-2
SLIDE 2

2

Jan 8, 2018 Sprenkle - CSCI111 3 Jan 8, 2018 Sprenkle - CSCI111 4

My Bio

  • From Dallastown, PA
  • B.S., GeAysburg 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 wriAen a program?
  • Why are you taking this course?

Jan 8, 2018 Sprenkle - CSCI111 5

What is Computer Science?

  • CS = Complexity Science

Jan 8, 2018 Sprenkle - CSCI111 6

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

  • -Edsger Dijkstra
slide-4
SLIDE 4

4

JeanneAe Wing

Jan 8, 2018 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)

  • MicrosoP VP of Research
  • Formerly at NSF, CMU

CS == Complexity Science

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

Ø Based on informa(on Ø Managing, manipulaTng data Ø Possible algorithms

  • How well can it be done?

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

  • Can it be done at all?

Ø OPen, proof is a program--an implementaTon of the above

Jan 8, 2018 Sprenkle - CSCI111 8

slide-5
SLIDE 5

5

Computer Science Fields

  • OPen research involves combinaTons of

these fields

  • Not just programming!

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

Jan 8, 2018

Theory Other Systems

  • Architecture
  • OperaTng systems
  • Networks
  • Distributed and

parallel systems

  • Databases
  • Algorithms
  • Theory of

computaTon

SoPware

  • Compilers
  • Graphics
  • SoPware

engineering

  • SoPware tesTng

and verificaTon,

  • ArTficial

intelligence

  • RoboTcs
  • Natural

language processing

  • BioinformaTcs
  • VisualizaTon
  • Data science

Sprenkle - CSCI111 9

Programming Computer Science

What I do not do as a Computer ScienTst

  • Fix hardware
  • Fix MicrosoP Windows (or other operaTng

systems) problems

  • Fix MicrosoP Office (or other desktop

applicaTons) problems

Jan 8, 2018 Sprenkle - CSCI111 10

slide-6
SLIDE 6

6

What I Do as a Computer ScienTst

  • Interests: SoPware tesTng, empirical studies,

distributed systems

  • Focus: Automated web applicaTon tesTng

Jan 8, 2018

Web Browser Web Application Server HTTP Request Response: HTML Document

Sprenkle - CSCI111 11

Client

What I Do as a Computer ScienTst

Jan 8, 2018

Find the error(s)!

Sprenkle - CSCI111 12

slide-7
SLIDE 7

7

Find the Errors

Jan 8, 2018 Sprenkle - CSCI111 13 Jan 8, 2018 Sprenkle - CSCI111 14

slide-8
SLIDE 8

8

Jan 8, 2018 Sprenkle - CSCI111 15

Digital HumaniTes

Jan 8, 2018 Sprenkle - CSCI111 16

slide-9
SLIDE 9

9

Digital HumaniTes

Jan 8, 2018 Sprenkle - CSCI111 17

MEET SOME MORE COMPUTER SCIENTISTS

Jan 8, 2018 Sprenkle - CSCI111 18

slide-10
SLIDE 10

10

Jamie White ‘17

SoPware Engineer at Amazon, eBook division

Jan 8, 2018 Sprenkle - CSCI111 19

Patrick Ozark ‘17

BioinformaTcs Analyst at Northwestern University – the Feinberg School of Medicine

Jan 8, 2018 Sprenkle - CSCI111 20

slide-11
SLIDE 11

11

Johanna Goergen ‘16

Jan 8, 2018 Sprenkle - CSCI111 21

SoPware engineer at OpTmizely, a startup in San Francisco OpTmizely: A/B tesTng and personalizaTon Johanna: on the applicaTon backend team, wriTng and maintaining the company's REST API

Haley Archer-McClellan ‘15

  • Focus: web app that tracks

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

Ø meeTng with the team that uses that app Ø developing requirements Ø monitoring legislaTon that impacts the Freedom of InformaTon Act and our client's business processes Ø developing and tesTng our app

Jan 8, 2018 Sprenkle - CSCI111 22

Computer ApplicaTons Programmer/Analyst IT division, Federal Reserve Board

slide-12
SLIDE 12

12

Samantha O’Dell ‘15

  • Computer Science and

English double major

  • Associate Technical Writer

at Google

Jan 8, 2018 Sprenkle - CSCI111 23

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

Lucy Simko McGee ‘11 and Camille Cobb ‘12

  • Security and Privacy Lab

Jan 8, 2018 Sprenkle - CSCI111 24

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

slide-13
SLIDE 13

13

Christyann Pulliam

  • Double major in CS and PoliTcal

Science from GeAysburg College

  • Law Degree from Wake Forest

University

  • Patent Examiner at the US Patent and

Trademark Office

Ø Focus: Search engines, DB apps

Jan 8, 2018 Sprenkle - CSCI111 25

Erich Geist food banks

Jan 8, 2018 Sprenkle - CSCI111 26

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

slide-14
SLIDE 14

14

Your Bios

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

Jan 8, 2018 Sprenkle - CSCI111 27

Hilary Mason

  • Founder of Fast Forward

Labs

Ø a machine intelligence research company

  • Formerly Chief ScienTst at

bitly.

  • “Teaching someone to

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

Jan 8, 2018 Sprenkle - CSCI111 28

slide-15
SLIDE 15

15

What This Course Is About

Jan 8, 2018

From 30 Rock

Problem Solving!

Sprenkle - CSCI111 29

ComputaTonal Problem Solving 101

  • Computa(onal 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 8, 2018 Sprenkle - CSCI111 30

slide-16
SLIDE 16

16

ComputaTonal Problem Solving 101

  • Algorithm: a well-defined recipe for solving a

problem

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

  • Program

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

Jan 8, 2018 Sprenkle - CSCI111 31

What to Expect from this Class

  • First programming course
  • Lots to learn!

Ø IntroducTons to a lot of new ideas

  • Different way of thinking

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

  • WriTng some basic programs

Ø FoundaTons for more complex, sophisTcated code

  • Great power, great responsibility

Jan 8, 2018 Sprenkle - CSCI111 32

slide-17
SLIDE 17

17

Where You Can Go From Here

Jan 8, 2018 Sprenkle - CSCI111 33

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 ApplicaTons, Mobile ApplicaTons, AI, OS, Distributed CompuTng, …

Class Details

  • Course web page

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

  • Monday, Wednesday, Friday lectures

Ø Slides posted aPer class, in PDF format Ø Don’t copy down slides verbaTm

  • 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 8, 2018 Sprenkle - CSCI111 34

slide-18
SLIDE 18

18

Class Details

  • 3 Exams

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

  • Discussion of broader issues in CS

Ø ArTcles about computer science’s effect on everything

  • Get big picture of CS

Ø Write up on Sakai, due Fridays by 11 a.m. Ø Discussion Friday Ø OpportuniTes for extra credit for finding, reading, summarizing addiTonal arTcles

Jan 8, 2018 Sprenkle - CSCI111 35

Instructor ResponsibiliTes

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

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

  • Respond within 24 hours to emailed quesTons

Jan 8, 2018 Sprenkle - CSCI111 36

slide-19
SLIDE 19

19

Student ResponsibiliTes

  • Check W&L email and course web page

frequently for updates

Ø Review enTre syllabus online

  • AAend and parTcipate in class and lecture

Ø Mandatory aAendance Ø Be respecuul to other students

  • Arrive promptly to lecture/lab

Ø Bring your notes and handouts

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

Jan 8, 2018 Sprenkle - CSCI111 37

Textbook

  • Online textbook
  • Supplement to the material

Ø Different perspecTve, addiTonal pracTce problems

  • Register for the class (instrucTons on course

schedule page)

Jan 8, 2018 Sprenkle - CSCI111 38

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

  • Reference frequently
  • Bring with you to lab!
slide-20
SLIDE 20

20

Your TODO List

  • Review the course web page and syllabus

Ø Schedule (may change)

  • Complete the survey and submit to me

tomorrow

Jan 8, 2018 Sprenkle - CSCI111 39

Summary

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

Jan 8, 2018 Sprenkle - CSCI111 40