CS4HS Columbia University Computer Science vs. Computer Programming Adam Cannon Department of Computer Science Columbia University July 7, 2011.

Slides:



Advertisements
Similar presentations
College of Information Technology & Design
Advertisements

College of Information Technology & Design
Chapter 1 - An Introduction to Computers and Problem Solving
8 Algorithms Foundations of Computer Science ã Cengage Learning.
Department of Mathematics and Computer Science
What do Computer Scientists and Engineers do? CS101 Regular Lecture, Week 10.
Chapter 1: An Introduction to Computer Science Invitation to Computer Science, C++ Version, Third Edition.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
CS107 Introduction to Computer Science Lecture 5, 6 An Introduction to Algorithms: List variables.
Carnegie Mellon University Computer Science Foundations for Ph.D. Students The Carnegie Mellon Perspective Computer Science Foundations for Ph.D. Students.
Welcome to Computer Science Open House, November 3, 2002 Presentation by Dr. Boleslaw Mikolajczak Chairperson Computer.
1 Algorithms and Analysis CS 2308 Foundations of CS II.
The Fundamentals: Algorithms, the Integers & Matrices.
February 17, 2015Applied Discrete Mathematics Week 3: Algorithms 1 Double Summations Table 2 in 4 th Edition: Section th Edition: Section th.
COMP s1 Computing 2 Complexity
Welcome to USA DAY at University of South Alabama School of Computer and Information Sciences
Introduction to Computer and Programming CS-101 Lecture 6 By : Lecturer : Omer Salih Dawood Department of Computer Science College of Arts and Science.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
OverviewOverview – Preparation – Day in the Life – Earnings – Employment – Career Path Forecast – ResourcesPreparationDay in the LifeEarningsEmploymentCareer.
© Thomson/South-WesternSlideCHAPTER 141 CAREER INFORMATION The World of Work Exploring Occupations Chapter 14.
Discrete Mathematics Algorithms. Introduction  An algorithm is a finite set of instructions with the following characteristics:  Precision: steps are.
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
Cool Computing News Computing majors are in demand By 2016 there will be more than 1.5 million new high- end computing jobs Five of.
CompSci 1: Principles of Computer Science Lecture 1 Course Overview.
Computer Science Department 1 Undergraduate Degree Program Computer Science Chair Dr. Kurt Maly.
Fundamentals of Algorithms MCS - 2 Lecture # 1
Analysis of Algorithms
Building Java Programs Chapter 1 Introduction to Java Programming Copyright (c) Pearson All rights reserved.
KFUPM-COE Industrial Advisory Council Meeting 31/5/ Department of Computer Engineering (COE) College of Computer Sciences and Engineering (CCSE)
Introduction to Algorithms. What is Computer Science? Computer Science is the study of computers (??) This leaves aside the theoretical work in CS, which.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Prepared By Dr. Ahmet KABARCIK IE 101 – Indutrial Engineering Orientation Information Systems and Technology
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
How Solvable Is Intelligence? A brief introduction to AI Dr. Richard Fox Department of Computer Science Northern Kentucky University.
Chapter 2: General Problem Solving Concepts
Major Disciplines in Computer Science Ken Nguyen Department of Information Technology Clayton State University.
CMSC104 Problem Solving and Computer Programming Spring 2011 Section 04 John Park.
1 Section 2.1 Algorithms. 2 Algorithm A finite set of precise instructions for performing a computation or for solving a problem.
Programming and Languages
Computer Science 210 Computer Organization Course Introduction.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI 230 Models of Computation Dale Roberts, Lecturer Computer Science,
Computer in Everyday Life
Master’s Degree in Computer Science. Why? Acquire Credentials Learn Skills –Existing software: Unix, languages,... –General software development techniques.
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
ALGORITHMS.
8.1 8 Algorithms Foundations of Computer Science  Cengage Learning.
Chapter 3 Chapter Summary  Algorithms o Example Algorithms searching for an element in a list sorting a list so its elements are in some prescribed.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
Definition of Computer Science
Applied Discrete Mathematics Week 2: Functions and Sequences
Analysis of Algorithms
Computer Science Courses
Ch. 11 Theory of Computation
Big Ideas in Computer Science
Enough Mathematical Appetizers!
An Introduction to Visual Basic .NET and Program Design
Lecture 2: Introduction to Algorithms
COMS W1004 Introduction to Computer Science and Programming in Java
Computer Science 210 Computer Organization
Lecture 3: Analysis of Algorithms
Algorithms Chapter 3 With Question/Answer Animations
CS 1104 INTRODUCTION TO COMPUTER SCIENCE
Computer Science Education Week
Objective of This Course
Applied Discrete Mathematics Week 6: Computation
Discrete Mathematics CS 2610
Computer Science Courses in the Major
Computer Science 210 Computer Organization
Presentation transcript:

CS4HS Columbia University Computer Science vs. Computer Programming Adam Cannon Department of Computer Science Columbia University July 7, 2011

Outline Motivation: The Numbers Preliminary Definitions Algorithmic Thinking Some everyday examples Some slightly more technical examples Analyzing algorithms Computer Science Today and Tomorrow

Why Are We Here? In the last 10 years CS enrollments at US colleges has declined sharply CS education is important not just for future STEM professionals We believe part of the problem is perception We need your help!

