120 likes | 131 Vues
This unit focuses on completing the course and revisiting the purpose of the course, including what was not covered. It also explores the next steps for learners.
E N D
Unit 10 • Completion of the course • Revisit the purpose of the course • Consider what was not covered • - and your next steps Learning to Program with C# - 10
Two targets for the course • Those looking for fundamental O-O concepts • The first six units covered this material • Gave some idea of the benefits and tradeoffs of using the model, and why it has evolved this way • I hope this has been helpful • Complete beginners to programming • Toe in the water - Is this for me? • Aim has been to cover enough of the basics to give a flavour, but not to go into any detail • see if there is any enthusiasm in this way of working that could be cultivated • I'm primarily talking to this group now Learning to Program with C# - 10
Learning to program… • If you are somewhat lost with all the different concepts • hang in there! • it is like this for most learners • The key is • are you enjoying it, even though it is sometimes baffling? • In general • do you enjoy the idea of building things…? • of wrestling with a problem until it is solved…? • of fixing things that aren't working…? • If so, this is probably for you! Learning to Program with C# - 10
Teaching vs. Learning • Programming has never been taught • Good programmers are almost always self-taught • they have learned through their own efforts • probably quite considerable efforts • they have a passion for exploration and fixing • This is the only way you will learn, too • Of course, it can be a frustrating path • so creating a good environment will help too • useful books, folk nearby who can advise if necessay • lots of tea and coffee! • many long spare evenings and weekends • I hope you now have passion & enough vocabulary • to understand a book or the folk around you!! Learning to Program with C# - 10
Learning O-O in particular • Programming languages all have three parts • mechanisms to structure code and data • different in each different language style • mechanisms to do something - statements • mechanisms to process data values - expressions • In O-O, you need to be working with all three very quickly • unlike in other language styles, where the second two, or even only the last need be covered initially • The benefits are great however – hang in there • beautiful solutions can be developed • code can be safely and efficiently reused Learning to Program with C# - 10
The artistry in programming • In the first unit, we looked at aspects of the programming discipline • I hope that perhaps now you can see the artistry mentioned there • the elegance of the different classes • how they work together • how pieces can be replace with other pieces • and from this, perhaps the elegance of all engineering • The artistry comes very much from the programmer's own personal creative flair in seeing how a problem can be broken down Learning to Program with C# - 10
Gaps – Fine detail of C# • Fine grammatical detail of C# has been largely by-passed • we've looked at pre-written code • not enough time on the course • Visual Studio is very helpful in guiding us • However, just as with spoken languages • you do need to develop an accurate knowledge of the language grammar • huge increase in your confidence and productivity when you know that you are writing (nearly) correct code before the system checks it Learning to Program with C# - 10
Gaps – whole areas of the language • Concentrated on minimum set of fundamentals found in all programs • Particularly thin on • Wide range of built-in types • Further operators and statements • Arrays & strings and their associated operations • Visibility and scope rules over members & locals • With a good text book, and a grounding in what we've covered here • you'll pick these up Learning to Program with C# - 10
Gaps – more on problem solving • Novice programmers often say • I understand about the language constructs, but I can't see how to start solving this new problem • Down to problem solving skills • poorly described at the very basic level, few good books • trial and error, brings the necessary skill set • bear in mind the heuristics from the last lecture • there is no perfect recipe, no easy rules to follow • only heuristics that sometimes work • the good problem solver becomes sharper in picking the right one early on • those with lateral thinking skills will do well Learning to Program with C# - 10
Methodologies for tackling problems • Considering a new problem • never seen it– in which case start from scratch • seen identical problem – just reuse solution • seen similar – pick out the similar parts • Stepwise Refinement / Divide & Conquer • break the problem into pieces, solve each smaller piece (maybe by dividing it too), then recombine to get the whole • Various Object Modelling Techniques • higher level notation and language for describing the components that a problem breaks down to • e.g. UML • easy to translate into programming language Learning to Program with C# - 10
Gaps – other application areas • We've examined only one style of application – the animation/simulation • You will need to become familiar with others • eventually each new problem will fall into a style you've seen before – makes solving it easier • Other important styles • Window/Form based programming • all around us – most modern PC applications have an interface that used windows/forms • Text/data processing programs • often used for introductory programming, but boring – however, they're essential for some problems • Database/web programming • require particular skills to connect to the database and interrogate it, and to make connections via the web Learning to Program with C# - 10
Summary • Well done for making it this far! • Learning to program is a huge challenge • I hope your first experience has been productive • Best of luck with your next steps… Learning to Program with C# - 10