Table of Contents

Brett Krisher's Fall2012 Opus

The Best Page Ever

Introduction

I've been slowly learning Computer Science for the past two semesters. I would like to become a Programmer for computers. My interests are playing and learning about video games and their systems, my other interest is bowling.

Part 1

Entries

Entry 1: September 6th, 2012

  • We started building a truth table program.
  • This is important because I don't want to have to write this table out every time i need it
  • The Problems I'm having is trying to think of the code needed to write these programs
  • The challenge I currently have is trying to fit time for this course in with all my other course

Entry 2: September 13, 2012

  • Started to learn VI text editor
  • Vi is a lot better text editor than the highly inferior nano
  • I seem to want to use the arrow keys is Vi instead of the h,j,k,l keys
  • There are a lot of commands to learn in Vi that will take a lot of practice

Entry 3: September 28 2012

  • trying to do the puzzle-box project
  • to finish it before it is late
  • trying to rearrange files so it doesn't upset my Hg repository
  • trying to keep all of my courses separate from each other

Entry 4: August Day, 2012

This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.

As an aid, feel free to use the following questions to help you generate content for your entries:

  • What action or concept of significance, as related to the course, did you experience on this date?
  • Why was this significant?
  • What concepts are you dealing with that may not make perfect sense?
  • What challenges are you facing with respect to the course?

Remember that 4 is just the minimum number of entries. Feel free to have more.

Keywords

Data Structures Keyword

Void Pointers

Definition

The void pointer is a generic pointer type. A pointer to void can store an address to any non-function data type, and, in C is implicitly converted to any other pointer type on assignment, but it must be explicitly cast if dereferenced inline.

References

data Keyword 1 Phase 2

dynamic memory allocation (malloc/free)

Definition

dynamic memory allocation is the task of allocating a free chunk of memory specific to the size you predetermine in bytes, by using the malloc function. The chunk of memory is not always in the same location hence being “dynamic” instead of static. By using the “free” function, that will release the block of memory back to the system.

References

List any sites, books, or sources utilized when researching information on this topic. (Remove any filler text).

  • wikipedia
  • class
  • Reference 3

Demonstration

Demonstration of the indicated keyword.

/*
 * Sample code block
 */
#include <stdio.h>
 
int main()
{
    int array[10];
 
    return(0);
}

Discrete Keyword

nonconjunction/not both … and.

Definition

Definition (in your own words) of the chosen keyword.

References

discrete Keyword 1 Phase 2

left projection

Definition

Definition (in your own words) of the chosen keyword.

References

List any sites, books, or sources utilized when researching information on this topic. (Remove any filler text).

  • wikipedia
  • class
  • Reference 3

Demonstration

Demonstration of the indicated keyword.

If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:

/*
 * Sample code block
 */
#include <stdio.h>
 
int main()
{
    return(0);
}

Alternatively (or additionally), if you want to demonstrate something on the command-line, you can do so as follows:

lab46:~$ cd src
lab46:~/src$ gcc -o hello hello.c
lab46:~/src$ ./hello
Hello, World!
lab46:~/src$ 

Unix Keyword

File Compression.

Definition

involves encoding information using fewer bits than the original file. It helps reduce resources usage such as data storage space or transmission capacity. In order to use the data again though you must uncompress the file.

References

Unix Keyword 1 Phase 2

Links to Files

Definition

Definition (in your own words) of the chosen keyword.

References

List any sites, books, or sources utilized when researching information on this topic. (Remove any filler text).

  • Reference 1
  • Reference 2
  • Reference 3

Demonstration

Demonstration of the indicated keyword.

Alternatively (or additionally), if you want to demonstrate something on the command-line, you can do so as follows:

brett@ubuntu: cd closet
brett@ubuntu:~/closet$ ls
robes spells skeleton
brett@ubuntu:~/closet$ ln -s skeleton torch
brett@ubuntu:~/closet$ ls
robes skeleton spells torch
brett@ubuntu:~/closet$ ls -l
total 8
drwxrwxr-x 2 brett brett 4096 Aug 31 22:27 robes
-rw-rw-r-- 1 brett brett    0 Sep 30 19:22 skeleton
drwxrwxr-x 2 brett brett 4096 Aug 31 22:49 spells
lrwxrwxrwx 1 brett brett    8 Sep 30 19:23 torch -> skeleton
brett@ubuntu:~/closet$ 

Experiment 1

Question

How important are DLL files?

Resources

http://en.wikipedia.org/wiki/Dynamically_linked_library:

http://en.wikipedia.org/wiki/Shared_library#Shared_libraries

Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.

Hypothesis

Without any .dll files, certain programs will stop functioning properly.

After downloading files, many have additional extensions in the .dll format. Without these they might not be able to function fully.

Experiment

