Compsci 06/101, Spring 2011 1.1 COMPSCI 06/101, Spring 2011 Introduction to Computer Science Owen Astrachan

Slides:



Advertisements
Similar presentations
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
Advertisements

Compsci 92, Spring Compsci 92, Spring 2015 Owen Astrachan
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
COMP152 Object-Oriented Programming and Data Structures Spring 2011.
Honors 101, Fall 2006 Please do not sit in back of room! Lots of info on web page Join the mailing list Download Eclipse and start using it Read the text.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
1 An Extremely Short Introduction to Computer Programming Mike Scott.
1 Spidering the Web in Python CSC 161: The Art of Programming Prof. Henry Kautz 11/23/2009.
Compsci 101, Spring COMPSCI 101, Spring 2012 Introduction to Computer Science Owen Astrachan
CompSci 101 Introduction to Computer Science January 13, 2015 Prof. Rodger compsci 101 spring
1 CSC 221: Introduction to Programming Fall 2012 course overview  What did you set out to learn?  What did you actually learn?  Where do you go from.
CPS 100, Fall COMPSCI 100, Fall 2011 Owen Astrachan w/ Michael Hewner
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
Programming for Interactivity Professor Bill Tomlinson Tuesday & Wednesday 6:00-7:50pm Fall 2005.
CompSci 101 Introduction to Computer Science January 20, 2015 Prof. Rodger compsci 101, spring
COMP Introduction to Programming Yi Hong May 13, 2015.
CompSci 100e Program Design and Analysis II January 18, 2011 Prof. Rodger CompSci 100e, Spring20111.
EECE 310 Software Engineering Lecture 0: Course Orientation.
CompSci 100e1.1 Welcome! Program Design and Analysis II for Engineers CompSci 100E French 2231 M, W 2:50-4:05 Professor Jeff Forbes
CPS 100, Spring COMPSCI 100, Spring 2010 Owen Astrachan
Compsci 06/101, Fall COMPSCI 06/101, Fall 2010 Owen Astrachan Robert Duvall
Compsci 06/101, Fall Compsci 6/101: Sept 6-10 l We've looked at the language Python  Names and types: int, float, long, String, file, …  Operations:
Compsci 06/101, Fall What will we do today? l Practice solving problems  Solving problems without a computer  Is this different than solving.
Copyright Jim Martin 2006 Emerging Scholars Computer Science Session Summer 2006 Dr. Jim Martin Rising Seniors Session.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
CPS 100, Fall COMPSCI 100, Fall 2009 Owen Astrachan
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
Genome Revolution: COMPSCI 006G 1.1 FOCUS COMPSCI 006G Genome Revolution Owen Astrachan
CompSci CompSci 6 Programming Design and Analysis I Dietolf (Dee) Ramm
Computer Science and Everything 1 Big Ideas in Computer Science l “Mathematics is the Queen of the Sciences” Carl Friedrich Gauss l What is Computer Science?
Compsci 6/101, Spring More on Python, Tools, Compsci 101 l APTs, Assignments, Tools  APT: Algorithmic Problem-solving and Testing  How to get.
CompSci 100E 1.1 CompSci 100E Dietolf (Dee) Ramm Robert A. Wagner
Lecture 11 Data Structures, Algorithms & Complexity Introduction Dr Kevin Casey BSc, MSc, PhD GRIFFITH COLLEGE DUBLIN.
Compsci 06/101, Fall Vocabulary l What's the Spanish word for 'boy'? 'eat'?  How do you know? l What about the Turkish equivalents?  How do.
Software Design 14.1 CPS 108 l Object oriented design and programming of medium-sized projects in groups using modern tools and practices in meaningful.
CPS What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread.
CompSci 100e1.1 Welcome! Program Design and Analysis II for Engineers CompSci 100E Soc Psy 126 W, F 2:50-4:05 Professor Jeff Forbes
CPS What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread.
CPS 100, Spring COMPSCI 100, Spring 2009 Owen Astrachan
Compsci 101, Fall Plan For The Day (PFTD) l Practice solving problems  Some solved with a computer, some with Python  Differences in solving.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Data Structures and Algorithms in Java AlaaEddin 2012.
CompSci 101 Introduction to Computer Science January 28, 2016 Prof. Rodger compsci101 spring161.
CompSci 101 Introduction to Computer Science January 26, 2016 Prof. Rodger compsci 101, spring
CPS What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread.
CompSci 101 Introduction to Computer Science January 15, 2015 Prof. Rodger 1.
Introduction to CSCI 1311 Dr. Mark C. Lewis
CSC 241: Introduction to Computer Science I
CompSci 100 Prog Design and Analysis II
CompSci 100E cs. duke CompSci 100E Dietolf (Dee) Ramm
Big Data is a Big Deal!.
CompSci 101 Introduction to Computer Science
INTERMEDIATE PROGRAMMING WITH JAVA
CompSci 6 Introduction to Computer Science
CompSci 100 Dietolf (Dee) Ramm
CompSci 6 Introduction to Computer Science
7 Big Ideas of Computing:
CompSci 101 Introduction to Computer Science
Computer Science 102 Data Structures CSCI-UA
CompSci 101 Introduction to Computer Science
EECE 310 Software Engineering
CompSci 101 Introduction to Computer Science
CS212 Data Structures 2018 Second Semester.
CompSci 1: Principles of Computer Science Lecture 1 Course Overview
COMPSCI 100, Spring 2008 Owen Astrachan
CSC 241: Introduction to Computer Science I
Presentation transcript:

