Nathan Green'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

Lab1 "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

Lab2 "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

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

Lab4 "Expressions and Shapes World Problem Solving" Programs that involve arithmetic expressions along with shapes from the NPW ExpressionsThing code + ExpressionsThing Demo | ShapesThing code + ShapesThing Demo |

Lab5 "An Interpreter Featuring Loop Forever and Selection" A sequence of three interpreters that recognize and respond to commands Interpreter1 code | Interpreter2 code | Interpreter3 code + Interpreter3 Demo1 + Interpreter3 Demo2 + Interpreter3 Demo3 + Interpreter3 Demo4 |

Lab6 "Functions and Commands" Functions and commands Surface Area of Cube code + Surface Area of Cube Demo + Balloons code + Balloons Demo + Alternate Balloons code + Alternate Balloons Demo |

Lab7 "String Thing" Dealing with Strings StringOps Code + StringOps Demo + StringThing code + StringThing Demo |

Lab8 "Array Play" Dealing with Arrays Streets Code + Streets Demo + Primes code + Primes Demo | Reverse Copy Code + Normal Lyrics + Reverse Lyrics |

Lab9a "Simple List Processing" List Processing Primes Code + Primes Demo + Streets Code + Streets Demo | Reverse Copy Code | New Lyrics Demo + New Lyrics Reversed|

Lab9b "List Processing with Streams" Programs that perform common processing tasks on list structures ArrayList Processing Code + ArrayList Processing Demo + Stream ArrayList Processing Code + Stream ArrayList Processing Demo |

Lab10 "Establishing and Using Classes" Learning something about modeling classes of objects Die code + Roller Code + Roller Demo |

Lab11 "Modeling Objects with Classes" How to write a class to model a person from scratch Person Code + PersonDemo1 Code + Person Demo1 Demo + Person Demo2 Code + Person Demo2 Demo + Person Specification Code |

Lab12 "Grapheme to Color Synesthesia" This programs simulates grapheme to color synesthesia through the interaction of parallel arrays and strings Synesthesia Code + Synesthesia Demo |

Programming Assignments

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 2:"Establishing my website" This is my website!

Programming Assignment 3:"Shapes World Problem Solving" Four Java programs within the NPW, using problem decomposition and imaginative construction strategies Work Area code + Work Area Demo demo | White Area code + White Area demo | Yellow Space code + Yellow Space demo | Shipping Container code + Shipping Container demo |

Programming Assignment 4: "Nonrepresentational Artistic Expressions" Several separate Java program in which all but one are in the context of NPW Text Rectangles code + Text Rectangles demo | Circle of Squares code + Circle of Squares demo | Hirst Squares code + Hirst Squares demo | Hirst Dots code + Hirst Dots demo | Simple Dots code + Simple Dots demo | Deterministic Invention code + Deterministic Invention Demo + Nondeterministic Invention code + Nondeterministic Invention demo + Stella code + Stella Demo |

Programming Assignment 5: "Three List Interpreters" Three separate Java programs that are all pertaining to the storage and manipulation of lists NumberList code + NumberList Demo | WordList code + WordList Demo | TheWordList code + TheWordList Demo |

Programming Assignment 6: "Chromesthesia" Using the NPW and MMW to simulate the experience of a chromesthete Chromesthesia0 code + Pitch0 code + Chromesthesia1 code + Pitch1 code + Chromesthesia2 code + Pitch2 code | Input Box + Canvas Image |

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