Im going to find a simple file with .dll extensions and see what happens after I delete a few of these files one by one.

Data

  • Program still runs without .dll files
  • severely limited functionality
  • states that certain function are missing or invalid

Analysis

Based on the data collected:

  • My hypothesis was partially correct, the program still functions partially without them rather than just seizing up.
  • Not getting enough data to check if it was just this program that can run without .dll files or if others can do it too.

Conclusions

The conclusion that I'm having is that although you can run certain files without there extensions, it isn't very wise. Therefor .dll files are quite important in dealing with files that need them.

Part 2

Entries

Entry 1: October 11, 2012

  • the need for indentation in code
  • without indentation the code is significantly harder to read and check for errors
  • the stack program
  • trying to implement arrays into my programs without the proper knowledge needed

Entry 2: October 29, 2012

  • Finishing up my opus
  • So i can get ready for the opus part 3
  • the concept of the stack program
  • No challenges to speak of at the moment

Entry 3: October 31, 2012

  • Binary Trees
  • it will help with sorting anything
  • The stack program is a little difficult to think about
  • I have to stop trying to leave everything till the last minute

Entry 4: October Day, 2012

This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.

As an aid, feel free to use the following questions to help you generate content for your entries:

  • What action or concept of significance, as related to the course, did you experience on this date?
  • Why was this significant?
  • What concepts are you dealing with that may not make perfect sense?
  • What challenges are you facing with respect to the course?

Remember that 4 is just the minimum number of entries. Feel free to have more.

Keywords

data Keyword 2

linked list

Definition

A linked list is a data structure consisting of a group of nodes which together represent a sequence. Under the simplest form, each node is composed of data and a link to the next node in the sequence; more complex variants add additional links. This structure allows for efficient insertion or removal of elements from any position in the sequence.

References

data Keyword 2 Phase 2

stack overflow condition

Definition

A stack overflow is when to much memory is used when creating a stack. when a stack is created it uses something called a push which is basically the append function in a linked list. The push will “Push” something on the stack. similar to a stack of papers the “push” puts a paper on the top of the stack. A stack overflow is when you put to many papers on the stack.

References

Demonstration

Demonstration of the indicated keyword.

If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:

/*
 * Sample code block
 */
   int foo() {
     return foo();
   }
 

Alternatively (or additionally), if you want to demonstrate something on the command-line, you can do so as follows:

lab46:~$ cd src
lab46:~/src$ gcc -o sample
lab46:~/src$ ./sample
Segmentation Fault
lab46:~/src$ 

discrete Keyword 2

cycle sort

Definition

Cycle sort is an in-place, unstable sorting algorithm, a comparison sort that is theoretically optimal in terms of the total number of writes to the original array, unlike any other in-place sorting algorithm. It is based on the idea that the rearranging of things to be sorted can be factored into cycles, which can individually be rotated to give a sorted result.

References

discrete Keyword 2 Phase 2

venn diagrams

Definition

A pictorial way to compare two things and also show what they have in common, often shown with two circles overlaying each other.

References

Demonstration

Demonstration of the indicated keyword.

http://www.purplemath.com/modules/venndiag.htm

unix Keyword 2

quotes

Definition

A helpful tool that allows you to print characters just as you input them

References

List any sites, books, or sources utilized when researching information on this topic. (Remove any filler text).

  • Reference 1
  • Reference 2
  • Reference 3

unix Keyword 2 Phase 2

variables (environment/local)

Definition

A variable is a storage location with an associated name (an identifier) which contains some known or unknown quantity or information, a value.

References

Demonstration

Demonstration of the indicated keyword.

If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:

/*
 * Sample code block
 */
#include <stdio.h>
 
int main()
{
    int a=1, b;
 
    b = b + 3;
    a = a * b;
 
    printf("%hhd\n",a);
 
    return(0);
}
lab46:~$ gcc -o sample sample.c
lab46:~/src$ ./sample
3
lab46:~/src$ 

Experiment 2

Question

How can I mod my Minecraft Pocket Edition on my ipad to change my skin

Resources

Hypothesis

 I will have to go into the containing level folders on my ipad and replace the current skin pack. 
 My rational is that this file is what tells the game what the current skin is

Experiment

  By plugging my ipad into my laptop I can view all the files on it. By looking in the mojang file under games 
  directory i can find the skin file.
  by replacing the char.png file I can change how I look
  

Data

Perform your experiment, and collect/document the results here.

  by downloading the skin from this website: http://www.planetminecraft.com/skin/dirtman-reloaded/download/file/1113090/
  renaming the file char.png and replacing the current one with this
  the end result looks like this:
  http://i1175.photobucket.com/albums/r621/minecraftmanager/IMG_0370.png
  

Analysis

My hypothesis was correct and I found it is a lot easier to change things other than
the skin rather easily. By just replacing a file you can change the entire minecraft 
world and the way it looks.

