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.
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
- http://en.wikipedia.org/wiki/Variable_(computer_science)
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
http://en.wikipedia.org/wiki/Matrix_multiplication#Powers_of_matrices
- Reference 1
- Reference 2
- Reference 3
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.