Wednesday, November 28th, 2012It's been crazy this week. But here's (finally) the completed Chapter 10 homework. Itcan be accessed on its own page here. It concerns the design and implementation of a maze game. Sound utility has also been implemented to pull audio clips from the harp.njit.edu webservers. This is the last homework assignment for CS602. Stay tuned for the final project.
Friday, November 16th, 2012Homework for chapter 9 has just been completed and can be accessed on its own page here. It concerns the design and implementation of a paint tool like MSPaint and uses the JNLP launcher. This one's pretty cool if I do say so myself.
Monday, November 11th, 2012 (later)I forgot to announce this before. But I now have medium! You can check out my site at medium.com. If you don't know what medium is check this out: What the hell is this medium crap anyways? It's seriously cool. Sort of like a mix between pinterest, twitter and blogger. But I'll let you see for yourself. (It's in Beta right now so you might only be able to read posts.)
Monday, November 11th, 2012Whew. After a week without power in the wake of Sandy, I'm a smidge behind with the work load. But never fear! The links contained in this post are for project #6 (Chapter 8) and project #7 (also for Chapter 8).
Project #6 concerns a calculator applet that displays the use of Java GUIs and layout managers. Ironically we've already been forced to do these since day one because of the difficulty our professor has in compiling the sheer volume of students' code. I'm rather proud of this project because it came out so nice and I managed to use the stack interface I had written for project #4 which you can find here. The project itself is accessed on its own page here.
Project #7 concerns a zip and unzip utility application. You can find that here.
Thursday, November 8th, 2012The legal system in the United States is based largely on precedent. The various established cases in our history lay the foundation for further legal decisions. However the sheer number of cases makes analysis of the law extremely difficult. It is impossible to remember all of the cases ever studied and it would be beneficial for a future student of the law to have at his or her disposal a tool which organizes cases that said student has already encountered.
As a self-proclaimed student of computer science I have the rather peculiar habit of thinking about how computers can be used to solve everyday problems. And this problem has become somewhat of a focus for me as the enrollment date looms ever closer.
I have a notoriously shoddy memory and a tool used to organize these cases would be invaluable for students as well as practitioners of the law. Yet my formal skill in programming is not prolific so it is with some trepidation that I propose a solution to this problem.
I propose a file hierarchy which consists of trunks that are indicative of a certain area of study. For example "Constitution Law." This trunk may in turn have children or branches called "First Amendment" which will in turn have sub-branches and leaves (the smallest unit which contains actual textual case data). Related cases will be linked such that topical traversal can be achieved. For example cases that have been overturned can link to those cases which overturned them.
Stay tuned if you're interested.
Thursday, October 25th, 2012This is project #5 on refactoring for CS602 at NJIT. This applet can be accessed on its own page here. Its documentation can be accessed here.
Thursday, October 18th, 2012Project #4. The fourth graded assignment for CS602 at NJIT. This post contains the interface and applets for a visual stack representation. It can be accessed as an applet on its own page here. Its documentation can be accessed here. The main implementation can be found here. Test cases using this implementation can be found here.
Thursday, October 11th, 2012Goals! I've been living a goal-less life for too long now and I decided I would post what I want to have accomplished by Christmas break.
Goals for the Gym:
40% Increase in Iso-Lateral bench, up to 125Lbs
225Lb squat, 5 by 5 with 135Lb 20 rep burn out
40Lb/15Lb bicep curl, 5 by 5
Create sorting algorithms: quicksort and bubble sort, do time trials in Java and C
Create MVC for my webpage
Apply to Masters programs in C.S. in New York City
Fix the BouncingBall Java class to eliminate the "vibration problem"
Wednesday, October 10th, 2012It's here! The third graded homework assignment for CS602 at NJIT. This post contains an applet with a bouncing ball. It can be accessed on its own page here. Its documentation can be accessed here (generated by javadoc). There is another assignment which demonstrates the use of getCodeBase() and getDocBase() here.
Sunday, September 30th, 2012Recently it has come to my attention that I have been living the life of a procedural programmer. Wikipedia defines procedural programming as a solution that "simply contain[s] a series of computational steps to be carried out." What stumps me is not that, up to this point, I have tackled most of my programming challenges using a procedural approach, but rather how would a problem be approached in a non-procedural manner? Upon further research, there seems to be four main branches of programming flavours: (1) Procedural or Imperative which we have already discussed, (2) Functional, which attempts to resolve computational problems using mathematical functions, (3) Logic programming which is based on the idea of using "logical sentences" to represent computational challenges and finally (4) object-oriented programming which seeks to abstract a larger computational task into a series of interacting objects usually as instantiated classes.
As a student of computer science with limited experience in functional or logical programming, perhaps this post is already short sighted. But it seems that all these programs while different in paradigm, seek to manipulate data in a fashion that remains largely procedural. For example, a program that rolls a virtual dice to generate random numbers may begin by instantiating a dice class, generating the precise definition of a dice i.e., a figure of six sides with each side representing an equal probability of being "rolled" or by creating the precise steps with which a random number would be generated and split or scaled into six "bins" to represent the six sides of the die.
In other words each program needs some sort of input to construct this concept of a "dice". Each program no matter what paradigm is used needs a start(), a main(), a conditional. Even things as advanced as natural language processing begins first with audio input, waveform analysis, sonal-syllabic breakdown, pattern matching, etc. with a lengthy but procedural branch of processes. But can human thought really be broken down into something that is rigidly procedural? I want to get out of this rut of procedural programming. I want to approach problems hollistically. But what computing paradigm gives me the power to do that? Or does it even exist?
Saturday, September 29th, 2012Homework assignment #2:
My second graded homework assignment for CS602 at NJIT. This post contains a text based clock applet and can be accessed on its own page here.
Saturday, September 22nd, 2012Homework assignment #1:
My first graded homework assignment for CS602 at NJIT. This post contains the images and source code for several projects: (1) an iteratively calculated factorial function, (2) an average function which calculates arithmetic means based on some input files, (3) a list generator application that creates email addresses based on some input files, (4) (Not Shown but implemented) a package containing the aforementioned programs and (5) (Not Shown but implemented), various error handling methods applicable to the file readers and type handling present in problem (2).