CSC 160 Computer Programming for Non-Majors Lecture #1: What is Programming? Prof. Adam M. Wittenstein

Slides:



Advertisements
Similar presentations
The Writing Process Communication Arts.
Advertisements

Why Bother?. YOUR TURN Brittany Ashleigh Tyler Brandon Kevin Isabella Trey Maggie 1.Read your student profile. 2.Using the Student Work Tool, write.
TS 313 Multimedia Applications Welcome to TS 313 Multimedia Applications There is no audio lecture associated with this set of introduction slides Refer.
John Hurley Cal State LA
Project Proposal.
James Tam Introduction To CPSC 233 James Tam Java Object-Orientation Event driven software.
Writing the report.
CSC 160 Computer Programming for Non-Majors Lecture #3a: Stepper, Words, Sentences (continued) Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Lecture #9: Booleans Prof. Adam M. Wittenstein
CS150 Introduction to Computer Science 1 Professor: Chadd Williams.
CSC 160 Computer Programming for Non-Majors Lecture #5: Defining Functions Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Chapter 2: Numbers, Expressions, and Simple Programs Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Introduction Prof. Adam M. Wittenstein
D. Roberts PHYS 121 University of Maryland PHYS 121: Fundamentals of Physics I September 1, 2006.
CSC 160 Computer Programming for Non-Majors Lecture #3: Calling Functions Prof. Adam M. Wittenstein
CS /29/2004 (Recitation Objectives) and Computer Science and Objects and Algorithms.
CSC 160 Computer Programming for Non-Majors Introduction Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Chapter 4: Conditional Expressions and Functions Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Lecture #5b: Designing Programs Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Lecture #7: Variables Revisited Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Lecture #2: What are Functions? Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Lecture #3a: Stepper, Words, Sentences Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Lecture #3b: Working with Pictures Prof. Adam M. Wittenstein
CSC 160 Computer Programming for Non-Majors Lecture #12: Syntax and Semantics Prof. Adam M. Wittenstein
Test Preparation Strategies
Spring 2012 MATH 250: Calculus III. Course Topics Review: Parametric Equations and Polar Coordinates Vectors and Three-Dimensional Analytic Geometry.
Introduction to Programming Environments for Secondary Education CS 1140 Dr. Ben Schafer Department of Computer Science.
Please CLOSE YOUR LAPTOPS, and turn off and put away your cell phones, and get out your note-taking materials. Today’s daily quiz will be given at the.
Educator’s Guide Using Instructables With Your Students.
Promoting Active Learning Refer to Chapter 2 in Text.
CSCI 200 Introduction To Programming with Visual Basic Bob Bradley.
Introduction CSE 1310 – Introduction to Computers and Programming
Assessment (Midterm /Finals) In-class Participation15 %Homework15%Quizzes20% Project10%Test40% Grade 3.
Compositional Language(s) Instructor: Prof. SIGMAN Tuesday 13:00-15:00 Lecture I.
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
CSC1401: Introductory Programming Steve Cooper
Created by, Author Name, School Name—State FLUENCY WITH INFORMATION TECNOLOGY Skills, Concepts, and Capabilities.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Mr. Widmeyer’s 4th Grade Class Welcome, students!.
CS161 Topic #21 CS161 Introduction to Computer Science Topic #2.
Welcome to CSIS10A Computer Science: Beginning Programming Please, take a syllabus.
Welcome to IIT and cs115!.
Year 9 English exam What to expect and what to do….
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
An Overview of Programming in Python CSC 161: The Art of Programming Prof. Henry Kautz 9/9/2009 Slides stolen shamelessly from Dr. Mark Goadrich, Centenary.
Keys to success on the Gateway: A checklist  Demonstrate that you understand the writing task  Address and develop all parts of the writing task  Organize.
CSC 160 Computer Programming for Non-Majors Chapter 8: Scheme Language Review Prof. Adam M. Wittenstein
CS255 Communication Skills Aidan Mooney
Fall 2014 MATH 250: Calculus III. Course Topics Review: Parametric Equations and Polar Coordinates Vectors and Three-Dimensional Analytic Geometry.
WEEK #1: GETTING STARTED. COMMENCEMENT All material for Week #1 is under the “Commencement” page. It is also duplicated under the “Course Documents” page.
Ms. Taormina Website: staorminaKHS.pbworks.com My Tutoring Hours Tuesdays 3:15pm to 4:15pm Room 2626 Math Department Tutoring.
CS 232: Computer Architecture II Prof. Laxmikant (Sanjay) Kale.
CS 345 – Software Engineering Nancy Harris ISAT/CS 217
Exploring Algorithms PROGRAMMING FUNDAMENTALS. As you come in Find your section area. Find your team. One person from each team should get the team folder.
CS151 Introduction to Digital Design Noura Alhakbani Prince Sultan University, College for Women.
Welcome to Astronomy 113 “ It would seem that you have no useful skill or talent whatsoever, he said.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
James Tam Introduction To CPSC 233 James Tam Java Object-Orientation Event driven software.
James Tam Introduction To CPSC 233 James Tam Java Object-Orientation Graphical-user interfaces.
TYPE OF READINGS.
Welcome to English 101. To Do List for Today: Go over syllabus Discuss turnitin accounts and course website Prepare for success in Eng 101 Discuss the.
Idiom of the Day IN THE LOOP To keep someone informed and up-to-date about what’s happening – usually in the workplace.
Today in CS161 Week #1 The Science of Computing What does it mean to write a program How is game programming different? Consider using Computer Graphics.
REMINDER: If you haven’t yet passed the Gateway Quiz, make sure you take it this week! (You can find more practice quizzes online in the Gateway Info menu.
Mrs. Miller’s Parent Teacher Night Welcome to Grade 4-13 Language Arts Reading Social Studies.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
It’s called “wifi”! Source: Somewhere on the Internet!
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
CS 2530 Intermediate Computing Dr. Schafer
Introduction To CPSC 233 James Tam Event driven software
Presentation transcript:

CSC 160 Computer Programming for Non-Majors Lecture #1: What is Programming? Prof. Adam M. Wittenstein

What's this course about? ● Fundamentals of computer programming ● Going from a word problem to a working program ● Designing programs to be modified and reused ● How computer scientists think

What's this course not about? ● A particular programming language – (e.g. Scheme, Java, C++, perl,...) ● A particular programming environment – (e.g. DrScheme, Visual Studio,...) ● Designing and writing Web pages ● Arithmetic

However, we have to use... ● A programming language – (we'll use Scheme) ● A programming environment – (we'll use DrScheme) ● The Web – (for textbook, assignments, announcements,...) ● Arithmetic (as an example we all know)

Who should take this course? ● Non-CS majors for Math/CS distribution credit ● Math and CIS majors for programming credit ● Undecided majors to “test the waters” of programming ● CS majors as a “warm-up” to CSC 171

Who should not take this course? ● CS majors for major credit ● End-users and Web page authors ● Students needing to fulfill the Second Competency requirement ● Students looking for a “cake” course – This course does require an average of 9 hours a week: 3 in class, and 6 in reading and homework

This course as a Liberal Arts Requirement ● This course trains you to think logically by focusing on Design Recipes: beginning from a problem statement and ending with a well- organized solution, a skill that is useful throughout college and life, regardless of your choice of profession. ● Many professions require some form of computer programming. Some examples include: accounting, photography, music, and of course, computer science.

I. A First Look at How to Design Programs

Computers vs. People ● Computers do many of the same things people do, such as: --calculating numbers --remembering information ● Some differences are that computers are: --faster and more accurate --they do not get bored

Defining Programming ● This course is about Computer Programming. ● To program a computer, one needs to: --Figure out how they would solve a problem. --Present that explanation to the computer.

More on Defining Programming ● Unfortunately, computers are literal-minded and have no intuition. So your explanation has to be more precise than if you were explaining something to a human being. ● Therefore, to program a computer one needs to: --Figure out precisely how they would solve a problem. --Present that explanation to the computer.

Design Recipe (in Life) To solve any problem, in any area (not just programming), requires three steps:  Figure out what you need to do.  Do it.  Check that you did it right.

Design Recipe (in Programming) To make this recipe useful, we need to adapt it more specifically to computer programming:  Figure out precisely what you need to do.  Tell the computer how to do it.  Check that the computer does it right.

II. Types of Knowledge

Imagine this assignment... ● 20-page paper ● Due at end of semester ● On Napoleon's invasion of Russia

What kinds of knowledge are needed? 1. How to write a 20-page paper 2. How to finish a long-term project on time 3. Napoleon & Russia

Imagine this assignment... ● 20-page paper ● Due at end of semester ● On Napoleon's invasion of Russia ● In Swedish ● With a quill pen

What kinds of knowledge are needed? 1. How to write a 20-page paper 2. How to finish a long-term project on time 3. Napoleon & Russia 4. Swedish language (spelling, vocabulary, grammar, idioms…) 5. How to use a quill pen

In a programming course How to structure a program (understand the problem and design a solution) 2. How to plan your time (going through the steps of the Design Recipes) 3. Content-area knowledge (math, graphics, economics, physics, spelling, etc.) 4. Scheme (or C++ or Java or whatever) language 5. How to use the software & hardware

Our Focus Although we need to do all five of these things, our goal is learning how to do the first two. However, all problems require: ● Knowledge (in some content area) ● Language (like English) ● Thinking Tools (like your brain)

Content-area Knowledge ● This is not a course on math or science or English, but we will solve problems from these disciplines. ● No need to worry, I will either give you the required information, or you will be allowed to look it up.

The Beginning of Computers ● Originally computers were about numbers. --Scientists used them to solve equations. --Businesses used them to prepare the payroll. ● We were rescued from this boring state of affairs mainly by researchers in artificial intelligence. --They wanted computers to be more like people --They wanted the computer to treat ideas in general rather than just numbers. ● From this, the LISP programming language was invented. A similar (but simpler) language is Scheme.

Writing and Thinking ● Outside this class, we write in a language called English. Inside this class, we will write in a language called Scheme. ● Outside this class, we use our brain to think about what is being said in English. Inside this class, we use Dr. Scheme to think about what is being said in Scheme.

Scheme is to English ● Scheme - The programming language that we will use. ● Dr. Scheme - the program that we will use to run programs written in Scheme. As Dr. Scheme is to the brain

Choosing a Language to Speak ● We can speak in any language. Why do we choose English?

Choosing a Language to Speak ● We can speak in any language. Why do we choose English? ● Because we already know enough of it to understand the basics of how it works.

Choosing a Language to Program In ● We can program in any programming language. Why do we choose Scheme?

Choosing a Language to Program In ● We can program in any programming language. Why do we choose Scheme? ● Because we can quickly learn enough of it to understand the basics of how it works. ● Because we do not want to spend half our time on obscure language rules, which would be necessary for a Java or C++-based course.

III. Communicating with the Computer

A few preliminary definitions ● Program - A set of instructions that tell the computer how to perform a task ● Programming - Writing a program ● Programming language - a language of instruction for a computer program ● Data - Information that is used by a program ● Operations - The individual instructions performed by the computer ● Primitive operations - The basic operations performed on data of a specific data type. – e.g., +, -, *, / are primitive operations performed on integers.

Some typical problems in English ● The temperature is 35 0 C; convert this temperature into Fahrenheit. ● Are there 7 days in a week? ● How do we cover someone’s face in a picture?

What the computer would think? ● The computer would have no idea what we are asking it.

What the computer would think? ● The computer would have no idea what we are asking it. ● We must communicate with the computer in a language that it understands.

What the computer would think? ● The computer would have no idea what we are asking it. ● We must communicate with the computer in a language that it understands. ● We will communicate in the Scheme language.

Types of Data There are many types of data. They are split into two general categories: 1) atomic (simple) data – numbers, booleans, symbols, images, etc. 2) compound data – structures and lists composed of other pieces of data. For example, a series (list) of numbers. The next several chapters deal only with atomic data. Sometime after the midterm, we will extend our programming to compound data.

