Select a random student: Difference between revisions
Mr. MacKenty (talk | contribs) (Created page with "right|frame|This a problem set for you to work through <ref>http://www.flaticon.com/</ref> This is a problem set. Some of these are easy, others are far m...") |
Mr. MacKenty (talk | contribs) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 23: | Line 23: | ||
== The input == | == The input == | ||
The input will be five different | The input will be five different lists which represent each of my five classes. For example: | ||
* Class 1 | * Class 1 | ||
** student 1, student 2, student 3... | |||
* Class 2 | * Class 2 | ||
** student 1, student 2, student 3... | |||
* Class 3 | * Class 3 | ||
** student 1, student 2, student 3... | |||
* Class 4 | * Class 4 | ||
** student 1, student 2, student 3... | |||
* Class 5 | * Class 5 | ||
** student 1, student 2, student 3... | |||
== The output == | == The output == | ||
Line 37: | Line 42: | ||
# the first name of a student from a class, randomly selected. I will provide you with a list of first names for my students. | # the first name of a student from a class, randomly selected. I will provide you with a list of first names for my students. | ||
# you should store the students you have called in a list (even though for now, you will only select only one). | # you should store the students you have called in a list (even though for now, you will only select only one). | ||
== A possible solution == | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
Click the expand link to see one possible solution, but NOT before you have tried and failed! | |||
<div class="mw-collapsible-content"> | |||
<syntaxhighlight lang="html"> | |||
<!-- the file below should be named random.html there is another file, below.--> | |||
<!DOCTYPE html> | |||
<html lang="en"> | |||
<head> | |||
<meta charset="UTF-8"> | |||
<title>Choose a random student</title> | |||
</head> | |||
<body> | |||
<form action="random.php" method="post"> | |||
<fieldset> | |||
<legend>Select a class</legend> | |||
<input type="radio" id="classes" name="block" value="1">Block 1<br> | |||
<input type="radio" id="classes" name="block" value="2">Block 2<br> | |||
<input type="radio" id="classes" name="block" value="4">Block 4<br> | |||
<input type="radio" id="classes" name="block" value="5">Block 5<br> | |||
<button type="submit">Click here to select a student</button> | |||
</fieldset> | |||
</form> | |||
</body> | |||
</html> | |||
<!-- and below is the random.php file --> | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="php"> | |||
<?php | |||
session_start(); | |||
$chosenClass = $_POST['block']; | |||
if($chosenClass==1){ | |||
if(ISSET($_SESSION['block1Students'])){ | |||
$block1Students = $_SESSION['block1Students']; | |||
$randomStudent = array_rand($block1Students); | |||
echo "We are choosing <strong>$block1Students[$randomStudent]</strong>"; | |||
unset($block1Students[$randomStudent]); | |||
$_SESSION['block1Students'] = $block1Students; | |||
$countOfStudents = count($block1Students); | |||
echo "<br><br>"; | |||
echo "There are $countOfStudents left to choose."; | |||
if ($countOfStudents == 0) { | |||
echo"<br>You have chosen all your students<br>"; | |||
$block1Students= ["Cesur","Maciej","Tarik","Emily","Cameron","Michael","Vera","Avi","Jaegeun","Lucia","Andrea","Aleksandra","John","Changseok","Alex","Sua","Harry"]; | |||
$_SESSION['block1Students'] = $block1Students; | |||
} | |||
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>"; | |||
} else { | |||
$block1Students= ["Cesur","Maciej","Tarik","Emily","Cameron","Michael","Vera","Avi","Jaegeun","Lucia","Andrea","Aleksandra","John","Changseok","Alex","Sua","Harry"]; | |||
echo "This is the first time, we are going to create the array<br>"; | |||
$_SESSION['block1Students'] = $block1Students; | |||
$block1Students = $_SESSION['block1Students']; | |||
$randomStudent = array_rand($block1Students); | |||
echo "We are choosing <strong>$block1Students[$randomStudent]</strong>"; | |||
unset($block1Students[$randomStudent]); | |||
$_SESSION['block1Students'] = $block1Students; | |||
$countOfStudents = count($block1Students); | |||
echo "<br><br>"; | |||
echo "There are $countOfStudents left to choose."; | |||
if ($countOfStudents == 0) { | |||
echo"<br>You have chosen all your students<br>"; | |||
$block1Students= ["Cesur","Maciej","Tarik","Emily","Cameron","Michael","Vera","Avi","Jaegeun","Lucia","Andrea","Aleksandra","John","Changseok","Alex","Sua","Harry"]; | |||
$_SESSION['block1Students'] = $block1Students; | |||
} | |||
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>"; | |||
} | |||
} elseif($chosenClass==2) { | |||
if(ISSET($_SESSION['block2Students'])){ | |||
$block2Students = $_SESSION['block2Students']; | |||
$randomStudent = array_rand($block2Students); | |||
echo "We are choosing <strong>$block2Students[$randomStudent]</strong>"; | |||
unset($block2Students[$randomStudent]); | |||
$_SESSION['block2Students'] = $block2Students; | |||
$countOfStudents = count($block2Students); | |||
echo "<br><br>"; | |||
echo "There are $countOfStudents left to choose."; | |||
if ($countOfStudents == 0) { | |||
echo "<br>You have chosen all your students<br>"; | |||
$block2Students = ["Dominik", "QingYu", "David", "Przemyslaw", "Stanislaw", "Sven", "Marcin", "Jan", "Siddharth", "Wojciech", "Mikolaj", "Yoon", "Chan Woo", "Maksymilian"]; | |||
$_SESSION['block2Students'] = $block2Students; | |||
} | |||
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>"; | |||
} else { | |||
$block2Students = ["Dominik","QingYu","David","Przemyslaw","Stanislaw","Sven","Marcin","Jan","Siddharth","Wojciech","Mikolaj","Yoon","Chan Woo","Maksymilian"]; | |||
echo "This is the first time, we are going to create the array<br>"; | |||
$_SESSION['block2Students'] = $block2Students; | |||
$block2Students = $_SESSION['block2Students']; | |||
$randomStudent = array_rand($block2Students); | |||
echo "We are choosing <strong>$block2Students[$randomStudent]</strong>"; | |||
unset($block2Students[$randomStudent]); | |||
$_SESSION['block2Students'] = $block2Students; | |||
$countOfStudents = count($block2Students); | |||
echo "<br><br>"; | |||
echo "There are $countOfStudents left to choose."; | |||
if ($countOfStudents == 0) { | |||
echo "<br>You have chosen all your students<br>"; | |||
$block2Students = ["Dominik", "QingYu", "David", "Przemyslaw", "Stanislaw", "Sven", "Marcin", "Jan", "Siddharth", "Wojciech", "Mikolaj", "Yoon", "Chan Woo", "Maksymilian"]; | |||
$_SESSION['block2Students'] = $block2Students; | |||
} | |||
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>"; | |||
} | |||
} elseif($chosenClass==4) { | |||
if(ISSET($_SESSION['block4Students'])){ | |||
$block4Students = $_SESSION['block4Students']; | |||
$randomStudent = array_rand($block4Students); | |||
echo "We are choosing <strong>$block4Students[$randomStudent]</strong>"; | |||
unset($block4Students[$randomStudent]); | |||
$_SESSION['block4Students'] = $block4Students; | |||
$countOfStudents = count($block4Students); | |||
echo "<br><br>"; | |||
echo "There are $countOfStudents left to choose."; | |||
if ($countOfStudents == 0) { | |||
echo "<br>You have chosen all your students<br>"; | |||
$block4Students = ["Emre", "Zofia", "Sheevankit", "Zofia", "Nguyen", "Mahmood", "Felix", "Siddharth", "Maximo", "Jasper", "Alexander", "Franciszek", "Seung Won", "Gabriele", "Annie"]; | |||
$_SESSION['block4Students'] = $block4Students; | |||
} | |||
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>"; | |||
} else { | |||
$block4Students = ["Emre", "Zofia", "Sheevankit", "Zofia", "Nguyen", "Mahmood", "Felix", "Siddharth", "Maximo", "Jasper", "Alexander", "Franciszek", "Seung Won", "Gabriele", "Annie"]; | |||
echo "This is the first time, we are going to create the array<br>"; | |||
$_SESSION['block4Students'] = $block4Students; | |||
$block4Students = $_SESSION['block4Students']; | |||
$randomStudent = array_rand($block4Students); | |||
echo "We are choosing <strong>$block4Students[$randomStudent]</strong>"; | |||
unset($block4Students[$randomStudent]); | |||
$_SESSION['block4Students'] = $block4Students; | |||
$countOfStudents = count($block4Students); | |||
echo "<br><br>"; | |||
echo "There are $countOfStudents left to choose."; | |||
if ($countOfStudents == 0) { | |||
echo "<br>You have chosen all your students<br>"; | |||
$block4Students = ["Emre", "Zofia", "Sheevankit", "Zofia", "Nguyen", "Mahmood", "Felix", "Siddharth", "Maximo", "Jasper", "Alexander", "Franciszek", "Seung Won", "Gabriele", "Annie"]; | |||
$_SESSION['block4Students'] = $block4Students; | |||
} | |||
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>"; | |||
} | |||
} elseif($chosenClass==5) { | |||
if(ISSET($_SESSION['block5Students'])){ | |||
$block5Students = $_SESSION['block5Students']; | |||
$randomStudent = array_rand($block5Students); | |||
echo "We are choosing <strong>$block5Students[$randomStudent]</strong>"; | |||
unset($block5Students[$randomStudent]); | |||
$_SESSION['block5Students'] = $block5Students; | |||
$countOfStudents = count($block5Students); | |||
echo "<br><br>"; | |||
echo "There are $countOfStudents left to choose."; | |||
if ($countOfStudents == 0) { | |||
echo "<br>You have chosen all your students<br>"; | |||
$block5Students = ["Taylor", "Andrew", "Marta", "Aron", "Tomasz", "Cameron", "Tomasz", "Taekyung", "David", "Filip", "Juwon", "Maximilian", "Haruka", "Norval", "Aleksander", "Maxwell", "Ian", "Yilin"]; | |||
$_SESSION['block5Students'] = $block5Students; | |||
} | |||
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>"; | |||
} else { | |||
$block5Students = ["Taylor", "Andrew", "Marta", "Aron", "Tomasz", "Cameron", "Tomasz", "Taekyung", "David", "Filip", "Juwon", "Maximilian", "Haruka", "Norval", "Aleksander", "Maxwell", "Ian", "Yilin"]; | |||
echo "This is the first time, we are going to create the array<br>"; | |||
$_SESSION['block5Students'] = $block5Students; | |||
$block5Students = $_SESSION['block5Students']; | |||
$randomStudent = array_rand($block5Students); | |||
echo "We are choosing <strong>$block5Students[$randomStudent]</strong>"; | |||
unset($block5Students[$randomStudent]); | |||
$_SESSION['block5Students'] = $block5Students; | |||
$countOfStudents = count($block5Students); | |||
echo "<br><br>"; | |||
echo "There are $countOfStudents left to choose."; | |||
if ($countOfStudents == 0) { | |||
echo "<br>You have chosen all your students<br>"; | |||
$block5Students = ["Taylor", "Andrew", "Marta", "Aron", "Tomasz", "Cameron", "Tomasz", "Taekyung", "David", "Filip", "Juwon", "Maximilian", "Haruka", "Norval", "Aleksander", "Maxwell", "Ian", "Yilin"]; | |||
$_SESSION['block5Students'] = $block5Students; | |||
} | |||
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>"; | |||
} | |||
} else { | |||
echo "ERROR: invalid class!!!!! How are you here?!?! "; | |||
} | |||
</syntaxhighlight> | |||
== How you will be assessed == | == How you will be assessed == |
Latest revision as of 09:43, 24 August 2020
This is a problem set. Some of these are easy, others are far more difficult. The purpose of these problems sets are:
- to build your skill applying computational thinking to a problem
- to assess your knowledge and skills of different programming practices
What is this problem set trying to do[edit]
I am testing your current ability to think about a problem and solve it. There isn't a right or wrong here, just demonstrating what you know. In broad strokes, this problem set requires you to:
- REALLY understand the problem
- Think about how you might solve the problem
- Create a solution to the problem
- Test if your solution works (solves the problem)
The Problem[edit]
I teach 5 classes. I am interested in creating a system to randomly call on students in my classes. I would prefer not to call on the same student twice during one class. At the end of a class, I would like to know who I called and who I did not call on. Please reflect on your computational thinking skills & ask me questions which will help you design this system.
The input[edit]
The input will be five different lists which represent each of my five classes. For example:
- Class 1
- student 1, student 2, student 3...
- Class 2
- student 1, student 2, student 3...
- Class 3
- student 1, student 2, student 3...
- Class 4
- student 1, student 2, student 3...
- Class 5
- student 1, student 2, student 3...
The output[edit]
The output of this program will be:
- the first name of a student from a class, randomly selected. I will provide you with a list of first names for my students.
- you should store the students you have called in a list (even though for now, you will only select only one).
A possible solution[edit]
Click the expand link to see one possible solution, but NOT before you have tried and failed!
<!-- the file below should be named random.html there is another file, below.-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Choose a random student</title>
</head>
<body>
<form action="random.php" method="post">
<fieldset>
<legend>Select a class</legend>
<input type="radio" id="classes" name="block" value="1">Block 1<br>
<input type="radio" id="classes" name="block" value="2">Block 2<br>
<input type="radio" id="classes" name="block" value="4">Block 4<br>
<input type="radio" id="classes" name="block" value="5">Block 5<br>
<button type="submit">Click here to select a student</button>
</fieldset>
</form>
</body>
</html>
<!-- and below is the random.php file -->
<?php
session_start();
$chosenClass = $_POST['block'];
if($chosenClass==1){
if(ISSET($_SESSION['block1Students'])){
$block1Students = $_SESSION['block1Students'];
$randomStudent = array_rand($block1Students);
echo "We are choosing <strong>$block1Students[$randomStudent]</strong>";
unset($block1Students[$randomStudent]);
$_SESSION['block1Students'] = $block1Students;
$countOfStudents = count($block1Students);
echo "<br><br>";
echo "There are $countOfStudents left to choose.";
if ($countOfStudents == 0) {
echo"<br>You have chosen all your students<br>";
$block1Students= ["Cesur","Maciej","Tarik","Emily","Cameron","Michael","Vera","Avi","Jaegeun","Lucia","Andrea","Aleksandra","John","Changseok","Alex","Sua","Harry"];
$_SESSION['block1Students'] = $block1Students;
}
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>";
} else {
$block1Students= ["Cesur","Maciej","Tarik","Emily","Cameron","Michael","Vera","Avi","Jaegeun","Lucia","Andrea","Aleksandra","John","Changseok","Alex","Sua","Harry"];
echo "This is the first time, we are going to create the array<br>";
$_SESSION['block1Students'] = $block1Students;
$block1Students = $_SESSION['block1Students'];
$randomStudent = array_rand($block1Students);
echo "We are choosing <strong>$block1Students[$randomStudent]</strong>";
unset($block1Students[$randomStudent]);
$_SESSION['block1Students'] = $block1Students;
$countOfStudents = count($block1Students);
echo "<br><br>";
echo "There are $countOfStudents left to choose.";
if ($countOfStudents == 0) {
echo"<br>You have chosen all your students<br>";
$block1Students= ["Cesur","Maciej","Tarik","Emily","Cameron","Michael","Vera","Avi","Jaegeun","Lucia","Andrea","Aleksandra","John","Changseok","Alex","Sua","Harry"];
$_SESSION['block1Students'] = $block1Students;
}
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>";
}
} elseif($chosenClass==2) {
if(ISSET($_SESSION['block2Students'])){
$block2Students = $_SESSION['block2Students'];
$randomStudent = array_rand($block2Students);
echo "We are choosing <strong>$block2Students[$randomStudent]</strong>";
unset($block2Students[$randomStudent]);
$_SESSION['block2Students'] = $block2Students;
$countOfStudents = count($block2Students);
echo "<br><br>";
echo "There are $countOfStudents left to choose.";
if ($countOfStudents == 0) {
echo "<br>You have chosen all your students<br>";
$block2Students = ["Dominik", "QingYu", "David", "Przemyslaw", "Stanislaw", "Sven", "Marcin", "Jan", "Siddharth", "Wojciech", "Mikolaj", "Yoon", "Chan Woo", "Maksymilian"];
$_SESSION['block2Students'] = $block2Students;
}
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>";
} else {
$block2Students = ["Dominik","QingYu","David","Przemyslaw","Stanislaw","Sven","Marcin","Jan","Siddharth","Wojciech","Mikolaj","Yoon","Chan Woo","Maksymilian"];
echo "This is the first time, we are going to create the array<br>";
$_SESSION['block2Students'] = $block2Students;
$block2Students = $_SESSION['block2Students'];
$randomStudent = array_rand($block2Students);
echo "We are choosing <strong>$block2Students[$randomStudent]</strong>";
unset($block2Students[$randomStudent]);
$_SESSION['block2Students'] = $block2Students;
$countOfStudents = count($block2Students);
echo "<br><br>";
echo "There are $countOfStudents left to choose.";
if ($countOfStudents == 0) {
echo "<br>You have chosen all your students<br>";
$block2Students = ["Dominik", "QingYu", "David", "Przemyslaw", "Stanislaw", "Sven", "Marcin", "Jan", "Siddharth", "Wojciech", "Mikolaj", "Yoon", "Chan Woo", "Maksymilian"];
$_SESSION['block2Students'] = $block2Students;
}
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>";
}
} elseif($chosenClass==4) {
if(ISSET($_SESSION['block4Students'])){
$block4Students = $_SESSION['block4Students'];
$randomStudent = array_rand($block4Students);
echo "We are choosing <strong>$block4Students[$randomStudent]</strong>";
unset($block4Students[$randomStudent]);
$_SESSION['block4Students'] = $block4Students;
$countOfStudents = count($block4Students);
echo "<br><br>";
echo "There are $countOfStudents left to choose.";
if ($countOfStudents == 0) {
echo "<br>You have chosen all your students<br>";
$block4Students = ["Emre", "Zofia", "Sheevankit", "Zofia", "Nguyen", "Mahmood", "Felix", "Siddharth", "Maximo", "Jasper", "Alexander", "Franciszek", "Seung Won", "Gabriele", "Annie"];
$_SESSION['block4Students'] = $block4Students;
}
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>";
} else {
$block4Students = ["Emre", "Zofia", "Sheevankit", "Zofia", "Nguyen", "Mahmood", "Felix", "Siddharth", "Maximo", "Jasper", "Alexander", "Franciszek", "Seung Won", "Gabriele", "Annie"];
echo "This is the first time, we are going to create the array<br>";
$_SESSION['block4Students'] = $block4Students;
$block4Students = $_SESSION['block4Students'];
$randomStudent = array_rand($block4Students);
echo "We are choosing <strong>$block4Students[$randomStudent]</strong>";
unset($block4Students[$randomStudent]);
$_SESSION['block4Students'] = $block4Students;
$countOfStudents = count($block4Students);
echo "<br><br>";
echo "There are $countOfStudents left to choose.";
if ($countOfStudents == 0) {
echo "<br>You have chosen all your students<br>";
$block4Students = ["Emre", "Zofia", "Sheevankit", "Zofia", "Nguyen", "Mahmood", "Felix", "Siddharth", "Maximo", "Jasper", "Alexander", "Franciszek", "Seung Won", "Gabriele", "Annie"];
$_SESSION['block4Students'] = $block4Students;
}
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>";
}
} elseif($chosenClass==5) {
if(ISSET($_SESSION['block5Students'])){
$block5Students = $_SESSION['block5Students'];
$randomStudent = array_rand($block5Students);
echo "We are choosing <strong>$block5Students[$randomStudent]</strong>";
unset($block5Students[$randomStudent]);
$_SESSION['block5Students'] = $block5Students;
$countOfStudents = count($block5Students);
echo "<br><br>";
echo "There are $countOfStudents left to choose.";
if ($countOfStudents == 0) {
echo "<br>You have chosen all your students<br>";
$block5Students = ["Taylor", "Andrew", "Marta", "Aron", "Tomasz", "Cameron", "Tomasz", "Taekyung", "David", "Filip", "Juwon", "Maximilian", "Haruka", "Norval", "Aleksander", "Maxwell", "Ian", "Yilin"];
$_SESSION['block5Students'] = $block5Students;
}
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>";
} else {
$block5Students = ["Taylor", "Andrew", "Marta", "Aron", "Tomasz", "Cameron", "Tomasz", "Taekyung", "David", "Filip", "Juwon", "Maximilian", "Haruka", "Norval", "Aleksander", "Maxwell", "Ian", "Yilin"];
echo "This is the first time, we are going to create the array<br>";
$_SESSION['block5Students'] = $block5Students;
$block5Students = $_SESSION['block5Students'];
$randomStudent = array_rand($block5Students);
echo "We are choosing <strong>$block5Students[$randomStudent]</strong>";
unset($block5Students[$randomStudent]);
$_SESSION['block5Students'] = $block5Students;
$countOfStudents = count($block5Students);
echo "<br><br>";
echo "There are $countOfStudents left to choose.";
if ($countOfStudents == 0) {
echo "<br>You have chosen all your students<br>";
$block5Students = ["Taylor", "Andrew", "Marta", "Aron", "Tomasz", "Cameron", "Tomasz", "Taekyung", "David", "Filip", "Juwon", "Maximilian", "Haruka", "Norval", "Aleksander", "Maxwell", "Ian", "Yilin"];
$_SESSION['block5Students'] = $block5Students;
}
echo "<br><br> <a href=\"random.html\">Click here to choose another student</a>";
}
} else {
echo "ERROR: invalid class!!!!! How are you here?!?! ";
}
How you will be assessed[edit]
Your solution will be graded using the following axis:
Scope
- To what extent does your code implement the features required by our specification?
- To what extent is there evidence of effort?
Correctness
- To what extent did your code meet specifications?
- To what extent did your code meet unit tests?
- To what extent is your code free of bugs?
Design
- To what extent is your code written well (i.e. clearly, efficiently, elegantly, and/or logically)?
- To what extent is your code eliminating repetition?
- To what extent is your code using functions appropriately?
Style
- To what extent is your code readable?
- To what extent is your code commented?
- To what extent are your variables well named?