A-1A-1© 2000 UW CSEUniversity of WashingtonComputer Programming ILecture 21: Course Wrap-up and Look AheadA-2Where Do You Go From Here?At the Seattle campus of UW, the next course is CSE143, "Computer Programming II"A direct continuation of UW’s CSE142CSE143 introduces the C++ programming languageAt universities on the semester system, the second-semester course is usually called "Data Structures"A-3What is CSE143 like?5 credit hours; 4-5 projects15-30 files in later projects (you don’t write all)Students say:"intense", "time-consuming"Language: C++Initially just like CLearn programming concepts to support writing larger programsEventually objects + classes (“object-oriented”)A-4What is Covered in a 2ndCourse?Lots of programming practicebut less class discussion of itData structuresmany involving pointersabstract data types (ADTs)Algorithmsmany recursiveProblem-solving & designFoundation for later CS coursesA-5Going on in CThere is much about the C language we haven’t coveredYou have a foundation now to master more advanced C programming featuresLearning more C may or may not be usefulThe advanced features won’t necessarily help learn other languagesA-6Going on to C++C++ was developed as an extension to CPractically everything we have learned in the course can be used in C++The syntax is completely identical in almost all casesHowever, C++ includes some important new concepts which are not part of CThese lead to an approach called "object-oriented programming"A-2A-7Going on to JavaJava in many ways an improved C++Much of Java syntax is very close to Cif, while, forExpressionsJava is not as close to C as C++ isThere are also new, object-oriented featuresA-8Programming ConceptsWe used C, but the concepts go beyond the C languageVariables; data types; valuesConditions; conditional executionLoops; recursionFunctions; parameters (including pointers); call/returnData structuring: arrays; structs; combinationsInput/OutputA-9Beyond Programming…Compiler conceptssyntax vs semantics; compilation steps; libraries; debuggingWhat is a computer?Visualize memory, CPU, I/O operationInstruction execution, data movementProblem solvingAbstractionFunctional decomposition, Data decompositionAlgorithmsA-10Building and Understanding SoftwareSoftware give computer its personalityComputers are proliferatingI.e., software is.Programs are complex artifactsCompare to a bridge or a novelWhat’s the effect of a small error?Taming complexityAnalysis, design, testing, communicatingA-1 1Is Programming Hard or is Programming Fun?Programming is hard...NOW YOU KNOW THIS FIRST-HAND!Programming is also fun...NOW YOU KNOW THIS FIRST-HAND, TOO! (I
View Full Document