css 161 a fundamentals of computing introduction september 24, 2012

43
CSS 161 A Fundamentals of Computing Introduction September 24, 2012 Instructor: Uma Murthy CSS SKL 161 A Instructor: Joe McCarthy CSS 161: Fundamentals of Computing

Upload: althea-walsh

Post on 01-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

CSS 161 A Fundamentals of Computing Introduction September 24, 2012. Instructor: Uma Murthy CSS SKL 161 A Instructor : Joe McCarthy. Outline. What is this course? Who am I, and why am I here? Who are you, and why are you here? Logistics Introduction to Fundamentals of Computing - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

CSS 161 AFundamentals of Computing

IntroductionSeptember 24, 2012

Instructor: Uma Murthy

CSS SKL 161 A Instructor: Joe McCarthy

Page 2: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Outline

• What is this course?• Who am I, and why am I here?• Who are you, and why are you here?• Logistics• Introduction to Fundamentals of Computing• Next steps

Page 3: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

What is this course?

Page 4: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course lab

CSSSKL 161 A Friday 11:00AM-1:30PMUW1 120

Page 5: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Who am I?

• Joe McCarthy, Ph.D.– Senior Lecturer, Computing & Software Systems– Naming conventions• “Joe”• “Professor McCarthy”• “Dr. McCarthy”• “Professor Joe”• “Dr. Joe”

Page 6: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Your instructor for this course

• Uma Murthy, Ph.D.– Lecturer, Computing

& Software Systems– Currently traveling

in India and will return for the Oct 1 class

Page 7: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Why am I here [today]?

• Covering for Uma, who is in India• But why am I involved in this class (CSS [SKL]

161 A)?

Page 8: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Empowerment

“most of society remains one full dimensional leap of awareness and capability behind the few who manage to monopolize access to the real power of any media age …”

“if we take up this challenge [programming], we are looking at nothing less than the conscious, collective intervention of human beings in their own evolution. It’s the opportunity of a civilization’s lifetime.”

Hearers (vs. speakers)

Readers(vs. writers)

Viewers(vs. producers)

Page 9: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Empowerment … with benefits

http://www.geekwire.com/2012/chart-pays-seattle-software-engineers/

Page 10: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Who are you & why are you here?

• Name• Why are you taking this course?• What was your favorite class (& why)• What is your favorite computer program?• If you could write a program to do anything,

what would it do?

Page 11: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

[How] are you experienced?

• Do you have any programming experience?– Note: no experience necessary (or expected)

• For those with experience, which language(s)?• Which operating systems have you used?• Do you own a laptop / desktop?• Do you own a smartphone? What kind?• What other computing devices do you own?• What is your primary browser? Search engine?• Do you use Facebook? Twitter? Google+? Pinterest?

Page 12: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Online survey

• Complete survey on your background– Check email tomorrow

Page 13: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course Objectives• Learn

– programming fundamentals

– computer organization

– algorithmic thinking

– software engineering concepts

– social and professional issues

Page 14: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course Objectives• Learn

– programming fundamentals

– computer organization

– algorithmic thinking

– software engineering concepts

– social and professional issues

Page 15: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course Objectives• Learn

– programming fundamentals (control structures, data types and representation, I/O operations, functions and parameters … in Java)

– computer organization

– algorithmic thinking

– software engineering concepts

– social and professional issues

Page 16: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course Objectives• Learn

– programming fundamentals (control structures, data types and representation, I/O operations, functions and parameters … in Java)

– computer organization(hardware, software, CPU, memory, storage, I/O devices, …)

– algorithmic thinking

– software engineering concepts

– social and professional issues

Page 17: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course Objectives• Learn

– programming fundamentals (control structures, data types and representation, I/O operations, functions and parameters … in Java)

– computer organization(hardware, software, CPU, memory, storage, I/O devices, …)

– algorithmic thinking(clearly specified sequence of steps)

– software engineering concepts

– social and professional issues

Page 18: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course Objectives• Learn

– programming fundamentals (control structures, data types and representation, I/O operations, functions and parameters … in Java)

– computer organization(hardware, software, CPU, memory, storage, I/O devices, …)

– algorithmic thinking(clearly specified sequence of steps)

– software engineering concepts (specifications, design, testing)

– social and professional issues

Page 19: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course Objectives• Learn

– programming fundamentals (control structures, data types and representation, I/O operations, functions and parameters … in Java)

– computer organization(hardware, software, CPU, memory, storage, I/O devices, …)

