180 likes | 284 Views
Class 1: What this course is about. Assignments. Reading: Chapter 1, pp 1-33 Do in Class 1: Exercises on pages 13, 14, 22, 28 To hand in in Class 2: Exercises on p 33. In a nutshell. This course is about writing computer programs which solve problems
E N D
Assignments • Reading: Chapter 1, pp 1-33 • Do in Class 1: • Exercises on pages 13, 14, 22, 28 • To hand in in Class 2: • Exercises on p 33
In a nutshell • This course is about writing computer programs which solve problems • First step: ‘grok’ the problem. (Look up the meaning and origin of ‘grok’.) • Second step: write the program • Third step: make sure the program correctly solves the problem
What is an algorithm? • An algorithm is an unambiguous, step-by-step procedure for solving a problem • A recipe is an example of an algorithm • An algorithm provides the design for a computer program
What is a computer language? • A computer language is a notation for writing down algorithms • ‘High level’ languages are readable, like natural human languages • Computer languages are precise enough to be executed by (unthinking) machines • All computer languages are fundamentally equivalent in their expressive power
What is a program? • A program is a set of instructions written in a computer language • A program implements an algorithm • A program written in a high-level language may be translated into a low level language (the natural language of a computer)
What is a computer? • A computer is a machine that executes programs (unlike a lawn mower) • A computer can execute any program (unlike a CD-player) • Since computers are Universal Machines, they are all fundamentally equivalent in computing power
How do you write a program? • A computer can execute programs that are tools for creating programs • The programmer’s everyday tools are: • editor • interpreter or compiler • debugger • A suite of such tools is called an integrated development environment (IDE) • We are using the Idle IDE for Python
The editor • An editor is used to write programs • Programs are written in plain text • The file containing the program in a high-level language is called the source file • A Python source file has the extension ‘.py’
The interpreter • An interpreter translates from a high-level language to the computer’s language (instruction set) • The Python shell interprets line by line. • A line of computer code can not be translated and executes unless it is syntactically (grammatically) correct
Debugging • Just because you’ve written some code doesn’t mean you’ve solved your problem. • Testing is the process of trying to discover errors in your program. • Debugging is the process of fixing errors you discover. • (The sentence ‘Colorless green ideas sleep furiously’ is grammatically correct, but what does it mean? Look in up on the Web.)
Panic abatement advice • Expect to spend lots of time • Programmer wisdom: it always takes longer than you think • Expect things to go wrong • Murphy’s law of computers: anything that can’t go wrong, will • Don’t panic: every bug has a fix
Tips for success • Start every assignment early • Don’t fall behind • Ask if you don’t know • Do your own work
Getting help • Use the online help system • Every CA and instructor has office hours • Sign up for one of the study/homework sessions (hint: best right after class) • Learn to work with a partner or team as well as to tackle problems on your own.
Grading • Homework (almost every class) 15% • Roadmap projects 15% • Midterm 1 20% • Midterm 2 20% • Final 25% • Misc 5% • All sections have same work and tests • Course is graded on a curve
Attendance • Lecture attendance is mandatory (you are asked to sign in). Five absences will lead to withdrawal
Homework • HWs are handed in paper (hard copy) and electronically • No late HWs will be accepted • Every HW hard copy must be neatly printed and stapled • Every HW must have student name and ID, date, HW # and section #
Honesty • Cheating on an exam will result in failing the course • You may discuss HW problems with each other • You may not take credit for something you did not do