180 likes | 183 Views
Administrivia. Interviews this week: ex-TA Paul Hale Nate's office hours, as usual: Wed 2-4 The final survey will be up by Thursday: you NEED to do this, to receive a grade on your project! Final: Thursday, May 19, 5-8pm Bechtel Auditorium Final Review Session: What time is preferable?
E N D
Administrivia • Interviews this week: ex-TA Paul Hale • Nate's office hours, as usual: Wed 2-4 • The final survey will be up by Thursday: • you NEED to do this, to receive a grade on your project! • Final: • Thursday, May 19, 5-8pm • Bechtel Auditorium • Final Review Session: • What time is preferable? • Location TBA (probably the same, tho): check the course portal. • Practice final in reader; check course portal for additional resources
How do you test for "bad inputs"? • Never assume anything that comes from the user • this is a security principle • Check your assumptions surrounding • Data types • Lengths and formats • Listen to your TA (checkoff 3), and get help
Lists (after the midterm) • Lists are containers, like sentences where each element can be anything • Including, another list ((beatles 4) (beck 1) ((everly brothers) 2) … ) ((california 55) (florida 23) ((new york) 45) ) (#f #t #t #f #f …)
List constructors • cons • Takes an element and a list • Returns a list with the element at the front, and the list contents trailing • Append • Takes two lists • Returns a list with the element of each lists put together • List • Takes any number of elements • Returns the list with those elements
List selectors • car • Like first • cdr • Like butfirst
Common list procedures • Map = every • Filter = keep • Reduce = accumulate • Null? = empty? • Recursion is just the same!
Lower division CS courses • There are three lower division courses required for CS majors • 61a: fundamentals of computer science • 61b: data structures • 61c: machine structures • CS3 is not required, but is very useful
CS61a: Fundamentals • Requires recursion (you've got it!) • Exposure to several programming paradigms, and high level ways to organize programs • Exploration of related areas of computer science • Like and unlike CS3: • Scheme is used; UCWISE is not. • CS3 topics are covered in the first 3-4 weeks
CS61b: Data structures • Requires 61A (with a B- or higher) • Wide coverage of dynamic data structures: queues, trees, arrays, strings, hash tables, etc. • Beginning software engineering: design, codinng, testing, debugging, and analysis. There is a lot of programming in this course • Java, and object-oriented programming • A pilot UCWISE version was created last semester
CS61C: Machine structures • Requires: 61B • Low level software (i.e., what happens when you read data from a disk drive, or hit a key on the keyboard) • Operating system principles • C (the programming language) is used, as well as others.
More CS courses • CS70: lower-division course on proofs and algorithms • Upper Division courses • Operating systems • Theory • Architecture and hardware • Applications: • Artificial Intelligence (Scheme again!) • Databases • Graphics • User Interfaces
More Courses • CS self-paced: 1 unit, P/NP. Learn another programming language. • SIMS: School of information management. • EE: analog versus digital, building computers. • There are many! • Mike Clancy (7th floor Soda) knows all.
The language Scheme • Scheme allows you to ignore tedium and focus on core concepts • The core concepts are what we are teaching you • Other languages: • Generally imperative, sequential • Lots and lots of syntactic structure (built in commands) • Object-oriented is very "popular" now • Note that Scheme/Lisp does show up: scripting languages inside applications (emacs, autocad).