Lecture #1CS106BProgramming AbstractionsGoals for todayWhat is CS106B all about?Overview of course admin & logisticsMy (unbiased) opinion of why this class rocksCheck out a little C++The CS106 coursesIntro programming sequence is CS106A & B•CS106X is “honors” version of BA covers Programming Methodology•Logic, control flow, problem-solving, decomposition, debugging•We use Java, but language choice not criticalB covers Programming Abstractions•Recursion, algorithms (sort/search/hash), dynamic data structures (lists, trees, heaps), data abstraction (stacks, queues, maps)•We use C++, but this not a C++ coursePlacement•New to programming or not confidant about background? CS106A•Solid first course experience and ready to go on? CS106B•Super-enthused and want to go hard-core? CS106XThe CS106 philosophyWe welcome all students•All majors and backgrounds, try it out and see if it’s right for you!Provide solid, practical foundation in programming•Use modern high-level language(s)•Learn by doing (challenging, full-fledged programs assigned)Truth AND beauty•Working is not all; well-designed and well-engineering code matters!Undergraduate section leaders as mentors•30+ hours per week of staff available in Lair•Interactive grading conferences with your SLStudent skills for success•Curiosity, determination, hard-work•Knowing when to ask for helpWhat makes 106B greatProgramming is just generally awesome•Learn relatively small set of fundamentals, but infinitely combinable to solve all sorts of problems•Build impressive things that you can be proud of•Nothing more satisfying than finding and fixing that last bugSecond course material is amazing•Learn cool techniques that vastly extend the range of problems you are able to solve•Focus on elegance and efficiency•Fascinating theoretical and algorithmic underpinningsSection leaders are fabulous•Make the learning fun and personalLogistics(Read handout #2 for more details)Lectures MWF 2:15pm•Available online, but attending in person is better :-)Section once a week•Signup for section online Optional lab on C++ language/librariesWorkload•Programming assignments ~weekly (15-20 hours)•Midterm and final exam (in-class, open-book/note)Course reader available in bookstoreCompilers•XCode for Mac OS, VS for Windows, available on cluster computers and can download to your computerIntroducing C++Advantages of early multi-lingualismHow much C++ do you need to know to start?How much C++ will you learn?Tell me the word on the street about
View Full Document