richard e sarkis csc 161: the art of...
TRANSCRIPT
Richard E Sarkis CSC 161: The Art of Programming
Introduction
Class Overview
Just the Facts, Ma’am
• Mr. Richard Sarkis
• Bausch & Lomb Hall, Room 470
• Take elevators to the 4th floor, 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 Computer Science?
Why Computer Science?
• Everything is bits and computation!
• Astronomy - simulation and observation data
• 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 software
“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: Computing Research News. January 1993.”
Computer science is…
• …the study of computation.
• Feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information
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 off 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 data model and an algorithm
• 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 finite 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)
Questions?