Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 102 Computers In Context (Multimedia) 01 / 21 / 2009 Instructor: Michael Eckmann.

Similar presentations


Presentation on theme: "CS 102 Computers In Context (Multimedia) 01 / 21 / 2009 Instructor: Michael Eckmann."— Presentation transcript:

1 CS 102 Computers In Context (Multimedia) 01 / 21 / 2009 Instructor: Michael Eckmann

2 Michael Eckmann - Skidmore College - CS Spring 2009 Todays Topics Introduction of myself Review the syllabus and the list of Topics we'll cover Chapter 1 material –What is computer science

3 Michael Eckmann - Skidmore College - CS Spring 2009 Who is your instructor? I'm Mike Eckmann and this is my fifth year at Skidmore. Before that I was at Lehigh University in PA. I studied Mathematics and Computer Engineering and Computer Science all at Lehigh University. I was employed as a programmer (systems analyst) for eight years.

4 Michael Eckmann - Skidmore College - CS Spring 2009 Syllabus Office hours Text book Class room Assignments Collaboration policy Grading schema Attendance Readings The most up-to-date syllabus will be found on the course web page.

5 Michael Eckmann - Skidmore College - CS Spring 2009 Suggestions on how to succeed in this (or any? CS) course Keep up on the reading before the class period that we cover it. Participate in class -- ask questions in class (best), via or in my office. Start assignments as soon as they are assigned. If you run into snags (and you will), you'll want to have time to be able to come talk to me. These are based on my observations of successful students in past classes.

6 Michael Eckmann - Skidmore College - CS Spring 2009 Homework Homework for Friday: –Read the syllabus and the links in the Academic Integrity section of the syllabus. Please ask for any clarifications of the policies either via or in class. –Read chapter 1 It's only 11 pages –Please jot down thoughts/comments/questions as you're reading. –Next class I'll start by soliciting comments/questions on the reading. –Also, pay particular attention to section 1.2 (that's part of what I'll lecture on next time.)

7 Michael Eckmann - Skidmore College - CS Spring 2009 What is Computer Science? Computer science, according to our textbook, is the study of recipes. We all know what a cooking recipe is. It is a set of ordered instructions on how to prepare a dish. In computer science, a recipe is an algorithm (a set of ordered instruction to solve a problem) or a program (a larger set of instructions possibly containing many algorithms.)

8 Michael Eckmann - Skidmore College - CS Spring 2009 What is computer science? Theorists –Interested in best / better recipes to do a job –Best/ better may be measured in speed (aka efficiency) and/or how much space is required to store the data. Software engineers –managing large projects in putting many (hundreds? thousands?) recipes together, written by different programmers on a team Computer Scientists who study Data structures –Ways to organize data and ways to process that organized data efficiently Do we know any other specializations/subareas of computer science?

9 Michael Eckmann - Skidmore College - CS Spring 2009 What is computer science? Computer Scientists who study Databases Computer Scientists who study Artificial Intelligence Computer Scientists who work in Systems (Operating Systems) Computer Scientists who work in Networking Human computer interaction Computer Scientists who work in algorithms and experiments for computer graphics Computer Scientists who work in algorithms and experiments for computer music Computer Scientists who work in algorithms and experiments for computer vision... and many more subfields

10 Michael Eckmann - Skidmore College - CS Spring 2009 Recipes A few observations about cooking recipes –Should be followed closely by the chef Can't use ½ cup of salt instead of a ½ cup of sugar –Steps have an order to them For example, when making breaded chicken cutlets, you need to coat the chicken with the breading mixture before frying –Some steps aren't required to be ordered For example, if a recipe says to mix a tsp of salt, a tsp of garlic powder and a tbsp of pepper it doesn't matter whether you put the salt in before the pepper and mix them up.

11 Michael Eckmann - Skidmore College - CS Spring 2009 Recipes A few observations about cooking recipes –It's sometimes possible to get the same exact results by following different recipes Not as true in cooking recipes as in algorithms, so the recipe analogy doesn't work perfectly here Sorting example

12 Michael Eckmann - Skidmore College - CS Spring 2009 Recipes Computer scientists use programming languages or pseudocode (neutral) to specify recipes (aka algorithms/programs). You may have heard of various programming languages: Java, C++, C, C#, Python, Perl, Lisp, Scheme, Prolog, Fortran, Basic,... Some languages are better suited for certain tasks than others (e.g. C is speed efficient and has the ability to make very low level calls, therefore it is good for writing Operating Systems, Java is good for portable and safe/reliable code, therefore it is good for programs that might be run on multiple platforms.)

13 Michael Eckmann - Skidmore College - CS Spring 2009 Languages Natural languages (like English) are not used to specify algorithms and programs because they are not precise enough. For example, a program written in a programming language needs to be able to mean the same thing, given the same code (sentence). In English the sentence: Time flies like an arrow. is ambiguous because it has multiple meanings (semantics) for the same syntax.

14 Michael Eckmann - Skidmore College - CS Spring 2009 Languages Our text uses the Python programming language for several reasons –It's popular –It's relatively easy to learn –It's relatively easy to read –It's flexible –However, it's inefficient compared to solving the same problem in say C++.

15 Michael Eckmann - Skidmore College - CS Spring 2009 Languages Python itself is a program (a program that interprets Python programs.) Python is typically implemented in C. Jython is a python implementation in Java. –It provides a programmer to write python code and to use Java's classes Program source code (the code we write) is stored in plain text files. We could write python programs with a text editor, save them and run them with the python interpreter, however our text uses JES (Java Environment for Students) which allows entering code, debugging it and executing it.

16 Michael Eckmann - Skidmore College - CS Spring 2009 Digital vs. Analog Anyone know the difference?

17 Michael Eckmann - Skidmore College - CS Spring 2009 Digital vs. Analog Discrete values vs. Continuous Clocks Life vs. movies Film cameras vs. digital cameras


Download ppt "CS 102 Computers In Context (Multimedia) 01 / 21 / 2009 Instructor: Michael Eckmann."

Similar presentations


Ads by Google