Software engineering: A Whirlwind Tour Jacob Whitehill ( jake@mplab.ucsd.edu ) Machine Perception Laboratory, http://mplab.ucsd.edu UCSD
Slide 2Goals of This Talk Introduce you to the investigation of PCs & calculation. Give a super-quick voyage through different sub-regions of software engineering. Enlighten you a touch of regarding our lab's exploration. Demonstrate a few demos.
Slide 3Finding the science in Computer Science
Slide 4Computer Science: Misconceptions Computer science is identified with, however particular from, the accompanying fields: Information Technology (IT). PC & arrange administration Computer programming
Slide 5Computer Science: Misconceptions Information Technology (IT): The study, improvement, and administration of data frameworks - PC & programming frameworks that oversee a lot of data. Case: plan a proficient database for Verizon to handle charging data for 100 million clients.
Slide 6Computer Science: Misconceptions Computer & arrange administration - set up and keep up PCs & PC systems Example: make sense of why the Internet is not open from a specific school classroom, and alter the issue.
Slide 7Computer Science: Misconceptions Computer programming - make programming for a PC to execute to play out a helpful assignment. Illustration: compose programming to naturally download music by your most loved craftsman on iTunes.
Slide 8My meaning of Computer Science My definition: the advancement of new procedures utilizing PCs & calculation to take care of issues that were essentially not reasonable before . Appear differently in relation to IT : there are no crucial difficulties in setting up a charging framework for Verizon that have not yet been comprehended - unmistakably it's achievable. Appear differently in relation to programming : however writing computer programs is in no way, shape or form unimportant, it is generally clear at the onset that the program can be composed.
Slide 9My meaning of Computer Science Computer programming speaks to the methods by which (experimental) software engineering exploration is directed. Comparable to directing an examine, utilizing a magnifying instrument, recoloring DNA, and so forth
Slide 10Computer Science Computer science is (generally) a building science : We have an assignment we'd jump at the chance to achieve. We don't know whether it's resolvable, not to mention how to settle it. We (attempt to ) find computational techniques to finish our errand.
Slide 11Computer Science Contrast with the normal sciences (e.g., science, science, material science, arithmetic): We are occupied with finding how the world functions, without fundamentally achieving a solid assignment.
Slide 12Sample of Various Computer Science Research Problems
Slide 13Computer Vision Google Earth - How would you "fasten together" satellite photos taken over the Earth into a safe 3-D "world" (Google Earth)?
Slide 14Graphics Pixar - How would you quicken a graphical video character (e.g., Shrek) with the goal that it looks alive?
Slide 15Cryptography and Security How would you scramble a message so that exclusive the "proposed people" can read it and meddlers can't? How would you keep individuals from duplicating motion pictures & music wrongfully?
Slide 16Networking How would you be able to transmit information dependably and at fast utilizing common electrical cable links? (this is essential in creating nations without phone framework)
Slide 17Machine Learning Can PCs figure out how to perceive similar sorts of examples in nature that people can? Case: where are the countenances in the video?
Slide 18Bioinformatics and Computational Biology How would we be able to dissect human DNA successions to decide the hazard variables of specific illnesses?
Slide 19Complexity Theory How would we be able to utilize quantum PCs to take care of numerical issues more rapidly than with customary machines?
Slide 20Computer Science: Sub-ranges (numerous) These are every one of the ones I can consider spur of the moment: Graphics Vision Machine learning Databases Compilers Networking Operating frameworks Distributed frameworks Software designing Robotics Numerical figuring Human-PC collaboration Graphics Computer engineering Security Cryptography Algorithms Image & video handling Bioinformatics Complexity hypothesis Computational geometry By the way - some of these territories additionally fit into Electrical Engineering (EE). Some of these are generally experimental , some are for the most part hypothetical , and some are both .
Slide 21Theoretical versus Observational Research Theoretical research - utilize science/coherent thinking to demonstrate what you are stating is unquestionably valid. Exact research - investigate through perception - run numerous trials to demonstrate that what you are stating is most likely genuine.
Slide 22Theoretical versus Observational Research Example: Theoretical confirmation that a specific clubhouse betting procedure will give you the most astounding conceivable rewards. Show over numerous investigations that a specific technique works superior to others. Imperative: It's not generally simple/conceivable to demonstrate something numerically.
Slide 23Algorithms - the establishment of software engineering
Slide 24Algorithms The thought of calculation is central to all of software engineering. A calculation is a well ordered strategy ("formula") for how to finish a specific errand. PCs can perform errands rapidly, yet they require an exceptionally exact portrayal of what to do.
Slide 25Algorithms Example: INPUT: flour, eggs, drain, margarine, heating powder, salt, chocolate chips PROCEDURE: Beat eggs. Include every other fixing. Blend everything until smooth. Drop in 5" hovers on hot griddle. Broil on both sides until chestnut.
Slide 26Algorithms Example (proceeded with): OUTPUT: chocolate chip flapjacks
Slide 27Algorithms More fascinating calculations: If you write an expression into Google, what is the quickest method for discovering the greater part of the pages (in general Internet!) that contain that expression? How would you consequently discover the appearances in an advanced video? How would you vitalize Shrek's mouth to match his discourse?
Slide 28Algorithms Algorithm depictions are ordinarily composed in a PC programming dialect (e.g., C, Java, Python). (This is the place programming comes in.) Algorithm portrayals are called code . They are then changed over (by a compiler or mediator) into machine dialect (the PC's local dialect, written in 0's and 1's).
Slide 29Algorithms Example: numbering from 1 to 100. Technique (in English): Start with the number 1. Print the number. Add 1 to the number. Do a reversal to Step (2) until we've achieved 100.
Slide 30Algorithms Example: numbering from 1 to 100. Method (in C, a programming dialect): int number = 1; while (number <= 100) { printf("%d\n", number); number += 1; }
Slide 31Algorithms Example: checking from 1 to 100. Strategy (in PowerPC G5 machine dialect, parallel): 111111101110110111111010110011100000000000000000000000000001001000000000000000000000000000001010000000000000000000000000000000100000000000000000000000000000101000000000000000000000010000010100000000000000000000000000100001010000000000000000000000000000000100000000000000000000000000111000010111110101111101010000010000010100011101000101010110100100010101010010010011110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000 ...
Slide 32Algorithms Several sub-territories of software engineering study the art of calculations: Algorithm plan Come up with new major calculations. Many-sided quality & processability hypothesis Study the sorts of calculations that can be composed, and how quick they are.
Slide 33Computability Theory There are a few assignments which are essentially difficult to comprehend. A standout amongst the most acclaimed is the "ending issue". It is conceivable to compose a program that never closes. Consider: Print out "hi". Do a reversal to step 1.
Slide 34The "Stopping Problem" It would be valuable to know whether a specific PC program will ever wrap up. What we might want is the accompanying: INPUT: any PC program. Yield: either Yes or No as per whether the predefined PC program will (in the long run) arrive at an end.
Slide 35The "Stopping Problem" It is provably difficult to make such a calculation. Consequently, no such calculation can ever be made, regardless of how advanced PCs ever gotten to be. This examination result originates from the field of processability hypothesis . Figuring out if any PC program will end is incomputable .
Slide 36Complexity Theory Some software engineering errands, regardless of the possibility that there exists calculations to unravel them, may take restrictively long to complete - for example, a google-google-google years (this is quite a while). Different calculations may complete their work in under a moment. Which assignments can be fathomed rapidly, and which take additional time? The measure of time that a calculation takes to complete is known as the unpredictability of that calculation.
Slide 37Two Algorithms - Which takes more time to wrap up? "Stable Marriage": How would we be able to combine n men with n ladies so that separations their companion for another person? "Diagram 3-Coloring": How would we be able to shading the circles in a chart so that associated circles have diverse hues?
Slide 38Stable Marriage Algorithm Suppose we have 10 men and 10 ladies who wish to wed each other (hetero). Every individual positions each of the 10 people of the inverse sexual orientation all together of inclination. We need to combine individuals so that nobody will separate their present mate to wed another person . Appear on board.
Slide 39Graph 3-Coloring A "diagram" has circles and lines. A few circles are associated with others by lines. On the off chance that two circles are interface
SPONSORS
SPONSORS
SPONSORS