Conclusions

The world of Minecraft is easily changeable, however if you make a mistake changing the core files you could possibly lose your precious world.

Part 3

Entries

Entry 1: November Day, 2012

  • Networking communication
  • because without networking, modern computers couldn't communicate properly
  • At the moment I don't have any unix-like concepts that don't make sense
  • The concept Im facing is trying to code the binary tree program

Entry 2: Thursday 29, 2012

  • How do draw images in C code
  • To be able to draw pictures
  • all of the functions used to do this
  • Trying to finish up all of these entries

Entry 3: November Day, 2012

This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.

As an aid, feel free to use the following questions to help you generate content for your entries:

  • What action or concept of significance, as related to the course, did you experience on this date?
  • Why was this significant?
  • What concepts are you dealing with that may not make perfect sense?
  • What challenges are you facing with respect to the course?

Remember that 4 is just the minimum number of entries. Feel free to have more.

Entry 4: November Day, 2012

This is a sample format for a dated entry. Please substitute the actual date for “Month Day, Year”, and duplicate the level 4 heading to make additional entries.

As an aid, feel free to use the following questions to help you generate content for your entries:

  • What action or concept of significance, as related to the course, did you experience on this date?
  • Why was this significant?
  • What concepts are you dealing with that may not make perfect sense?
  • What challenges are you facing with respect to the course?

Remember that 4 is just the minimum number of entries. Feel free to have more.

Keywords

data Keyword 3

Postfix (reverse polish)

Definition

A mathematical notation wherein every operator follows all of its operands. For instance “3 + 4” would be written as “3 4 +”. If there are multiple operators the operator is given immediately after its second operand; so the expression written “3 − 4 + 5” in conventional infix notation would be written “3 4 − 5 +”

References

data Keyword 3 Phase 2

Identification of chosen keyword.

Definition

Definition (in your own words) of the chosen keyword.

References

List any sites, books, or sources utilized when researching information on this topic. (Remove any filler text).

  • Reference 1
  • Reference 2
  • Reference 3

Demonstration

Demonstration of the indicated keyword.

If you wish to aid your definition with a code sample, you can do so by using a wiki code block, an example follows:

/*
 * Sample code block
 */
#include <stdio.h>
 
int main()
{
    return(0);
}

Alternatively (or additionally), if you want to demonstrate something on the command-line, you can do so as follows:

lab46:~$ cd src
lab46:~/src$ gcc -o hello hello.c
lab46:~/src$ ./hello
Hello, World!
lab46:~/src$ 

discrete Keyword 3

finite state machine.

Definition

  It is conceived as an abstract machine that can be in one of a finite number of states. 
  The machine is in only one state at a time; the state it is in at any given time is called the current state.
  It can change from one state to another when initiated by a triggering event or condition, this is called a transition. 

References

discrete Keyword 3 Phase 2

Matrix Multiplication

Definition

The multiplication of two or more matrices to produce a new matrix.

References

Demonstration

Suppose MM1

using the inner product approach: InnerMM

while the outer product approach gives: OuterMM

Source Link: http://en.wikipedia.org/wiki/Matrix_multiplication#Algorithms_for_efficient_matrix_multiplication

unix Keyword 3

Paste

Definition

A Unix command line utility which is used to join files horizontally (parallel merging) by outputting lines consisting of the sequentially corresponding lines of each file specified.

References

unix Keyword 3 Phase 2

Cut

Definition

Cut removes sections of each line of files.

Print selected parts of lines from each FILE to standard output.

References

  • cut man page

Demonstration

brett@ubuntu:~$ cat file
gidlesd
dddiii
llfees
jfkdasdioels
fjoewaqffcjio

brett@ubuntu:~$ cut -c 2-4 file
idl
ddi
lfe
fkd
joe

brett@ubuntu:~$ 

Experiment 3

Question

What is the question you'd like to pose for experimentation? State it here.

Resources

Collect information and resources (such as URLs of web resources), and comment on knowledge obtained that you think will provide useful background information to aid in performing the experiment.

Hypothesis

Based on what you've read with respect to your original posed question, what do you think will be the result of your experiment (ie an educated guess based on the facts known). This is done before actually performing the experiment.

State your rationale.

Experiment

How are you going to test your hypothesis? What is the structure of your experiment?

Data

Perform your experiment, and collect/document the results here.

Analysis

Based on the data collected:

  • Was your hypothesis correct?
  • Was your hypothesis not applicable?
  • Is there more going on than you originally thought? (shortcomings in hypothesis)
  • What shortcomings might there be in your experiment?
  • What shortcomings might there be in your data?

Conclusions

What can you ascertain based on the experiment performed and data collected? Document your findings here; make a statement as to any discoveries you've made.