<<

Lecture Introduction

Richard E Sarkis CSC 161: The Art of Programming Class Overview Just the Facts, Ma’am

• Mr. Richard Sarkis • [email protected] • Bausch & Lomb Hall, Room 470 • Take elevators to the 4th foor, make a left and all the way to the end of the hall Class Organization

• Mix of Blackboard and class website • Lectures: � "expert" insight � • Assignments: Mission Possible • Project: Have some fun! • Exams: Test your mettle. • Quizzes: Hint: go to workshops! Lectures

• See class website for schedule! • I’ll try to keep it interesting • Live coding demos • Questions from the audience • Class participation is highly encouraged Syllabus What is ? Why Computer Science?

• Everything is bits and computation! • Astronomy - simulation and observation • Biology – Protein folding • Music – Sound processing • Mechanical Engineering – Load bearing • Literature – Text analysis • What are you studying? Lies, damned lies…

• Common misconceptions about Computer Science • Computer science is the study of computers • Computer science is the study of how to write computer programs • Computer science is the study of the uses and applications of computers and “What would we like our children- the general public of the future—to learn about computer science in schools? We need to do away with the myth that computer science is about computers. Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools, it is about how we use them and what we find out when we do."

Micheal R. Fellows, Ian Parberry (1993) "SIGACT trying to get children excited about CS". in: Research News. January 1993.” Computer science is…

• …the study of computation. • Feasibility, structure, expression, and mechanization of the methodical processes (or ) that underlie the acquisition, representation, processing, storage, communication of, and access to (data structures). What a tool

The computer is just a tool, described and realized by the concepts computer science. Why Programming? “The art of programming is the art of organizing complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible.”

Edsger W. Dijkstra (1970) "Notes On Structured Programming" (EWD249), Section 3 ("On The Reliability of Mechanisms"), p. 7. Why Programming?

• Simply using of the shelf applications will get you a long way: • Spreadsheets, Photo editors, word processors • But if you are doing novel, creative work, sooner or later, you will need to solve a new problem • Learning good principles of programming will make it possible with more fun and less frustration • Analogy: Knowing how to cook versus microwaving TV dinners Programming

• Take a computing problem and create an executable program • Analyze and understand the problem • Design a and an • Data model: way to represent the information • Algorithm: formal computation steps • Implement the algorithm in a computer language Programming

• Programming != solving a problem • Programming is teaching somebody else how to solve a problem • “Somebody else” is a computer • A computer is a device that can be programmed to carry out a fnite set of operations on binary numbers • Computers can’t do anything that they are not programmed to do Tic-Tac-Toe

• An almost universally known game • To create a Tic-Tac-Toe program you have to teach a computer: • The rules of the game • A strategy to play the game • (Plus other things, like input/output, etc) Programming Example Why Python? Why Python? CSC 161 will give you a practical tool for your whole career! Why Python?

• Python is rapidly becoming a language of choice for: • Scientists (NASA) • Web site builders (Reddit) • Researchers in the humanities (Somebody…) • Application developers (Dropbox) Why Python?

• We'll be using Version 3.x • http://www.python.org Questions?