SlideShare a Scribd company logo
INTRO TO SERVER SIDE PROGRAMMING
Week Four
Friday, September 20, 13
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
CONDITIONAL LOGIC
If This, Then That
Friday, September 20, 13
Friday, September 20, 13
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
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
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
Workflow Diagrams & Truth Tables
Friday, September 20, 13
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
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
ASSIGNMENT 4.1
Diagramming Conditional Logic
Friday, September 20, 13
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
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
ASSIGNMENT 4.2
Branching Logic in WordPress
Friday, September 20, 13

More Related Content

Similar to DIG1108 Lesson 4

Introduction to Drools
Introduction to DroolsIntroduction to Drools
Introduction to Drools
giurca
 
Javascript unit testing, yes we can e big
Javascript unit testing, yes we can   e bigJavascript unit testing, yes we can   e big
Javascript unit testing, yes we can e big
Andy Peterson
 
Integrate Spring MVC with RequireJS & Backbone.js & Spring Data JPA
Integrate Spring MVC with RequireJS & Backbone.js & Spring Data JPAIntegrate Spring MVC with RequireJS & Backbone.js & Spring Data JPA
Integrate Spring MVC with RequireJS & Backbone.js & Spring Data JPA
Cheng Ta Yeh
 

Similar to DIG1108 Lesson 4 (20)

DIG1108C Lesson 4 Fall 2014
DIG1108C Lesson 4 Fall 2014DIG1108C Lesson 4 Fall 2014
DIG1108C Lesson 4 Fall 2014
 
Professional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsProfessional JavaScript: AntiPatterns
Professional JavaScript: AntiPatterns
 
Unethical JavaScript - Giorgio Natili - Codemotion Rome 2017
Unethical JavaScript - Giorgio Natili - Codemotion Rome 2017Unethical JavaScript - Giorgio Natili - Codemotion Rome 2017
Unethical JavaScript - Giorgio Natili - Codemotion Rome 2017
 
What is this DI and AOP stuff anyway...
What is this DI and AOP stuff anyway...What is this DI and AOP stuff anyway...
What is this DI and AOP stuff anyway...
 
Introduction to Drools
Introduction to DroolsIntroduction to Drools
Introduction to Drools
 
Javascript unit testing, yes we can e big
Javascript unit testing, yes we can   e bigJavascript unit testing, yes we can   e big
Javascript unit testing, yes we can e big
 
Think jQuery
Think jQueryThink jQuery
Think jQuery
 
Android data binding
Android data bindingAndroid data binding
Android data binding
 
Why is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenariosWhy is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenarios
 
Middy.js - A powerful Node.js middleware framework for your lambdas​
Middy.js - A powerful Node.js middleware framework for your lambdas​ Middy.js - A powerful Node.js middleware framework for your lambdas​
Middy.js - A powerful Node.js middleware framework for your lambdas​
 
Static Analysis in IDEA
Static Analysis in IDEAStatic Analysis in IDEA
Static Analysis in IDEA
 
Bubbles & Trees with jQuery
Bubbles & Trees with jQueryBubbles & Trees with jQuery
Bubbles & Trees with jQuery
 
From Legacy to Hexagonal (An Unexpected Android Journey)
From Legacy to Hexagonal (An Unexpected Android Journey)From Legacy to Hexagonal (An Unexpected Android Journey)
From Legacy to Hexagonal (An Unexpected Android Journey)
 
How much do we know about Object-Oriented Programming?
How much do we know about Object-Oriented Programming?How much do we know about Object-Oriented Programming?
How much do we know about Object-Oriented Programming?
 
Single Page JavaScript WebApps... A Gradle Story
Single Page JavaScript WebApps... A Gradle StorySingle Page JavaScript WebApps... A Gradle Story
Single Page JavaScript WebApps... A Gradle Story
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy
 
Real life-coffeescript
Real life-coffeescriptReal life-coffeescript
Real life-coffeescript
 
[DEPRECATED]Gradle the android
[DEPRECATED]Gradle the android[DEPRECATED]Gradle the android
[DEPRECATED]Gradle the android
 
Gradle in a Polyglot World
Gradle in a Polyglot WorldGradle in a Polyglot World
Gradle in a Polyglot World
 
Integrate Spring MVC with RequireJS & Backbone.js & Spring Data JPA
Integrate Spring MVC with RequireJS & Backbone.js & Spring Data JPAIntegrate Spring MVC with RequireJS & Backbone.js & Spring Data JPA
Integrate Spring MVC with RequireJS & Backbone.js & Spring Data JPA
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

DIG1108 Lesson 4

  • 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
  • 3. CONDITIONAL LOGIC If This, Then That 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
  • 8. Workflow Diagrams & Truth Tables 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
  • 11. ASSIGNMENT 4.1 Diagramming Conditional Logic 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
  • 14. ASSIGNMENT 4.2 Branching Logic in WordPress Friday, September 20, 13