CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 12/8/2006 Lecture 25 – Closing Words.

Slides:



Advertisements
Similar presentations
CP411 Computer Graphics, Wilfrid Laurier University Introduction # 1 Welcome to CP411 Computer Graphics 2012 Instructor: Dr. Hongbing Fan Introduction.
Advertisements

Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
CSE Spring 2015 INTERMEDIATE PROGRAMMING
COMP 110 Introduction to Programming Tabitha Peck M.S. January 9, 2008 MWF 3-3:50 pm Philips 367.
James Tam Introduction To CPSC 231 James Tam Administrative (James Tam) Contact Information -Office: ICT 707 -
Intro to CIT 594
Intro to CIT 594
CMSC 132: Object-Oriented Programming II
21-Jun-15Advanced Programming Spring 2002 Advanced Programming Henning Schulzrinne Dept. of Computer Science Columbia University.
Systems Programming Course Gustavo Rodriguez-Rivera.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
Russell Taylor Lecturer in Computing & Business Studies.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
SM3121 Software Technology Mark Green School of Creative Media.
Introduction to Programming Environments for Secondary Education CS 1140 Dr. Ben Schafer Department of Computer Science.
Intro to CIT 594
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
Chocolate Bar! luqili. Milestone 3 Speed 11% of final mark 7%: path quality and speed –Some cleverness required for full marks –Implement some A* techniques.
Computer Science 2211b Software Tools and Systems Programming.
How to Learn in This Course CS 5010 Program Design Paradigms “Bootcamp” Lesson 0.1 © Mitchell Wand, This work is licensed under a Creative Commons.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Introduction to Programming Peggy Batchelor.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
By – Tanvir Alam.  This tutorial offers several things.  You’ll see some neat features of the language.  You’ll learn the right things to google. 
21 August Agenda  Introductions  Logistics  Selecting a project  Working with a client.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
CSE 451 – Operating Systems Section, Autumn 2003 TAs: Mike Swift Adrienne Noble
Course Information Sarah Diesburg Operating Systems COP 4610.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Principles of Computer Science I Honors Section Note Set 1 CSE 1341 – H 1.
CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 12/6/2006 Lecture 24 – Profilers.
How to Learn in This Course CS 5010 Program Design Paradigms “Bootcamp” Lesson 0.1 © Mitchell Wand, This work is licensed under a Creative Commons.
Lecture.1: Getting Started With Java Jiang (Jen) ZHENG May 9 th, 2005.
Aug Introduction CMSC 104 section 301 Problem Solving and Computer Programming Fall 05.
CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 10/18/2006 Social Implications Discussion 1 – Robotics and Nanotechnology.
Computer Software Types Three layers of software Operation.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 11 – gdb and Debugging.
CS12230 Introduction to Programming Lecture 6-2 –Errors and Exceptions 1.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 4 – Shell Variables, More Shell Scripts.
Course Introduction David Ferry, Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO 1E81.
Copyright 2014 – Noah Mendelsohn Performance Analysis Tools Noah Mendelsohn Tufts University Web:
Analysis of Algorithms: Math Review Richard Kelley, Lecture 2.
Dr. Sajib Datta Jan 15,  Instructor: Sajib Datta ◦ Office Location: ERB 336 ◦ Address: ◦ Web Site:
CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 10/11/2006 Lecture 7 – Introduction to C.
Related Courses CMPT 411: Knowledge Representation. Mainly Logic. CMPT 413: Computational Linguistics. Dealing with Natural Language. CMPT 419/726: Often.
CSC207 Fall 2016.
CSE 374 Programming Concepts & Tools
CSE 374 Programming Concepts & Tools
CSE 303 Concepts and Tools for Software Development
Course Information Mark Stanovich Principles of Operating Systems
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
Intro to CIT 594
Andy Wang Operating Systems COP 4610 / CGS 5765
CSE 303 Concepts and Tools for Software Development
CSE 303 Concepts and Tools for Software Development
Andy Wang Operating Systems COP 4610 / CGS 5765
CS 2530 Intermediate Computing Dr. Schafer
CMSC201 Computer Science I for Majors Final Exam Information
Intro to CIT 594
Intro to CIT 594
Andy Wang Operating Systems COP 4610 / CGS 5765
CSE 303 Concepts and Tools for Software Development
CS201 – Course Expectations
CSE 303 Concepts and Tools for Software Development
CSE 303 Concepts and Tools for Software Development
Presentation transcript:

CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 12/8/2006 Lecture 25 – Closing Words

12/8/2006CSE 303 Lecture 252 Administravia Papers due now –Late? to Richard Davis Review session –Sunday Noon-2PM, EE-037 –You'll need your ID card to get in –Can't make it? Richard Davis. –I'll find another time for those people Probably on Monday