Compsci 06/101, Spring COMPSCI 06/101, Spring 2011 Introduction to Computer Science Owen Astrachan

Compsci 06/101, Spring Data into Information and Knowledge Computer Science

Compsci 06/101, Spring Is a picture worth a thousand words? l 20web&biw=1238&bih= web&biw=1238&bih=969 l ence&biw=1370&bih= ence&biw=1370&bih=1081 l 70&bih= &bih=1081 l iw=1370&bih= iw=1370&bih=1081

Compsci 06/101, Spring Anatomy of a search query l iw=1370&bih= iw=1370&bih=1081 l What comes after the question-mark in the URL?  What is the query string?  What are the browser dimensions?  What is constant in the search query, what changes?  How is the query parameterized ?  How are multiple-word queries handled? l What does this have to do with Computer Science and programming?

Compsci 06/101, Spring Questions about Computer Science What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread which gathers these disparate branches into a single discipline? My answer to these questions is simple --- it is the art of programming a computer. It is the art of designing efficient and elegant methods of getting a computer to solve problems, theoretical or practical, small or large, simple or complex. C.A.R. (Tony)Hoare

Compsci 06/101, Spring not Programming == Computer Science l What is the nature of intelligence? How can one predict the performance of a complex system? What is the nature of human cognition? Does the natural world 'compute'? l It is the interplay between such fundamental challenges and the human condition that makes computer science so interesting. The results from even the most esoteric computer science research programs often have widespread practical impact. Computer security depends upon the innovations in mathematics. Your Google search for a friend depends on state-of-the-art distributed computing systems, algorithms, and artificial intelligence.

Compsci 06/101, Spring Understanding Information/Data l Does understanding computer science help you when you want a new smart phone? l Does knowledge of programming help you get your laptop connected to a wireless access point? l Does experience with algorithms and algorithmic approaches help physicians and attorneys? l Are these important to society, to you?

Compsci 06/101, Spring Milking Stool v Neural Queue l Engineering, Mathematics, Science  Pillars of computer science?  Braid of computer science? l Other aspects of CS?  Technology and policy  Art and visualization  Collaborative Filtering

Compsci 06/101, Spring How will you learn to 'speak'? l

Compsci 06/101, Spring What language will we learn? l l Python is a multi-paradigm language  Procedural  Functional  Object-Oriented l Simple, huge libraries, widely used l Guido is BDFL

Compsci 06/101, Spring Why is it called Python? l m/sec A B C

