Title: Introduction to CS2340
1Introduction to CS2340
- Objects and Design
- Spring 2003
2This Semester
- Instructor
- Bob Waters
- E-mail watersr_at_cc.gatech.edu
- Office CoC 120
3Books this Semester
- Required Text
- Guzdial Squeak Object-oriented design with
multimedia applications - Optional
- Guzdial Rose (Eds) Squeak, Open Personal
Computing and Multimedia
4Content of Class
- Focus on OOA, OOD, OOP
- OOA CRC Cards
- OOD UML Class Diagrams
- OOP Squeak
- User interfaces Building, design, evaluation
- Cap of languages focus (follow-on to Languages
and Translation)
5Structure of Class
- You have a major, team-based project
- Spring 2003 Build, display and manipulate
financial information for personal portfolio
management - Lectures are here to provide you with theory,
examples, issues - BUT DO COME! Huge differences in grades
6Grading Policy
- 25 Midterm
- 10 Quizzes (3)
- In-class, open-book, 15-20 minutes
- 30 Final
- 35 Project Assignments (7 of them)
IMPORTANT If you had me for 2335, these are not
the same type of extra credit pop quizes. These
are real quizzes!!
7Resources
- CoWeb http//coweb.cc.gatech.edu/cs2340/
- Newsgroup git.cc.class.2340
- TAs and professor hang out there
- No guarantee of 24-hour coverage, nor late night
(nor early morning!) coverage
8Where to get Squeak, lecture notes
- On the CoWeb
- Well be using Squeak 3.2 (latest production
version, not whats on your CD, but whats on
your CD should work.) - Lecture notes are all on the book CD with updates
loaded to CoWeb. - www.squeak.org
9On the CoWeb
- Definition of project
- Milestones (Turn-ins) - ALL OF THEM
- Roughly every two weeks
- First two are individualized, all others are
team-based - First milestone January 21 (DO IT YOURSELF!)
- First quiz January 16
- First team milestone January 27
- FAQs, links to external resources, etc.
- Cases page where any code can be reused without
honor code violation! - Strongly recommended Whos Who page
10Project This Semester
- Personal Financial Management system
- M1 (individual) Input and manage individual
accounts, Prepare Sunit tests - M2 (individual) Handle multiple users, multiple
portfolios, add a UI and simple visualization and
Sunit tests. - M3 (team) Design everything. Plan Sunit test
structure. - M4 Prepare basic UI and backend. Allow users to
visualize information. Provide simple security of
data. - M5 Access networked financial information, add
watch accounts. Show dynamic stock information. - M6 Make account information persistent. Allow
queries on accounts using a mini-sql language. - M7 Present information via web.
11Philosophy of the Course
- The course is on design, for novice designers
- If you know UML, Corba, COM, and XP already,
great. Most people here dont. - But theres a big focus on learning, not just
lecturing at you. - So you have to implement your designs live in
them. Figure out where theyre bad - The course isnt explicitly on programming in
Smalltalk, but implicitly (to get you design
feedback), it is. Quizzes will focus on Smalltalk
programming and OO design principles
12Why Smalltalk?
- Why not Java? Why not C?
- Marvin Minsky If you only know something in one
way, you dont know it at all. - Faculty agreed that you should see something not
C-based. General concensus that smalltalk is a
necessary language for CS background. - Other reasons
- Great for UI/Prototyping
- Different model for programming Embedded
environment - All the sources are there for everything
13Why this class can be aggravating
- Its not about job skills, per se
- No Delphi or Visual Basic here
- Few job postings for Squeak these days (but
increasing number for Smalltalk) - Its about ways of thinking that are core to CS,
about ways of designing programs - About where the core ideas of computers today
came from - Its about designing, critiquing designs, making
tradeoffs, and making choices - Languages come and goprinciples remain.
- Squeakers hate documentation
14Approach of Book (and elsewhere)
- Concrete before Abstract
- Build things before design them
- Learning involves testing and failure
- You have to try things in Squeak
- Generation and Inquiry, over Transmission
- There is no Squeak API
- But there are lots of great tools for poking
through the system - We'll teach the tools to help you learn how to
figure it out for yourself
15How I Learned to Program
- Fortran
- IBM 360 Assembler
- IBM 1130 Assembler
- PL/I
- COBOL
- RPG
- Basic
- 6502 Assembly
- Pascal
- C
- C, VC
- Ada
- Prolog
- Java
- sml (scheme)
- Smalltalk
Also Information Systems Planning/Design,
Network Management, Project Management and
Scientific Data Reduction (Flight Test)
16Important Notes
All projects must be done as a team. See me
Early about team problems and team
members Hitchhikers Couch Potatoes Team
Grades are team grades, but team members can be
fired! Let me know early about pacing problems.
Too Slow, Too Fast, Too Superficial