12/8/2006CSE 303 Lecture 253 Administravia (cont'd) Exam on Tuesday, 2:30 PM, this room –Bring a TWO-sided sheet of notes (8½" x 11") –How to study Go over topic sheet (posted on web under "exams") Go over lecture slides Go over code studied in class Go over assignments Look over reading material –Only if you don't understand something from above Do finals from previous two quarters –topics slightly different.

12/8/2006CSE 303 Lecture 254 Where We Are Last time –Profilers Today –A few words about Performance Tuning –Closing Words –Course Evaluation

12/8/2006CSE 303 Lecture 255 Poor man's Profiling with "time" Use to measure whole program time –Usage example: time program args Three types of time reported –real: roughly "wall clock" Includes time used by other programs Includes disk access time –user: time spent running code in the program –system: time the O/S spent doing stuff Includes I/O (Note: gprof doesn't measure this)

12/8/2006CSE 303 Lecture 256 Performance Tuning "First make it work, then make it fast" Steps in performance tuning 1.Get things to work well, write clean code 2.Locate bottlenecks and performance issues –Sometimes they are obvious –Otherwise, profiler can help 3.Optimize your overall program 4.Use low-level tricks if you need to Try compiling with "optimization flags" –gcc / g++ uses -O1, -O2, -O3

12/8/2006CSE 303 Lecture 257 What You've Learned Practical applications of computer science –Example: gdb You know debugging concepts You also know a handful of commands –CS knowledge != knowing tons of commands But knowing some is very helpful Always seek to learn more

12/8/2006CSE 303 Lecture 258 Course Concepts Shell scripting –Automating program invocation C/C++ programming –A lower level of computing –Data is just bits –Pointers are explicit –Memory managed manually

12/8/2006CSE 303 Lecture 259 Course Concepts (cont'd) The build process –How to manage source files –How they turn into running programs Software Engineering Methods/Tools –How to communicate with other developers –How to build robust programs Other Tools –How to measure running programs

12/8/2006CSE 303 Lecture 2510 Societal Implications We talked about it like computer scientists –We're logical and (usually) rational –We understand limitations of Technology Humans "We" should'nt make all decisions ourselves –But we should be actively engaged in process

12/8/2006CSE 303 Lecture 2511 You've made two steps toward this Sony Pictures Imageworks -- Graphics Software Developer Sony Pictures Imageworks, an Academy Award winning digital production studio, is seeking a software developer to design, develop and maintain lighting software for feature films. Our lighting software, Katana, is currently being used for our upcoming movies "Spiderman 3" and "Surf's Up". Candidate should have programming experience in one or more of the following areas: lighting, compositing, rendering. Required skills: * C/C++ * Linux (RedHat/Centos) * Familiarity with Renderman or other production renderers. Desirable skills: * Python programming * GUI programming (Qt/PyQt, WxWidgets) * Knowledge of Maya API, Houdini * Shader writing, compositing * OpenGL and 3D math.

12/8/2006CSE 303 Lecture 2512 The Ultimate Goal In 5 years, this class will look like a waste –You won't remember not knowing this –You won't know why you need a class To pick up a new tool To automate a repetitive task

12/8/2006CSE 303 Lecture 2513 What should you learn next? Plenty more about each topic Plenty of other topics –Concurrency Some interesting things –Scripting languages: Perl, Python, Ruby –Managing dependencies ( gcc -M -MM -MG )

12/8/2006CSE 303 Lecture 2514 What should you learn next? (C++) Mozilla Portability Guide –Avoid templates –Don't use exceptions –Don't use STL (or ostream) (try –Don't use namespaces –Careful with for (int i=0; … –Always declare copy constructor & operator=

12/8/2006CSE 303 Lecture 2515 How should you go about learning? When curious about topic "X" –Search for "X", "X tutorial", "X documentation" –Plenty of decent tutorials out there Learn from each other –Better to ask a question today than tomorrow –Books are good, too The more you know, the easier it gets

12/8/2006CSE 303 Lecture 2516 How should you go about learning? When curious about topic "X" –Search for "X", "X tutorial", "X documentation" –Plenty of decent tutorials out there Learn from each other –Better to ask a question today than tomorrow –Books are good, too The more you know, the easier it gets

12/8/2006CSE 303 Lecture 2517 The End That's All Now for a course evaluation

12/8/2006CSE 303 Lecture –15) What I have learned in _____ will be useful for my future work in computer science. 13) lectures 14) programming assignments 15) social implications assignments/discussions 16) Programming assignments were interesting. 17) HW1–HW4 (Unix, C) were… 18) HW5–HW7 (C++, Tools) were… Strongly Agree Agree Somewhat Agree Strongly Disagree Disagree Somewhat Disagree Much Too Easy Too Easy Much Too Hard Too Hard Just Right

12/8/2006CSE 303 Lecture 2519 On Back of yellow sheet: Which societal implications discussion format did you find the most informative? Why? –Group discussion + present summary –Group discussion + argue opposite position –Full class discussion