1SummaryCS217Goals• MastertheartofprogrammingLearnhowtobe“good”programmersIntroductiontosoftwareengineering• LearnCandtheUnixdevelopmenttoolsCisthesystemslanguageofchoiceUnixhasarichdevelopmentenvironment• IntroductiontocomputersystemsMachinearchitectureOperatingsystemsetc.2SoftwareinCOS126SpecificationDesignProgrammingDebuggingTesting1Person102LinesofCode1TypeofMachine0Modifications1Week1Person102LinesofCode1TypeofMachine0Modifications1WeekSoftwareintheRealWorldSpecificationDesignProgrammingDebuggingTestingLotsofPeople106LinesofCodeLotsofMachinesLotsofModifications1DecadeormoreLotsofPeople106LinesofCodeLotsofMachinesLotsofModifications1Decadeormore3MajorLessons• C programmingLearnmodulardesignwithinterfacesandabstractionUnderstandimportanceofprogrammingstyleandtestingHowisdesignofsoftwaredifferentthanotherlargesystems?• Machine architectureUnderstandhowhardwareworksUnderstandhowmachineworksWhataredesigntrade-offsWhatarepossibilities?limits?• Unix operatingsystemUnderstandhowanOSworksHowcanweuseitmosteffectively?WhatwillfutureOSlooklike?NextStepsinComputerScience• TheoryCS423- AlgorithmsCS487- Complexity• SystemsCS318- OperatingsystemsCS461- NetworksCS471- Computerarchitecture• SoftwareCS333- AdvancedprogrammingtechniquesCS320- CompilersCS425- DatabasesCS426- GraphicsCS496-
View Full Document