======Part 3======
=====Entries=====
====November 20, 2011====
I have read Chapters 5 & 6 and managed to test a few of the examples in the book from most of the concepts. This is important in progressing in my abilities with this class. Right now I am having trouble juggling my studies and work especially with Black Friday coming up which I have to work on (oh yay). Keeping up with concepts in this class is very important especially at a late stage and I think I'll need to put even more effort into this direction when I can.
====November 26, 2011====
I've made it through Black Friday (thank god) and I'm able to focus more on classes. Right now I am in the middle of reading through Chapter 7 and will hopefully be able to practice some of it tonight. I think I will be able to finish the book before the end of semester, but I'm definitely doing so regardless if that time passes.
====November 27, 2011====
I am brainstorming for possible projects to do and these are the ones I have come up with:
* Rock Paper Scissors game
* A simple calculator
* A tip calculator
* An alarm clock (maybe stretching my abilities)
* Some type of array using program
This entry will also help me to start my project much faster than just thinking about it, although it's tough to come up with more for now.
====November 29, 2011====
I have read through Chapter 7 and some of Chapter 8. I have also done some example exercises based on examples from Chapter 7 to help my understanding. My progress toward the end of this semester is a little faster than it has been overall, and I hope I'll be able to find the time to complete the book before then. Most of my time (since Saturday) has had to be directed toward other classes due to tests. I have been going through the concepts well for the most part and thankfully time has been my only challenge for this course so far.
=====cprog Topics=====
====Parameters, Return Types, and Recursion====
Parameters are used to pass arguments of a specified data type when called.
One example:
int example (int x, int y)
The parameters given for 'int example' are 'int x' and 'int y'. The parameters are separated by commas.
Return types refers to the data type that is returned as the result of a function. The function can be defined to specify what data type to return, or to return no data by using "void".
Recursion is when a function is declared to repeat itself, either infinitely or until the user specifies.
====Code stages (source, object, binary)====
Code stages refers to what happens before, during and after compiling of a program. Source code is the code that is written before any compiling is done. Compiling the source code turns it into assembly code, which is then turned into object code by an Assembler. A "Linker" program is what turns the object code into binary code, and makes it executable.
====Compiler, Preprocessor, Flags, Assembler, Linker====
These are what changes the source code into an executable program. The compiler changes source code into assembly code. The preprocessor looks at parts of the code such as "#include ". Flags refers to the options that the user may have turned on or off for the program. The Assembler turns the assembly code into object code. The Linker turns that object code into an executable file.
====C Library, libraries, & Makefiles====
The C Library, and other libraries, contain numerous functions and definitions that can be called and used in other programs. Makefiles are another way to organize code together, similar to libraries.
====Version Control (checkout, commit, update, add, log)====
====Const-Volatility Specifiers (const, volatile)====
Const and volatile are both used to modify pointers. const protects a declaration from being changed after initialization. volatile allows the declaration to be modified by other ways than just the user application.
====Classes and Objects (Constructor, Destructor, Members)====
Members of a class are declarations of functions within a class. Constructors and destructors are similar to member functions of a class, but can have no return types. Constructors are member functions with the same name as the class. Destructors can be used to deallocate memory within a class.
====The "this" pointer====
The "this" pointer is used for a non-static member function toward an object.
====Inheritance (single, multiple Inheritance)====
Inheritance is exactly what is implies, which is the transfer (inheritance) of functions from one class to another.
====Polymorphism/Virtual Functions====
Polymorphism enables the use of one function in different ways. This type of function allows for flexibility when using one function, rather than having to make new functions for different problems.
====STL (Standard Template Library)====
The Standard Template Library is library available to C++. It comes with a great number of built-in tools, such as algorithms, functors, containers, and iterators for use in programming.
====Access Control (Public, Protected, Private, Friend)====
=====cprog Objective=====
====Objective====
This objective is to know the difference between structures and classes
===Method===
The method I will use to show my knowledge of differences is analyzing and comparing structures and classes.
===Measurement===
Both classes and structures are defined as groups of data elements which can be used in a number of ways. The only difference between the two is the default setting assigned to each. Classes are set to be private by default, where structures are set to be public by default.
===Analysis===
The only difference between classes and structures is whether the default setting assigned to them is private or public, respectively. While both allow the use of member functions and objects, these default settings help to differentiate when it is more convenient to use one than the other.
=====Experiments=====
====Experiment 1====
===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.
====Experiment 2====
===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.
====Retest====
If you're doing an experiment instead of a retest, delete this section.
If you've opted to test the experiment of someone else, delete the experiment section and steps above; perform the following steps:
===State Experiment===
Whose existing experiment are you going to retest? Prove the URL, note the author, and restate their question.
===Resources===
Evaluate their resources and commentary. Answer the following questions:
* Do you feel the given resources are adequate in providing sufficient background information?
* Are there additional resources you've found that you can add to the resources list?
* Does the original experimenter appear to have obtained a necessary fundamental understanding of the concepts leading up to their stated experiment?
* If you find a deviation in opinion, state why you think this might exist.
===Hypothesis===
State their experiment's hypothesis. Answer the following questions:
* Do you feel their hypothesis is adequate in capturing the essence of what they're trying to discover?
* What improvements could you make to their hypothesis, if any?
===Experiment===
Follow the steps given to recreate the original experiment. Answer the following questions:
* Are the instructions correct in successfully achieving the results?
* Is there room for improvement in the experiment instructions/description? What suggestions would you make?
* Would you make any alterations to the structure of the experiment to yield better results? What, and why?
===Data===
Publish the data you have gained from your performing of the experiment here.
===Analysis===
Answer the following:
* Does the data seem in-line with the published data from the original author?
* Can you explain any deviations?
* How about any sources of error?
* Is the stated hypothesis adequate?
===Conclusions===
Answer the following:
* What conclusions can you make based on performing the experiment?
* Do you feel the experiment was adequate in obtaining a further understanding of a concept?
* Does the original author appear to have gotten some value out of performing the experiment?
* Any suggestions or observations that could improve this particular process (in general, or specifically you, or specifically for the original author).