Table of Contents
Part 2
Land of the Lost
Entry 5: March 6, 2012
gcc -Wall -g -o prog prog.c
GNU debugging
gdb ./program break- can recognize functions or it can be used to place breaks in particular lines.
(gdb) run Starting program: /home/jdavis34/src/cprog/m61 total is: 734 total is: 937.299438 Program exited normally. (gdb) break main Breakpoint 1 at 0x40053d: file m6_1.c, line 13. (gdb) break 17 Breakpoint 2 at 0x40058f: file m6_1.c, line 17. (gdb) break 23 Breakpoint 3 at 0x400620: file m6_1.c, line 23. (gdb) run Starting program: /home/jdavis34/src/cprog/m61 Breakpoint 1, main () at m6_1.c:13 13 value.x=0; (gdb) run The program being debugged has been started already. Start it from the beginning? (y or n) n Program not restarted. (gdb) run The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/jdavis34/src/cprog/m61 Breakpoint 1, main () at m6_1.c:13 13 value.x=0; (gdb) (gdb) (gdb) (gdb) (gdb) run The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/jdavis34/src/cprog/m61 Breakpoint 1, main () at m6_1.c:13 13 value.x=0; (gdb)
print- allows to print values in code
(gdb) run Starting program: /home/jdavis34/src/cprog/m61 total is: 734 total is: 937.299438 Breakpoint 1, main () at m6_1.c:26 26 } (gdb) print i $6 = 73 (gdb) print & i $7 = (int *) 0x7fffffffe20c (gdb) print value $8 = {x = 1147818794, f = 937.299438} (gdb)
!dice: 1d99 8-ball: question ?
1 struct person { 2 char name; 3 unsigned char age; 4 short int weight; 5 float gpa; 6 }; 7 typedef struct person P; 8 9 P.age 10 P.name 11 P.gpa
Entry 6: March 8, 2012
C++
OOP-Object-Oriented Programming
Classes & Objects
Inheritance/Multiple Inheritance
Polymorphism
Templates
Entry 7: March 13, 2012
hpc
ssh -g -L port#:vm##.student.lab user@lab46.corning-cc.edu
ssh -X root@vm34.student.lab (use for wine on vm server to use a GUI app)
Xming32 “fancy X window for windows that lets us do our fancy window servery stuff”
CYGWIN
winecfg ←- to access wine
c++
Function overloading, can have numerous variations of a function of the same name with different parameters.
steps on own header.
1. make copy
2. remove all but dec
3. remove dec in orig
4. add “ name.h” to the orig
Now in separating main, from the functions of the program, be sure to compile each separate file using
g++ -c file.cc
do this for each of the Objects
It will print out file.o
next once all objects compiled,
g++ -o programname (each object created previously) ex1.o ex2.o etc etc
Entry 8: March 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.
cprog Keywords
Scope
Identification and definition of the chosen 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); }
Compiler
program or interface which translates code into a machine language. Usually outputting an executable program such as we use via putty terminal.
Source Code
listing of commands, in a text based language, that are more user friendly than machine language, to be compiled or assembled into an executable computer program.
Binary Code
A form of code using 0's and 1's. More commonly associated with low level programming such as machine language, that most programmers don't work with but a library of language a compiler may use.
Flags
In programming, a flag is a predefined bit or bit sequence that holds a binary value. Typically, a program uses a flag to remember something or to leave a sign for another program.
For example, in a message being exchanged by two programs, a three-bit flag's field or data area might be set to one of three configurations:
001 (meaning “I'm a self-contained message”)
011 (meaning “I'm one of several chunks of data in this message”)
111 (meaning “I'm the last chunk of data in this message”)
Preprocessor
Separate program invoked by the compiler as the first part of translation.
The preprocessor handles directives for source file inclusion (#include), macro definitions (#define), and conditional inclusion (#if).
#include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; }
The preprocessor replaces the line #include <stdio.h> with the system header file of that name, which declares the printf()
assembler
An assembler is a program that takes basic computer instructions and converts them into a pattern of bits that the computer's processor can use to perform its basic operations. Some people call these instructions assembler language and others use the term assembly language.
Pointers
they “point” to locations in memory. In the computer, pointers are just variables that store memory addresses, usually the addresses of other variables. <codec> <variable_type> *<name>; one pointer, one regular int int *pointer1, nonpointer1; two pointers int *pointer1, *pointer2; </code>
cprog Objective
Objective
understand the difference between procedural and object-oriented languages
Method
To understand the difference between the two, it would probably be easiest to have someone create a program that best depicts both types of writing.
Measurement
Object Orientation Languages (OOL) is concerned to develop an application based on real time while
Procedural Programing Languages (PPL) are more concerned with the processing of procedures and functions.
OOL concepts includes Inheritance, Encapsulation and Data Abstraction, Late Binding, Polymorphism, Multithreading, and Message Passing while PPL is simply a programming in a traditional way of calling functions and returning values.
Analysis
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
- How did you do? Still somewhat confused on what exactly both entail, I guess picking this for my objective made me more curious to understand both of them a little better.
- Room for improvement? ALOT for me in the terms of using both and knowing when and why i would want to.
- Could the measurement process be enhanced to be more effective?
- Do you think this enhancement would be efficient to employ?
- Could the course objective be altered to be more applicable? How would you alter it?
hpc0 Keywords
make
Definition
The purpose of the make utility is to determine automatically which pieces of a large program need to be recompiled, and issue the commands to recompile them. To prepare to use make, you must write a file called the makefile that describes the relationships among files in your program, and the states the commands for updating each file. In a program, typically the executable file is updated from object files, which are in turn made by compiling source files.
Demonstration
Demonstration of the chosen 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$
Screen
Identification of chosen keyword (unless you update the section heading above).
Definition
Definition (in your own words) of the chosen keyword.
Demonstration
Demonstration of the chosen 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$
hpc0 Keyword 11
Identification of chosen keyword (unless you update the section heading above).
Definition
Definition (in your own words) of the chosen keyword.
Demonstration
Demonstration of the chosen 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$
hpc0 Keyword 12
Identification of chosen keyword (unless you update the section heading above).
Definition
Definition (in your own words) of the chosen keyword.
Demonstration
Demonstration of the chosen 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$
hpc0 Keyword 13
Identification of chosen keyword (unless you update the section heading above).
Definition
Definition (in your own words) of the chosen keyword.
Demonstration
Demonstration of the chosen 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$
hpc0 Keyword 14
Identification of chosen keyword (unless you update the section heading above).
Definition
Definition (in your own words) of the chosen keyword.
Demonstration
Demonstration of the chosen 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$
hpc0 Keyword 15
Identification of chosen keyword (unless you update the section heading above).
Definition
Definition (in your own words) of the chosen keyword.
Demonstration
Demonstration of the chosen 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$
hpc0 Keyword 16
Identification of chosen keyword (unless you update the section heading above).
Definition
Definition (in your own words) of the chosen keyword.
Demonstration
Demonstration of the chosen 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$
hpc0 Objective
hpc0 Objective
State the course objective
Definition
In your own words, define what that objective entails.
Method
State the method you will use for measuring successful academic/intellectual achievement of this objective.
Measurement
Follow your method and obtain a measurement. Document the results here.
Analysis
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
- How did you do?
- Is there room for improvement?
- Could the measurement process be enhanced to be more effective?
- Do you think this enhancement would be efficient to employ?
- Could the course objective be altered to be more applicable? How would you alter it?
unix Keywords
PATH
Definition
PATH is an environmental variable that specifies a set of directories where executable programs are located.
Demonstration
lab46:~$export PATH=$PATH:/home/jdavis34/src/unix
Daemons
Definition
A daemon is a computer program that runs in the background as a process, instead of running in the foreground. Rather than being directly controlled by the user. Often these are used to start processes at a particular time, and or to maintain certain processes are always running.
Wild Cards
Definition
Various tools that are very powerful in the land of UNIX. These enable a user to control the output of commands without having to specify the exact context of the name of a file.
* zero or more of “any” character
? used to represent one of “any” character
\ will ignore such things as space if the variable name isn't one string.
” ” (or ' ') quote the enclosed characters
[ ] character class - match any of the enclosed characters.
[^ ] inverted character class - do not match any of the enclosed characters.
who
Definition
who - will print a list of all the current users logged in to a specific system.
Demonstration
jdavis34@lab46:~/src/cprog$ who NAME LINE TIME IDLE PID COMMENT jjohns43 + pts/24 2012-01-23 12:18 old 701 (cpe-74-65-82-173:S.0) skinney1 + pts/35 2012-03-16 10:15 20:26 27443 (65-124-85-125.dia.static.qwest.net) mfaucet2 + pts/65 2012-03-09 17:09 old 28217 (55:S.0) thakes3 + pts/68 2012-03-16 19:16 00:01 17986 (cpe-69-207-208-154:S.0) jdavis34 + pts/22 2012-03-06 12:57 00:18 2741 (cpe-69-205-141-69:S.0) thakes3 + pts/76 2012-03-16 15:41 00:02 6590 (cpe-69-207-208-154:S.2) thakes3 + pts/101 2012-03-16 20:32 00:01 19641 (cpe-69-207-208-154:S.1) jjohns43 + pts/82 2012-02-27 11:03 old 26118 (cpe-74-65-82-173:S.0)
cron/crontab
Definition
This could be tied to daemon, but is the means of setting a daemon in the system. It is a time based job scheduler used to run periodically at certain times or dates. often used to automate system processes.
Demonstration
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
at/atrm
Definition
(at) is a powerful tool also used to schedule task, but for a single time occurrence. atrm is used to remove specific jobs, which can be done by following the command with the jobs PID number.
Demonstration
lab46:~$ cd src lab46:~/src$ gcc -o hello hello.c lab46:~/src$ ./hello Hello, World! lab46:~/src$
ps
Definition
ps gives a snapshot of the current processes.
Demonstration
jdavis34@lab46:~/src/cprog$ ps USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND jdavis34 2741 0.0 0.1 13660 1916 pts/22 SNs Mar06 0:00 /bin/bash jdavis34 7001 0.0 0.1 13676 2028 pts/49 SNs Mar16 0:00 /bin/bash jdavis34 7004 0.0 0.1 13676 2032 pts/90 SNs Mar16 0:00 /bin/bash jdavis34 12154 0.0 0.3 42844 5376 pts/22 SN+ Mar10 1:04 irssi jdavis34 20760 0.0 0.8 54232 13632 pts/49 SN+ Mar16 0:00 gdb bignum jdavis34 29021 0.0 0.1 13636 1964 pts/8 SNs 08:48 0:00 -bash jdavis34 29024 0.0 0.1 61848 2352 pts/8 SN+ 08:48 0:00 screen -r jdavis34 29203 0.0 0.0 8588 988 pts/90 RN+ 09:46 0:00 ps u
kill
Definition
kill is a very powerful command with a huge list of arguments that follow it, generally used to kill a process.
Demonstration
Refer to the previous word for seeing what process was killed. The argument -9 is OP…
jdavis34@lab46:~/src/cprog$ kill -9 20760 jdavis34@lab46:~/src/cprog$
unix Objective
unix Objective
State the course objective
Definition
In your own words, define what that objective entails.
Method
State the method you will use for measuring successful academic/intellectual achievement of this objective.
Measurement
Follow your method and obtain a measurement. Document the results here.
Analysis
Reflect upon your results of the measurement to ascertain your achievement of the particular course objective.
- How did you do?
- Is there room for improvement?
- Could the measurement process be enhanced to be more effective?
- Do you think this enhancement would be efficient to employ?
- Could the course objective be altered to be more applicable? How would you alter it?
Experiments
Hydro-Ponics
Question
This project more or less is not based off the format of being a question, but a periodical observation of a process. It also maintains the ability to monitor and maintain a system of suitable environmental aspects for efficient growth.
Resources
All of our resources exist within the “Lair” and or previous knowledge acquired as of now. (With the setting up the server and IP cam and other various monitoring instruments I am sure this will extend its welcome to the interwebs.
Hypothesis
Will our plants effectively survive for the remainder of the duration of this semester that we get to spend with such a outstanding group of individuals???? YES CAUSE WE ARE OP…
I have a garden at home, and so maintaining plants is already known, also in middle school for like 8th grade we have to develop our own hydroponics system from various jugs and tubes. The one we made was prior to spring break and had to be able to survive for the duration of our absence. (mine survived)
Experiment
1. We began with the three of us prepping the area for the experiment.
2. We then all chose two specific slots each for our plants.(8/3 = WTF…. we gave Matt 2, so this complex math was resolved(6/3))
3. Set the timers for the lights to be on for 16 hours (6am turn on, 10pm turn off)
4. We prepped the proper amount of nutrients for the water A B C. (I am adding I refused the way they were added… I wanted it put in the gallon of water not directly into the resivior)
5. We all chose our seeds to plant in our specific slots, and assembled it with the water just touching the bottom of the baskets.
6. The air pump was also plugged in and submerged under the water.
7. We then began to fiddle thumbs and stare dumbfoundly at the rapid progression of our success.
Data
Perform your experiment, and collect/document the results here.
Analysis
Based on the data collected: (TO COME)
- 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. (TO COME)
Experiment 5
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 2
Perform the following steps:
State Experiment
Whose existing experiment are you going to retest? Provide 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).