– algorithmic thinking(clearly specified sequence of steps)

– software engineering concepts (specifications, design, testing)

– social and professional issues (history, ethics, applications)

• Have fun• Consciously & collectively intervene in our own evolution

Page 20: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course Logistics• Uma Murthy

– Office: UW1-360E; Phone: 425-352-????– Office hours (after this week):

• MW 1:15 - 2:15pm & by appointment

– Email: [email protected] (Use CSS161 in subject)

• Class meetings– Lectures: MW 11:00am-1:00pm, UW2-221

• Class web site:– http://courses.washington.edu/css161/umurthy/– Links to lecture notes, homeworks, supplemental material,

discussion forums, homework Dropbox– Please be patient as the website is updated with resources in the coming

week

Page 21: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Grading

• Homeworks– Mostly programming problems– 6-8 homeworks, 30% of grade

• Midterm Exams– Based on readings, lectures, discussions, assignments, labs– 2 exams, 40% of grade

• Final Exam– In the week of December 10 (TBD and notified)– 25% of the grade

• Quizzes: – 5% of grade

• UWB Academic Standards will be strictly enforced

Page 22: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Homeworks• Unless otherwise noted: – All homeworks must be submitted digitally via the class

Catalyst Dropbox• https://catalyst.uw.edu/collectit/dropbox/umurthy1/23719

– Homework documents, files and directories must follow a naming convention laid out in the submission instructions

– Homeworks are due by the beginning of class on the date they are due

– No late homeworks will be accepted, nor makeup exams given, except under extenuating circumstances

Page 23: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Quizzes

• Typically include short answer questions• Typically held in the first 20 minutes of class

either on a Monday or Wednesday• Quiz notifications will be given in the prior

week

Page 24: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Questions / Discussion Forums

• Who questions much, shall learn much, and retain much. – Francis Bacon

• Please ask – and answer – questions – in class– Discussion Forum (Catalyst GoPost)– via email – in person during my office hours

• Discuss issues, problems & approaches, but do not post solutions to homeworks

Page 25: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

https://catalyst.uw.edu/gopost/board/umurthy1/29824/

Page 26: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

If you want to learn, teach

Page 27: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Experimentation

“Do not be too timid and squeamish about your actions. All life is an experiment. The more experiments you make the better.”

- Ralph Waldo Emerson

Page 28: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Required Textbook

Absolute Java, 5th Edition Walter Savitch & Kenrick MockAddison-Wesley, 2013

4th Edition OK, too

Page 29: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Supplemental Material (1/2)

Java: An Introduction to Problem Solving & Programming, 6th EditionWalter SavitchAddison-Wesley, 2012

http://courses.washington.edu/css161/joemcc/Notes/SavitchCh01.pdf

(access via “Notes” link on course homepage)

Page 30: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Supplemental material (2/2)

• Practice It!http://webster.cs.washington.edu:8080/practiceit/

• Instructions to be provided in the coming weeks

Page 31: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course schedule – 1/2 (check on website)

Page 32: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Course schedule – 2/2 (check on website)

Page 33: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Fundamentals of Computer Programming

Page 34: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Fundamentals of Computer Programming

• What is a program?

Page 35: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Fundamentals of Computer Programming

• What is a program?• What is programming?

Page 36: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Fundamentals of Computer Programming

• What is a program?• What is programming?• What is a computer program?

Page 37: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Fundamentals of Computer Programming

• What is a program?• What is programming?• What is a computer program?• What is computer programming?

Page 38: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Page 39: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

FirstProgram.java

FirstProgram.class

javac

java

Page 40: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Page 41: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

[In Mac OS X Terminal window]

localhost:code umurthy$ ls FirstProgram*FirstProgram.javalocalhost:code umurthy$ javac FirstProgram.java Localhost:code umurthy$ ls FirstProgram*FirstProgram.class FirstProgram.javaLocalhost:code umurthy$ java FirstProgramHello reader.Welcome to Java.Let's demonstrate a simple calculation.2 plus 2 is 4Localhost:code umurthy$

Page 42: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Page 43: CSS 161 A Fundamentals of Computing Introduction September 24, 2012

CSS 161: Fundamentals of Computing

Next time (Wednesday)

• Fill out survey (check email tomorrow afternoon)

• Get textbooks• Read: – Absolute Java, Section 1.1– Java: An Introduction…, Sections 1.1 & 1.3• Recommended: Section 1.4