Maddie's CS1 Work Site

This site represents work that I have done in support of my efforts to learn to program in the CS1 course at SUNY Oswego during the Fall 2019 semester. The materials will be temporally organized for the most part. Links to external sites that pertain to computer programming, problem solving, Java, Web development, and related matters will be placed after the personally created artifacts.

Course Work

Lab One: "Hello World! Hello You!"
A first set of programming examples and exercises designed to establish a framework for learning to program.
HelloWorld code + HelloWorld demo | HelloYou code + HelloYou demo

Lab Two: "Hello Painter! Hello Composer!"
A first set of programming examples and exercises designed to establish a framework for learning to program.
BlueDot code + BlueDot demo | Dorothy code + Dorothy demo | BasicsListener code + BasicsListener demo | Melody code + Melody demo | Target code + Target demo

Assignment One: "Microworld Problem Solving"
Programs to create images in the Nonrepresentational Painting World (NPW) and sonic sequences the Modular Melody World (MMW).
RedCross code + RedCross demo | KanizsaSquare code + KanizsaSquare demo | Dots code + Dots demo | ThreeFigureMinuetThing code + ThreeFigureMinuetThing demo | MinuetFigureListener code + MinuetFigureListener demo | AfterJSB code + AfterJSB demo

Lab Three: "Establishing a CS1 Work Site"
Setting up a Web site to house programs and demos and a few miscellaneous links.

Lab Four: "Things"
Using basic shapes and operators to solve simple problems.
ExpressionsThing code + ExpressionsThing demo | ShapesThing code + ShapesThing demo

Lab Five: "Interpreters"
Using interpreters to generate dots on command.
Interpreter1 code | Interpreter2 code (addition of GREEN and YELLOW dot commands) | Interpreter3 code (addition of RANDOM dot command)
Input Dialog Box + RED command output + Error Message + HELP command output + RANDOM command output (Interpreter3 only)

Assignment Three: "Shapes World Problem Solving"
Programs to solve problems using imaginary shapes.
WorkArea code + WorkArea demo | WhiteArea code + WhiteArea demo | YellowSpace code + YellowSpace demo | ShippingContainer code + ShippingContainer demo

Lab Six: "Balloons"
Using functions and commands to produce calculations and paintings.
SurfaceAreaOfCube code + SurfaceAreaOfCube demo | Balloons code + Balloons demo | AlternateBalloons code + AlternateBalloons demo

Lab Seven: "String Thing"
Playing with Strings.
StringOps code + StringOps demo | StringThing code + StringThing demo

Lab Eight: "Array Play"
Playing with arrays.
Primes code + Primes demo | Streets code + Streets demo | ReverseCopy code + Original Lyrics + Reversed Lyrics

Assignment Four: "Nonrepresentational Artistic Expressions"
Programs to create images.
TextRectangles code + TextRectangles demo | CircleOfSquares code + CircleOfSquares demo | HirstSquares code + HirstSquares demo | HirstDots code + HirstDots demo | SimpleDots code + SimpleDots demo | Invention1 code + Invention1 demo | Invention 2 code + Invention 2 demo | Stella code + Stella demo

Lab NineA: "Simple List Processing"
Playing with ArrayLists (based off of Lab Eight).
Primes code + Primes demo | Streets code + Streets demo | ReverseCopy code + Original Lyrics + Reversed Lyrics

Lab NineB: "List Processing with Streams"
Playing with ArrayLists and streams.
ArrayListProcessing code + ArrayListProcessing demo | StreamArrayListProcessing code + StreamArrayListProcessing demo

Lab Ten: "Establishing and Using Classes"
Making a Die class and putting it to use.
Die code | Roller code + Roller demo

Assignment Five: "Three List Interpreters"
Storage and manipulation of lists.
NumberList code + NumberList demo | WordList code + WordList demo | WordList(ArrayList version) code + WordList(ArrayList version) demo

Lab Eleven: "Modelling Objects With Classes"
Making a People interface and class and demoing it.
PersonSpecification interface code | Person class code | PersonDemo1 code + PersonDemo1 demo | PersonDemo2 code + PersonDemo2 demo

Lab Twelve: "Grapheme to Color Synesthesia"
A program to simulate grapheme to color synesthesia.
GraphemeToColorSynesthesia code + GraphemeToColorSynesthesia demo

Assignment Six: "Chromesthesia"
Simulating chromesthesia.
Chromesthesia code + Pitch code | Chromesthesia input box + Chromesthesia canvas while note is played

Various external sites relating to course content

Java Notes | Think Java: How to Think Like a Computer Scientist | Java Examples | Oracle's Java SE Tutorial | WWW Consortium