CS Enrollements Just how bad is it? This data is from the CRA annual Taulbee surveys (see more at

Degree Production vs. Job Openings 160, , , ,000 80,000 60,000 40,000 20,000 Thanks to Eric Roberts. Adapted from a presentation by John Sargent, Senior Policy Analyst, Department of Commerce, at the CRA Computing Research Summit, February 23, Original sources listed as National Science Foundation/Division of Science Resources Statistics; degree data from Department of Education/National Center for Education Statistics: Integrated Postsecondary Education Data System Completions Survey; and NSF/SRS; Survey of Earned Doctorates; and Projected Annual Average Job Openings derived from Department of Commerce (Office of Technology Policy) analysis of Bureau of Labor Statistics projections. See Sources:

Big Slice of Pie

A popular misconception Cultural stereotypes CS is nerdy CS is for men Misconceptions about careers in computing There are no jobs CS is like solitary confinement CS and CP are the same thing Who is to blame? Media? AP exams? Wall Street?

Preliminary Definitions Computer Science (Gibbs and Tucker, 1986) The study of algorithms including Their formal and mathematical properties Their hardware realizations Their linguistic realizations Their applications

Preliminary Definitions Algorithm: Dictionary Definition: A procedure for solving a mathematical problem in a finite number of steps that frequently involves repetition of an operation; broadly: a step-by-step method of accomplishing some task.

Preliminary Definitions Computer Programming: Dictionary Definition: Constructing a sequence of instructions to enable a computer to perform a specific task.

Algorithmic Thinking Algorithms extract the intelligence from a task Algorithms can amplify human intellect We employ algorithmic thinking everyday To do lists Optimizing travel by subway Cooking dinner Sorting laundry Playing sports Whether or not we are interested in a career in computer science we cannot escape the profound effect it has on our lives every day.

Introduction to Algorithms There are three components to an algorithm: 1. A set of inputs, where each input is a finite sequence of items. 2. A set of outputs, where each output is a finite sequence of items. 3. A method consisting of a finite sequence of instructions, each one of which can be mechanically executed in a fixed length of time with a fixed amount of resources. The method must produce an output for each input in the set of possible inputs in a finite amount of time.

Introduction to Algorithms Input size: associated with each input is a measure of its size. How we measure the size can vary from problem to problem. Examples: Number of digits as in the number of digits in a number (Often we use binary digits). Number of characters in a string. Number of items as in the number of items to be searched or sorted.

Your first Algorithm Linear Search: (also called sequential search) Algorithm to determine whether a given name x appears on a list. Input: A list of n ≥1 names A[1], A[2],..., A[n], and a given name x. Output. The message "Sorry, x is not on the list" if x is not on the list. Otherwise, the message: "x occurs at position i on the list."

Linear Search Linear Search Searching a phone book: 1.5 Million people in Manhattan I can scan 15 names/second This could take me 100,000 seconds Which is about 28 hours! Not a great algorithm for searching the phone book

Binary Search Searching a sorted list How can we exploit the structure that a sorted list provides? Start in the middle and determine in which half of the list our target lives Repeat this procedure eliminating half of the remaining list elements on each iteration What is the maximum number of comparisons required here?

Binary Search Each time I check a name I eliminate half of the remaining names. At most how many names must I check in the previous phone book example? log 2 (1.5 million) This is only about 21 names!

Where does programming fit in? Suppose we want a computer to execute the algorithms we just described We need a notation that specifies instructions that a computer can execute Pseudocode is an informal example of what this notation might look like

Pseudocode for Linear Search found = "no"; i=1; while (found == "no" and i <= n) { if (A[i] == x) { found = "yes"; location = i; } i++; } if (found == "no") { print ("Sorry, " + x + " is not on the list"); } else { print (x + " occurs at position " + location + " on the list"); }

Pseudocode for Binary Search found = "no"; begin = 1; end = n; while (found == "no" and begin  end) { m = begin + floor((end-begin)/2) if(A[m] == x) { found = "yes"; location = m; } if(A[m]>x) end = m-1; if(A[m]<x) begin = m+1; } if (found == "no") { print ("Sorry, " + x + " is not on the list"); } else { print (x + " occurs at position " + location + " on the list"); }

Computer Science Today Designing software/hardware systems Personal computers (Windows, OSX, Linux) Tablets Smartphones Xbox Creating services/businesses Google Facebook eBay Solving problems Amplifying the intellect Having fun, serving society, and making a profit!

Computer Science: What’s inside? Software and hardware systems Networks, security, embedded systems Theoretical foundations Multimedia generation and user interfaces Information representation, management, and data mining Vision, graphics, and robotics Computational biology, quantum computing Machine learning, artificial intelligence

CS Research Groups at Columbia Asynchronous Circuits and Systems Group Autonomous Agents Lab Columbia Automated Vision Environment Columbia Vision and Graphics Center Computational Biology Computer Architecture and Security Technology Laboratory Computer Graphics Group Center for Computational Learning Systems Computer Graphics and User Interfaces Laboratory Database Research Group Digital Libraries Distributed Computing and Communications Laboratory Distributed Network Analysis Research Group Information-Based Complexity Internet Real-Time Laboratory Intrusion Detection Systems Languages and Compilers Group Machine Learning Natural Language Processing Group Network Computing Laboratory Network Security Laboratory Programming Systems Laboratory Robotics Laboratory Systems Security Center Spoken Language Processing Group Theory of Computing Group

What About Jobs? Technology Applications Finance Preparation for a professional School Graduate school  research

Want to learn more? Contact me: Check out these great papers: Or check out these books: Explosion/dp/ /ref=sr_1_1?ie=UTF8&qid= &sr=8-1 Explosion/dp/ /ref=sr_1_1?ie=UTF8&qid= &sr=8-1 Capabilities/dp/ /ref=sr_1_1?s=books&ie=UTF8&qid= &sr=1-1 Check out these resources: