






Hotspots: Admin Pages | Turn-in Site |
Current Links: Case Final Project Summer 2007
Summer 2000 Project Milestones
See Summer 2000 Project Assignment Description for the overview description of the project.
Milestone P1: Due May 30 In Class
This is an INDIVIDUAL milestone - everyone must turn in a separate project.
You are to create a series of classes which will allow us to create a Form that is a mathematical equation.
- MathEquation will be the class that understands from: and will return an object that responds to display and displayOn:. (Mark Guzdial updated 25May – as mentioned today in class, I don't care really about it being a FORM, it just has to be displayable.) If it gets a string, it just returns a graphical representation of that string. However, if it gets a different mathematical object, it will return that object AS A DISPLAYABLE OBJECT (Mark's addition 5/19/00).
- MathFraction has a class method from:over: that constructs a fractional object. MathEquation must format that properly.
- ADDED 5/22 MathOperation has a class method operator:with:and: that allows math objects to be combined. Operators are just strings. The arguments to with:and: should be strings or math objects, e.g., MathOperation operator: '+' with: (MathSuperscript from: '(x+2)' with: '2') and: '2'
- GreekSymbol has a class method named:sized: that takes a symbol and returns a math object of the appropriate symbol at the appropriate size (10, 12, 14, or 18, only). See greek.pdf for tables of Greek character names (which you should use for symbols, e.g., #Pi and #alpha) and their corresponding images.
- MathSuperscript and MathSubscript understand from:with: which creates a mathematical object of the from: argument either superscripted of subscripted with the with: argument.
To do this, you'll need to filein ypatia.st from ypatia.zip and execute Ypatia installAsTextStyle. Using control-K, you'll be able to choose Ypatia as your text style, to turn your Workspace into Greek:

To learn how to do this under program control, explore the classes FontSet, StrikeFont, TextStyle, Paragraph, and DisplayText (Updated 24May because there is no TextFont class.) Hint:
('abcdefghijklmnopqrstuvwxyz' asParagraph
textStyle: (TextStyle named: 'Ypatia')) display
In class, please turn-in well-documented, hardcopy source code (at least two lines of comments for each method, in-line comments at significant portions) with your name, section, and student number on it. In addition, before class time, turn-in your code using the Summer 2000 Turnin Information with the code 'P1'.
Grading:
- 20% Good Smalltalk style: Good reuse, variable names start with lowercase letters, etc.
- 80% Correct implementation: 20% MathEquation always returns a displayable object for both string and Math object inputs (including GreekSymbol objects), 10% GreekSymbol can be used anywhere, 10% MathFractions work with string inputs, 10% MathSuperscript and MathSubscript work with string inputs, 20% MathFractions can take MathSuperscript/MathSubscript/GreekSymbol objects as input, 10% MathOperation works correctly.
Questions on Sum2000 P1 Milestone
Milestone P2: Due June 15 In Class
Your teams must be defined by this date. Use the page Summer 2000 Team Forming Page for advertising and forming your team. A team can be no more than four people, no fewer than two, with members from any section of 2340 or 2341. No team divorces will be allowed after P3! Please pick a Team Name.
You must construct a user-interface for assembling an equation. The user should be able to choose from base objects (e.g., basic strings, Greek letters, fractions, superscript/subscript) and be able to define where these pieces go (e.g., a string in the numerator of the fraction, an superscripted equation in the denominator). We strongly recommend some kind of a pallete (a floating window/morph with button options) that the user chooses from, but you can choose to do something else if it's usable. It must be possible to generate a ImageMorph containing the Form of the end equation
The user will start your system by executing MathEquationUI start.
In class, please turn-in:
- CRC Card analysis of UI system: Classes considered and rejected, and CRC cards for each class in the user interface. PLEASE DO NOT TURN IN INDEX CARDS! Either use Boost, draw your cards, or xerox your cards.
- UML class diagram of UI classes with a description of each class and what it's methods do.
- Well-documented, hardcopy source code (at least two lines of comments for each method, in-line comments at significant portions) with your Team Name and all team members' names, sections, phone numbers, and student numbers on it. The phone numbers are for us to use if teams lose touch with one another.
In addition, before class time, turn-in your code using the Summer 2000 Turnin Information with the code 'P2'. Update! (Jun 13) Since you don't yet know who your team's project TA is, please send all submissions with lorgon@cc.gatech.edu as your TA. Also, please include a short README file along with your code which has this information:
- team name
- team members
- how to run your code (what to do in the Workspace to start it)
- any other comments about what works, what doesn't, what is cool to try, etc that you want the grader to see.
Grading (see Criteria for Good OOA/D):
- 20% Good CRC card analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 30% Good UML class diagram: Correct usage of notation (10%), detailed and understandable descriptions and names (20%).
- 10% Well-documented and good style source code
- 20% Understandable UI. User should be able to figure out how to do what is expected.
- 20% Can construct any of the Math objects properly
Questions on Sum2000 P2 Milestone
Milestone P2.5 Team Plan: Due June 22 in class
Teams must turn in a HARDCOPY detailed group plan. This should include:
- CRC card analysis for ENTIRE system. PLEASE hand in xeroxed or generated-tables that represent your CRC cards rather than the actual 3x5 cards.
- UML class diagram for ENTIRE system with descriptions for each class. You may use any other UML diagrams in addition to a class diagram that you would like in order to describe your system.
- Description of what each team member is going to be responsible for.
- Internal group timeline with dates and milestones.
The level of detail on the descriptions and group timelines should be such that, if something doesn't get done, it's possible to figure out EXACTLY who didn't do it and by when.
Obviously, the design will change over the following months, but we want to see that you've thought through everything UP FRONT. Your design should be clearly extensible! If we throw derivatives and square roots at you, it should be easy to add them!
Hardcopy, with TEAM NAME on front at class time.
Grading:
- 25% Good CRC Card Analysis: Reasonable names, understandable and clearly defined responsibilities, good exploration of other class names
- 25% Good UML class diagram and descriptions: Correct usage of notation (10%), detailed and understandable descriptions and names (15%).
- 30% Clear definition of team member responsibilities: Can you tell who will do which pieces of system (as defined in UML and descriptions)? Will you be able to figure out whose part failed if there's a failure?
- 20% Believable and detailed group timeline: Could someone figure out from this what they're supposed to be doing each week? Can a team member figure out what they're supposed to have done each week from this?
Questions on Sum2000 Group Plan Milestone
Milestone P3: Due July 6 in class
Rather than construct a bunch of classes, your users want to be able to specify equations via text input in the LaTeX format.
You will create a class MathEquationLaTeX which accepts a string via from:, and it will return a Form of the formatted equation. You should also implement explore: which accepts the same string input, but returns the MathEquation object after the parse, so that the internal objects are inspectable.
The kinds of LaTeX that you will accept includes:
- Normal letters, numbers, and most punctuation.
- Greek letters (the symbols preceded with '\', e.g., \alpha)
- Curly braces must be escaped with '\', e.g., \{ and \}.
- Backslash must be escaped itself, e.g., \\.
- The other punctuation that must be escaped to display themselves are #, $, % &, ~, _, and ^.
- Fractions are created with \frac{x}{y} where X and Y are the numerator and denominator respectively.
- Superscripts are created with ^{s}, as in x^{2} to define x-squared.
- Subscripts are created with _{s}, as in x_{i} to define x-sub-i.
In class, please turn-in:
- Your design from P2.5
- CRC Card analysis IF any changes from previous design, with text describing what changes were made and why.
- UML class diagram IF any changes from previous design, with text describing what changes were made and why.
- Well-documented, hardcopy source code (at least two lines of comments for each method, in-line comments at significant portions) with your Team Name on it.
In addition, before class time, turn-in your code using the Summer 2000 Turnin Information with the code 'P3'.
Grading (see Criteria for Good OOA/D):
- 20% Good CRC card analysis – given for free if none is needed, but TAKEN OFF IF CHANGES ARE MADE AND NOT DOCUMENTED. If handed-in, evaluated as Criteria for Good OOA/D.
- 20% Good UML class diagram and class descriptions – given for free if none is needed, but TAKEN OFF IF CHANGES ARE MADE AND NOT DOCUMENTED. If handed-in, evaluated as Criteria for Good OOA/D.
- 15% Well-documented and good style source code
- 30% Good parsing of LaTeX, i.e., the LaTeX gets mapped correctly to the appropriate objects (tested via explore:). 10% for fractions, 10% for super/subscripts, 10% for regular strings (INCLUDING escaped characters)
- 15% Appropriate generation of Form (should come for free if previous milestones met).
Questions on Sum2000 P3 Milestone
HIDDEN MILESTONE
Milestone P4: Due July 20 in class
The real hassle of handling equations these days is getting them up on the Web. You will create a Web interface to your equation tool, such that the user types in LaTeX and gets back an equation as a GIF. The user will start your system with MathEquationWebUI start. When the user goes to the URL http://yourmachine:8080/mathequations/, they should get a text area where they can enter a LaTeX specification of the equation. When they submit it, they should get back a GIF of the formatted equation.
In class, please turn-in:
- CRC Card analysis FOR EVERYTHING
- UML class diagram FOR EVERYTHING
- NO SOURCE CODE REQUIRED
In addition, before class time, turn-in your code using the Summer 2000 Turnin Information with the code 'P4'. In addition to your code change set, you may want to provide a Server directory (to be installed in the same directory as the Squeak image) with certain files. You can provide a Zip file with all the files that the TA will need to grade your assignment
Grading (see Criteria for Good OOA/D):
- 20% Good CRC card analysis – FOR EVERYTHING
- 20% Good UML class diagram and class descriptions – FOR FREE
- 15% Well-documented and good style source code
- 15% Web-specification page work – you can get to it and it accepts LaTeX text.
- 15% Web generation of GIF works.
- 15% Well-formatted (should come for free if previous milestones met).
Questions on Sum2000 P4 Milestone
Links to this Page