CMPS 12A, FALL 209 TENTATIVE SYLLABUS CMPS 12a is an accelerated introduction to programming. Students must concurrently enroll in the associated lab, CMPS 12L. Students are expected to have some modest programming experience in *any* programming language, enough to write small programs that 1) use a loop to print out a table of squares like: 1 1 2 4 3 9 ... 10 100 and 2) read in two numbers and output the larger number. To enroll, students must have credit for or be eligible to enroll in math 19a (calculus for scientists and engineers). The instructor is David Helmbold. The Text will be Java By Dissection by Pohl and McDowell. The 12A course will cover the following topics: 1) Statements and Control Flow (ch 2) 2) Methods and Functions (ch 3) 3) Arrays (with one and two dimensions) (ch 4) 4) Objects and Data Abstraction (ch 5) 5) Exceptions (ch 11) 6) Reading and writing files (ch 10) In addition, we may cover: Inheritance (ch 7), Graphical user interfaces (ch 8 & 9) and/or Dynamic (linked) Data Structures (ch 12) as time allows. The lab will have exercises supporting the course content and providing practice with the Unix environment (including files and directories, editors, compilation, and some exposure to make files) For CMPS 12a, there will be a midterm (20%), a final (40%), weekly programming assignments usually done in groups of two (30%), and one individual programming exam (10%). At least 60% on the final and an overall total of 70% of the weighted points is required to pass. The CMPS 12L grade will be based on weekly lab quizes (60%) and performance on the CMPS 12a programming assignments (40%). For additional information see the class web page: http://www.soe.ucsc.edu/classes/cmps012a/Fall09/