This document discusses server-side programming and conditional logic. It begins with an overview of basic Git workflows for saving work, branching, sharing code, and updating code. It then covers conditional statements and expressions, explaining that computer science relies on Boolean algebra for "if this is true, do this" conditional logic. The document provides examples of guarding expressions, conditional operators, nested conditionals, and assigning values based on conditional checks. It concludes with an assignment to diagram conditional logic found in code by examining nested "if-then-else" statements and creating workflow diagrams and truth tables.
1. INTRO TO SERVER SIDE PROGRAMMING
Week Four
Friday, September 20, 13
2. Basic Git Workflow Review
Save and test your work often.
If it tests ok, add then commit your work (git add & git
commit respectively)
Need to work alone? Work on a branch (git branch & git
checkout or git checkout -b for short)
Done or need to share your work? Send your work to
remote (git push)
Back to work? Get the latest code (git fetch), then include
it (git merge or git rebase)
Need to make a whole project your own? Copy it (git
clone), then add it as remote and (git pull)
Friday, September 20, 13
5. Conditional Logic - In computer science, conditional statements,
conditional expressions and conditional constructs are features of a
programming language which perform different computations or
actions depending on whether a programmer-specified boolean
condition evaluates to true or false. Apart from the case of branch
predication, this is always achieved by selectively altering the control
flow based on some condition.
Computer Science depends heavily on Boolean Algebra
for conditional logic.
"If this thing is true, then do this. If not, do that."
Friday, September 20, 13
6. Guarding Expressions
Guarding - In computer programming, a guard is a boolean expression
that must evaluate to true if the program execution is to continue in the
branch in question.Boolean expressions in conditional statements usually
also fit this definition of a guard although they are called conditions.
if( ! isset($something) ) $something = 'some value';
do_something_with($something);
$something = ( isset($something) ? $something : 'default' );
$something = do_something_important() or die('error message');
use_the_variable($something);
$something = do_something_important();
if ( $something == false ) die('error message');
Friday, September 20, 13
7. Can I go to the Park?
Boolean values can be combined with logical operators
The order in which conditionals are evaluated matters
$permission_from_mom = $mom->request('go_to_park');
$permission_from_dad = $dad->request('go_to_park');
$permisson_from_both = (
$permission_from_mom and $permission_from_dad
);
$permisson_from_either = (
$permission_from_mom or $permission_from_dad
);
$permisson_from_one = (
$permission_from_mom xor $permission_from_dad
);
Friday, September 20, 13
9. Nested Conditionals
Conditionals can also be nested:
if ( empty($handedness) ) {
if ( test_lefty() and test_righty() )
$handedness = 'Ambidextrous';
else if ( test_lefty() )
$handedness = 'Left Handed';
else if ( test_righty() )
$handedness = 'Right Handed';
else $handedness = 'You Have No Hands!';
}
echo $handedness;
Friday, September 20, 13
10. Nested More!
Nested conditionals can be written multiple ways:
if ( empty($handedness) ) {
if ( test_lefty() ) {
if( test_righty() )
$handedness = 'Ambidextrous';
else $handedness = ' Left Handed';
}
else if ( test_righty() )
$handedness = 'Right Handed';
else $handedness = 'You Have No Hands!';
}
echo $handedness;
Friday, September 20, 13
12. Diagramming Logic
Partner up and find a project with some if-then-else
logic to examine, particularly nested logic
Individually, sketch a simple workflow diagram of the
logic and assemble a truth table. Discuss any differences
that you may have together when done
Collaborate to make one workflow diagram and truth
table to show and explain to the class
Friday, September 20, 13
13. Log in to Cloud9 and pull up homework-5.1.md in your
workspace (you should have this already)
Find the WordPress project on Github, fork it to your
account, then clone it into a Cloud9 Workspace
Look for some branching if-then-else logic in the code.
Look for good conditionals and guarding statements
Copy and paste some examples that you find into your
homework and attempt to identify the conditionals with
comments ("If mom says yes", "if right handed")
Save your file locally after review, add and commit it, then
push your changes to Github
Friday, September 20, 13