Jordan'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 1 "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 2 "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

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

Lab 4 "Expressions and Shapes World Problem Solving" Learning to perform computations with fully parenthesized expressions, and create shapes both directly and indirectly, then perform computations with those shapes. ExpressionsThing code + ExpressionsThing demo | ShapesThing code + ShapesThing demo

Lab 5 "An Interpreter Featuring Loop Forever and Selection" Learning to write an interpreter with error reporting and help commands, the break command, and the forever loop construct with a multiway conditional construct. Interpreter1 code + Interpreter2 code + Interpreter3 code + Dialogue Box + Help Dialogue Box + Error Message + Random Canvas

Lab 6 "Functions and Commands" Defining and using functions, defining and using commands, stepwise refinement , program modification, using the if statement, and using the while statement. SurfaceAreaOfCube code + SurfaceAreaOfCube demo | Balloons code + Balloons demo | AlternateBalloons code + AlternateBalloons demo

Lab 7 "String Thing" Basic string chatacter string process functionality, solving simple problems in the context of character string programming, and performing abstraction. StringOps code + StringOps demo | StringThing code + StringThing demo

Lab 8 "Array Play" Basic Array processing, simple file IO, performing simple file processing, making use of system properties, and seeing how exceptions play a role in computer programming. Primes code + Primes demo | Streets code + Streets demo | ReverseCopy code + ReverseCopy demo

Lab 9a "Simple List Processing" Basic ArrayList functionality, compare and contrast array proccessing from the previous lab, revisiting many areas in the previous lab. Primes code + Primes demo | Streets code + Streets demo | ReverseCopy code + ReverseCopy demo

Lab 9b "List Processing With Streams" writing small functions which transform data into one list structure into another, composing simple functions to perform more complex tasks, and writing programs using java streams. ArrayListProcessing code + ArrayListProcessing demo | StreamArrayListProcessing code + StreamArrayListProcessing demo

Lab 10 "Establishing and Using Classes" Learn something about modeling classes of objects, gain additional practice in creating and using computational objects, and mechanically translate from a for statement to a while statement. Die code + Roller code | Roller demo |

Lab 11 "Modeling Objects With Classes" Craft a class from scratch, establish a java interface, implement a java interface, write test programs, engage in the process of incremental program development, practice using array of objects. Person code + PersonSpecification code + PersonDemo1 code + PersonDemo2 code | PersonDemo1 demo + PersonDemo2 demo |

Lab 12 "Grapheme To Color Synesthesia" Practice with parallel arrays, sequential search, interpretation, interactions between strings and arrays, and showing how the painter can render text synesthetically. GraphemeToColorSynesthesia code + GraphemeToColorSynesthesia demo |

Programming Assignment 1: 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

Programming Assignment 3: Shapes World Problem Solving" Learning to demonstrate ability to use problem decomposition, imaginative construction,"using objects to think with", and gaining experience with types, variables, and expressions. WorkArea code + WorkArea demo | WhiteArea code + WhiteArea demo | YellowSpace code + YellowSpace demo | ShippingContainer code + ShippingContainer demo

Programming Assignment 4: Nonrepresentaional Artistic Expressions" Gain experience creating and using objects, with program modification, using selection and repitition constructs, and exploring the notion of creativity from constraint in the course of microworld problem solving. TextRectangles code + TextRectangles demo | CircleOfSquares code + CircleOfSquares demo | HirstSquares code + HirstSquares demo | HirstDots code + HirstDots demo | SimpleDots code + SimpleDots1 demo + SimpleDots2 demo | Invention1 code + Invention1 demo | Invention2 code + Invention2 demo1 + Invention2 demo2 | Stella code + Stella demo 1 + Stella demo 2 + Stella demo 3

Programming Assignment 5: Shapes World Problem Solving" Experience with Array processing and some ArrayList processing, and working by analogy, and additional experience writing interpreters. NumberList code + NumberList demo | Array WordList code + Array WordList demo | ArrayList WordList code + ArrayList WordList demo

Programming Assignment 6: Chromesthesia" Incremental Programming practice, array of objects, music knowledge representation, and development of a multi-sensory program. Chromesthesia code + NumberListPitch code | Canvas + Text box |

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