DOC PREVIEW
Columbia COMS 3156 - Lecture Notes

This preview shows page 1-2-3-18-19-37-38-39 out of 39 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Software Engineering 3156TodayWhat Is Software Engineering?Some Software Has To WorkSome Software Needs Many ProgrammersConsider The Advanced EHF SatelliteUnfortunatelySituation Is GrimWhy Is Most Software So Bad?Don’t Forget Management IdiocyWhy Should You Take This Class?MarketableIt Can Be FunCourse OverviewDifferences From The UsualAdvanced ProgrammingDesign PatternsAbout MeMore MeCourse MechanicsCourse WebsiteLecturesOther SectionOther Section ContinuedTeaching AssistantsOffice HoursBooksBooks, cont.Grade breakdownHomeworksUsual Plagiarism Blah-BlahExamGroup ProjectProject BreakdownProject MilestonesBut, But, […] Happened, and…Group EvalGroupsThat’s ItSoftware Engineering 3156Fall 2001 Section 15-Sep-01Class #1: IntroPhil GrossTodayWhat and Why of SoftECourse MechanicsWhat Is Software Engineering?An attempt to apply engineering principles to the creation of softwareProduction of fault-free software, on time and under budget, that fulfills the users’ needs.Chemistry vs. Chemical EngineeringSome Software Has To WorkSafety/Control–“Please wait while we reboot the nuclear power plant”Military–“Oops, my gun crashed”Embedded–“The microwave seems to be locked on ‘high’” Etc.–“If your pacemaker freezes, find the little ctrl-alt-del buttons”Some Software Needs Many ProgrammersNo matter how bright you are, you will have a hard time “hacking together”–The airline reservation system–The Microsoft Office suite–Control software for an aircraft carrier–A fully compliant C++ compilerConsider The Advanced EHF SatelliteBudgeted for billionsOnce it goes up, difficult to fix major bugsNeeds to work reliablyComplex communications protocolMany contractors working togetherhttp://www.spacedaily.com/news/milstar-00b.htmlUnfortunatelySoftware Engineering is an ambitious name (cf. Political Science)Think about Computer Engineering majorCompare to AISituation Is Grimhttp://www.space.com/businesstechnology/technology/ehf_satellite_delay_0102262.htmlRISKS Digest–http://catless.ncl.ac.uk/RisksTerrible engineering combined with widespread belief in computer infallibilityWhy Is Most Software So Bad?Minor consequences for failure–Reboot/reinstallProgrammer delusionBugs don’t appear until integration–Last step–Too lateKick a bridge and it still stands. But flip a bit…Don’t Forget Management Idiocy“You’re behind; I’m assigning 75 novice programmers to the project to help speed you up.”“Take this ancient software and make it…”–“Multi-user and Fault-tolerant”–“Work on this new system”–Cf. collapsing buildingsDilbertWhy Should You Take This Class?Arguably one of the most useful classes–Chemical Engineering and Applied Physics are entire departments–This is all you’re going to getBecome a better programmer–Thinking beyond the immediate algorithm or data structureMarketableReal companies use SoftE techniques–Or rapidly become ex-real-companiesAdvanced tool use and language topicsWhen you’re involved in a software fiasco (and you will be) gives you techniques for dodging blameThe move to managementIt Can Be FunTeam programming, when going well, is exhilaratingTeam programming, when going poorly, is like Survivor , only geekier–You get to take revenge on the slackersBut, can also be stressful, sleep-depriving–In the past, also unbelievably, hypnotically, unbearably dullCourse OverviewHow to successfully build commercial-scale softwareHow to program with a teamAdvanced programming skillsDifferences From The UsualFocus on process more than productLarge-scale techniques used on medium-small projectThe instructors–Both have taken SoftE at ColumbiaAdvanced ProgrammingNetworking–Sockets, Event ModelsConcurrency–Threads, IPC, SynchronizationLanguages–C/C++, Libraries, APIsUseful Stuff–XML, ToolsDesign PatternsSimilar high-level design problems occur repeatedlyGood solutions to these problems are recordedThis can save you a lot of timeStart off with flexible, extensible, scalable designs, rather than rearchitecting laterThe power of namingAbout MePhilip Nathaniel Gross, age 32–[email protected] Went to Cornell as a computer-programming English major, class of 1990Didn’t graduate, moved to HollandSeven years in the Netherlands as full-time computer professionalMore MeWorked for 9 months as maintainer of vast, poorly written, vertical application for the printing industryLast two years as third-line Digital Unix tech support for PTT Telecom (Dutch phone monopoly at the time)Back to USA and Columbia Jan 1998Ugrad (GS), Masters, and now PhD candidateCourse MechanicsPrerequisite–cs3137 or 3139, or equivalent–Proficiency in Java–See me if you don’t match thisThis is a Four credit course!–“Last of the weed-outs”–Due to registrar mix-up, recitation not formally required, but highly recommendedCourse Websitehttp://softe.cs.columbia.edu Syllabus and slides will be posted Questionnaire to be filled out by Monday’s classDiscussion forum–Access after questionnaire submission–Not the standard AcIS bboardLecturesScintillating, witty, fascinating, educational, entertaining, enlightening, erudite, and, of course, humbleYou’re responsible for knowing the content of the lectures (!= content of books)–If you can’t make it, get the info from someoneSleeping in class: I’ve done it too, to be sure, but isn’t your bed much more comfortable?Other SectionTaught by Janak ParekhTR 5:40-6:55–Good for the really late sleepersVery closely synchronized with this sectionOther Section ContinuedTAs will be “pooled”Possible to have cross-section groupsExams will be differentTeaching AssistantsEach group will be assigned to one:–Suhit Gupta (head TA and recitation instructor), [email protected]–Daniel Medina (possibly 2nd recitation instructor), [email protected]–Bethe Gordon, [email protected]–Marek Marcinkiewicz, [email protected] –Shen Li, [email protected] HoursTuesday 2:30-4:30pm608 CEPSR, alias “SoftE Central”TA office hours TBDJanak is Wednesday 2-4pmBooksMythical Man-Month, Anniversary Edition, by Brooks–A classic, part of many SoftE classesUML Distilled, 2nd Ed., by Fowler–Succinct guide to the most-used


View Full Document

Columbia COMS 3156 - Lecture Notes

Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?