1 / 19

CS112 Retrospective

CS112 Retrospective. This course is all about…. MATLAB? Computer programming? Scientific applications? Problem solving!. Java. int sumVector (int [] v) { int sum = 0; int i = 0; while (i < v.length) { sum = sum + v[i]; i = i + 1; } return sum; }. MatLab.

amarlon
Download Presentation

CS112 Retrospective

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS112 Retrospective

  2. This course is all about… • MATLAB? • Computer programming? • Scientific applications? • Problem solving!

  3. Java int sumVector (int [] v) { int sum = 0; int i = 0; while (i < v.length) { sum = sum + v[i]; i = i + 1; } return sum; } MatLab function sum = sumVector (v) sum = 0; i = 1; while (i <= length(v)) sum = sum + v(i); i = i + 1; end MatLab vs. Java

  4. What is Computer Science? • It’s not really about computers • It’s not really a science • It’s about imperative (“how to”) knowledge as opposed to declarative (“what is”) knowledge • Imperative knowledge is expressed via algorithms = computational recipes • “A computer language … is a novel formal medium for expressing ideas about methodology, not just a way to get a computer to perform operations. Programs are written for people to read, and only incidentally for machines to execute” -- Harold Abelson and Gerald J. Sussman

  5. Four big ideas • Four important concepts are at the core of computer programming:1. Abstraction2. Modularity3. Divide, Conquer and Glue4. Models • These interrelated ideas are important in almost every discipline, but they’re at the core of computing • We illustrated these ideas in several ways • Our goal was to help you think about problem solving in new ways

  6. Big idea number 1: Abstraction Contract Implementer / Designer User / Client Function Black Box

  7. Big idea number 2: Modularity • Large systems are built from components (modules) • The interfaces between modules are designed so they can be put together in a mix-and-match way • In MatLab, one important goal is to design functions and scripts for maximum reusability

  8. P P1 P2 P3 P4 S1 S2 S3 S4 S Big idea number 3: Divide, conquer & glue Divide problem P into subproblems Conquer each of the subproblems Glue (combine) the solutions to the subproblems into a solution S for P

  9. Big idea number 4: Models Need simple models to understand complex artifacts and behaviors

  10. Assignment #1: Golden Ratio, Olympics, & Stars • Variables and assignment • Mathematical computations • Vectors • Plotting

  11. Assignment #2: Conditionals, Colon Notation, Analyze/Visualize Ocean, Smartphone Data • Conditionals • Cell arrays • Indexing & colon notation • Logical values and expressions • Data analysis and visualization • Mathematical models

  12. Assignment #3: Seeing is Believing, Gradesheets, Energy Data & Bean Counting • Matrices • Real and synthetic images • Tables of data • Reading heterogeneous data • Image processing

  13. Assignment #4: cftool, Ubbi Dubbi, Pole Vault & Spread of Disease • Curve fitting & parameterized equations • String processing • Loops • User-defined functions • Regression models • Simulating models • Animations

  14. Assignment #5: Thumbnails & Favorites, MRI Data, Supply & Demand • Reading/writing image files • Designing “large” programs • Structures • Loops • Interactive programming • Colormaps and color representations • Computing equilibria

  15. Assignment #6: A GUI Sketchpad & Simulating Population Growth • Structures • Graphics handles • Properties • GUIs • Layout editor • Simulations

  16. Assignment #7: Supply Demand Revisited, Mystery of Life, & Parlez-vous Francais? • Reading/writing files • Analyzing textual data • Cell arrays • Frequency statistics iphone supply and demand data fabricated by Sohie, cs112 March 2008 Supply and Demand Quantities in Thousands (x10^3) Price Supply Demand(USA) Demand(Europe) Demand(Asia) Demand(Canada) $1,500.00 800 2.980 5.808 3.864 3.765 $900.00 650 5.767 8.649 9.986 6.755 $500.00 500 35.876 24.855 29.544 28.087 $400.00 225 45.645 30.786 67.211 45.775 $350.00 100 90.656 55.551 106.656 80.099 $250.00 50 120.771 126.191 232.799 129.632 $100.00 20 223.721 246.687 356.053 145.997 $55.00 1 523.875 364.866 467.524 272.075 >> translateRNA sequence 1: Val Thr Stop sequence 2: Ala Leu Cys sequence 3: Ile Met Ala Trp Thr StopLys sequence 4: Tyr Leu Ser Ile Tyr Leu Ser Ile sequence 5: Leu Tyr StopSer Leu StopGln sequence 6: Gln Thr Val Glu Arg Ala Leu sequence 7: Arg Cys Arg Ala Thr Leu Arg Val Ser >>

  17. Assignment #8: Mobius Strip, Reaching for the Stars & Koch Snowflakes • Types of numbers • Color images & colormaps • 3D visualization • Recursion

  18. What Else Is There in CS? • Having taken CS112, you have the tools to solve fundamental problems with computer programs • In future computational courses, you can investigate more complex and creative problems

  19. CS Department Alumnae Address Book Grad school in computer science Manager of database administration at Johnson & Johnson Director of applications engineering at AirFlash Program management for Lotus multilingual products Web application development Teaching computer science Product manager in Silicon Valley Senior consultatnt at Cambridge Technology Partners Human-computer interaction Information technology at Morgan Stanley Foreign exchange trading applications for Citi Smith Barney GE corporate research and development Microsoft Ad agency Program associate at the Center for Democracy and Technology Med school Credit Suisse Senior program manager Architecture Teach English Software engineer Bioinformatics Medical system analysis in healthcare industry

More Related