Compsci 06/101, Spring Course Overview: Is this the right one? l There are details, see the course web pagecourse web page  Midterms and final are open book, what does that mean?  APTs: Algorithmic Problem-solving and Testing Weekly small programming assignments, tested online  Programming assignments: solo, group, …  Lab/recitation: group and individual work l Why should you come to class?  Meet people, learn things, participate in a community  Provide help, get help, wonder, dance, think l Why is this course so great?  Because you’re in it

Compsci 06/101, Spring What's in Compsci 06/101? l Learning about computing, computer science, and programming  Vocabulary of Python and programming languages  Crafting programs from the vocabulary  Power of automation, repetition, scale  Understanding and changing the world l Programming using Python  Tools: Eclipse, EPD, Libraries, …  Engineering and analyzing designs and programs  Using mathematical and scientific techniques  Appreciating and learning art and science of programming  Moving toward scaling solutions (continued later courses)

Compsci 06/101, Spring Questions If you gotta ask, you’ll never know Louis Armstrong: “What’s Jazz?” If you gotta ask, you ain’t got it Fats Waller: “What’s rhythm?” What questions did you ask today? Arno Penzias

Compsci 06/101, Spring From Blog to Scientific Visualization l Text Cloud aka Tag Cloud?  Number of occurrences/emphasis indicated by size of word  Great visual/statistic:  mat=tagcloud mat=tagcloud What information is stored in the URL of the NYTimes site above?

Compsci 06/101, Spring Problem Solving and Programming l How many words are in a file?  What’s a word?  What’s a file?  How do we solve this: simply, quickly, …? What’s the best we can do? Constraints? l How many different/unique words are in a file?  How is this related to previous task? l How many words do two files have in common?  Spell-checking, Google did you mean..? l How many codons does DNA have in common?

Compsci 06/101, Spring Toward a Pythonic Tagcloud generator This is valid and correct Python code, questions? def countWords(filename): file = open(filename) str = file.read() words = str.split() unique = set(words) print "filename: ", filename print "total # words = ",len(words) print "unique # words = ",len(unique) countWords('/data/kjv10.txt') filename: /data/kjv10.txt total # words = unique # words = 34027

Compsci 06/101, Spring Python vocabulary l Python has a large standard library  Organized in modules : sys, io, math, os, …   API browseable online, but Eclipse IDE helps a lot l Python users often use third-party libraries too  Scientific, visual, plotting, …  We will use EPD: Enthought Python Distribution l Python is a multi-paradigm language, though this won't matter so much in the beginning  Very useful later!

Compsci 06/101, Spring Python and Programming Concepts l Names are important, abstractions  What is  What is l Types are important, facilitate operations  What is foo.pdf, foo.mp4, foo.jpg, foo.wav  Do the file extensions guarantee file type? l Thinking in terms of names and types can help  Python has types, inferred dynamically  Python uses types differently from Java and C++ Static v Dynamic

Compsci 06/101, Spring Newsweek Most Important People Hamid Karzai and Stanley McChrystal 2. Steven Chu and Lisa Jackson 3. Vladimir Putin 4. Steve Jobs 5. David Cameron 6. Daphne Koller 7. Republican Governors 8. Brian Roberts 9. Catherine Ashton 10. Sue Naegle

Compsci 06/101, Spring Duke Contributions

Compsci 06/101, Spring Semi-random former students

Compsci 06/101, Spring From Idea to Algorithm to Program l Finding minimal crossing count  Applications? Puzzle-solving?  Given (x i,y i,r i ) and P1, P2 --- determine minimal number of circles to cross to get from P1 to P2 l Input:  [-3,2,2,0,-4,12,12,12]  [-1,2,3,1,5,1,1,1]  [1,3,1,7,1,1,2,3]  (2, 3) (13, 2) l Output:  5

Compsci 06/101, Spring Why is programming fun? Fred Brooks l First is the sheer joy of making things l Second is the pleasure of making things that are useful l Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts l Fourth is the joy of always learning Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff.