Nate'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 involving arthematic and shapes. ExpressionsThing Code + ExpressionsThing Demo | ShapesThing Code + ShapesThing Demo

Lab5 "An Interpreter Featuring Loop Forever and Selection" Interpreter examples that display dots, dialog box, help command, error messages, and even exiting the program command. Interpreter1 Code | Interpreter2 Code | Interpreter3 Code | Random Dot Demo + Input Dialog Box Demo + Help Message Demo + Error Message Demo

Lab6 "Functions and Commands" Creating a program for a function (method that is characterized by the return of a value) and a program for command (a method that is characterized by performing some action). SurfaceAreaOfCube Code + SurfaceAreaOfCube Demo | Balloons Code + Balloons Demo | AlternateBalloons Code + AlternateBalloons Demo

Lab7 "String Thing" The first program,StringOps, which you will merely type in and run, providesyou with an opportunity to get acquainted with some basic character string processing functionality. The secondprogram,StringThing, provides you with an opportunity to write some character string processing code. String Ops Code + String Ops Demo | String Thing Code + String Thing Demo

Lab8 "Array Play" Creating programs inteded to help wrap our minds around the basics of array creation and array element referencing. The third program features array processing and illustrates file IO by solving a relatively realistic problem that reads the words from one file and writes them in reverse order, to another file. Primes Code + Primes Demo | Streets Code + Streets Demo | Reverse Copy Code + Reverse Copy Original Lyrics Demo + Reverse Lyrics Copy Demo

Lab9A "Simple List Processing" Using ArrayList to understand the basic concepts and mechanisms associated with ArrayList. Primes Code + Primes Demo | Streets Code + Streets Demo | Reverse Copy Code + Reverse Copy Original Lyrics Demo + Reverse Lyrics Copy Demo

Lab9B "List Processing With Streams" Both programswill produce the same output, but will be constructed in very different ways. The first program will make use ofexplicitforloops and functions to perform operations which can easily be composed to produce more complexoperations. The second will make use of streams to perform the same tasks. Array List Processing Code + Array List Processing Demo | Stream Array List Processing Code + Stream Array List Processing Demo

Lab10 "Establishing and Using Classes" Using the Roller program which creates and uses Die objects - instances of the Die class. Die Class Code | Roller Code + Roller Demo

Lab11 "Modeling Objects with Classes" You will then be introduced to the idea of defining and implementing aJava interface. You will be guided throughthe process of enhancing the initialPersonclass byimplementingthe interface for the class. Along with this mod-ification to thePersonclass, you will be instructed on how to modify thePersonDemo1test program in order toassure that the additional functionality is working Person Code | Person Specification Code | Person Demo 1 Code + Person Demo 1 Demo | Person Demo 2 Code + Person Demo 2 Demo

Lab12 "Grapheme to Color Synesthesia" This lab features a program that simulates grapheme to color synesthesia. It takes the form of an interpreter. Two parallel arrays are featured in the grapheme to color mapping. Strings and arrays cooperatively perform the essential elements of the computation. The simple painter class easily supports the graphics processing. Synesthesia Code + Synesthesia 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 2: "Enabling Your Web Work Site" Making sure all of the links on the website work properly.

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