180 likes | 190 Views
Stay updated with CS course information including interviews, office hours, final survey, and review sessions. Learn vital concepts, data structures, and programming languages for successful projects. Explore lower and upper division courses in computer science. Join CS self-paced and School of Information Management courses for broadening knowledge.
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).