CS231 lecture notes, Fall 1998 Week 1, Wednesday Reading Standish Chapter 1, especially 1.2, which has a lot of interesting things to say about what CS is all about. (Maybe compare to the CS FAQ). What's next in the CS curriculum? CS231 1) Data structures 2) More Java programming 3) Foundations of software CS232 1) Architecture (a glimpse of hardware) 2) instruction sets (assembly language) Are we just learning more programming? Yes and no. Yes, programming involves a range of intellectual activities that are central to computer science. Yes, learning to program gives you skills that you will need to continue in CS. Yes, programming in Java provides some insight into the latest in programming-language design and software engineering, both of which are fields of CS. No, programming is not the sole, or even the primary, focus of this class. Other material includes: 1) abstraction and interface design 2) efficiency and time-space tradeoffs 3) correctness, reliability, and robustness 4) exposure to a toolbox of problem-solving devices (data structures) 5) introduction to topics that will be continued in other classes: complexity, programming languages, human-computer interaction What are the assignments like? 1) similar to last semester, one assignment per week. 2) I will provide less detailed instructions 3) design becomes part of the solution, in some cases the most important part 4) there may be group projects 5) homeworks count more What are the exams like? 1) some detail-oriented questions to keep you honest 2) some programming problems, like the Long Program last semester 3) some design questions -- explain how you would solve a problem, without implementing the solution. 4) some discussion of conceptual material How much more Java is there to learn? 1) way too much 2) we're going to focus on a subset that lets us get at the meaty CS problems 3) not much on GUIs, threads, network programming, HTML, JavaScript, JavaBeans; you might want to get a book and check out some of these things on your own. Review syllabus. Discussion of JDEs 1) primary JDE is CodeWarrior Pro 3 on Macs. Is or soon will be in Mudd Lab, Keyes 109, and Olin 323. 25 licenses, let us know if you can't get one. 2) will also be on NTs soon 3) lots of other options I want to accomodate, although that creates some problems. 4) varying degrees of support Discussion of first assignment 1) application with console I/O vs. graphical application vs. applet 2) last semester, a little exposure to each 3) this semester, focus on graphical applications 4) first assignment develops framework (stationery) for all future assignments 5) chance to fill in some Java holes and get warmed up again Two versions of the Java AWT, 1.0 and 1.1. 1) 1.1 is current, primary difference is in event-handling 2) you may see 1.0isms 3) we're going to try to be pure 1.1 programmers We finally get to use Keyboard input 1) 1.0 was different 2) Roaster was broken 3) all is well now, except that the idiom is hideous Reading Standish Chapter 3.1 to 3.4