SlideShare a Scribd company logo
Charlie Love
Education Support Officer
Aberdeen City Council
@charlie_love
Software development using Server-
side scripting
• an integrated approach to Higher Computing
Science.
• approaches to increase teaching time
• reduce the assessment
• strategies for integrated delivery blending
components of the SDD and ISDD units
• use contemporary web technologies:
Apache/Mysql/PHP/JavaScript
Higher Computing Science
Software Design
and
Development
Information
Systems Design
and
Development
Assessment
Assessment
Information
Systems Design
and Development
Software Design
and Development Integrating the delivery of
units using a server side
scripting language
will increase teaching time
and decrease time take for
assessment
Using *AMP stack
+ ++
Amp and higher computing science
Get *AMP on your computers
• Education Scotland Blog post with information
• http://glo.li/edscot-amp
• MAMP
• EasyPHP
• XAMMP
• WAMP
• etc.
Building solutions
• Agile methodologies
• Interative prototyping
• Design->Build->Test->Repeat
• Working code
• Limited Feature Set -> Expanded Feature Set
sub-programs/routines
defined by their name and arguments (inputs
and outputs)
• PHP uses functions which typically return a
single value.
• Use of &parameter passes values by
reference to the PHP function (essentially
creating a subprogram)
including parameter passing (value
and reference, formal and actual)
function read_users( $file, &$user_id, &$user_name,
&$user_image, &$password_string, $index ) {
$textline = fgets($file);
$textarray = explode(',',$textline);
$user_id[$index] = trim($textarray[0])
$user_name[$index] = trim($textarray[1]);
$user_image[$index] = trim($textarray[2]);
$password_string[$index] = trim($textarray[3]);
}
methods
• methods are subroutines associated with an
object
• they have access to the objects data.
• PHP includes support for object oriented
programming
• Use the MySQL API to show methods on
database objects
If ($result = $mysqli->query
("SELECT * FROM user WHERE user_id = '" .
$login_user_id . "'"))
{
$obj = $result->fetch_object();
$user_id = $obj->user_id;
$user_name = $obj->user_name;
$user_image = $obj->user_image;
$result->close();}
Data types and structures
• string
• numeric
(integer and real)
• Boolean
$mysting=“Some
text”;
$integer = 12;
$real =15.232;
$is_set = true;
• Records - Implement as an array of objects
class Owner
{
public $year;
public $measure;
public $month;
public $name;
}
$names = array('Lars', 'James', 'Kirk', 'Robert');
for ($i = 1 ; $i <= 3 ; $i++) {
$owner = new Owner();
$owner->year = 2012;
$owner->measure = $i;
$owner->month = rand(1,12);
$owner->name = array_rand($names);
$owners[] = $owner;
}
• sequential files (open, create, read, write,
close)
• fopen(filename, mode)
– Creates and/or opens file
– Mode is read and/or write and moves file pointer
to start or end of file.
– http://www.php.net/manual/en/function.fopen.p
hp
• fwrite($file, $textline);
– $file is the file handle from opening the file
– $textline is the line of text to be written
• fgets($file)
– Reads line of text from the file
• fclose($file) – close file
Standard Algorithms
• input validation (server side) / server-side
validation of online form data
– Set up form in html
– Process and validate form on submission
– Processing happens at server
– User interaction is required to create validation
loop
<?php
$username="”;
if (isset($_GET[’username'])) {
$error_found = false;
$message = "username is accepted”;
$username = $_GET[’username’];
if(strlen($username) < 8 ) {
$error_found = true;
$message = “Enter 8 or more characters”;
}
echo "<div>" . $message . "</div>";
}
if (($error_found) || (!isset($error_found))) { //show form if err found or 1st visit
?>
<form action="<?php echo $_SERVER[‘PHP_SELF’];?>" method="get">
<input type="text" name="username" value="<?php echo $username;?>">
<input type="submit" value="Submit" name="update"/>
</form>
<? php } ?>
Linear search
• linear search
function linear_search($needle, $haystack) {
for($i = 0; $i < count($haystack); $i++) {
if ($needle == $i)
return true;
}
return false;
}
$haystack = array(1,2,3,4);
$needle = 3;
$found = linear_search($needle, $haystack);
Finding minimum and maximum
Inbuilt max and min functions do it out of the box
function findmax($array_of_values) {
$current_max = $array_of_values[0];
for($i = 1; $i < count($array_of_values); $i++) {
if ($array_of_values[$i] > $current_max) {
$current_max = $array_of_values[$i];
}
}
return $current_max;
}
$my_array= array(12,25,23,14);
$biggest_number = findmax($my_array);
count occurrences
function count_values($val_to_count, $array_of_values) {
$counter = 0;
for($i = 0; $i < count($array_of_values); $i++) {
if ($array_of_values[$i] == $val_to_count) {
$counter++;
}
}
return $counter;
}
$my_array= array(12,25,23,14,72,83,12,12,63,25,14);
$count_of_values = count_values(12, $my_array);
Coding (ISDD)
• scripting (database/web pages)
• client-side scripting
• server-side scripting
• server-side validation of online form data
Structures and Links (Database)
• MySQL
• phpMyAdmin - Database front end
– Can be used to generate SQL for coding
– Web based – simplifies database management
Amp and higher computing science
Structures and Links (Web)
• PHP, HTML, CSS, JavaScript all play well together
<html>
<head>
<title><?php echo $title;></title>
<style>
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url(“bg.gif");}
</style>
<script>
function show_message() {
alert(“hello there”);
}
</script>
<body onLoad=“show_message();”>
….
PHP and MySQL
//connect to the database using mysqli API
$mysqli = new mysqli("localhost", "root", "root",
”mydatabase");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" .
$mysqli->connect_errno . ") "
. $mysqli->connect_error;
die;
}
Run a query and retrieve results
if ($result = $mysqli->query("SELECT * FROM my_table
WHERE field_id = '" . $field_id . "'"))
{
$obj = $result->fetch_object();
$my_field_id = $obj->field_id;
$my_field1 = $obj->field1;
$my_field2 = $obj->field2;
/* free result set */
$result->close();
}
Write to the database
$sql = mysqli('localhost','user','password','database');
$name = $_POST['name'];
$age = $_POST['age'];
$email = $_POST['email'];
$query = $sql->prepare("INSERT INTO `tablename`
VALUES ('?','?','?');");
$query->bind_param("sis",$name,$age,$email);
$query->execute();
Relationships in MySQL
Implemented using queries
SELECT * FROM table1, table2
WHERE table2.id = table1.hid
id field
12 Harry
13 Sally
14 Joe
15 Kirsty
id field hid
3232 sweets 12
3233 candy 12
3234 chocolate 12
3235 popcorn 13
3236 soup 13
table1 table2
Search in MySQL
Implemented using queries
SELECT * FROM table1, table2
WHERE table1.id = 12;
SELECT * FROM table1, table2
WHERE table1.field LIKE “%Joe%”
AND WHERE table2.id = table1.hid ;
Assessment
• You need to show that the candidate has
achieve all the Assessment Standards
• SDD Outcome 2 and ISDD Outcome 1 can be
assessed in the same exercise
• Alternative evidence can be gathered as part
of learning and teaching
• SDD Outcome 1 for part of this as well
Higher Assignment
• Assignment 1: Coding + Database (Diving
Championship – available now)
• Assignment 2: Server Side Scripting
– File handling
– Linear Search
– Server side scripting
– Online database integration
• Assignment 3: Client Side Scripting
– CSS
– Browser based
Blog: http://charlielove.org
Twitter: @charlie_love

More Related Content

What's hot (20)

PPTX
PHP language presentation
Annujj Agrawaal
 
PDF
Top ten-list
Brian DeShong
 
PPT
Website designing company_in_delhi_phpwebdevelopment
Css Founder
 
PPT
Synapse india reviews on php website development
saritasingh19866
 
PPTX
Hbase Introduction
Kim Yong-Duk
 
PDF
11 page-directive
snopteck
 
PDF
Software Development with Open Source
OpusVL
 
PPTX
Introduction to Monsoon PHP framework
Krishna Srikanth Manda
 
PDF
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Arun Gupta
 
PDF
19servlets
Adil Jafri
 
PDF
Linux, Apache, Mysql, PHP
webhostingguy
 
PDF
WordPress Café: Using WordPress as a Framework
Exove
 
PPTX
App auto crud
Laurent Dami
 
PPT
Sql abstract from_query
Laurent Dami
 
PDF
Vibe Custom Development
GWAVA
 
PDF
Introduction to Drupal (7) Theming
Robert Carr
 
PDF
Introduction to CouchDB
OpusVL
 
PPTX
SilverStripe From a Developer's Perspective
ajshort
 
KEY
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
Laura Scott
 
PPT
Introduction_Web_Technologies
Deepak Raj
 
PHP language presentation
Annujj Agrawaal
 
Top ten-list
Brian DeShong
 
Website designing company_in_delhi_phpwebdevelopment
Css Founder
 
Synapse india reviews on php website development
saritasingh19866
 
Hbase Introduction
Kim Yong-Duk
 
11 page-directive
snopteck
 
Software Development with Open Source
OpusVL
 
Introduction to Monsoon PHP framework
Krishna Srikanth Manda
 
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Arun Gupta
 
19servlets
Adil Jafri
 
Linux, Apache, Mysql, PHP
webhostingguy
 
WordPress Café: Using WordPress as a Framework
Exove
 
App auto crud
Laurent Dami
 
Sql abstract from_query
Laurent Dami
 
Vibe Custom Development
GWAVA
 
Introduction to Drupal (7) Theming
Robert Carr
 
Introduction to CouchDB
OpusVL
 
SilverStripe From a Developer's Perspective
ajshort
 
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
Laura Scott
 
Introduction_Web_Technologies
Deepak Raj
 

Similar to Amp and higher computing science (20)

PDF
Php summary
Michelle Darling
 
PPTX
introduction to backend with php 8.X - slide.pptx
geremilibrary
 
PPTX
Server – side Technologies PHP for web dev.pptx
MarioCaday2
 
PPTX
Quick beginner to Lower-Advanced guide/tutorial in PHP
Sanju Sony Kurian
 
PPT
PHP MySQL Workshop - facehook
Shashank Skills Academy
 
PPT
slidesharenew1
truptitasol
 
PPT
sdfsdfsdf
truptitasol
 
PPT
sdfsdfsdf
truptitasol
 
PPT
hgfgf
truptitasol
 
PPT
ssfsd fsdf ds f
truptitasol
 
PPT
ssfsd fsdf ds f
truptitasol
 
PPT
ssfsd fsdf ds f
truptitasol
 
PPT
345345
truptitasol
 
PPT
ssfsd fsdf ds f
truptitasol
 
PPT
test
truptitasol
 
PPT
IntroductiontoPHP.ppt
truptitasol
 
PPT
IntroductiontoPHP.ppt
truptitasol
 
PPT
test
truptitasol
 
PPT
sdfsdfsdf
truptitasol
 
PPT
IntroductiontoPHP.ppt
truptitasol
 
Php summary
Michelle Darling
 
introduction to backend with php 8.X - slide.pptx
geremilibrary
 
Server – side Technologies PHP for web dev.pptx
MarioCaday2
 
Quick beginner to Lower-Advanced guide/tutorial in PHP
Sanju Sony Kurian
 
PHP MySQL Workshop - facehook
Shashank Skills Academy
 
slidesharenew1
truptitasol
 
sdfsdfsdf
truptitasol
 
sdfsdfsdf
truptitasol
 
ssfsd fsdf ds f
truptitasol
 
ssfsd fsdf ds f
truptitasol
 
ssfsd fsdf ds f
truptitasol
 
345345
truptitasol
 
ssfsd fsdf ds f
truptitasol
 
IntroductiontoPHP.ppt
truptitasol
 
IntroductiontoPHP.ppt
truptitasol
 
sdfsdfsdf
truptitasol
 
IntroductiontoPHP.ppt
truptitasol
 
Ad

Recently uploaded (20)

PDF
Lesson 1 : Science and the Art of Geography Ecosystem
marvinnbustamante1
 
PDF
Lesson 1 - Nature of Inquiry and Research.pdf
marvinnbustamante1
 
PPTX
PLANNING A HOSPITAL AND NURSING UNIT.pptx
PRADEEP ABOTHU
 
PPTX
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
PDF
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
PDF
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
PDF
Wikinomics How Mass Collaboration Changes Everything Don Tapscott
wcsqyzf5909
 
PPTX
How to Configure Refusal of Applicants in Odoo 18 Recruitment
Celine George
 
PPTX
Aerobic and Anaerobic respiration and CPR.pptx
Olivier Rochester
 
PPTX
Matatag Curriculum English 8-Week 1 Day 1-5.pptx
KirbieJaneGasta1
 
PDF
The Power of Compound Interest (Stanford Initiative for Financial Decision-Ma...
Stanford IFDM
 
PPTX
How to Configure Taxes in Company Currency in Odoo 18 Accounting
Celine George
 
PDF
TLE 8 QUARTER 1 MODULE WEEK 1 MATATAG CURRICULUM
denniseraya1997
 
PDF
Public Health For The 21st Century 1st Edition Judy Orme Jane Powell
trjnesjnqg7801
 
PDF
Andreas Schleicher_Teaching Compass_Education 2040.pdf
EduSkills OECD
 
PPTX
How to Manage Wins & Losses in Odoo 18 CRM
Celine George
 
PDF
Nanotechnology and Functional Foods Effective Delivery of Bioactive Ingredien...
rmswlwcxai8321
 
PPTX
Lesson 1 Cell (Structures, Functions, and Theory).pptx
marvinnbustamante1
 
PPTX
Parsing HTML read and write operations and OS Module.pptx
Ramakrishna Reddy Bijjam
 
PPTX
Practice Gardens and Polytechnic Education: Utilizing Nature in 1950s’ Hu...
Lajos Somogyvári
 
Lesson 1 : Science and the Art of Geography Ecosystem
marvinnbustamante1
 
Lesson 1 - Nature of Inquiry and Research.pdf
marvinnbustamante1
 
PLANNING A HOSPITAL AND NURSING UNIT.pptx
PRADEEP ABOTHU
 
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
Wikinomics How Mass Collaboration Changes Everything Don Tapscott
wcsqyzf5909
 
How to Configure Refusal of Applicants in Odoo 18 Recruitment
Celine George
 
Aerobic and Anaerobic respiration and CPR.pptx
Olivier Rochester
 
Matatag Curriculum English 8-Week 1 Day 1-5.pptx
KirbieJaneGasta1
 
The Power of Compound Interest (Stanford Initiative for Financial Decision-Ma...
Stanford IFDM
 
How to Configure Taxes in Company Currency in Odoo 18 Accounting
Celine George
 
TLE 8 QUARTER 1 MODULE WEEK 1 MATATAG CURRICULUM
denniseraya1997
 
Public Health For The 21st Century 1st Edition Judy Orme Jane Powell
trjnesjnqg7801
 
Andreas Schleicher_Teaching Compass_Education 2040.pdf
EduSkills OECD
 
How to Manage Wins & Losses in Odoo 18 CRM
Celine George
 
Nanotechnology and Functional Foods Effective Delivery of Bioactive Ingredien...
rmswlwcxai8321
 
Lesson 1 Cell (Structures, Functions, and Theory).pptx
marvinnbustamante1
 
Parsing HTML read and write operations and OS Module.pptx
Ramakrishna Reddy Bijjam
 
Practice Gardens and Polytechnic Education: Utilizing Nature in 1950s’ Hu...
Lajos Somogyvári
 
Ad

Amp and higher computing science

  • 1. Charlie Love Education Support Officer Aberdeen City Council @charlie_love
  • 2. Software development using Server- side scripting • an integrated approach to Higher Computing Science. • approaches to increase teaching time • reduce the assessment • strategies for integrated delivery blending components of the SDD and ISDD units • use contemporary web technologies: Apache/Mysql/PHP/JavaScript
  • 3. Higher Computing Science Software Design and Development Information Systems Design and Development Assessment
  • 4. Assessment Information Systems Design and Development Software Design and Development Integrating the delivery of units using a server side scripting language will increase teaching time and decrease time take for assessment
  • 7. Get *AMP on your computers • Education Scotland Blog post with information • http://glo.li/edscot-amp • MAMP • EasyPHP • XAMMP • WAMP • etc.
  • 8. Building solutions • Agile methodologies • Interative prototyping • Design->Build->Test->Repeat • Working code • Limited Feature Set -> Expanded Feature Set
  • 9. sub-programs/routines defined by their name and arguments (inputs and outputs) • PHP uses functions which typically return a single value. • Use of &parameter passes values by reference to the PHP function (essentially creating a subprogram)
  • 10. including parameter passing (value and reference, formal and actual) function read_users( $file, &$user_id, &$user_name, &$user_image, &$password_string, $index ) { $textline = fgets($file); $textarray = explode(',',$textline); $user_id[$index] = trim($textarray[0]) $user_name[$index] = trim($textarray[1]); $user_image[$index] = trim($textarray[2]); $password_string[$index] = trim($textarray[3]); }
  • 11. methods • methods are subroutines associated with an object • they have access to the objects data. • PHP includes support for object oriented programming • Use the MySQL API to show methods on database objects
  • 12. If ($result = $mysqli->query ("SELECT * FROM user WHERE user_id = '" . $login_user_id . "'")) { $obj = $result->fetch_object(); $user_id = $obj->user_id; $user_name = $obj->user_name; $user_image = $obj->user_image; $result->close();}
  • 13. Data types and structures • string • numeric (integer and real) • Boolean $mysting=“Some text”; $integer = 12; $real =15.232; $is_set = true;
  • 14. • Records - Implement as an array of objects class Owner { public $year; public $measure; public $month; public $name; } $names = array('Lars', 'James', 'Kirk', 'Robert'); for ($i = 1 ; $i <= 3 ; $i++) { $owner = new Owner(); $owner->year = 2012; $owner->measure = $i; $owner->month = rand(1,12); $owner->name = array_rand($names); $owners[] = $owner; }
  • 15. • sequential files (open, create, read, write, close) • fopen(filename, mode) – Creates and/or opens file – Mode is read and/or write and moves file pointer to start or end of file. – http://www.php.net/manual/en/function.fopen.p hp • fwrite($file, $textline); – $file is the file handle from opening the file – $textline is the line of text to be written • fgets($file) – Reads line of text from the file • fclose($file) – close file
  • 16. Standard Algorithms • input validation (server side) / server-side validation of online form data – Set up form in html – Process and validate form on submission – Processing happens at server – User interaction is required to create validation loop
  • 17. <?php $username="”; if (isset($_GET[’username'])) { $error_found = false; $message = "username is accepted”; $username = $_GET[’username’]; if(strlen($username) < 8 ) { $error_found = true; $message = “Enter 8 or more characters”; } echo "<div>" . $message . "</div>"; } if (($error_found) || (!isset($error_found))) { //show form if err found or 1st visit ?> <form action="<?php echo $_SERVER[‘PHP_SELF’];?>" method="get"> <input type="text" name="username" value="<?php echo $username;?>"> <input type="submit" value="Submit" name="update"/> </form> <? php } ?>
  • 18. Linear search • linear search function linear_search($needle, $haystack) { for($i = 0; $i < count($haystack); $i++) { if ($needle == $i) return true; } return false; } $haystack = array(1,2,3,4); $needle = 3; $found = linear_search($needle, $haystack);
  • 19. Finding minimum and maximum Inbuilt max and min functions do it out of the box function findmax($array_of_values) { $current_max = $array_of_values[0]; for($i = 1; $i < count($array_of_values); $i++) { if ($array_of_values[$i] > $current_max) { $current_max = $array_of_values[$i]; } } return $current_max; } $my_array= array(12,25,23,14); $biggest_number = findmax($my_array);
  • 20. count occurrences function count_values($val_to_count, $array_of_values) { $counter = 0; for($i = 0; $i < count($array_of_values); $i++) { if ($array_of_values[$i] == $val_to_count) { $counter++; } } return $counter; } $my_array= array(12,25,23,14,72,83,12,12,63,25,14); $count_of_values = count_values(12, $my_array);
  • 21. Coding (ISDD) • scripting (database/web pages) • client-side scripting • server-side scripting • server-side validation of online form data
  • 22. Structures and Links (Database) • MySQL • phpMyAdmin - Database front end – Can be used to generate SQL for coding – Web based – simplifies database management
  • 24. Structures and Links (Web) • PHP, HTML, CSS, JavaScript all play well together <html> <head> <title><?php echo $title;></title> <style> hr {color:sienna;} p {margin-left:20px;} body {background-image:url(“bg.gif");} </style> <script> function show_message() { alert(“hello there”); } </script> <body onLoad=“show_message();”> ….
  • 25. PHP and MySQL //connect to the database using mysqli API $mysqli = new mysqli("localhost", "root", "root", ”mydatabase"); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; die; }
  • 26. Run a query and retrieve results if ($result = $mysqli->query("SELECT * FROM my_table WHERE field_id = '" . $field_id . "'")) { $obj = $result->fetch_object(); $my_field_id = $obj->field_id; $my_field1 = $obj->field1; $my_field2 = $obj->field2; /* free result set */ $result->close(); }
  • 27. Write to the database $sql = mysqli('localhost','user','password','database'); $name = $_POST['name']; $age = $_POST['age']; $email = $_POST['email']; $query = $sql->prepare("INSERT INTO `tablename` VALUES ('?','?','?');"); $query->bind_param("sis",$name,$age,$email); $query->execute();
  • 28. Relationships in MySQL Implemented using queries SELECT * FROM table1, table2 WHERE table2.id = table1.hid id field 12 Harry 13 Sally 14 Joe 15 Kirsty id field hid 3232 sweets 12 3233 candy 12 3234 chocolate 12 3235 popcorn 13 3236 soup 13 table1 table2
  • 29. Search in MySQL Implemented using queries SELECT * FROM table1, table2 WHERE table1.id = 12; SELECT * FROM table1, table2 WHERE table1.field LIKE “%Joe%” AND WHERE table2.id = table1.hid ;
  • 30. Assessment • You need to show that the candidate has achieve all the Assessment Standards • SDD Outcome 2 and ISDD Outcome 1 can be assessed in the same exercise • Alternative evidence can be gathered as part of learning and teaching • SDD Outcome 1 for part of this as well
  • 31. Higher Assignment • Assignment 1: Coding + Database (Diving Championship – available now) • Assignment 2: Server Side Scripting – File handling – Linear Search – Server side scripting – Online database integration • Assignment 3: Client Side Scripting – CSS – Browser based

Editor's Notes

  • #2: Go mobile with Glow What works well, what needs to get better Did you know Glow did this…?
  • #11:  functions  procedures
  • #14: Loosely types – have to accept in exam
  • #33: Follow me on Twitter. Thank you for your time today.