richard e sarkis csc 161: the art of...

Post on 08-Jul-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Richard E Sarkis CSC 161: The Art of Programming

Introduction

Class Overview

Just the Facts, Ma’am

• Mr. Richard Sarkis

• rsarkis@pas.rochester.edu

• 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)

Why Python?

• We'll be using Version 3.x

• http://www.python.org

Questions?

top related