IV. Preparing for Next Class

In summary… ● Today we were introduced to: --the ideas behind programming --using a Design Recipe --types of knowledge --how computers think

Reading assignments due Thursday… ● Before next class, please read: --Course Syllabus --Simply Scheme: Forward, Preface, pages How to Design Programs: Preface, Chapter 1 --Joys (and Woes) of the Craft of Programming which covers the topics in today’s lecture. ● Also, please read chapter 2 in Simply Scheme, which covers what we will discuss next class.

Homework #1 (due SUNDAY) ● [20 pts] Log sheet (hand it at Tuesday’s class) ● [20 pts] Posting on Blackboard (minimum 30 words) ● [60 pts] Essay on Readings (about words)

About the reading assignments… ● It is of the utmost importance that all reading assignments are done on time, especially in a Computer Programming course. ● Since this is an undergraduate collegiate course, the lectures are designed to assume all prior readings have been completed and understood. ● If there is any part of a reading assignment that you do not fully understand, please me prior to class letting me know specifically what part, or ask at the beginning of the next class.

Course web page: I recommend you visit the web page frequently as I will post important information including: – the lecture slides (so you can find out what you missed, if you are absent) – reading and programming assignments – assignment corrections (and perhaps, extensions) – class cancellations (in the event of weather, or some other emergency)

Next time… What are functions? ● In high school math, you were asked to find f(5) when f(x) = x + 3. ● To do this, you replaced the x with a 5, so f(5) = = 8. ● We will learn about functions in a more general sense. ● In fact, we will see that functions are not just for numbers.