From cb3a84a150f10922f07857dc54a504ef9e30b78f Mon Sep 17 00:00:00 2001
From: Anna Meyer <annapmeyer95@gmail.com>
Date: Tue, 18 Jul 2023 16:41:10 -0500
Subject: [PATCH] lec 14 materials

---
 .../14_Comprehensions/cs220_survey_data.csv   |  993 +++++++++++++++
 .../14_Comprehensions/lec-14-worksheet.pdf    |  Bin 0 -> 62839 bytes
 .../lec_14_comprehensions_template.ipynb      | 1127 +++++++++++++++++
 .../lec_14_function_references_template.ipynb |  967 ++++++++++++++
 4 files changed, 3087 insertions(+)
 create mode 100644 sum23/lecture_materials/14_Comprehensions/cs220_survey_data.csv
 create mode 100644 sum23/lecture_materials/14_Comprehensions/lec-14-worksheet.pdf
 create mode 100644 sum23/lecture_materials/14_Comprehensions/lec_14_comprehensions_template.ipynb
 create mode 100644 sum23/lecture_materials/14_Func_Refs/lec_14_function_references_template.ipynb

diff --git a/sum23/lecture_materials/14_Comprehensions/cs220_survey_data.csv b/sum23/lecture_materials/14_Comprehensions/cs220_survey_data.csv
new file mode 100644
index 0000000..35d8bfe
--- /dev/null
+++ b/sum23/lecture_materials/14_Comprehensions/cs220_survey_data.csv
@@ -0,0 +1,993 @@
+Lecture,Age,Major,Zip Code,Latitude,Longitude,Pizza topping,Pet preference,Runner,Sleep habit,Procrastinator
+LEC001,22,Engineering: Biomedical,53703,43.073051,-89.40123,none (just cheese),neither,No,no preference,Maybe
+LEC006,,Undecided,53706,43.073051,-89.40123,none (just cheese),neither,No,no preference,Maybe
+LEC004,18,Engineering: Industrial,53715,43.073051,-89.40123,none (just cheese),neither,No,no preference,Maybe
+LEC005,,Undecided,53706,43.073051,-89.40123,none (just cheese),neither,No,no preference,Maybe
+LEC002,,Undecided,53706,43.073051,-89.40123,none (just cheese),neither,No,no preference,Maybe
+LEC004,18,Engineering: Other|Engineering: Computer,53706,43.073051,-89.40123,none (just cheese),neither,No,no preference,Maybe
+LEC003,,Undecided,53706,43.073051,-89.40123,none (just cheese),neither,No,no preference,Maybe
+LEC003,18,Data Science,53715,43.073051,-89.40123,pineapple,cat,Yes,no preference,Maybe
+LEC006,18,Data Science,53706,35.4,119.11,none (just cheese),dog,No,night owl,Yes
+LEC006,18,Mathematics/AMEP,53706,44,-93,pepperoni,dog,No,night owl,Yes
+LEC002,21,Engineering: Other,53703,24.713552,46.675297,none (just cheese),cat,Yes,night owl,Maybe
+LEC003,19,Data Science,53705,24.6806,46.57936,pineapple,cat,No,early bird,No
+LEC004,24,Economics,53703,43,-89,pineapple,cat,Yes,early bird,Yes
+LEC003,18,Data Science,53706,36.102371,-115.174553,none (just cheese),dog,No,night owl,Yes
+LEC006,22,Psychology,53703,31.78,119.95,mushroom,cat,No,night owl,Yes
+LEC005,20,Data Science,53705,37.8,112.5,pepperoni,cat,Yes,night owl,Yes
+LEC004,24,Science: Biology/Life,53703,46.872131,-113.994019,pepperoni,dog,Yes,early bird,Yes
+LEC004,17,Engineering: Mechanical,53706,46.6242,8.0414,pineapple,dog,No,night owl,Yes
+LEC004,19,Engineering: Mechanical,53726,43.073051,-89.40123,none (just cheese),dog,Yes,early bird,No
+LEC002,19,Engineering: Mechanical,57303,41.878113,-87.629799,pineapple,dog,No,night owl,Yes
+LEC001,,Mathematics/AMEP,53706,31.230391,121.473701,basil/spinach,dog,No,no preference,Maybe
+LEC002,19,Mathematics/AMEP,53558,40.712776,-74.005974,sausage,dog,Yes,night owl,Yes
+LEC001,20,Economics (Mathematical Emphasis),53703,48.86,2.3522,pepperoni,dog,No,early bird,Yes
+LEC001,19,Engineering: Mechanical,53703,24.7,46.7,mushroom,dog,Yes,early bird,Maybe
+LEC005,18,Computer Science,53703,37.338207,-121.88633,green pepper,dog,Yes,night owl,Yes
+LEC003,19,Engineering: Mechanical,53558,43.073051,-89.40123,pepperoni,dog,No,night owl,Yes
+LEC005,20,Engineering: Mechanical,53715,38.9072,-77.0369,Other,cat,No,night owl,Yes
+LEC003,20,Data Science,53703,43.073051,-89.40123,pepperoni,dog,No,night owl,Yes
+LEC002,21,Science: Other|Political Science,53703,31.768318,35.213711,pepperoni,dog,No,no preference,Maybe
+LEC003,19,Mathematics/AMEP,53715,19.075983,72.877655,basil/spinach,cat,No,night owl,Maybe
+LEC001,23,Computer Science,53711,43.073929,-89.385239,sausage,dog,No,night owl,Yes
+LEC006,21,Business: Other,53715,25.761681,-80.191788,pepperoni,dog,No,night owl,Yes
+LEC003,19,Business: Other|Real Estate,53715,117,33,pepperoni,dog,Yes,night owl,No
+LEC004,19,Computer Science,53726,47.037872,-122.900696,tater tots,dog,No,night owl,Yes
+LEC004,24,Economics,53703,23.12911,113.264381,pepperoni,cat,Yes,early bird,Maybe
+LEC005,19,Data Science,53703,64.49796,165.40998,sausage,dog,No,night owl,Yes
+LEC003,19,Data Science,53705,25,47,mushroom,cat,No,early bird,Maybe
+LEC005,20,Engineering: Other|Engineering Physics: Scientific Computing,53715,43.073051,-89.4,none (just cheese),dog,No,night owl,Yes
+LEC005,20,Computer Science,53703,48.856613,2.352222,pepperoni,dog,No,night owl,Yes
+LEC002,19,Business: Finance,53726,43.04156,87.91006,pepperoni,dog,No,night owl,Yes
+LEC002,21,Data Science,53713,29.868336,121.543991,mushroom,dog,No,night owl,No
+LEC004,19,Computer Science,53715,40.712776,-74.005974,pepperoni,dog,No,night owl,Maybe
+LEC003,18,Computer Science,53706,5.93876,80.48433,Other,dog,No,night owl,Maybe
+LEC005,19,Engineering: Mechanical,53704,38.7,-77,pepperoni,cat,Yes,no preference,No
+LEC004,18,Engineering: Mechanical,53726,41.878113,-87.629799,pepperoni,dog,No,night owl,Maybe
+LEC005,19,Engineering: Other,53703,36.169941,-115.139832,pepperoni,dog,No,night owl,Maybe
+LEC005,19,Engineering: Mechanical,53703,43.078104,-89.431698,pepperoni,dog,Yes,night owl,Yes
+LEC006,18,Engineering: Biomedical,53051,33.6846,117.8265,pepperoni,dog,Yes,night owl,Yes
+LEC001,22,Engineering: Mechanical,53719,43.073051,-89.40123,none (just cheese),cat,Yes,night owl,Yes
+LEC001,18,Computer Science,53706,26.2992,87.2625,mushroom,dog,Yes,night owl,No
+LEC001,24,Business: Information Systems,53703,43.073051,-89.40123,macaroni/pasta,cat,No,night owl,No
+LEC006,19,Engineering: Mechanical,53703,43.04049,-87.91732,Other,dog,No,night owl,Yes
+LEC001,,Computer Science,53715,34.052235,-118.243683,green pepper,dog,No,night owl,Yes
+LEC002,20,Statistics,53703,40.7128,74.006,Other,dog,No,night owl,Maybe
+LEC005,23,Computer Science,53703,37.5,126.97,pepperoni,dog,No,night owl,No
+LEC002,21,Statistics,53703,52.370216,4.895168,pepperoni,dog,Yes,early bird,Maybe
+LEC002,18,Undecided,53706,38.56247,-121.70411,pepperoni,dog,Yes,night owl,Yes
+LEC006,18,Statistics,53706,40.712776,40.712776,pepperoni,dog,No,night owl,Yes
+LEC003,21,Economics,53715,43.073051,-89.40123,none (just cheese),dog,No,night owl,Yes
+LEC003,19,Engineering: Mechanical,53715,45,-93,sausage,dog,No,night owl,No
+LEC005,21,Business: Finance,53717,40.6461,-111.498,sausage,dog,No,night owl,Yes
+LEC001,26,Engineering: Mechanical,53703,41.902782,12.496365,pepperoni,dog,No,night owl,Yes
+LEC001,25,Economics,53703,40.712776,-74.005974,pepperoni,dog,No,night owl,Yes
+LEC003,18,Mathematics/AMEP,53706,31.230391,121.473701,mushroom,dog,Yes,early bird,No
+LEC001,19,Computer Science,53706,48.855709,2.29889,pepperoni,cat,Yes,night owl,Yes
+LEC005,17,Science: Biology/Life,53706,-18.766947,46.869106,basil/spinach,dog,Yes,early bird,Maybe
+LEC003,19,Business: Information Systems,53711,38.893452,-77.014709,pepperoni,dog,No,early bird,Yes
+LEC001,21,Computer Science,53715,16.306652,80.436539,Other,dog,No,night owl,Yes
+LEC006,19,Data Science,53703,35.689487,139.691711,sausage,neither,Yes,no preference,Maybe
+LEC004,18,Engineering: Industrial,53706,17.385044,78.486671,mushroom,dog,No,early bird,Yes
+LEC004,19,Computer Science,53715,37.774929,-122.419418,pepperoni,dog,No,night owl,Maybe
+LEC004,19,Data Science,53703,26.2644,20.3052,pepperoni,dog,No,night owl,Yes
+LEC005,18,Data Science,53706,40.712776,-74.005974,pepperoni,dog,Yes,no preference,Yes
+LEC002,18,Data Science,53706,36,117,Other,dog,No,early bird,Maybe
+LEC005,19,Data Science,50703,42.360081,-71.058884,sausage,cat,No,night owl,No
+LEC006,19,Computer Science,53711,36.569666,112.218744,pineapple,neither,Yes,early bird,Maybe
+LEC005,18,Computer Science,53706,37.54443,-121.95269,pepperoni,dog,No,night owl,Maybe
+LEC003,20,Mathematics/AMEP,53715,32.0853,34.781769,mushroom,dog,No,no preference,Yes
+LEC003,19,Data Science,53715,42.701847,-84.48217,tater tots,dog,No,night owl,Yes
+LEC003,18,Mathematics/AMEP,53706,40.179188,44.499104,Other,dog,Yes,no preference,Yes
+LEC002,,Computer Science,53711,2.81375,101.504272,sausage,dog,Yes,no preference,Maybe
+LEC001,18,Engineering: Industrial,53715,30.733315,76.779419,green pepper,cat,No,no preference,Yes
+LEC003,21,Data Science,53590,7.9519,98.3381,Other,dog,Yes,early bird,Yes
+LEC004,19,Data Science,53715,35.69,139.69,mushroom,dog,No,no preference,Maybe
+LEC002,19,Data Science,53704,26.473308,50.048218,Other,cat,Yes,night owl,Yes
+LEC002,22,Economics,53703,34.052235,-118.243683,pineapple,dog,No,night owl,Yes
+LEC006,18,Data Science,53706,19.075983,72.877655,mushroom,dog,Yes,night owl,Yes
+LEC003,,Business: Actuarial,53705,39.6336,118.16,basil/spinach,dog,Yes,early bird,Yes
+LEC003,18,Data Science,53706,52.370216,4.895168,mushroom,cat,Yes,no preference,No
+LEC003,18,Engineering: Mechanical,53706,52.368944,4.891663,pepperoni,cat,No,night owl,No
+LEC002,18,Science: Physics,53703,32,118,sausage,neither,No,night owl,No
+LEC005,18,Data Science,53706,17.384716,78.409424,mushroom,dog,Yes,night owl,Maybe
+LEC003,19,Data Science,53715,3.1569,101.7123,mushroom,cat,No,early bird,No
+LEC005,18,Computer Science,53706,43.769562,11.255814,Other,neither,No,night owl,Yes
+LEC006,18,Business: Actuarial,53706,48.856613,2.352222,mushroom,cat,No,no preference,Yes
+LEC004,20,Business: Actuarial,53711,40.7128,74.006,pepperoni,dog,Yes,early bird,No
+LEC005,20,Science: Biology/Life,53703,44.67082,-93.24432,mushroom,dog,No,no preference,Maybe
+LEC004,18,Mathematics/AMEP,53706,46.786671,-92.100487,pepperoni,cat,No,early bird,Yes
+LEC005,20,Economics,53703,48.856613,2.352222,pepperoni,neither,No,night owl,Maybe
+LEC006,18,Business: Finance,53706,40.409264,49.867092,Other,neither,No,early bird,No
+LEC004,21,Computer Science,53715,27.993828,120.699364,green pepper,dog,Yes,no preference,No
+LEC002,,Computer Science,53706,43.073051,-89.40123,Other,neither,Yes,no preference,Maybe
+LEC002,20,Engineering: Mechanical,53706,35.6762,139.6503,sausage,cat,Yes,night owl,Yes
+LEC001,20,Economics (Mathematical Emphasis),53703,43.073929,-89.385239,macaroni/pasta,cat,No,night owl,No
+LEC002,21,Business: Information Systems,53713,43.03638,-89.40292,pineapple,neither,Yes,night owl,Yes
+LEC004,18,Data Science,53706,45.31625,-92.59181,pepperoni,dog,No,night owl,Yes
+LEC001,21,Business: Finance,53711,43.073929,-89.385239,pepperoni,dog,No,no preference,Maybe
+LEC005,19,Engineering: Mechanical,53715,35.689487,139.691711,pepperoni,dog,No,night owl,Yes
+LEC003,18,Computer Science,53706,51.500153,-0.1262362,pepperoni,dog,No,night owl,Yes
+LEC002,22,Science: Biology/Life,53711,43.073051,-89.40123,mushroom,cat,No,no preference,No
+LEC004,18,Data Science,53706,42.360081,-71.058884,green pepper,dog,No,night owl,Yes
+LEC005,19,Engineering: Mechanical,53703,32.8328,117.2713,sausage,neither,Yes,night owl,Yes
+LEC003,20,Engineering: Mechanical,53715,44.834,-87.376,none (just cheese),dog,Yes,night owl,No
+LEC006,21,Economics,53703,41.902782,12.496365,none (just cheese),dog,No,no preference,Yes
+LEC003,25,Data Science,53703,34.693737,135.502167,pineapple,dog,No,early bird,Maybe
+LEC003,17,Computer Science,53703,19.075983,72.877655,Other,neither,Yes,no preference,No
+LEC002,19,Psychology,53715,30.5928,114.3052,sausage,cat,No,night owl,Yes
+LEC001,19,Computer Science,53703,51.507351,-0.127758,sausage,cat,Yes,no preference,Yes
+LEC006,17,Engineering: Industrial,53706,55.953251,-3.188267,Other,dog,No,night owl,Yes
+LEC005,,Computer Science,53703,43.073051,-89.40123,pineapple,dog,Yes,night owl,No
+LEC002,21,Engineering: Mechanical,53705,37.566536,126.977966,mushroom,cat,Yes,no preference,Maybe
+LEC002,18,Undecided,53715,48.775845,9.182932,Other,dog,No,night owl,Yes
+LEC004,19,Data Science,53703,43,-89,sausage,cat,No,early bird,Maybe
+LEC001,21,Science: Biology/Life,53703,36,117,macaroni/pasta,dog,No,night owl,Maybe
+LEC002,19,Business: Information Systems,53703,42.360081,-71.058884,pepperoni,dog,No,no preference,Yes
+LEC005,19,Computer Science,53706,-8.340539,115.091949,pineapple,dog,Yes,night owl,Maybe
+LEC003,20,Business: Information Systems,53726,43.073051,-89.40123,sausage,dog,Yes,night owl,No
+LEC003,,Science: Other,53715,39.904202,116.407394,mushroom,cat,No,night owl,Maybe
+LEC004,20,Engineering: Biomedical,53715,43.0707,12.6196,tater tots,dog,No,night owl,Maybe
+LEC004,19,Engineering: Biomedical,53715,41.878113,-87.629799,mushroom,dog,Yes,night owl,Yes
+LEC002,21,Business: Other|Accounting,53703,41.8781,87.6298,pepperoni,cat,No,night owl,No
+LEC002,17,Undecided,53706,33.742185,-84.386124,Other,dog,No,no preference,Yes
+LEC006,18,Data Science,53558,40.73061,-73.935242,pepperoni,dog,Yes,night owl,No
+LEC003,25,Data Science,53705,43.073051,-89.385239,sausage,cat,No,night owl,Maybe
+LEC002,18,Data Science,53706,37.34163,-122.05411,sausage,dog,No,night owl,Yes
+LEC006,18,Science: Biology/Life,53706,19.21833,72.978088,green pepper,neither,No,no preference,Maybe
+LEC002,,Business: Other|business analytics,53703,31.230391,121.473701,none (just cheese),cat,Yes,night owl,Maybe
+LEC003,,Data Science,53706,35.719312,139.784546,none (just cheese),neither,Yes,night owl,Yes
+LEC002,19,Engineering: Mechanical,53726,47.141041,9.52145,mushroom,dog,No,night owl,Yes
+LEC002,,Computer Science,53715,41.8781,87.6298,pepperoni,dog,No,no preference,Maybe
+LEC002,26,Science: Other|animal sciences,53705,25.204849,55.270782,pepperoni,dog,No,no preference,Maybe
+LEC003,21,Mathematics,53704,61.218056,-149.900284,green pepper,cat,Yes,early bird,Maybe
+LEC003,22,Engineering: Other,53703,49.28273,-123.120735,macaroni/pasta,cat,No,early bird,Maybe
+LEC001,18,Engineering: Other,53706,41.902782,12.496365,pepperoni,dog,No,night owl,Yes
+LEC003,20,Engineering: Mechanical,53726,39.81059,-74.71795,basil/spinach,dog,No,early bird,Yes
+LEC003,21,Health Promotion and Health Equity,53711,37.2982,113.0263,pepperoni,dog,No,early bird,No
+LEC003,20,Engineering: Mechanical,53703,38.722252,-9.139337,mushroom,dog,No,night owl,Yes
+LEC003,19,Engineering: Mechanical,53714,43,-89.4,none (just cheese),dog,No,night owl,Yes
+LEC002,19,Engineering: Industrial,53703,41.878,-87.63,pepperoni,dog,Yes,night owl,Yes
+LEC003,18,Computer Science,53706,43.073051,-89.40123,mushroom,neither,No,night owl,Yes
+LEC001,18,Engineering: Industrial,53706,19.655041,-101.169891,pepperoni,dog,Yes,no preference,Maybe
+LEC005,20,Engineering: Mechanical,53703,26.147,-81.795,pepperoni,dog,Yes,early bird,Yes
+LEC006,18,Business: Other,53706,51.507,-0.128,sausage,dog,No,no preference,No
+LEC005,19,Business: Other,53706,43,-89,pepperoni,dog,Yes,no preference,Yes
+LEC004,19,Engineering: Mechanical,53705,34.869709,-111.760902,pepperoni,cat,No,no preference,Maybe
+LEC005,21,Business: Finance,53703,3.15443,101.715103,pepperoni,cat,No,night owl,Yes
+LEC005,18,Engineering: Mechanical,53706,44.655991,-93.242752,none (just cheese),dog,Yes,night owl,Yes
+LEC003,18,Art,53706,36.25,138.25,macaroni/pasta,dog,No,night owl,Yes
+LEC005,19,Data Science,53715,41.94288,-87.68667,pepperoni,dog,Yes,night owl,Yes
+LEC005,18,Data Science,53703,44.2795,73.9799,pepperoni,dog,Yes,night owl,No
+LEC002,19,Mathematics/AMEP,53715,37.80718,23.734864,pineapple,cat,No,night owl,Yes
+LEC004,18,Computer Science,53706,35.689487,139.691711,pepperoni,cat,No,night owl,Yes
+LEC006,18,Engineering: Mechanical,53706,43.0826,-97.16051,pepperoni,dog,No,no preference,Yes
+LEC006,18,Engineering: Other,53715,37.441883,-122.143021,mushroom,dog,Yes,night owl,Maybe
+LEC006,18,Engineering: Mechanical,53706,44.883,-87.86291,pepperoni,dog,No,early bird,Yes
+LEC004,19,Engineering: Mechanical,53706,40.73598,-74.37531,none (just cheese),dog,Yes,early bird,No
+LEC001,20,Business: Actuarial,53703,42.28,-83.74,mushroom,dog,No,night owl,Yes
+LEC003,17,Engineering: Mechanical,53706,37.98381,23.727539,pineapple,dog,Yes,night owl,No
+LEC004,18,Computer Science,53706,40.27385,-74.75972,sausage,dog,Yes,night owl,Yes
+LEC002,19,Economics,53703,90.1994,38.627,none (just cheese),dog,No,early bird,Yes
+LEC002,21,"Mathematics, Data Science",53703,30.572815,104.066803,sausage,dog,No,night owl,Maybe
+LEC002,,Computer Science,53717,36,139,mushroom,dog,Yes,early bird,Yes
+LEC006,19,Science: Biology/Life,53715,45.289143,-87.021847,none (just cheese),cat,No,night owl,Maybe
+LEC002,21,Mathematics/AMEP,53703,20.878332,-156.682495,pepperoni,cat,No,night owl,Yes
+LEC003,22,Mathematics/AMEP,53715,44.481586,-88.005981,pepperoni,neither,No,night owl,Yes
+LEC006,18,Data Science,53706,43.073051,-89.40123,pepperoni,dog,No,night owl,Yes
+LEC005,18,Computer Science,53706,30.733315,76.779419,none (just cheese),dog,No,night owl,Yes
+LEC005,20,Mathematics/AMEP,53703,38.837702,-238.449497,pepperoni,dog,No,night owl,Yes
+LEC005,,Computer Science,53593,50.116322,-122.957359,sausage,dog,No,night owl,Yes
+LEC005,18,Computer Science,53715,43.059023,-89.296875,pepperoni,cat,No,night owl,Maybe
+LEC005,19,Engineering: Industrial,53703,22.2255,-159.4835,pepperoni,cat,Yes,night owl,Yes
+LEC005,18,Engineering: Biomedical,53593,43.073051,-89.40123,green pepper,cat,No,night owl,Maybe
+LEC005,20,Engineering: Mechanical,53715,41.283211,-70.099228,sausage,dog,No,no preference,Maybe
+LEC005,18,Data Science,53715,25.26741,55.292679,basil/spinach,cat,Yes,early bird,Yes
+LEC005,19,Business: Other,53726,43.038902,-87.906471,pepperoni,dog,No,night owl,Yes
+LEC002,,Undecided,53703,30.5723,104.0665,sausage,dog,No,night owl,Yes
+LEC006,18,Engineering: Mechanical,53706,30.2672,97.7431,pepperoni,dog,No,night owl,No
+LEC006,20,Data Science,53703,36.731651,-119.785858,Other,dog,Yes,night owl,Yes
+LEC005,18,Computer Science,53706,43.038902,-87.906471,pepperoni,dog,No,night owl,Yes
+LEC004,,Business: Finance,53703,33.8688,151.2093,green pepper,dog,Yes,night owl,Yes
+LEC005,18,Science: Other|Science: Genetics and Genomics,53715,43.073051,-89.40123,mushroom,dog,No,no preference,Yes
+LEC003,19,Engineering: Mechanical,53715,44.90767,-93.183594,basil/spinach,dog,No,night owl,Maybe
+LEC006,18,Business: Finance,53706,-33.448891,-70.669266,macaroni/pasta,dog,No,night owl,Yes
+LEC006,17,Business: Finance,53706,43.296482,5.36978,pineapple,dog,No,night owl,Yes
+LEC006,21,Mathematics/AMEP,53703,30.572815,104.066803,green pepper,dog,No,no preference,Maybe
+LEC005,20,Engineering: Mechanical,53703,41.99884,-87.68828,Other,dog,No,no preference,No
+LEC001,19,Business: Information Systems,53703,39.481655,-106.038353,macaroni/pasta,dog,Yes,night owl,Yes
+LEC004,19,Engineering: Mechanical,53703,41.883228,-87.632401,pepperoni,dog,No,no preference,Maybe
+LEC004,18,Engineering: Industrial,53706,41.878113,41.878113,pepperoni,dog,No,night owl,No
+LEC004,19,Engineering: Mechanical,53703,28.228209,112.938812,none (just cheese),neither,Yes,early bird,Yes
+LEC003,18,Data Science,89451,34.42083,-119.698189,green pepper,dog,No,early bird,No
+LEC003,19,Computer Science,53703,41.3874,2.1686,pepperoni,cat,No,early bird,No
+LEC005,20,Science: Biology/Life,53703,32.05196,118.77803,sausage,neither,No,night owl,Yes
+LEC004,19,Engineering: Mechanical,53706,50.075539,14.4378,none (just cheese),neither,No,night owl,Yes
+LEC003,20,Statistics (actuarial route),53715,43.134315,-88.220062,sausage,dog,No,early bird,No
+LEC004,19,Computer Science,53706,17.385044,78.486671,pepperoni,neither,Yes,night owl,Yes
+LEC002,18,Engineering: Mechanical,53706,53707,-88.415382,Other,dog,No,night owl,Yes
+LEC004,19,Computer Science,53706,45.440845,12.315515,sausage,dog,No,night owl,Yes
+LEC004,18,Computer Science,53706,55.953251,-3.188267,Other,dog,No,night owl,Maybe
+LEC004,18,Engineering: Mechanical,53706,33.8902,-118.39848,sausage,dog,Yes,night owl,Yes
+LEC001,20,Business: Other|Business: Accounting,53703,31.230391,121.473701,pepperoni,cat,Yes,no preference,No
+LEC004,18,Data Science,53706,39.512611,116.677063,pepperoni,dog,No,night owl,Maybe
+LEC003,18,Undecided,53706,41.256538,95.934502,Other,dog,No,no preference,Yes
+LEC003,18,Data Science,53706,19.075983,72.877655,pepperoni,dog,No,night owl,No
+LEC003,22,Economics,53703,40.753685,-73.999161,green pepper,dog,No,night owl,Maybe
+LEC003,18,Data Science,53706,51.507351,-0.127758,pepperoni,cat,No,night owl,Yes
+LEC003,,Engineering: Mechanical,53706,42.44817,-71.224716,pepperoni,cat,Yes,night owl,Maybe
+LEC003,17,Engineering: Other|Computer Engineering,53706,42.36,-71.059,basil/spinach,neither,No,early bird,Maybe
+LEC003,21,Business: Actuarial,53706,32.715736,-117.161087,green pepper,dog,Yes,night owl,No
+LEC003,,Engineering: Other|Computer engineering,53706,35.689487,139.691711,Other,cat,No,night owl,Yes
+LEC003,18,Mathematics/AMEP,53715,41.385063,2.173404,pepperoni,cat,Yes,no preference,Maybe
+LEC003,20,Computer Science,53705,30.274084,120.155067,mushroom,cat,No,night owl,Yes
+LEC005,,Computer Science,53705,51.507351,-0.127758,basil/spinach,dog,No,night owl,Yes
+LEC003,18,Computer Science,53706,45.45676,15.29662,sausage,dog,Yes,early bird,Yes
+LEC003,18,Engineering: Industrial,53706,18.92421,-99.221565,green pepper,dog,Yes,night owl,Yes
+LEC004,18,Engineering: Other|Material Science Engineering,53703,38.941631,-119.977219,pepperoni,dog,Yes,night owl,Yes
+LEC002,21,Economics,53705,25.03841,121.5637,pepperoni,cat,No,night owl,Maybe
+LEC005,,Civil engineering - hydropower engineering,53705,34,113,pineapple,neither,No,night owl,Maybe
+LEC005,18,Computer Science,53706,40.7,-74.005,pepperoni,cat,No,early bird,No
+LEC001,19,Engineering: Mechanical,53706,35.142441,-223.154297,green pepper,neither,Yes,night owl,Yes
+LEC006,18,Data Science,53706,43.05891,-88.007462,pepperoni,dog,Yes,night owl,Yes
+LEC006,,Engineering: Mechanical,53706,37.566536,126.977966,pepperoni,dog,Yes,night owl,No
+LEC005,18,Data Science,53706,36.393154,25.46151,none (just cheese),dog,No,night owl,No
+LEC001,,Engineering: Mechanical,53715,19.8968,155.5828,pepperoni,dog,No,night owl,No
+LEC002,19,Engineering: Biomedical,53706,48.494904,-113.979034,macaroni/pasta,cat,No,night owl,Yes
+LEC005,18,Engineering: Mechanical,53706,41.88998,12.49426,pineapple,dog,Yes,night owl,Yes
+LEC003,17,Data Science,53706,-7.257472,112.75209,pineapple,dog,Yes,early bird,Yes
+LEC005,19,Economics,53703,40.592331,-111.820152,none (just cheese),dog,Yes,night owl,Maybe
+LEC005,19,Data Science,53704,38.722252,-9.139337,pepperoni,dog,No,night owl,Yes
+LEC003,,Computer Science,53703,64.963051,-19.020836,pineapple,dog,No,no preference,Maybe
+LEC002,20,Economics,53703,43.769562,11.255814,mushroom,dog,No,night owl,Yes
+LEC004,20,Business: Actuarial,53715,44.834209,-87.376266,sausage,dog,No,no preference,Yes
+LEC005,21,Economics,53703,37.751824,-122.420105,green pepper,cat,No,night owl,Yes
+LEC004,22,Economics,53703,56.490669,4.202646,mushroom,dog,No,no preference,Yes
+LEC004,18,Engineering: Mechanical,53706,44.9058,-93.28535,pepperoni,cat,Yes,night owl,Maybe
+LEC004,19,Data Science,53703,41.878113,-87.629799,sausage,dog,No,night owl,Yes
+LEC001,21,Computer Science,53703,43.21518,-87.94241,pepperoni,dog,No,no preference,Maybe
+LEC004,24,Science: Chemistry,53703,32.715736,-117.161087,mushroom,dog,Yes,night owl,Maybe
+LEC005,19,Engineering: Mechanical,53715,39.412327,-77.425461,pepperoni,cat,Yes,early bird,Yes
+LEC004,20,Statistics,53703,43.07391,-89.39356,pepperoni,dog,No,early bird,Maybe
+LEC005,21,Business: Finance,53703,38.178127,-92.781052,mushroom,dog,No,night owl,Yes
+LEC004,18,Engineering: Mechanical,53706,35.689487,139.691711,pepperoni,dog,No,no preference,Yes
+LEC005,18,Data Science,60521,41.9,87.6,pepperoni,dog,Yes,night owl,Yes
+LEC005,23,Business: Information Systems,53558,43.073051,-89.40123,pepperoni,dog,Yes,early bird,No
+LEC004,18,Engineering: Mechanical,53706,43.739507,7.426706,pepperoni,dog,No,night owl,Yes
+LEC005,21,Data Science,53703,25,121,pepperoni,dog,No,night owl,Yes
+LEC005,20,Business: Information Systems,53703,43.073051,-89.40123,pepperoni,dog,Yes,night owl,Yes
+LEC004,,Engineering: Biomedical,53715,41.385063,2.173404,pepperoni,dog,Yes,no preference,No
+LEC004,18,Communication arts,53715,22.543097,114.057861,mushroom,cat,Yes,early bird,Yes
+LEC001,22,Engineering: Mechanical,53703,47.497913,19.040236,pepperoni,dog,No,no preference,No
+LEC005,19,Computer Science,54706,34.05,-118.24,sausage,cat,Yes,night owl,Yes
+LEC005,18,Engineering: Biomedical,53706,46.818188,8.227512,pineapple,dog,Yes,no preference,Yes
+LEC004,19,Engineering: Mechanical,53715,42.36,-71.058884,pepperoni,dog,Yes,no preference,Yes
+LEC005,21,Data Science,53703,36.4,117,pineapple,dog,Yes,night owl,Yes
+LEC005,19,Engineering: Mechanical,53704,35.6762,139.6503,sausage,dog,No,night owl,Maybe
+LEC004,20,Economics,53703,44.885,-93.147,pepperoni,dog,No,early bird,Yes
+LEC004,20,Health Promotion and Health Equity,53704,48.8566,2.349014,pepperoni,dog,No,night owl,Yes
+LEC004,19,Engineering: Mechanical,53715,43.073051,-89.40123,sausage,dog,Yes,no preference,Yes
+LEC001,20,Business andministration,53703,37.389091,-5.984459,pineapple,dog,Yes,night owl,Maybe
+LEC003,23,Mathematics/AMEP,53715,24.88,102.8,pineapple,dog,Yes,early bird,Yes
+LEC002,20,Engineering: Industrial,53703,44.389,12.9908,sausage,dog,No,early bird,Maybe
+LEC005,20,Education,53703,41.878113,-87.629799,basil/spinach,cat,Yes,early bird,No
+LEC003,19,Science: Biology/Life,53703,41.38,2.17,pepperoni,dog,Yes,no preference,Maybe
+LEC006,18,Pre-business,53706,41.8781,87.6298,pepperoni,dog,Yes,night owl,Yes
+LEC004,20,Business: Finance,53706,41.10475,-80.64916,basil/spinach,dog,Yes,night owl,Yes
+LEC004,20,Statistics,53703,42.360081,-71.058884,pepperoni,dog,No,night owl,Yes
+LEC003,18,Engineering: Mechanical,53706,24.5554,81.7842,pepperoni,dog,No,early bird,Maybe
+LEC004,19,Data Science,53703,38.72,75.07,none (just cheese),dog,Yes,early bird,Yes
+LEC006,20,Engineering: Mechanical,53705,30.572815,104.066803,mushroom,cat,Yes,no preference,Maybe
+LEC003,20,Mathematics/AMEP,53726,43.07199,-89.42629,mushroom,dog,No,night owl,Yes
+LEC004,20,Engineering: Mechanical,53705,48,7.85,pepperoni,dog,Yes,night owl,No
+LEC001,20,Computer Science,53703,40.7128,74.006,pepperoni,dog,Yes,night owl,Maybe
+LEC003,18,Business: Actuarial,53719,14.599512,120.984222,pineapple,cat,Yes,no preference,Maybe
+LEC003,17,Computer Science,53715,37.38522,-122.114128,Other,dog,No,night owl,No
+LEC003,18,Computer Science,53706,37.386051,-122.083855,sausage,dog,Yes,no preference,Maybe
+LEC004,23,Business: Finance,53703,31.230391,121.473701,mushroom,neither,No,night owl,No
+LEC004,21,Engineering: Industrial,53703,37.94048,-78.63664,Other,dog,Yes,night owl,Yes
+LEC002,21,Mathematics/AMEP,53715,42.360081,-71.058884,mushroom,neither,Yes,early bird,Yes
+LEC002,18,Engineering: Industrial,53715,40.712776,-74.005974,pineapple,dog,Yes,night owl,Yes
+LEC001,22,Engineering: Mechanical,53726,36.97447,122.02899,pepperoni,dog,No,no preference,Yes
+LEC005,,Mathematics/AMEP,53715,36.651199,117.120094,mushroom,neither,No,night owl,Yes
+LEC005,18,Mathematics/AMEP,53706,46.482525,30.723309,basil/spinach,dog,No,early bird,Yes
+LEC006,20,Engineering: Industrial,53703,42.102901,-88.368896,pepperoni,dog,No,night owl,Maybe
+LEC006,18,Computer Science,53706,-31.959153,-244.161255,green pepper,dog,No,night owl,Yes
+LEC002,24,Computer Science,53715,30.704852,104.003904,mushroom,neither,Yes,no preference,Maybe
+LEC005,19,Engineering: Mechanical,53705,40.712776,-74.005974,pepperoni,dog,No,early bird,No
+LEC004,22,Science: Biology/Life,53705,39.758161,39.758161,pepperoni,cat,No,early bird,Yes
+LEC005,20,Statistics,53703,43.073051,-89.40123,sausage,dog,Yes,night owl,Yes
+LEC001,19,Data Science,53703,41,87,sausage,dog,No,no preference,No
+LEC004,20,Engineering: Mechanical,53726,58.2996,14.4444,sausage,cat,No,night owl,Maybe
+LEC005,18,Engineering: Mechanical,53562,1.3521,103.8198,green pepper,cat,No,early bird,Maybe
+LEC002,19,Engineering: Mechanical,53703,44.46534,-72.684303,green pepper,cat,Yes,night owl,Yes
+LEC002,20,Engineering: Industrial,53726,43.038902,-87.906471,pepperoni,dog,No,night owl,Yes
+LEC006,18,Business: Actuarial,53706,45.464203,9.189982,pepperoni,cat,Yes,night owl,Yes
+LEC006,18,Computer Science,53715,30.58198,114.268066,sausage,cat,Yes,early bird,Maybe
+LEC004,19,Business: Finance,53706,41.878113,-87.629799,pepperoni,dog,No,early bird,No
+LEC005,18,Business: Finance,53706,40.416775,-3.70379,pepperoni,dog,Yes,early bird,No
+LEC001,20,Science: Other|Environmental Science,53715,41.878113,-87.629799,green pepper,cat,No,early bird,No
+LEC002,22,Computer Science,53715,42,-71,mushroom,cat,No,night owl,Maybe
+LEC001,24,Economics,53703,40,-90,pineapple,dog,No,night owl,Yes
+LEC006,19,Business: Information Systems,53715,40.712776,-74.005974,basil/spinach,dog,No,night owl,Yes
+LEC002,19,Data Science,53703,33.4942,89.4959,sausage,dog,No,night owl,Maybe
+LEC003,20,Engineering: Mechanical,53715,43.02833,-87.971467,pepperoni,neither,Yes,night owl,Maybe
+LEC001,,Data Science,53706,40.416775,-3.70379,none (just cheese),dog,Yes,no preference,Yes
+LEC003,19,Engineering: Mechanical,53715,43.07,-89.4,pepperoni,dog,No,no preference,Maybe
+LEC006,18,Data Science,53706,46.683334,7.85,mushroom,dog,Yes,no preference,No
+LEC003,19,Engineering: Biomedical,53703,31.046051,34.851612,Other,dog,No,night owl,Maybe
+LEC003,18,Data Science,53705,31.23,121.47,mushroom,dog,Yes,night owl,Maybe
+LEC005,19,Engineering: Mechanical,53703,42.00741,-87.69384,mushroom,dog,No,night owl,Yes
+LEC001,37,Data Science,53718,43.073051,-89.40123,green pepper,dog,No,no preference,Maybe
+LEC003,20,History,53703,31.62,74.8765,Other,cat,Yes,early bird,No
+LEC002,20,Economics,53703,38.627003,-90.199402,mushroom,dog,Yes,night owl,Yes
+LEC005,20,Engineering: Mechanical,53703,40,-74,none (just cheese),dog,Yes,early bird,No
+LEC005,18,Data Science,53706,23.7275,37.9838,pepperoni,dog,Yes,early bird,Yes
+LEC004,20,Mathematics/AMEP,53703,34.746613,113.625328,sausage,neither,Yes,early bird,Maybe
+LEC001,21,Data Science,53703,30.572351,121.776761,pepperoni,cat,No,night owl,Maybe
+LEC005,,Data Science,53715,35.72,-78.89,pepperoni,dog,No,night owl,Yes
+LEC005,20,Information science,53590,44.92556,-89.51539,pepperoni,dog,No,night owl,Yes
+LEC002,22,Mathematics/AMEP,53704,40.76078,-111.891045,pineapple,dog,Yes,night owl,No
+LEC001,22,consumer behavior and marketplace studies,53715,43.653225,-79.383186,mushroom,cat,Yes,night owl,No
+LEC004,22,Computer Science,53703,10.315699,123.885437,sausage,dog,Yes,early bird,No
+LEC002,20,Conservation Biology,53703,40.16573,-105.101189,pineapple,dog,No,night owl,Yes
+LEC005,20,Computer Science,53726,39.4817,106.0384,Other,neither,Yes,early bird,Yes
+LEC005,19,Mathematics/AMEP,53715,48.85,2.35,sausage,cat,No,night owl,Maybe
+LEC005,19,Data Science,53706,30.572815,104.066803,mushroom,neither,No,early bird,Yes
+LEC004,24,Business: Information Systems,53703,37.566536,126.977966,tater tots,dog,No,early bird,No
+LEC004,19,Economics,53703,52.877491,-118.08239,pepperoni,dog,No,night owl,Yes
+LEC004,21,Computer Science,53703,28.538336,-81.379234,pepperoni,dog,No,night owl,Yes
+LEC006,18,Data Science,53706,41.4,-81.9,sausage,dog,Yes,night owl,Maybe
+LEC002,21,Science: Biology/Life,53703,43.038902,-87.906471,none (just cheese),neither,No,no preference,Yes
+LEC004,21,Data Science,53703,3.86,-54.2,macaroni/pasta,dog,No,early bird,No
+LEC004,19,Engineering: Mechanical,53715,39.952583,-75.165222,macaroni/pasta,dog,Yes,no preference,Yes
+LEC004,20,Science: Other,53715,21.3099,157.8581,pineapple,dog,No,early bird,Yes
+LEC005,21,Data Science,48823,11.451419,19.81,mushroom,neither,No,night owl,Maybe
+LEC001,20,Computer Science,53715,41,-87,Other,dog,No,night owl,Yes
+LEC005,21,Data Science,53705,42.3601,71.0589,pepperoni,dog,Yes,no preference,Yes
+LEC005,19,Computer Science,53706,48.856613,2.352222,pepperoni,dog,Yes,night owl,Maybe
+LEC001,17,Statistics,53715,43.0722,89.4008,pineapple,dog,No,early bird,Maybe
+LEC001,20,Economics,53715,27.99942,120.66682,pepperoni,dog,Yes,early bird,No
+LEC001,19,Mathematics/AMEP,53711,45.85038,-84.616989,pineapple,cat,No,night owl,Yes
+LEC004,20,Computer Science,53711,40.842358,111.749992,pineapple,cat,No,night owl,Maybe
+LEC003,18,Engineering: Mechanical,53706,39.738449,-104.984848,pepperoni,dog,No,early bird,Yes
+LEC003,21,Statistics,53705,41.878113,-87.629799,macaroni/pasta,dog,No,night owl,Yes
+LEC006,19,Engineering: Industrial,60540,41.878113,-87.629799,none (just cheese),dog,No,night owl,No
+LEC004,19,Engineering: Mechanical,53703,40.6263,14.3758,mushroom,dog,No,early bird,No
+LEC004,22,Engineering: Other|Chemical Engineering,53703,48.13913,11.58022,macaroni/pasta,dog,Yes,night owl,Yes
+LEC004,21,Economics (Mathematical Emphasis),53703,52.520008,13.404954,pepperoni,dog,No,night owl,No
+LEC004,25,Science: Other|Biophysics PhD,53705,30.21161,-97.80999,pineapple,dog,No,night owl,Yes
+LEC003,19,Computer Science,53716,25.49443,-103.59581,pepperoni,cat,No,no preference,Yes
+LEC003,19,Data Science,53706,64.963051,-19.020836,pineapple,dog,No,no preference,No
+LEC006,19,Computer Science,53706,41.878113,-87.629799,pepperoni,cat,No,night owl,Maybe
+LEC001,23,Economics,53703,43.07348,-89.38089,pepperoni,dog,No,night owl,Yes
+LEC001,29,Business: Other|Technology Strategy/ Product Management,53705,37.386051,-122.083855,Other,cat,No,no preference,Maybe
+LEC002,,Engineering: Mechanical,53706,14.34836,100.576271,pepperoni,neither,No,no preference,Maybe
+LEC004,20,Undecided,53715,37.566536,126.977966,none (just cheese),neither,No,night owl,Yes
+LEC006,19,Engineering: Mechanical,53703,27.993828,120.699364,sausage,neither,No,no preference,Yes
+LEC002,,Computer Science,53705,25.032969,121.565414,pineapple,dog,No,night owl,Yes
+LEC005,20,Mathematics/AMEP,53703,32.060253,118.796875,pineapple,cat,Yes,night owl,Maybe
+LEC003,,Business: Other,53706,50.07553,14.4378,pepperoni,dog,Yes,night owl,Maybe
+LEC006,21,Data Science,57303,32.715736,-117.161087,macaroni/pasta,cat,Yes,no preference,Yes
+LEC006,18,Engineering: Mechanical,53706,45.5579,94.1632,sausage,dog,No,night owl,Yes
+LEC001,18,Engineering: Biomedical,53715,43.073051,-89.40123,sausage,dog,No,early bird,Yes
+LEC005,19,Engineering: Mechanical,53706,38.571739,-109.550797,pepperoni,cat,No,night owl,Yes
+LEC003,18,Engineering: Mechanical,53706,41.902782,12.496365,pepperoni,dog,Yes,night owl,No
+LEC002,21,Data Science,53711,120,30,sausage,dog,Yes,night owl,Maybe
+LEC004,18,Engineering: Biomedical,53706,40.014984,-105.270546,green pepper,dog,No,night owl,Yes
+LEC004,20,Engineering: Mechanical,53715,53.2779,6.1058,sausage,dog,Yes,no preference,Yes
+LEC003,17,Science: Physics,53706,50.088153,14.399437,Other,cat,No,night owl,Yes
+LEC002,19,Engineering: Industrial,53705,35.084385,-106.650421,pineapple,cat,No,night owl,Yes
+LEC003,20,Engineering: Mechanical,53703,44.501343,-88.06221,pepperoni,dog,No,night owl,Yes
+LEC003,18,Engineering: Mechanical,53703,45.659302,-92.466164,macaroni/pasta,dog,No,no preference,Maybe
+LEC003,19,Data Science,53703,16.896721,42.5536,none (just cheese),neither,No,early bird,Maybe
+LEC001,18,Data Science,53703,23.885942,45.079163,mushroom,neither,No,early bird,Maybe
+LEC006,19,Engineering: Mechanical,53703,55.953251,-3.188267,mushroom,cat,Yes,night owl,Yes
+LEC001,30,Business: Other,53705,43.07175,-89.46498,pineapple,cat,No,early bird,No
+LEC006,18,Political Science,53706,39.640263,-106.374191,green pepper,dog,No,early bird,No
+LEC005,23,Business: Information Systems,53705,27.99,120.69,green pepper,dog,No,night owl,No
+LEC003,18,Graphic Design,53706,40.713051,-74.007233,Other,dog,Yes,early bird,Yes
+LEC002,21,Economics,53715,37.369171,-122.112473,mushroom,dog,No,night owl,No
+LEC005,18,Computer Science,53706,21.3099,157.8581,pepperoni,cat,No,night owl,Yes
+LEC002,19,Business: Other|Marketing,53706,59.913868,10.752245,macaroni/pasta,dog,No,night owl,Maybe
+LEC003,20,Cartography and GIS,53726,43.0722,89.4008,sausage,cat,No,early bird,Maybe
+LEC005,21,Economics,53705,25.032969,120.960518,sausage,dog,Yes,night owl,Maybe
+LEC005,19,Engineering: Industrial,53703,42.03992,87.67732,sausage,dog,Yes,night owl,Yes
+LEC003,,Computer Science,53706,35.443081,139.362488,sausage,dog,Yes,night owl,Yes
+LEC002,22,Sociology,53703,53.483959,-2.244644,pepperoni,dog,No,night owl,Yes
+LEC002,18,Undecided,53706,43.073051,-89.40123,pineapple,dog,Yes,night owl,Yes
+LEC004,19,Engineering: Biomedical,53706,-37.81,144.96,sausage,dog,Yes,night owl,Yes
+LEC005,21,Mathematics/AMEP,53703,22.542883,114.062996,pepperoni,cat,No,no preference,Maybe
+LEC002,20,Statistics,53715,23,113,pineapple,dog,No,night owl,Maybe
+LEC001,20,Business: Other|Consumer Behavior and Marketplace Studies,53703,40.76078,-111.891045,green pepper,dog,Yes,early bird,Maybe
+LEC001,21,Data Science,53705,40.712776,-74.005974,pepperoni,cat,No,night owl,Maybe
+LEC002,19,Engineering: Mechanical,53703,26.345631,-81.779083,pepperoni,dog,Yes,night owl,Yes
+LEC004,19,Engineering: Mechanical,53715,40.62632,14.37574,pepperoni,dog,No,no preference,Maybe
+LEC003,18,Engineering: Other,53706,40.73061,-73.9808,mushroom,dog,No,night owl,No
+LEC006,18,Atmospheric Sciences,53706,39.74,-104.99,sausage,dog,Yes,night owl,Maybe
+LEC002,20,Data Science,53703,43.073051,-89.40123,macaroni/pasta,dog,Yes,early bird,Yes
+LEC006,18,Engineering: Mechanical,53706,32.7157,117.1611,pineapple,dog,Yes,night owl,Yes
+LEC004,18,Computer Science,53706,51.507351,-0.127758,green pepper,dog,No,night owl,Yes
+LEC004,19,Education,53715,32.715736,-117.161087,pepperoni,dog,No,night owl,Yes
+LEC004,26,Languages,53703,50.11,8.68,sausage,dog,No,no preference,Yes
+LEC005,21,Economics (Mathematical Emphasis),53715,55.676098,12.568337,pepperoni,cat,No,night owl,Maybe
+LEC004,53,Mathematics/AMEP,53555,47.6,-122.3,mushroom,dog,No,night owl,Yes
+LEC004,17,Computer Science,53706,43.073051,-89.40123,Other,dog,No,night owl,Yes
+LEC006,18,Engineering Mechanics (Aerospace Engineering),53706,43.038902,-87.906471,pepperoni,cat,No,night owl,No
+LEC002,20,Engineering: Mechanical,53715,23.7157,117.1611,none (just cheese),cat,Yes,night owl,Maybe
+LEC002,22,Science: Other|Psychology,53703,37.82034,-122.47872,mushroom,dog,No,early bird,No
+LEC002,22,Computer Science,53705,34.052235,-118.243683,basil/spinach,dog,No,night owl,Yes
+LEC004,26,Science: Biology/Life,53715,33.962425,-83.378622,pineapple,neither,Yes,no preference,Yes
+LEC002,18,Economics,53715,41.878113,-87.629799,basil/spinach,cat,No,night owl,Maybe
+LEC004,24,Engineering: Other|Civil and Environmental Engineering,53703,47.5,19.04,pepperoni,dog,Yes,early bird,Maybe
+LEC004,19,Engineering: Biomedical,53711,40.712776,74.005974,pineapple,dog,No,early bird,No
+LEC001,19,Engineering: Mechanical,53715,43,-90,sausage,dog,No,no preference,Maybe
+LEC006,18,Data Science,94707,37.566536,126.977966,pineapple,dog,Yes,night owl,Yes
+LEC006,20,Undecided,53719,62.2001,58.9638,Other,cat,Yes,night owl,Maybe
+LEC002,18,Engineering: Mechanical,53706,44.977753,-93.265015,none (just cheese),cat,Yes,night owl,Yes
+LEC001,20,Business: Information Systems,53711,34.385204,132.455292,pepperoni,dog,No,early bird,Yes
+LEC005,19,Engineering: Biomedical,53703,41.8781,87.6298,macaroni/pasta,dog,No,night owl,No
+LEC002,19,Engineering: Biomedical,53703,37.98381,23.727539,macaroni/pasta,dog,No,night owl,Maybe
+LEC005,18,Data Science,53706,40,74,pepperoni,dog,No,no preference,Yes
+LEC002,19,Engineering: Mechanical,53711,41.95881,-85.32536,Other,dog,No,no preference,No
+LEC005,18,Data Science,53706,32.715736,-117.161087,sausage,dog,No,night owl,Maybe
+LEC002,18,Undecided,53706,43.060791,-88.119217,Other,neither,No,early bird,Yes
+LEC004,21,Science: Other,53715,27.963989,-82.799957,pineapple,dog,No,night owl,Yes
+LEC006,18,Data Science,53706,1.352083,103.819839,sausage,dog,No,night owl,Yes
+LEC005,19,Data Science,53703,-33.92487,18.424055,none (just cheese),dog,No,night owl,Yes
+LEC001,22,International Studies,53703,48.13913,11.58022,none (just cheese),cat,No,night owl,Yes
+LEC001,19,Engineering: Other,53715,38.331581,-75.086159,macaroni/pasta,dog,No,no preference,Yes
+LEC002,19,Business: Information Systems,53715,44.5,-88,pepperoni,dog,No,night owl,Yes
+LEC002,19,Data Science,53705,21.59143,-158.01743,Other,dog,Yes,night owl,Yes
+LEC002,,Business: Finance,53593,45.813042,9.080931,Other,dog,No,early bird,Yes
+LEC003,21,Business: Information Systems,53703,43.612255,-110.705429,sausage,dog,Yes,no preference,No
+LEC001,21,Data Science,53703,41.00824,28.978359,pepperoni,cat,Yes,early bird,No
+LEC002,18,Engineering: Biomedical,53706,17.385044,78.486671,green pepper,dog,No,night owl,Yes
+LEC006,21,Political Science,53703,45.512,-122.658,sausage,dog,No,night owl,Yes
+LEC003,18,Engineering: Mechanical,53706,41.902782,12.496365,pepperoni,dog,No,early bird,Maybe
+LEC005,19,Engineering: Mechanical,53703,-36.848461,174.763336,none (just cheese),dog,Yes,no preference,No
+LEC002,,Data Science,53713,30.316496,78.032188,mushroom,cat,Yes,night owl,Yes
+LEC002,,Business: Information Systems,53703,35.689487,139.691711,sausage,dog,Yes,night owl,Maybe
+LEC005,18,Data Science,53706,52.520008,13.404954,pineapple,dog,Yes,early bird,No
+LEC005,19,Computer Science,53706,41.3784,2.1686,sausage,cat,No,no preference,Yes
+LEC003,20,Engineering: Mechanical,53715,41.878113,-87.629799,Other,cat,No,night owl,Yes
+LEC004,20,Computer Science,53703,43.073051,-89.40123,none (just cheese),cat,Yes,night owl,Yes
+LEC006,23,Data Science,53703,17.05423,-96.713226,basil/spinach,dog,No,night owl,Maybe
+LEC001,19,Engineering: Mechanical,53706,43.77195,-88.43383,pepperoni,dog,No,early bird,Maybe
+LEC001,20,Economics,53726,42.92,-87.96,pepperoni,dog,Yes,early bird,No
+LEC001,19,Engineering: Mechanical,53715,29.424122,-98.493629,mushroom,dog,Yes,early bird,Maybe
+LEC004,18,Computer Science,53706,30.267153,-97.743057,pepperoni,dog,No,night owl,Yes
+LEC005,,Computer Science,53715,44.9778,93.265,sausage,cat,Yes,night owl,Yes
+LEC003,19,Science: Other,53715,41.9028,12.4964,pepperoni,dog,No,night owl,Yes
+LEC004,19,Data Science,53715,61.2176,149.8997,pineapple,cat,Yes,night owl,Maybe
+LEC001,20,Agricultural and Applied Economics,53703,-22.932924,-47.073845,pineapple,cat,Yes,early bird,Maybe
+LEC003,18,Computer Science,53706,52.370216,4.895168,basil/spinach,cat,No,night owl,Maybe
+LEC003,19,Engineering: Industrial,53703,5.838715,3.603516,pepperoni,dog,Yes,early bird,No
+LEC005,19,Engineering: Mechanical,53715,48.502281,-113.988533,sausage,dog,No,night owl,Yes
+LEC004,41,Languages,53705,29.654839,91.140549,pepperoni,cat,No,night owl,Yes
+LEC002,21,Business: Other|MHR,53703,44,125,Other,neither,No,night owl,Maybe
+LEC005,24,Business: Other,53703,43.073051,-89.40123,pineapple,dog,No,night owl,Yes
+LEC002,18,Undecided,53706,46.786671,-92.100487,none (just cheese),cat,No,no preference,Yes
+LEC004,18,Engineering: Biomedical,53705,35.689487,139.691711,basil/spinach,dog,No,night owl,Yes
+LEC001,25,Medicine,53703,48.38203,-123.537827,basil/spinach,dog,Yes,early bird,No
+LEC004,19,Science: Biology/Life,53705,46.009991,-91.482094,pineapple,dog,No,early bird,No
+LEC005,21,Science: Other|Personal Finance,53703,28.228209,112.938812,pepperoni,cat,Yes,night owl,Yes
+LEC004,18,Data Science,53706,35.689487,139.691711,pepperoni,dog,No,night owl,Maybe
+LEC006,21,Mathematics/AMEP,53703,41.878113,-87.629799,pineapple,cat,Yes,night owl,Maybe
+LEC005,18,Environmental science,53706,31.224361,121.46917,mushroom,dog,No,night owl,Yes
+LEC005,18,Engineering: Industrial,53706,40.712776,-74.005974,pepperoni,dog,Yes,night owl,Yes
+LEC001,20,Business: Other|Real Estate,53703,51.5,0.128,mushroom,dog,Yes,no preference,Maybe
+LEC001,19,Computer Science,53706,40,-74,pepperoni,cat,No,night owl,Yes
+LEC003,19,Engineering: Mechanical,53715,44,-94,pineapple,dog,No,early bird,No
+LEC001,19,Data Science,53715,40.712776,-74.005974,pepperoni,dog,No,early bird,No
+LEC005,18,Engineering: Industrial,53703,41.385063,2.173404,pepperoni,dog,Yes,no preference,Yes
+LEC002,20,Engineering: Industrial,53715,22.3,91.8,sausage,cat,Yes,early bird,Maybe
+LEC001,24,Engineering: Industrial,53705,13.100485,77.594009,none (just cheese),dog,Yes,no preference,Maybe
+LEC004,19,Statistics,53706,36.778259,-119.417931,pineapple,cat,No,night owl,Yes
+LEC005,21,Economics,53703,40.016869,-105.279617,pepperoni,cat,Yes,night owl,Yes
+LEC003,19,Economics (Mathematical Emphasis),53705,31.230391,121.473701,sausage,neither,Yes,no preference,Maybe
+LEC003,19,Business: Finance,53706,22.270979,113.576675,pepperoni,dog,Yes,night owl,Yes
+LEC003,21,Computer Science,53705,43.073051,-89.40123,green pepper,cat,No,no preference,Maybe
+LEC001,28,Science: Biology/Life,53703,7.190708,125.455338,sausage,dog,No,night owl,Yes
+LEC004,18,Statistics,53703,60.472023,8.468946,none (just cheese),dog,No,early bird,No
+LEC002,19,Computer Science,53715,41.73993,-88.09423,mushroom,cat,Yes,no preference,Yes
+LEC002,21,Economics,53703,26.074301,119.296539,mushroom,cat,No,no preference,Maybe
+LEC002,20,Engineering: Industrial,53715,2.188477,41.379179,sausage,dog,No,night owl,Yes
+LEC003,21,Science: Other|Environmental Science,53703,20.8,-156.3,basil/spinach,cat,No,early bird,Maybe
+LEC006,18,Engineering: Mechanical,53706,25.204849,55.270782,pepperoni,dog,No,night owl,Yes
+LEC002,18,Data Science,53706,42.360081,-71.058884,sausage,dog,Yes,night owl,Yes
+LEC004,23,Engineering: Mechanical,53703,38.82097,-104.78163,sausage,dog,No,night owl,No
+LEC001,19,Engineering: Industrial,53715,47.606209,-122.332069,pepperoni,cat,No,night owl,No
+LEC006,19,Sociology,53703,43.05977,-87.88491,basil/spinach,dog,No,night owl,Maybe
+LEC005,19,Engineering: Mechanical,53711,38.8951,-77.0364,pepperoni,dog,Yes,night owl,No
+LEC005,19,Engineering: Mechanical,53703,41.881832,87.6298,pepperoni,dog,No,no preference,Yes
+LEC002,20,Engineering: Mechanical,53703,46.453825,7.436478,pineapple,dog,Yes,night owl,Yes
+LEC002,20,Economics,53703,30.49996,117.050003,Other,dog,No,early bird,Maybe
+LEC004,21,Science: Other|Psychology,53715,23.12911,113.264381,none (just cheese),cat,No,night owl,Maybe
+LEC002,18,Science: Biology/Life,53706,40.7831,73.9712,basil/spinach,dog,Yes,night owl,Yes
+LEC002,,Business: Information Systems,53706,18.52043,73.856743,green pepper,dog,No,night owl,Yes
+LEC002,,Computer Science,53706,29.424122,-98.493629,none (just cheese),dog,No,no preference,Yes
+LEC002,20,Engineering: Mechanical,53703,41.05995,-80.32312,basil/spinach,dog,Yes,night owl,Maybe
+LEC006,19,Statistics,53715,3.139003,101.686852,mushroom,cat,No,no preference,Maybe
+LEC005,18,Data Science,53706,52.370216,4.895168,basil/spinach,dog,No,night owl,Yes
+LEC006,19,Engineering: Industrial,53706,41.878113,-87.629799,pepperoni,dog,No,no preference,Maybe
+LEC006,18,Business: Information Systems,53706,25.032969,121.565414,mushroom,dog,Yes,night owl,Yes
+LEC001,17,Computer Science,53726,21.027763,105.83416,pepperoni,dog,No,early bird,Yes
+LEC001,20,Business: Information Systems,53711,45.046799,-87.298149,sausage,cat,No,night owl,Yes
+LEC005,25,Engineering: Other,53705,32.7157,-117.1611,mushroom,dog,No,no preference,Yes
+LEC004,18,Engineering: Industrial,53706,19.896767,-155.582779,pepperoni,dog,Yes,night owl,Maybe
+LEC005,18,Computer Science,53706,1.28217,103.865196,sausage,dog,No,night owl,Yes
+LEC003,18,Engineering: Mechanical,53706,44.977753,-93.265015,pepperoni,dog,No,night owl,Yes
+LEC004,20,Engineering: Mechanical,53715,23,90,green pepper,cat,No,no preference,Yes
+LEC005,20,Data Science,53703,45.259546,-84.938476,mushroom,dog,Yes,night owl,Yes
+LEC002,21,Science: Other,53703,41.878113,-87.629799,pineapple,dog,Yes,early bird,No
+LEC004,19,Information science,53703,40.712776,-74.005974,pineapple,cat,Yes,early bird,Maybe
+LEC001,19,Engineering: Mechanical,53715,64.126518,-21.817438,pepperoni,dog,No,night owl,Yes
+LEC003,,Business: Other,53706,42.360081,-71.058884,sausage,cat,Yes,night owl,No
+LEC002,31,Geoscience,53703,-41.126621,-73.059303,pepperoni,cat,No,night owl,Yes
+LEC003,18,Engineering: Biomedical,53706,45.17099,-87.16494,Other,dog,No,night owl,Maybe
+LEC002,18,Engineering: Mechanical,53706,37.774929,-122.419418,Other,dog,Yes,no preference,Yes
+LEC004,,Computer Science,53715,39.70698,-86.0862,mushroom,cat,No,night owl,Yes
+LEC005,20,Science: Biology/Life,53703,44.276402,-88.26989,macaroni/pasta,cat,No,no preference,Maybe
+LEC002,19,Science: Biology/Life,53703,51.492519,-0.25852,sausage,dog,Yes,no preference,Yes
+LEC002,19,Data Science,53703,37.6,14.0154,none (just cheese),dog,No,night owl,Yes
+LEC002,20,Engineering: Industrial,53715,46.685631,7.8562,Other,cat,No,night owl,Maybe
+LEC002,22,Economics,53706,41.385063,2.173404,pineapple,cat,No,night owl,Maybe
+LEC004,21,Engineering: Industrial,53703,41.878113,-87.629799,pepperoni,neither,Yes,early bird,No
+LEC004,19,Engineering: Mechanical,53703,51.507351,-0.127758,none (just cheese),neither,No,no preference,Maybe
+LEC006,18,Engineering: Mechanical,53706,41.077747,1.131593,sausage,dog,No,no preference,Maybe
+LEC006,18,Engineering: Mechanical,53706,43.526,5.445,basil/spinach,dog,Yes,no preference,Yes
+LEC003,22,Economics,53715,43.073051,-89.40123,pepperoni,dog,Yes,early bird,Yes
+LEC005,18,Engineering: Industrial,53706,43.085369,-88.912086,sausage,dog,No,night owl,Maybe
+LEC002,19,Statistics,53703,43.769562,11.255814,basil/spinach,dog,No,no preference,Yes
+LEC001,20,Computer Science,53715,20.880947,-156.681862,sausage,dog,No,night owl,Yes
+LEC003,19,Mathematics/AMEP,53703,64.963051,-19.020836,basil/spinach,dog,No,no preference,Yes
+LEC005,18,Undecided,53706,43.073929,-89.385239,sausage,dog,Yes,early bird,Yes
+LEC003,18,Business: Information Systems,53706,25.204849,55.270782,none (just cheese),dog,No,night owl,No
+LEC003,21,Economics,53703,39.904,116.407,pepperoni,cat,No,night owl,No
+LEC004,18,Engineering: Mechanical,53706,39.739235,-104.99025,pepperoni,cat,Yes,no preference,Maybe
+LEC004,21,Science: Biology/Life,53726,43,89,pepperoni,dog,Yes,night owl,Yes
+LEC003,19,Data Science,53715,43.073051,-89.40123,none (just cheese),dog,No,early bird,Maybe
+LEC002,19,Business: Other|accounting,53703,43.38,-87.9,sausage,neither,No,night owl,Yes
+LEC002,18,Science: Biology/Life,53706,40.122,25.4988,sausage,dog,No,early bird,No
+LEC005,20,Engineering: Mechanical,53715,39.904202,116.407394,sausage,dog,No,night owl,Yes
+LEC001,19,Engineering: Mechanical,53703,-37.813629,144.963058,sausage,dog,Yes,night owl,Yes
+LEC005,21,Economics,53715,46.81,-71.21,pepperoni,cat,No,night owl,Yes
+LEC004,19,Engineering: Mechanical,53715,52.370216,4.895168,mushroom,dog,Yes,night owl,Yes
+LEC001,21,Mathematics/AMEP,53703,34.29006,108.932941,basil/spinach,dog,No,early bird,Yes
+LEC005,21,Engineering: Mechanical,53726,43.804801,-91.226075,pepperoni,dog,Yes,night owl,Yes
+LEC002,18,Data Science,53703,32.715736,-117.161087,none (just cheese),cat,Yes,night owl,Maybe
+LEC004,18,Engineering: Mechanical,53706,20.92674,-156.69386,pepperoni,dog,No,night owl,Maybe
+LEC003,18,Data Science,53706,47.606209,-122.332069,pepperoni,dog,No,early bird,Yes
+LEC005,21,Computer Science,53703,43.07515,-89.3958,sausage,neither,Yes,night owl,Yes
+LEC001,19,Engineering: Mechanical,53562,43.096851,-89.511528,sausage,dog,No,night owl,No
+LEC003,19,Engineering: Mechanical,53715,20.924325,-156.690102,sausage,cat,Yes,night owl,No
+LEC005,20,Data Science,53703,25.0838,77.3212,pepperoni,dog,No,night owl,Maybe
+LEC003,21,Business: Actuarial,53715,43.073051,-89.40123,pineapple,cat,Yes,night owl,Yes
+LEC001,,Computer Science,53715,31.469279,119.765621,pepperoni,dog,No,night owl,Maybe
+LEC005,19,Engineering: Mechanical,53715,43.769562,11.255814,basil/spinach,neither,No,early bird,No
+LEC001,21,Science: Chemistry,53715,38.892059,-77.019913,pepperoni,neither,No,night owl,Yes
+LEC002,19,Business: Finance,53715,42.360081,-71.058884,mushroom,dog,Yes,night owl,Yes
+LEC001,18,Data Science,53703,24.713552,46.675297,none (just cheese),neither,No,night owl,Yes
+LEC003,19,Business: Actuarial,53715,60.391262,5.322054,pepperoni,dog,No,early bird,No
+LEC003,19,Data Science,53715,23.697809,120.960518,pepperoni,cat,No,night owl,Yes
+LEC003,18,Data Science,53706,40.712776,74.005974,pineapple,dog,Yes,early bird,No
+LEC004,19,Engineering: Mechanical,53703,45.126887,-94.528067,sausage,dog,No,night owl,Maybe
+LEC002,21,Science: Biology/Life,53715,48.208176,16.373819,Other,dog,Yes,night owl,No
+LEC006,18,Engineering: Mechanical,53706,44.0628,-121.30451,pepperoni,dog,No,night owl,Yes
+LEC003,21,Statistics,53703,31.230391,121.473701,pineapple,cat,Yes,night owl,Yes
+LEC005,21,Economics,53703,47.62772,-122.51368,macaroni/pasta,cat,No,no preference,No
+LEC003,19,Engineering: Mechanical,53715,65.68204,-18.090534,sausage,cat,No,no preference,No
+LEC004,21,Economics,53715,48.856613,2.352222,basil/spinach,dog,Yes,night owl,No
+LEC001,18,Engineering: Biomedical,53706,33.501324,-111.925278,pineapple,dog,Yes,early bird,No
+LEC005,18,Data Science,53706,14.77046,-91.183189,mushroom,cat,No,night owl,Maybe
+LEC002,18,Engineering: Industrial,53706,10.480594,-66.903603,mushroom,neither,No,night owl,Maybe
+LEC004,21,Engineering: Mechanical,53715,48.856613,2.352222,mushroom,cat,Yes,night owl,Yes
+LEC001,19,Science: Biology/Life,53706,20.788602,-156.003662,green pepper,dog,Yes,no preference,No
+LEC006,18,Data Science,53706,36.59239,-121.86875,pepperoni,cat,No,night owl,Maybe
+LEC002,,Engineering: Industrial,53705,47.6,-122.33,sausage,dog,No,early bird,No
+LEC001,18,Engineering: Mechanical,53703,23.885942,45.079163,Other,cat,No,night owl,Maybe
+LEC002,18,Engineering: Industrial,53532,47.606209,-122.332069,mushroom,dog,No,night owl,Maybe
+LEC002,17,Engineering: Biomedical,53706,39.5755,-106.100403,pepperoni,dog,Yes,night owl,Maybe
+LEC002,20,Data Science,53711,39.904202,116.407394,pepperoni,dog,No,night owl,Yes
+LEC001,19,Engineering: Industrial,53705,41.878113,-87.629799,tater tots,cat,No,night owl,No
+LEC004,19,Political Science,53703,55.679626,12.581921,pepperoni,dog,Yes,no preference,Maybe
+LEC005,18,Computer Science,53715,28.538336,-81.379234,pepperoni,dog,No,night owl,Maybe
+LEC004,29,Engineering: Mechanical,53704,50.064651,19.944981,sausage,dog,No,early bird,Maybe
+LEC005,18,Engineering: Other,53706,41.385063,2.173404,mushroom,cat,No,night owl,Yes
+LEC001,19,Engineering: Mechanical,53703,44.977753,-93.265015,Other,cat,Yes,early bird,No
+LEC001,32,Design Studies,53705,48.856613,2.352222,mushroom,dog,No,early bird,Yes
+LEC002,20,Engineering: Mechanical,53703,41.28347,-70.099449,pepperoni,dog,Yes,night owl,Yes
+LEC003,19,Engineering: Industrial,53715,41.73849,-71.30418,pepperoni,dog,No,night owl,Yes
+LEC001,18,Data Science,53706,43.073051,-89.40123,sausage,dog,No,early bird,Yes
+LEC001,19,Computer Science,53715,31.230391,121.473701,pineapple,cat,No,night owl,Yes
+LEC001,19,Data Science,53703,37.9838,23.7275,sausage,dog,Yes,no preference,Yes
+LEC005,20,Engineering: Biomedical,53703,47.497913,19.040236,Other,cat,Yes,night owl,No
+LEC004,18,Economics,53711,13.756331,100.501762,Other,dog,No,night owl,Maybe
+LEC002,18,Data Science,53706,3.864255,73.388672,pepperoni,dog,Yes,night owl,Maybe
+LEC006,18,Engineering: Mechanical,53706,32.715736,-117.161087,macaroni/pasta,dog,Yes,night owl,Yes
+LEC001,19,Business: Actuarial,53715,18.32431,64.941612,pepperoni,dog,No,no preference,Yes
+LEC001,22,Psychology,53711,43.055333,-89.425946,pineapple,dog,Yes,early bird,No
+LEC003,18,Computer Science,53706,40.744678,-73.758072,mushroom,cat,No,night owl,Maybe
+LEC006,18,Data Science,53715,38.9784,76.4922,mushroom,cat,No,early bird,Yes
+LEC004,20,Science: Other,53726,55.675758,12.56902,none (just cheese),cat,Yes,night owl,Yes
+LEC001,20,Science: Biology/Life,53715,40.713051,-74.007233,pineapple,cat,No,night owl,Maybe
+LEC004,18,Engineering: Industrial,53706,51.507351,-0.127758,pepperoni,dog,Yes,no preference,No
+LEC004,25,Computer Science,53703,38.736946,-9.142685,pepperoni,dog,No,night owl,Yes
+LEC002,18,Computer Science,53706,22.543097,114.057861,pepperoni,cat,No,no preference,Yes
+LEC004,25,Science: Chemistry,53703,37.566536,126.977966,Other,cat,Yes,night owl,Maybe
+LEC002,19,Engineering: Mechanical,53715,26.338,-81.775,pepperoni,dog,Yes,no preference,Maybe
+LEC005,19,Engineering: Mechanical,53715,33.448376,-112.074036,pepperoni,neither,Yes,early bird,No
+LEC005,19,Engineering: Mechanical,53703,43.073051,-89.40123,pepperoni,cat,No,no preference,Yes
+LEC001,19,Engineering: Mechanical,53705,26.647661,106.63015,mushroom,cat,No,night owl,No
+LEC003,18,Undecided,53706,43.2967,87.9876,pepperoni,dog,No,night owl,No
+LEC005,19,Science: Physics,53703,78.225,15.626,sausage,cat,No,early bird,No
+LEC002,,Science: Other|Environmetal Science,53703,52.973558,-9.425102,none (just cheese),dog,Yes,night owl,Maybe
+LEC006,19,Economics (Mathematical Emphasis),53715,37.774929,-122.419418,sausage,cat,Yes,night owl,Yes
+LEC002,20,Business: Finance,53703,40.7128,74.006,pineapple,dog,No,night owl,Yes
+LEC001,21,Science: Biology/Life,53703,44.794,-93.148,pepperoni,dog,No,night owl,No
+LEC002,19,Engineering: Mechanical,53706,36.17,-115.14,pepperoni,cat,No,night owl,Maybe
+LEC001,18,Engineering: Biomedical,53706,21.161907,-86.851524,none (just cheese),dog,No,early bird,Maybe
+LEC001,18,Computer Science,53715,48.856613,2.352222,pineapple,neither,Yes,no preference,No
+LEC004,19,Engineering: Mechanical,53715,48.137,11.576,green pepper,dog,No,early bird,No
+LEC001,20,Engineering: Biomedical,53703,43.07393,-89.38524,sausage,dog,No,night owl,Maybe
+LEC002,18,Science: Other,53706,35.6762,139.6503,Other,dog,No,no preference,Yes
+LEC004,19,Computer Science,53703,41.902782,12.496365,none (just cheese),neither,Yes,night owl,No
+LEC001,20,Science: Other|Atmospheric and Oceanic Sciences (AOS),53711,49.299171,19.94902,pepperoni,dog,No,night owl,Maybe
+LEC002,18,Data Science,53706,41.380898,2.12282,pepperoni,dog,No,night owl,Maybe
+LEC006,18,Data Science,53706,48.257919,4.03073,mushroom,cat,Yes,early bird,No
+LEC005,19,Engineering: Mechanical,53715,35.0844,106.6504,pineapple,dog,Yes,early bird,Yes
+LEC002,23,Economics,53703,121,5,pepperoni,neither,No,no preference,Maybe
+LEC004,18,Business: Actuarial,53706,21.306944,-157.858337,pineapple,dog,Yes,night owl,Maybe
+LEC005,18,Economics,53706,43,-87.9,pepperoni,dog,Yes,early bird,Maybe
+LEC005,23,Business: Other|Business Analytics,53703,31.230391,121.473701,pineapple,cat,Yes,night owl,Maybe
+LEC002,22,Psychology,53703,25.032969,121.565414,mushroom,dog,No,no preference,Yes
+LEC005,18,Computer Science,53706,43.0722,89.4008,sausage,cat,No,night owl,Yes
+LEC006,18,Data Science,53706,52.370216,4.895168,mushroom,dog,Yes,night owl,Maybe
+LEC004,20,Data Science,53703,35.726212,-83.491226,pepperoni,cat,No,early bird,Yes
+LEC001,18,Computer Science,53703,27,153,mushroom,cat,No,early bird,Yes
+LEC005,18,Data Science,53706,56.117017,-3.879547,pineapple,dog,Yes,night owl,Yes
+LEC001,20,Engineering: Biomedical,53715,45.983964,9.262161,sausage,dog,No,night owl,No
+LEC005,21,Psychology,53703,43.038902,-87.906471,macaroni/pasta,dog,Yes,night owl,Yes
+LEC002,18,Engineering: Mechanical,53706,41.38879,2.15084,sausage,dog,Yes,no preference,Maybe
+LEC003,18,Data Science,53706,47.48,-122.28,basil/spinach,dog,No,no preference,Maybe
+LEC004,21,Data Science,53703,34.746613,113.625328,green pepper,neither,Yes,no preference,No
+LEC005,21,Data Science,53703,38.240946,-85.757571,pepperoni,dog,No,no preference,Yes
+LEC005,19,Engineering: Mechanical,53703,43.07291,-89.39439,sausage,dog,No,night owl,Maybe
+LEC005,19,Engineering: Mechanical,53715,56.373482,-3.84306,none (just cheese),dog,No,early bird,Yes
+LEC005,19,Data Science,53703,41.381717,2.177925,pepperoni,dog,Yes,night owl,Yes
+LEC005,19,Engineering: Mechanical,53714,43.089199,87.8876,pepperoni,dog,No,night owl,Yes
+LEC005,19,Engineering: Other,53590,38.4,11.2,pepperoni,dog,Yes,early bird,No
+LEC005,19,Engineering: Mechanical,53715,25.761681,-80.191788,pepperoni,dog,Yes,night owl,No
+LEC005,19,Engineering: Mechanical,53703,44.5133,88.0133,mushroom,dog,Yes,night owl,Maybe
+LEC002,,Computer Science,53706,41.8781,87.6298,pepperoni,dog,No,night owl,Maybe
+LEC005,19,Business: Finance,53703,38.98378,-77.20871,none (just cheese),dog,Yes,night owl,Yes
+LEC005,18,Business: Finance,53703,22.9068,43.1729,pepperoni,dog,No,night owl,Yes
+LEC005,19,Engineering: Mechanical,53715,43.073051,-89.40123,pepperoni,dog,No,early bird,No
+LEC004,23,Economics,53703,43.083321,-89.372475,mushroom,dog,Yes,early bird,No
+LEC002,17,Business: Actuarial,53715,34.746613,113.625328,sausage,neither,Yes,night owl,Maybe
+LEC005,18,Engineering: Biomedical,53715,46.58276,7.08058,pepperoni,dog,No,early bird,No
+LEC001,20,Statistics,53715,39.904202,116.407394,mushroom,dog,Yes,early bird,No
+LEC002,18,Computer Science,53706,35.96691,-75.627823,sausage,dog,No,early bird,Yes
+LEC005,21,Mathematics/AMEP,53703,13.756331,100.501762,pepperoni,dog,No,night owl,Yes
+LEC005,20,Engineering: Biomedical,53715,28.538336,-81.379234,sausage,cat,No,night owl,Maybe
+LEC002,19,Engineering: Mechanical,53703,44.822783,-93.370743,sausage,dog,Yes,early bird,No
+LEC005,19,Engineering: Mechanical,53715,42.15,-87.96,pepperoni,dog,No,night owl,Yes
+LEC005,20,Journalism,53715,41.3874,2.1686,basil/spinach,dog,Yes,early bird,Maybe
+LEC001,19,Engineering: Mechanical,53703,42.864552,-88.333199,pepperoni,dog,No,early bird,Maybe
+LEC005,17,Data Science,53706,40.7128,74.006,macaroni/pasta,dog,No,night owl,Yes
+LEC005,19,Science: Other|Politcal Science,53703,41.878113,-87.629799,pepperoni,dog,Yes,night owl,No
+LEC002,20,Business: Finance,53703,40.7831,73.9712,sausage,dog,Yes,night owl,No
+LEC004,20,Data Science,53703,43,87.9,none (just cheese),dog,No,night owl,Yes
+LEC001,18,Data Science,53706,38.900497,-77.007507,pineapple,dog,No,night owl,Maybe
+LEC005,18,Engineering: Industrial,53706,45.440845,12.315515,sausage,dog,No,night owl,Maybe
+LEC002,19,Data Science,53715,25.73403,-80.24697,pepperoni,dog,Yes,night owl,Yes
+LEC005,18,Political Science,53706,42.360081,-71.058884,macaroni/pasta,dog,Yes,night owl,Yes
+LEC002,20,Economics,53703,41.878113,-87.629799,pepperoni,dog,Yes,no preference,Maybe
+LEC004,18,Engineering: Mechanical,55088,48.135124,11.581981,pepperoni,dog,Yes,no preference,No
+LEC002,23,Business: Information Systems,53703,37.566536,126.977966,sausage,dog,No,night owl,Maybe
+LEC005,17,Data Science,53703,49.2827,123.1207,sausage,dog,Yes,night owl,Yes
+LEC005,,Statistics,53726,40.712776,-74.005974,Other,dog,Yes,no preference,Yes
+LEC001,18,Science: Biology/Life,53706,48.856613,2.352222,pepperoni,cat,Yes,early bird,No
+LEC005,32,Communication Sciences and Disorder,53705,37.566536,126.977966,pineapple,dog,Yes,no preference,Yes
+LEC001,18,Data Science,53706,41.878113,-87.629799,macaroni/pasta,dog,No,night owl,Yes
+LEC002,17,Business: Information Systems,53706,-6.17511,106.865036,sausage,neither,No,no preference,Maybe
+LEC002,25,Science: Other|Geoscience,53711,46.947975,7.447447,mushroom,cat,No,no preference,Yes
+LEC002,20,Economics,53703,46.7867,92.1005,macaroni/pasta,neither,Yes,early bird,No
+LEC002,21,Business: Other|Marketing,53703,20.878332,-156.682495,basil/spinach,dog,No,night owl,Yes
+LEC001,19,Statistics,53703,52.370216,4.895168,sausage,dog,No,night owl,Maybe
+LEC005,20,Engineering: Biomedical,53711,35.689487,139.691711,basil/spinach,dog,No,night owl,Yes
+LEC005,22,Science: Other|Atmospheric and oceanic science,53703,26.1224,80.1373,pepperoni,dog,No,early bird,No
+LEC001,18,Engineering: Mechanical,53726,21.306944,-157.858337,sausage,dog,No,night owl,Yes
+LEC005,21,Business: Finance,53703,43.11339,-89.37726,sausage,dog,No,night owl,Yes
+LEC001,,Business: Other,53703,22.396427,114.109497,Other,dog,No,early bird,Maybe
+LEC004,19,Science: Biology/Life,53706,41.2,96,pepperoni,cat,No,early bird,No
+LEC004,18,Engineering: Industrial,53706,49.74609,7.4609,pepperoni,cat,No,early bird,Yes
+LEC004,20,Science: Other|Environmental Science,53715,43,-89,mushroom,dog,Yes,night owl,Maybe
+LEC001,18,Business: Finance,53706,39.7392,104.9903,pepperoni,dog,No,early bird,No
+LEC002,,Computer Science,53706,41.67566,-86.28645,pineapple,cat,No,no preference,Maybe
+LEC002,18,Business: Other,53706,33.88509,-118.409714,green pepper,dog,Yes,night owl,No
+LEC001,20,Engineering: Biomedical,53711,41.8781,87.6298,pepperoni,dog,No,night owl,Yes
+LEC002,20,Data Science,53715,10.97285,106.477707,mushroom,dog,No,no preference,Maybe
+LEC002,20,Computer Science,53703,36.16156,-75.752441,pepperoni,dog,Yes,no preference,Yes
+LEC002,20,Business: Other|Marketing,53703,35.689487,139.691711,pepperoni,dog,Yes,night owl,Yes
+LEC002,18,Engineering: Other|Engineering Mechanics,53706,35.689487,139.691711,mushroom,cat,No,night owl,Maybe
+LEC002,21,Economics (Mathematical Emphasis),53703,46.25872,-91.745583,sausage,dog,Yes,no preference,Yes
+LEC002,19,Mathematics,53703,39.904202,116.407394,tater tots,cat,No,night owl,Yes
+LEC002,18,Data Science,53703,40.706067,-74.030063,pepperoni,dog,No,night owl,Yes
+LEC002,19,Pre-Business,53703,39.60502,-106.51641,pepperoni,dog,Yes,early bird,No
+LEC002,20,Mathematics/AMEP,53703,35.106766,-106.629181,green pepper,cat,No,night owl,Yes
+LEC003,20,Science: Physics,53715,64.963051,-19.020836,mushroom,dog,No,night owl,Yes
+LEC002,20,Business: Finance,53703,31.298973,120.585289,pineapple,cat,Yes,night owl,No
+LEC002,18,Economics,53706,48.856613,2.352222,basil/spinach,dog,No,night owl,Maybe
+LEC001,21,Data Science,53703,40.712776,-74.005974,sausage,dog,No,night owl,Yes
+LEC002,19,Engineering: Industrial,53715,45.914,-89.255,sausage,dog,Yes,early bird,Yes
+LEC002,19,Computer Science,53703,20,110,pineapple,cat,No,night owl,Maybe
+LEC002,19,Engineering: Mechanical,53726,41.878113,-87.629799,basil/spinach,dog,No,early bird,Yes
+LEC005,19,Computer Science,53715,48.8566,2.3522,sausage,dog,No,night owl,Maybe
+LEC002,19,Industrial Engineering,53703,48.856613,2.352222,basil/spinach,dog,No,early bird,Yes
+LEC002,18,Data Science,53706,43.073051,-89.40123,pepperoni,dog,Yes,night owl,Yes
+LEC002,20,Statistics,53703,31.224361,121.46917,mushroom,dog,No,no preference,Maybe
+LEC002,18,Computer Science,53706,35.689487,139.691711,green pepper,dog,No,night owl,Yes
+LEC002,18,Computer Science,53706,25.03841,121.563698,pineapple,dog,No,night owl,Yes
+LEC002,19,Engineering: Mechanical,53715,43.06827,-89.40263,sausage,dog,No,night owl,No
+LEC002,18,Engineering: Mechanical,53703,43,89.4,pepperoni,cat,No,no preference,Maybe
+LEC002,,Mechanical Engineering,53703,41.8781,87.6298,Other,dog,Yes,night owl,Yes
+LEC002,26,Science: Other,57075,42.76093,-89.9589,Other,dog,Yes,early bird,No
+LEC002,21,Science: Other|Environmental science,53714,47.606209,-122.332069,pepperoni,dog,Yes,early bird,Yes
+LEC002,18,Data Science,53706,35.69,139.69,pineapple,cat,No,night owl,Yes
+LEC002,18,Computer Science,53706,42.807091,-86.01886,none (just cheese),cat,Yes,early bird,Yes
+LEC002,19,Engineering: Mechanical,53703,45.892099,8.997803,green pepper,dog,No,night owl,Yes
+LEC002,20,Computer Science,53715,40.755645,-74.034119,sausage,dog,Yes,night owl,Yes
+LEC001,18,Engineering: Mechanical,53066,43.073051,-89.40123,pepperoni,dog,No,night owl,Yes
+LEC002,18,Data Science,53706,21.306944,-157.858337,pineapple,dog,No,night owl,No
+LEC002,18,Engineering: Industrial,53706,32.0853,34.781769,pepperoni,dog,No,night owl,Maybe
+LEC002,19,Engineering: Mechanical,53703,46.786671,-92.100487,sausage,dog,No,early bird,No
+LEC002,19,Engineering: Mechanical,53715,42.590519,-88.435287,pepperoni,dog,No,early bird,No
+LEC002,23,Data Science,53703,37,127,pineapple,dog,No,night owl,Yes
+LEC002,20,Data Science,53703,43.06875,-89.39434,pepperoni,dog,Yes,no preference,Maybe
+LEC002,20,Engineering: Mechanical,53703,41.499321,-81.694359,pepperoni,dog,Yes,night owl,Maybe
+LEC002,21,Economics,53703,38.969021,-0.18516,sausage,dog,Yes,no preference,No
+LEC002,20,Economics,53703,50.85,4.35,pepperoni,dog,No,no preference,Yes
+LEC002,19,Data Science,53715,36.39619,10.61412,none (just cheese),cat,No,no preference,Yes
+LEC002,20,Engineering: Mechanical,53711,43.073051,-89.40123,green pepper,dog,Yes,night owl,No
+LEC002,30,Life Sciences Communication,53562,52.399448,0.25979,basil/spinach,cat,Yes,night owl,Yes
+LEC002,20,Business: Finance,53703,41.878,-87.629799,pepperoni,dog,No,no preference,Yes
+LEC002,18,Computer Science,53706,31.2304,121.4737,pepperoni,cat,No,night owl,Maybe
+LEC005,22,Economics,53711,48.135124,11.581981,pepperoni,cat,Yes,no preference,Yes
+LEC002,19,Engineering: Mechanical,53711,51.5,0.1276,pepperoni,dog,No,night owl,No
+LEC001,18,Computer Science,53703,31.298973,120.585289,pineapple,neither,No,night owl,No
+LEC001,19,Computer Science,53703,37,-97,macaroni/pasta,cat,No,no preference,Maybe
+LEC002,19,International Studies,53703,8.25115,34.588348,none (just cheese),dog,Yes,early bird,Maybe
+LEC001,19,Engineering: Mechanical,53703,43.038902,-87.906471,pineapple,cat,No,night owl,Yes
+LEC001,19,Science: Other|Atmospheric and Oceanic Sciences,53703,48.856613,2.352222,pepperoni,dog,Yes,night owl,Yes
+LEC004,20,Data Science,53703,41.878113,-87.629799,green pepper,dog,No,early bird,Yes
+LEC004,18,Undecided,53706,39.3823,87.2971,sausage,dog,Yes,early bird,No
+LEC004,21,Data Science,53703,31.230391,121.473701,mushroom,cat,No,night owl,Maybe
+LEC001,18,Data Science,53706,32.776474,-79.931053,none (just cheese),dog,No,early bird,Yes
+LEC006,18,Science: Physics,53706,43.073051,-89.40123,sausage,dog,No,night owl,Yes
+LEC001,19,Economics,53703,35.689487,139.691711,pineapple,dog,Yes,night owl,Yes
+LEC004,18,Data Science,53715,50.8,-1.085,Other,dog,No,night owl,Maybe
+LEC002,21,Languages,53703,37.389091,-5.984459,mushroom,cat,No,early bird,No
+LEC001,19,Rehabilitation Psychology,53706,36.204823,138.25293,pineapple,cat,No,no preference,Maybe
+LEC006,18,Data Science,53705,37.5741,122.3794,pepperoni,dog,Yes,night owl,Yes
+LEC004,18,Undecided,53706,26.452,-81.9481,pepperoni,dog,Yes,night owl,Yes
+LEC002,19,Business: Actuarial,53703,37.774929,-122.419418,pineapple,dog,No,early bird,No
+LEC005,18,Undecided,53706,55.676098,12.568337,pepperoni,dog,Yes,night owl,No
+LEC001,19,Engineering: Mechanical,53703,43.073051,-89.40123,pepperoni,dog,Yes,night owl,Yes
+LEC002,18,Statistics,53706,40.713051,-74.007233,none (just cheese),dog,No,night owl,Maybe
+LEC003,21,Languages,53511,39.952583,-75.165222,pepperoni,dog,No,night owl,Yes
+LEC002,18,Computer Science,53706,12.523579,-70.03355,pineapple,dog,No,night owl,Yes
+LEC004,,Engineering: Biomedical,53715,41.878113,-87.629799,pepperoni,dog,Yes,night owl,No
+LEC001,,Data Science,53701,40.37336,88.231483,pepperoni,dog,Yes,night owl,No
+LEC001,19,Data Science,53703,51.5072,0.1276,pepperoni,dog,Yes,no preference,No
+LEC002,18,Data Science,53706,47.987289,0.22367,none (just cheese),dog,Yes,night owl,Maybe
+LEC002,19,Business: Actuarial,53715,45.17963,-87.150009,sausage,dog,Yes,no preference,No
+LEC005,21,Science: Biology/Life,53703,21.23556,-86.73142,pepperoni,dog,Yes,night owl,Yes
+LEC004,18,Engineering: Industrial,53706,43.073051,-89.40123,sausage,dog,No,night owl,Yes
+LEC001,21,Science: Biology/Life,53715,41.878113,-87.629799,green pepper,cat,No,night owl,Yes
+LEC001,20,Engineering: Biomedical,53703,48.8566,2.3522,mushroom,cat,Yes,night owl,Maybe
+LEC005,19,Engineering: Mechanical,53703,49.28273,-123.120735,basil/spinach,dog,No,night owl,Yes
+LEC001,19,Data Science,53706,37.23082,-107.59529,basil/spinach,dog,No,no preference,Maybe
+LEC001,19,Business: Finance,53703,26.20047,127.728577,mushroom,dog,No,night owl,Maybe
+LEC006,18,Statistics,53706,32.060253,118.796875,pineapple,cat,Yes,early bird,Maybe
+LEC002,20,Business: Information Systems,53706,52.520008,13.404954,none (just cheese),dog,No,early bird,Yes
+LEC006,18,Undecided,53706,43.038902,-87.906471,sausage,dog,No,night owl,Yes
+LEC002,20,Accounting,53703,32.79649,-117.192123,mushroom,dog,No,no preference,Yes
+LEC006,19,Statistics,53715,21.315603,-157.858093,pepperoni,cat,No,night owl,No
+LEC004,20,Science: Biology/Life,53706,13.756331,100.501762,pineapple,neither,No,night owl,Yes
+LEC004,20,Business: Other,53715,42.818878,-89.494115,pepperoni,dog,No,night owl,Yes
+LEC001,19,Engineering: Mechanical,53703,44.9778,93.265,pepperoni,dog,Yes,night owl,Maybe
+LEC004,18,Engineering: Industrial,53706,41.3874,2.1686,none (just cheese),dog,No,night owl,Maybe
+LEC001,37,Engineering: Other|Civil- Intelligent Transportation System,53705,23.810331,90.412521,pineapple,neither,Yes,early bird,Yes
+LEC001,19,Science: Physics,53703,42.696842,-89.026932,sausage,cat,No,night owl,Yes
+LEC006,19,Data Science,53715,53.266479,-9.052602,macaroni/pasta,dog,No,no preference,Yes
+LEC001,19,Data Science,53703,45.19356,-87.118767,pepperoni,dog,Yes,early bird,Maybe
+LEC005,18,Engineering: Industrial,53715,21.306944,-157.858337,none (just cheese),dog,Yes,night owl,Maybe
+LEC004,19,Computer Science,53703,40.678177,-73.94416,Other,cat,No,night owl,Maybe
+LEC005,18,Science: Biology/Life,53706,44.513317,-88.013298,pepperoni,dog,Yes,night owl,No
+LEC001,19,Engineering: Mechanical,53703,40.712776,-74.005974,none (just cheese),dog,Yes,early bird,Maybe
+LEC002,22,Economics,53703,37.6,127,pineapple,neither,Yes,night owl,Maybe
+LEC004,20,Engineering: Industrial,53703,39.359772,-111.584167,pepperoni,dog,Yes,early bird,Maybe
+LEC001,19,Data Science,53706,31.298973,120.585289,mushroom,cat,No,night owl,Yes
+LEC001,20,Computer Science,53715,43.073051,-89.40123,none (just cheese),dog,No,night owl,Maybe
+LEC001,25,Data Science,53703,37.566536,126.977966,pineapple,dog,Yes,night owl,No
+LEC005,19,Data Science,53706,36.169941,-115.139832,pepperoni,dog,Yes,night owl,Yes
+LEC001,19,Engineering: Mechanical,53703,44.834209,87.376266,sausage,dog,Yes,no preference,Yes
+LEC005,20,Engineering: Mechanical,53703,43.17854,-89.163391,sausage,dog,Yes,night owl,Maybe
+LEC004,19,Engineering: Industrial,53703,41.93101,-87.64987,pepperoni,neither,No,early bird,No
+LEC003,19,Engineering: Industrial,53703,11.89,-85,pepperoni,dog,Yes,night owl,Maybe
+LEC003,19,Engineering: Mechanical,53715,33.873417,-115.900993,pepperoni,dog,No,early bird,No
+LEC001,22,Economics,53703,42.360081,-71.058884,pepperoni,dog,No,no preference,Maybe
+LEC001,18,Data Science,53706,34.04018,-118.48849,pepperoni,dog,Yes,night owl,Yes
+LEC002,42069,Data Science,53704,43,-89,none (just cheese),neither,No,no preference,No
+LEC004,20,Business: Finance,53715,38.71049,-75.07657,sausage,dog,No,early bird,No
+LEC004,21,Engineering: Mechanical,53715,43.073051,-89.40123,Other,dog,Yes,early bird,No
+LEC004,18,Engineering: Industrial,53706,44.261799,-88.407249,sausage,dog,Yes,night owl,No
+LEC004,26,Science: Other|Animal and Dairy Science,53705,53.270668,-9.05679,pepperoni,dog,No,early bird,Yes
+LEC005,20,Data Science,53715,43.355099,11.02956,sausage,dog,No,early bird,Maybe
+LEC003,19,Engineering: Mechanical,53715,45.40857,-91.73542,sausage,dog,Yes,no preference,No
+LEC004,22,Engineering: Mechanical,53726,55.864239,-4.251806,pepperoni,dog,Yes,night owl,Yes
+LEC001,18,Engineering: Mechanical,53706,50.808712,-0.1604,pepperoni,dog,Yes,night owl,Maybe
+LEC004,19,Engineering: Mechanical,53703,13.35433,103.77549,none (just cheese),dog,No,no preference,Maybe
+LEC005,24,Mathematics/AMEP,53705,40.7,-74,pineapple,cat,No,early bird,Maybe
+LEC001,19,Interior Architecture,53532,27.683536,-82.736092,mushroom,cat,Yes,no preference,Yes
+LEC001,19,Science: Chemistry,53715,40.7,-74,sausage,dog,No,night owl,Maybe
+LEC001,20,Engineering: Biomedical,53703,-33.86882,151.20929,pepperoni,dog,No,no preference,Maybe
+LEC001,20,Engineering: Industrial,53715,26.614149,-81.825768,pepperoni,dog,No,night owl,No
+LEC001,19,Engineering: Biomedical,53706,45.440845,12.315515,none (just cheese),dog,Yes,night owl,Yes
+LEC001,19,Data Science,53726,43.0766,89.4125,none (just cheese),cat,No,night owl,No
+LEC001,20,Engineering: Biomedical,53711,33.684566,-117.826508,pineapple,dog,Yes,early bird,Maybe
+LEC001,21,Statistics,26617,22.396427,114.109497,pineapple,dog,Yes,night owl,Maybe
+LEC001,18,Data Science,53706,-33.86882,151.20929,pepperoni,dog,Yes,night owl,No
+LEC001,21,Economics,53703,1.53897,103.58007,pineapple,neither,Yes,night owl,Yes
+LEC001,18,Data Science,53558,41.877541,-88.066727,mushroom,dog,No,night owl,Maybe
+LEC001,17,Computer Science,53703,25.204849,55.270782,pepperoni,dog,Yes,night owl,Yes
+LEC001,19,Engineering: Mechanical,53715,19.7,-155,pineapple,dog,Yes,early bird,Yes
+LEC001,19,Data Science,53703,41.878113,-87.629799,none (just cheese),cat,Yes,night owl,Yes
+LEC001,18,Science: Biology/Life,53715,39.904202,116.407394,basil/spinach,dog,Yes,night owl,Maybe
+LEC001,20,Science: Physics,53711,43.038902,-87.906471,pepperoni,dog,No,no preference,Yes
+LEC001,18,Engineering: Mechanical,53706,41.902782,12.496366,pepperoni,neither,Yes,night owl,Yes
+LEC001,18,Data Science,53706,47.60323,-122.330276,Other,dog,No,night owl,Yes
+LEC001,19,Economics,53706,40.7,74,none (just cheese),dog,Yes,night owl,Yes
+LEC001,19,Business: Finance,53703,34.052235,-118.243683,mushroom,dog,Yes,early bird,Maybe
+LEC001,20,Science: Other|Atmospheric & Oceanic Sciences,53711,40.412776,-74.005974,pepperoni,neither,No,early bird,Yes
+LEC001,19,Computer Science,53706,37.774929,-122.419418,none (just cheese),cat,No,early bird,Yes
+LEC001,20,Engineering: Mechanical,53703,44.78441,-93.17308,pepperoni,dog,Yes,no preference,Yes
+LEC001,22,Engineering: Other,53726,39.48214,-106.048691,pineapple,cat,No,no preference,Maybe
+LEC001,21,Computer Science,53703,33.68,-117.82,basil/spinach,cat,No,early bird,No
+LEC001,17,Computer Science,53706,25.204849,55.270782,pepperoni,neither,Yes,no preference,Maybe
+LEC001,18,Engineering: Industrial,53706,41.917519,-87.694771,basil/spinach,dog,Yes,night owl,Yes
+LEC001,18,Engineering: Biomedical,53706,42.361145,-71.057083,macaroni/pasta,dog,No,night owl,Yes
+LEC001,,Engineering: Biomedical,53703,43.073929,-89.385239,basil/spinach,dog,No,early bird,No
+LEC001,18,Economics,53706,30.20241,120.226822,Other,neither,Yes,early bird,No
+LEC001,20,Engineering: Biomedical,53703,41.198496,0.773436,pepperoni,dog,No,night owl,Yes
+LEC001,19,Engineering: Mechanical,53703,39.739235,-104.99025,pepperoni,dog,Yes,no preference,Maybe
+LEC001,20,Science: Chemistry,53703,32.16761,120.012444,pepperoni,neither,No,night owl,Maybe
+LEC001,19,Data Science,53703,43.0722,89.4008,pineapple,dog,Yes,night owl,Yes
+LEC001,18,Science: Biology/Life,53715,41.878113,-87.629799,sausage,dog,Yes,early bird,No
+LEC004,,Business: Information Systems,53715,42.360081,-71.058884,Other,dog,No,no preference,Maybe
+LEC001,21,Engineering: Biomedical,53703,44.513317,-88.013298,pepperoni,dog,No,night owl,No
+LEC001,20,Data Science,53132,43.073051,-89.40123,Other,cat,No,night owl,Maybe
+LEC001,18,Business: Actuarial,53706,48.856613,2.352222,sausage,dog,No,no preference,Maybe
+LEC001,20,Political Science,53715,48.135124,11.581981,sausage,cat,Yes,night owl,Yes
+LEC001,19,Engineering: Industrial,53703,41,-74,sausage,dog,Yes,no preference,No
+LEC001,20,Psychology,53703,43.083321,-89.372475,Other,neither,No,night owl,Yes
+LEC001,18,Computer Science and Statistics,53706,36.162663,-86.781601,mushroom,dog,Yes,early bird,Maybe
+LEC001,19,Engineering: Mechanical,53703,25.88,-80.16,pepperoni,dog,No,night owl,Yes
+LEC001,18,Computer Science,53703,46.947975,7.447447,sausage,cat,Yes,night owl,No
+LEC001,19,Business: Information Systems,53703,41.17555,73.64731,pepperoni,dog,No,night owl,Maybe
+LEC001,20,Political Science,53703,45.018269,-93.473892,sausage,dog,No,night owl,Maybe
+LEC001,,Business analytics,53705,45.50169,-73.567253,pineapple,cat,No,no preference,No
+LEC001,21,Science: Biology/Life,53726,32.060253,118.796875,mushroom,cat,No,night owl,No
+LEC001,19,Engineering: Mechanical,53706,35.806,-78.68483,none (just cheese),dog,No,night owl,Yes
+LEC005,20,Data Science,53726,31.230391,121.473701,none (just cheese),dog,Yes,no preference,Maybe
+LEC005,18,Engineering: Mechanical,53706,41.878113,-87.629799,Other,cat,No,night owl,Maybe
+LEC004,18,Statistics,53706,27.35741,-82.615471,none (just cheese),dog,Yes,early bird,No
+LEC002,20,Business: Finance,53715,35.726212,-83.491226,pepperoni,dog,Yes,no preference,Yes
+LEC002,18,Undecided,53706,43.769562,11.255814,pepperoni,dog,No,night owl,Yes
+LEC004,19,Business: Actuarial,53703,43.040433,-87.897423,sausage,cat,No,night owl,No
+LEC004,19,Engineering: Mechanical,5,25.034281,-77.396278,sausage,dog,Yes,no preference,Yes
+LEC001,,Engineering: Mechanical,53706,34.052235,-118.243683,Other,dog,Yes,night owl,Yes
+LEC003,18,Engineering: Industrial,53706,20.798363,-156.331924,none (just cheese),dog,Yes,early bird,No
+LEC002,19,Engineering: Biomedical,53703,51.1784,115.5708,pineapple,dog,Yes,night owl,No
+LEC005,19,Statistics,53703,43.05367,-88.44062,pepperoni,dog,Yes,night owl,No
+LEC004,18,Engineering: Industrial,53706,36.110168,-97.058571,none (just cheese),dog,No,early bird,Maybe
+LEC004,21,Computer Science,53703,43.07016,-89.39386,mushroom,cat,Yes,early bird,No
+LEC005,19,Data Science,53726,43.073051,-89.40123,pepperoni,dog,No,early bird,Yes
+LEC004,18,Data Science,53706,41.878113,-87.629799,macaroni/pasta,dog,Yes,early bird,Maybe
+LEC001,20,Business: Finance,53726,43.073051,-89.40123,pepperoni,dog,No,night owl,Maybe
+LEC001,18,Data Science,53706,43.038902,-87.906471,pineapple,dog,No,night owl,Maybe
+LEC001,24,Engineering: Other,53718,46.77954,-90.78511,pineapple,dog,Yes,night owl,No
+LEC001,18,Statistics,53706,22.57,88.36,pineapple,dog,Yes,night owl,Maybe
+LEC004,20,Computer Science,53715,35.016956,-224.24911,pepperoni,dog,No,night owl,Yes
+LEC001,20,Science: Biology/Life,53715,47.606209,-122.332069,none (just cheese),dog,Yes,night owl,Maybe
+LEC004,18,Engineering: Industrial,53706,21.28482,-157.83245,pineapple,dog,No,night owl,Yes
+LEC001,20,Engineering: Biomedical,53715,40.63,14.6,none (just cheese),dog,No,early bird,Maybe
+LEC004,20,Legal Studies,53703,20.798363,-156.331924,green pepper,dog,No,early bird,No
+LEC002,18,Computer Science,53706,32.060253,118.796875,sausage,dog,Yes,early bird,Maybe
+LEC002,18,Journalism,53706,31,103,none (just cheese),cat,No,night owl,Yes
+LEC004,,Computer Science,53706,147,32.5,pineapple,cat,No,early bird,Maybe
+LEC004,18,Engineering: Biomedical,53701,43.038902,-87.906471,pepperoni,dog,No,night owl,No
+LEC004,18,Engineering: Mechanical,20815,39.640259,-106.370872,sausage,dog,No,night owl,No
+LEC004,19,Engineering: Mechanical,53715,41,12,pepperoni,dog,No,no preference,Maybe
+LEC004,20,Journalism: Strategic Comm./Advertising,53703,43.073051,-89.40123,Other,dog,Yes,night owl,Yes
+LEC004,,Engineering: Mechanical,53715,43,-87.9,pepperoni,cat,Yes,early bird,Maybe
+LEC004,19,Engineering: Biomedical,53706,32.715736,117.161087,pepperoni,dog,Yes,no preference,Yes
+LEC004,18,Data Science,53706,43.073051,-89.40123,pepperoni,dog,No,night owl,Yes
+LEC004,18,History,53706,42.19381,-73.362877,none (just cheese),cat,Yes,night owl,Yes
+LEC002,19,Engineering: Mechanical,53703,39.290386,-76.61219,mushroom,dog,No,no preference,No
+LEC002,19,Engineering: Mechanical,53726,40.416775,-3.70379,macaroni/pasta,dog,No,early bird,Maybe
+LEC005,19,Engineering: Mechanical,53726,46.870899,-89.313789,sausage,dog,Yes,night owl,Maybe
+LEC004,19,Science: Biology/Life,53151,41.878113,-87.629799,sausage,dog,No,night owl,Yes
+LEC005,18,Data Science,53711,35.1796,129.0756,pepperoni,cat,Yes,night owl,Yes
+LEC004,18,Data Science,53706,37.568291,126.99778,pepperoni,dog,No,no preference,Maybe
+LEC005,17,Statistics,53706,31.23,121.47,sausage,cat,No,night owl,Maybe
+LEC003,19,Undecided,53715,43.041069,-87.909416,mushroom,dog,No,no preference,Maybe
+LEC005,19,Economics,53703,47.606209,-122.332069,pineapple,neither,No,no preference,Maybe
+LEC005,21,Science: Biology/Life,53726,40.76078,-111.891045,mushroom,dog,No,no preference,Yes
+LEC003,19,Engineering: Mechanical,53706,43,-88.27,Other,dog,No,night owl,Yes
+LEC003,20,Business: Other|Accounting,53726,43,-89,pepperoni,dog,Yes,early bird,Yes
+LEC005,18,Engineering: Other,53706,64.147209,-21.9424,pepperoni,dog,No,night owl,Yes
+LEC003,18,Data Science,53562,42.66544,21.165319,pepperoni,dog,No,night owl,Yes
+LEC005,22,Data Science,53711,39.738449,-104.984848,none (just cheese),dog,No,night owl,Yes
+LEC003,18,Engineering: Mechanical,53706,33.748997,-84.387985,mushroom,dog,No,night owl,Yes
+LEC004,19,Engineering: Mechanical,53717,41.2224,86.413,Other,dog,Yes,early bird,Maybe
+LEC003,19,Business: Actuarial,53706,39.299236,-76.609383,pineapple,dog,Yes,night owl,No
+LEC001,,Engineering: Mechanical,53703,32.776665,-96.796989,sausage,dog,No,night owl,Maybe
+LEC004,19,Engineering: Biomedical,53703,41.878113,-87.629799,pepperoni,dog,Yes,no preference,Yes
+LEC004,26,Master of Public Affairs,53715,48.118145,-123.43074,basil/spinach,dog,Yes,early bird,Yes
+LEC004,19,Engineering: Mechanical,53703,-12.12168,-45.013481,basil/spinach,dog,No,night owl,Yes
+LEC004,18,Data Science,53706,31.230391,121.473701,sausage,cat,No,night owl,No
+LEC005,21,Engineering: Industrial,53715,1.352083,103.819839,none (just cheese),neither,No,night owl,Yes
+LEC004,19,Engineering: Mechanical,53703,40.712776,-74.005974,sausage,dog,No,early bird,No
+LEC004,19,Engineering: Mechanical,53715,37.98381,23.727539,basil/spinach,dog,Yes,early bird,No
+LEC005,20,Business: Actuarial,53703,45.003288,-90.329788,sausage,dog,No,early bird,Maybe
+LEC005,20,Engineering: Mechanical,53703,43.073051,-89.40123,pepperoni,dog,Yes,early bird,No
+LEC001,21,Economics,53703,41.902782,12.496365,basil/spinach,dog,No,no preference,No
+LEC004,18,Engineering: Biomedical,53706,45.4894,93.2476,mushroom,cat,No,night owl,No
+LEC005,19,Data Science,53703,43.2708,89.7221,sausage,dog,Yes,night owl,No
+LEC003,,Engineering: Mechanical,53706,45.87128,-89.711632,pepperoni,neither,Yes,no preference,Yes
+LEC004,19,Engineering: Mechanical,53715,42.360081,-71.058884,pepperoni,dog,Yes,night owl,Maybe
+LEC004,18,Engineering: Mechanical,53706,45.056389,-92.960793,pepperoni,dog,No,night owl,Yes
+LEC003,,Computer Science,53703,43.07,-89.4,pepperoni,dog,Yes,no preference,Maybe
+LEC001,20,Business: Finance,53703,22.20315,-159.495651,Other,dog,Yes,no preference,No
+LEC005,19,Engineering: Mechanical,53703,44.74931,-92.80088,pineapple,dog,No,early bird,No
+LEC004,21,Business: Actuarial,53726,38.874341,-77.032013,pepperoni,dog,No,no preference,Yes
+LEC005,19,Engineering: Mechanical,53703,18.34791,-64.71424,basil/spinach,dog,No,night owl,No
+LEC004,18,Engineering: Mechanical,53703,27.5041,82.7145,sausage,dog,No,night owl,Maybe
+LEC005,19,Engineering: Biomedical,53706,36.462,25.375465,basil/spinach,dog,No,night owl,No
+LEC004,27,Environment & Resources,53703,37.389091,-5.984459,mushroom,dog,No,night owl,Maybe
+LEC004,19,Business: Actuarial,53726,32,-117,pepperoni,neither,Yes,night owl,Yes
+LEC005,20,Science: Physics,53703,46.2833,-89.73,pepperoni,dog,No,early bird,Maybe
+LEC003,19,Engineering: Industrial,53703,40.712776,-74.005974,basil/spinach,dog,Yes,night owl,No
+LEC003,18,Data Science,53706,40.712776,-74.005974,Other,dog,Yes,early bird,No
+LEC005,,Data Science,53703,43.073051,-89.40123,pepperoni,dog,No,night owl,No
+LEC004,21,Business: Actuarial,53703,39.19067,-106.819199,macaroni/pasta,cat,No,no preference,Maybe
+LEC006,18,Engineering: Industrial,53706,37.743042,-122.415642,green pepper,dog,Yes,no preference,No
+LEC003,20,Economics,53703,22.54,114.05,pineapple,dog,No,night owl,Yes
+LEC006,18,Data Science,53706,59.93428,30.335098,pineapple,dog,Yes,night owl,Maybe
+LEC004,19,Engineering: Mechanical,53715,45.10994,-87.209793,pepperoni,dog,Yes,early bird,No
+LEC002,20,Science: Biology/Life,53703,51.507351,-0.127758,pepperoni,dog,Yes,no preference,Yes
+LEC004,18,Environmental Studies,53703,42.360081,-71.058884,pineapple,cat,No,no preference,Maybe
+LEC004,19,Engineering: Mechanical,53715,45,-87,sausage,cat,Yes,no preference,Maybe
+LEC004,19,Engineering: Mechanical,53703,48.137,11.575,pepperoni,dog,Yes,night owl,Maybe
+LEC004,20,Engineering: Industrial,53711,48.856613,2.352222,sausage,cat,No,no preference,No
+LEC004,18,Science: Other,53706,48.410648,-114.338188,none (just cheese),dog,No,no preference,Maybe
+LEC004,18,Mathematics/AMEP,53706,24.585445,73.712479,pineapple,dog,Yes,night owl,Maybe
+LEC003,18,Data Science,53706,36.974117,-122.030792,pepperoni,cat,Yes,night owl,Yes
+LEC004,19,Computer Science,53715,40.79254,-98.70807,pepperoni,dog,Yes,night owl,No
+LEC005,19,Engineering: Mechanical,53711,30.572815,104.066803,pineapple,dog,No,night owl,Yes
+LEC001,21,Science: Chemistry,53715,3.139003,101.686852,pepperoni,neither,No,no preference,Maybe
+LEC006,18,Data Science,53706,40.46,-90.67,sausage,dog,No,night owl,No
+LEC004,20,Science: Other|Environmental Science,53715,43.073051,-89.40123,sausage,dog,No,night owl,Yes
+LEC004,20,Engineering: Biomedical,53715,30.328227,-86.136975,pepperoni,dog,Yes,no preference,Maybe
+LEC004,21,Science: Biology/Life,53703,41.385063,2.173404,macaroni/pasta,dog,No,night owl,Yes
+LEC003,18,Mathematics/AMEP,53706,42.99571,-90,sausage,dog,Yes,night owl,Yes
+LEC004,19,Engineering: Mechanical,53703,41.385063,2.173404,sausage,dog,Yes,night owl,Yes
+LEC001,,Engineering: Industrial,53706,40.7128,74.006,pepperoni,dog,No,early bird,Yes
+LEC005,18,Psychology,53706,9.167414,77.876747,mushroom,cat,No,early bird,No
+LEC003,19,Engineering: Industrial,53715,24.713552,46.675297,basil/spinach,neither,Yes,early bird,Maybe
+LEC001,18,Undecided,53706,44.8341,87.377,basil/spinach,dog,No,no preference,Yes
+LEC003,19,Engineering: Mechanical,53705,46.589146,-112.039108,none (just cheese),cat,No,night owl,Yes
+LEC001,20,Economics,53703,39.631506,118.143239,pineapple,dog,No,night owl,Maybe
\ No newline at end of file
diff --git a/sum23/lecture_materials/14_Comprehensions/lec-14-worksheet.pdf b/sum23/lecture_materials/14_Comprehensions/lec-14-worksheet.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..d0451a24284533c8c82ca8185ef74f346cfd603a
GIT binary patch
literal 62839
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

literal 0
HcmV?d00001

diff --git a/sum23/lecture_materials/14_Comprehensions/lec_14_comprehensions_template.ipynb b/sum23/lecture_materials/14_Comprehensions/lec_14_comprehensions_template.ipynb
new file mode 100644
index 0000000..45c3df5
--- /dev/null
+++ b/sum23/lecture_materials/14_Comprehensions/lec_14_comprehensions_template.ipynb
@@ -0,0 +1,1127 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Comprehensions"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import statements\n",
+    "import math\n",
+    "import csv"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Using `lambda`\n",
+    "- `lambda` functions are a way to abstract a function reference\n",
+    "- lambdas are simple functions with:\n",
+    "    - multiple possible parameters\n",
+    "    - single expression line as the function body\n",
+    "- lambdas are useful abstractions for:\n",
+    "    - mathematical functions\n",
+    "    - lookup operations\n",
+    "- lambdas are often associated with a collection of values within a list\n",
+    "- Syntax: \n",
+    "```python \n",
+    "lambda parameters: expression\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Let's sort the menu in different ways\n",
+    "- whenever you need to custom sort a dictionary, you must convert dict to list of tuples\n",
+    "- recall that you can use items method (applicable only to a dictionary)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "{'broccoli': 4.99,\n",
+       " 'orange': 1.19,\n",
+       " 'pie': 3.95,\n",
+       " 'donut': 1.25,\n",
+       " 'muffin': 2.25,\n",
+       " 'cookie': 0.79,\n",
+       " 'milk': 1.65,\n",
+       " 'bread': 5.99}"
+      ]
+     },
+     "execution_count": 1,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "menu = { \n",
+    "        'broccoli': 4.99,\n",
+    "        'orange': 1.19,\n",
+    "        'pie': 3.95, \n",
+    "        'donut': 1.25,    \n",
+    "        'muffin': 2.25,\n",
+    "        'cookie': 0.79,  \n",
+    "        'milk':1.65, \n",
+    "        'bread': 5.99}  \n",
+    "menu"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "menu.items()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort menu using item names (keys)\n",
+    "- let's first solve this using extract function\n",
+    "- recall that extract function deals with one of the inner items in the outer data structure\n",
+    "    - outer data structure is list\n",
+    "    - inner data structure is tuple"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def extract(menu_tuple):\n",
+    "    return ???"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted(menu.items(), key = ???)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dict(sorted(menu.items(), key = ???))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Now let's solve the same problem using lambdas\n",
+    "- if you are having trouble thinking through the lambda solution directly:\n",
+    "    - write an extract function\n",
+    "    - then abstract it to a lambda"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dict(sorted(menu.items(), key = lambda menu_tuple : ???))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort menu using prices (values)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dict(sorted(menu.items(), key = lambda ??? : ???))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort menu using length of item names (keys)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dict(sorted(menu.items(), key = ???))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort menu using decreasing order of prices - v1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "{'bread': 5.99,\n",
+       " 'broccoli': 4.99,\n",
+       " 'pie': 3.95,\n",
+       " 'muffin': 2.25,\n",
+       " 'milk': 1.65,\n",
+       " 'donut': 1.25,\n",
+       " 'orange': 1.19,\n",
+       " 'cookie': 0.79}"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "dict(sorted(menu.items(), key = lambda menu_tuple: menu_tuple[1], reverse = True))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort menu using decreasing order of prices - v2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dict(sorted(menu.items(), key = ???))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Iterable\n",
+    "\n",
+    "- What is an iterable? Anything that you can write a for loop to iterate over is called as an iterable.\n",
+    "- Examples of iteratables:\n",
+    "    - `list`, `str`, `tuple`, `range()` (any sequence)\n",
+    "    - `dict`"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## List comprehensions\n",
+    "\n",
+    "- concise way of generating a new list based on existing list item manipulation \n",
+    "- short syntax - easier to read, very difficult to debug\n",
+    "\n",
+    "<pre>\n",
+    "new_list = [expression for val in iterable if conditional_expression]\n",
+    "</pre>\n",
+    "- iteratble: reference to any iterable object instance\n",
+    "- conditional_expression: filters the values in the original list based on a specific requirement\n",
+    "- expression: can simply be val or some other transformation of val\n",
+    "- enclosing [ ] represents new list\n",
+    "\n",
+    "Best approach:\n",
+    "- write for clause first\n",
+    "- if condition expression next\n",
+    "- expression in front of for clause last"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Which animals are in all caps?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Recap: retain animals in all caps\n",
+    "animals = [\"lion\", \"badger\", \"RHINO\", \"GIRAFFE\"]\n",
+    "caps_animals = []\n",
+    "print(\"Original:\", animals)\n",
+    "\n",
+    "# for val in animals:\n",
+    "#     if val.upper() == val:\n",
+    "#         caps_animals.append(val)  \n",
+    "        \n",
+    "print(\"New list:\", caps_animals)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Now let's solve the same problem using list comprehension\n",
+    "<pre>\n",
+    "new_list = [expression for val in iterable if conditional_expression]\n",
+    "</pre>\n",
+    "For the below example:\n",
+    "- iterable: animals variable (storing reference to a list object instance)\n",
+    "- conditional_expression: val.upper() == val\n",
+    "- expression: val itself"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# List comprehension version\n",
+    "print(\"Original:\", animals)\n",
+    "\n",
+    "caps_animals = ???\n",
+    "print(\"New list:\", caps_animals)\n",
+    "\n",
+    "# final version to uncomment if you want:\n",
+    "# caps_animals = [val for val in animals if val.upper() == val]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Why is to tougher to debug?\n",
+    "- you cannot use a print function call in a comprehension\n",
+    "- you need to decompose each part and test it separately\n",
+    "- recommended to write the comprehension with a simpler example"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Other than a badger, what animals can you see at Henry Vilas Zoo?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(\"Original:\", animals)\n",
+    "\n",
+    "non_badger_zoo_animals = ???\n",
+    "\n",
+    "# step 1\n",
+    "# non_badger_zoo_animals = [??? for val in animals ???]\n",
+    "                          \n",
+    "# # step 2\n",
+    "# non_badger_zoo_animals = [??? for val in animals if val != \"badger\"]                          \n",
+    "\n",
+    "# # step 3\n",
+    "# non_badger_zoo_animals = [val for val in animals if val != \"badger\"]\n",
+    "\n",
+    "print(\"New list:\", non_badger_zoo_animals)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Can we convert all of the animals to all caps?\n",
+    "- if clause is optional"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(\"Original:\", animals)\n",
+    "\n",
+    "all_caps_animals = ???\n",
+    "print(\"New list:\", all_caps_animals)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Can we generate a list to store length of each animal name?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(\"Original:\", animals)\n",
+    "\n",
+    "animals_name_length = ???\n",
+    "print(\"New list:\", animals_name_length)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Using if ... else ... in a list comprehension\n",
+    "- syntax changes slightly for if ... else ...\n",
+    "\n",
+    "<pre>\n",
+    "new_list = [expression if conditional_expression else alternate_expression for val in iterable ]\n",
+    "</pre>\n",
+    "\n",
+    "- when an item satifies the if clause, you don't execute the else clause\n",
+    "    - expression is the item in new list when if condition is satified\n",
+    "- when an item does not satisfy the if clause, you execute the else clause\n",
+    "    - alternate_expression is the item in new list when if condition is not satisfied\n",
+    "    \n",
+    "- if ... else ... clauses need to come before for (not the same as just using if clause)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### What if we only care about the badger? Replace non-badger animals with \"some animal\"."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Original: ['lion', 'badger', 'RHINO', 'GIRAFFE']\n",
+      "New list: ['some animal', 'badger', 'some animal', 'some animal']\n"
+     ]
+    }
+   ],
+   "source": [
+    "animals = [\"lion\", \"badger\", \"RHINO\", \"GIRAFFE\"]\n",
+    "print(\"Original:\", animals)\n",
+    "\n",
+    "non_badger_zoo_animals = ???\n",
+    "\n",
+    "# # step 1:\n",
+    "# non_badger_zoo_animals = [   ???  for val in animals ???]\n",
+    "\n",
+    "# # step 2:\n",
+    "# non_badger_zoo_animals = [ ??? if val == \"badger\" else ??? for val in animals]\n",
+    "\n",
+    "# # step 3: fill in \"val\"\n",
+    "# non_badger_zoo_animals = [val if val == \"badger\" else ?? for val in animals]\n",
+    "\n",
+    "# # step 4: fill in else case\n",
+    "# non_badger_zoo_animals = [val if val == \"badger\" else \"some animal\" for val in animals]\n",
+    "\n",
+    "print(\"New list:\", non_badger_zoo_animals)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Dict comprehensions\n",
+    "- Version 1:\n",
+    "<pre>\n",
+    "{expression for val in iterable if condition}\n",
+    "</pre>\n",
+    "- expression has the form <pre>key: val</pre>\n",
+    "<br/>\n",
+    "- Version 2 --- the dict function call by passing list comprehension as argument:\n",
+    "<pre>dict([expression for val in iterable if condition])</pre>\n",
+    "- expression has the form <pre>(key, val)</pre>"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Create a dict to map number to its square (for numbers 1 to 5)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "squares_dict = dict()\n",
+    "for val in range(1, 6):\n",
+    "    squares_dict[val] = val * val\n",
+    "print(squares_dict)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Dict comprehension --- version 1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "square_dict = { ??? }\n",
+    "print(square_dict)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Dict comprehension --- version 2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "square_dict = dict( [ ??? ] )\n",
+    "print(square_dict)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Tuple unpacking\n",
+    "- you can directly specific variables to unpack the items inside a tuple"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "scores_dict = {\"Bob\": \"32\", \"Cindy\" : \"45\", \"Alice\": \"39\", \"Unknown\": \"None\"}\n",
+    "\n",
+    "for tuple_item in scores_dict.items():\n",
+    "    print(tuple_item)\n",
+    "    \n",
+    "print(\"--------------------\")\n",
+    "\n",
+    "for ??? in scores_dict.items():\n",
+    "    print(key, val)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### From square_dict, let's generate cube_dict"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cube_dict = {key: ??? for key, val in square_dict.items()}\n",
+    "print(cube_dict)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Convert Madison *F temperature to *C\n",
+    "- <pre>C = 5 / 9 * (F - 32)</pre>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "madison_fahrenheit = {'Nov': 28,'Dec': 20, 'Jan': 10,'Feb': 14}\n",
+    "print(\"Original:\", madison_fahrenheit)\n",
+    "\n",
+    "madison_celsius = {key: ??? \\\n",
+    "                   for key, val in madison_fahrenheit.items()}\n",
+    "print(\"New dict:\", madison_celsius)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Convert type of values in a dictionary"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "scores_dict = {\"Bob\": \"32\", \"Cindy\" : \"45\", \"Alice\": \"39\", \"Unknown\": \"None\"}\n",
+    "print(\"Original:\", scores_dict)\n",
+    "\n",
+    "updated_scores_dict = {???}\n",
+    "                       \n",
+    "# # step 1: add for statement\n",
+    "# updated_scores_dict = { ??? for key, val in scores_dict.items() ???}\n",
+    "\n",
+    "# # step 2: add if statement - but use if/else to handle None values\n",
+    "# updated_scores_dict = { ??? if val.isdigit() else ??? for key, val in scores_dict.items()}\n",
+    "\n",
+    "# # step 3: fill in \"if\" and \"else\" values\n",
+    "# updated_scores_dict = {key: int(val) if val.isdigit() else None \\\n",
+    "#                        for key, val in scores_dict.items()}\n",
+    "\n",
+    "print(\"New dict:\", updated_scores_dict)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Create a dictionary to map each player to their max score"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "scores_dict = {\"Bob\": [18, 72, 61, 5, 83], \n",
+    "               \"Cindy\" : [27, 11, 55, 73, 87], \n",
+    "               \"Alice\": [16, 33, 42, 89, 90], \n",
+    "               \"Meena\": [39, 93, 9, 3, 55]}\n",
+    "\n",
+    "{player: max(scores) for player, scores in scores_dict.items()}"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Practice problems - sorted + lambda"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Use sorted and lambda function to sort this list of dictionaries based on the score, from low to high"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "scores = [  {\"name\": \"Bob\", \"score\": 32} ,\n",
+    "            {\"name\": \"Cindy\", \"score\" : 45}, \n",
+    "            {\"name\": \"Alice\", \"score\": 39}\n",
+    "     ]\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Now, modify the lambda function part alone to sort the list of dictionaries based on the score, from high to low"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Now, go back to the previous lambda function definition and use sorted parameters to sort the list of dictionaries based on the score, from high to low"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Student Information Survey dataset analysis"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def median(items):\n",
+    "    items.sort()\n",
+    "    n = len(items)\n",
+    "    if n % 2 != 0:\n",
+    "        middle = items[n // 2]\n",
+    "    else:\n",
+    "        first_middle = items[n // 2]\n",
+    "        second_middle = items[(n // 2) - 1]\n",
+    "        middle = (first_middle + second_middle) / 2\n",
+    "    return middle"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# inspired by https://automatetheboringstuff.com/2e/chapter16/\n",
+    "def process_csv(filename):\n",
+    "    exampleFile = open(filename, encoding=\"utf-8\")  \n",
+    "    exampleReader = csv.reader(exampleFile) \n",
+    "    exampleData = list(exampleReader)        \n",
+    "    exampleFile.close()  \n",
+    "    return exampleData\n",
+    "\n",
+    "survey_data = process_csv('cs220_survey_data.csv')\n",
+    "cs220_header = survey_data[0]\n",
+    "cs220_data = survey_data[1:]\n",
+    "cs220_header"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def cell(row_idx, col_name):\n",
+    "    \"\"\"\n",
+    "    Returns the data value (cell) corresponding to the row index and \n",
+    "    the column name of a CSV file.\n",
+    "    \"\"\"\n",
+    "    col_idx = cs220_header.index(col_name) \n",
+    "    val = cs220_data[row_idx][col_idx]  \n",
+    "    \n",
+    "    # handle missing values\n",
+    "    if val == '':\n",
+    "        return None\n",
+    "    \n",
+    "    # handle type conversions\n",
+    "    if col_name == \"Age\":\n",
+    "        val = int(val)\n",
+    "        if 0 < val <= 118:\n",
+    "            return val\n",
+    "        else:\n",
+    "            # Data cleaning\n",
+    "            return None\n",
+    "    elif col_name in ['Zip Code',]:\n",
+    "        return int(val)\n",
+    "    elif col_name in ['Latitude', 'Longitude']:\n",
+    "        return float(val)\n",
+    "    \n",
+    "    return val"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def transform(header, data):\n",
+    "    \"\"\"\n",
+    "    Transform data into a list of dictionaries, while taking care of type conversions\n",
+    "    \"\"\"\n",
+    "    #should be defined outside the for loop, because it stores the entire data\n",
+    "    dict_list = []     \n",
+    "    for row_idx in range(len(data)):\n",
+    "        row = data[row_idx]\n",
+    "        #should be defined inside the for loop, because it represents one row as a \n",
+    "        #dictionary\n",
+    "        new_row = {}         \n",
+    "        for i in range(len(header)):\n",
+    "            val = cell(row_idx, header[i])\n",
+    "            new_row[header[i]] = val\n",
+    "        dict_list.append(new_row)\n",
+    "    return dict_list\n",
+    "        \n",
+    "transformed_data = transform(cs220_header, cs220_data)\n",
+    "transformed_data[:2] # top 2 rows"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def bucketize(data, bucket_column):\n",
+    "    \"\"\"\n",
+    "    data: expects list of dictionaries\n",
+    "    bucket_column: column for bucketization\n",
+    "    generates and returns bucketized data based on bucket_column\n",
+    "    \"\"\"\n",
+    "    # Key: unique bucketize column value; Value: list of dictionaries \n",
+    "    # (rows having that unique column value)\n",
+    "    buckets = dict()\n",
+    "    for row_dict in data:\n",
+    "        col_value = row_dict[bucket_column]\n",
+    "        if col_value not in buckets:\n",
+    "            buckets[col_value] = []\n",
+    "        buckets[col_value].append(row_dict)\n",
+    "        \n",
+    "    return buckets"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### What is the average age of \"LEC001\" students?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "lecture_buckets = bucketize(transformed_data, \"Lecture\")\n",
+    "lec001_bucket = lecture_buckets[\"LEC001\"]\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### What is the average age of \"LEC001\" students who like \"pineapple\" pizza topping?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### What are the sleep habits of the youngest students?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "min_age = None\n",
+    "\n",
+    "# pass 1: find minimum age\n",
+    "\n",
+    "\n",
+    "# pass 2: find sleep habit of students with minimum age\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### How many students are there is each lecture?\n",
+    "- Create a `dict` mapping each lecture to the count of students."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# v1\n",
+    "{}"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# v2\n",
+    "{}"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Find whether 15 oldest students in the class are runners?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "students_with_age = []"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Compute median age per lecture in one step using `dict` and `list` comprehension."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "age_by_lecture = {} # Key: lecture; Value: list of ages\n",
+    "\n",
+    "for lecture in lecture_buckets:\n",
+    "    lecture_students = lecture_buckets[lecture]\n",
+    "    ages = []\n",
+    "    for student in lecture_students:\n",
+    "        age = student[\"Age\"]\n",
+    "        if age == None:\n",
+    "            continue\n",
+    "        ages.append(age)\n",
+    "    age_by_lecture[lecture] = ages\n",
+    "\n",
+    "median_age_by_lecture = {} # Key: lecture; Value: median age of that lecture\n",
+    "for lecture in age_by_lecture:\n",
+    "    median_age = median(age_by_lecture[lecture])\n",
+    "    median_age_by_lecture[lecture] = median_age\n",
+    "    \n",
+    "print(median_age_by_lecture)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Compute max age per lecture in one step using `dict` and `list` comprehension."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Practice problems - comprehensions"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Generate a new list where each number is a square of the original nummber in numbers list"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "numbers = [44, 33, 56, 21, 19]\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Generate a new list of floats from vac_rates, that is rounded to 3 decimal points"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "vac_rates = [23.329868, 51.28772, 76.12232, 17.2, 10.5]\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Generate a new list of ints from words, that contains length of each word"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "words = ['My', 'very', 'educated', 'mother', 'just', 'served', 'us', 'noodles']\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Create 2 dictionaries to map each player to their min and avg score"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "scores_dict = {\"Bob\": [18, 72, 61, 5, 83], \n",
+    "               \"Cindy\" : [27, 11, 55, 73, 87], \n",
+    "               \"Alice\": [16, 33, 42, 89, 90], \n",
+    "               \"Meena\": [39, 93, 9, 3, 55]}\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Student Information Survey dataset"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Create dict mapping unique age to count of students with that age.\n",
+    "- Order the dictionary based on increasing order of ages\n",
+    "- Make sure to drop student dictionaries which don't have Age column information (we already did this in a previous example)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Find whether 15 youngest students in the class are pet owners?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/sum23/lecture_materials/14_Func_Refs/lec_14_function_references_template.ipynb b/sum23/lecture_materials/14_Func_Refs/lec_14_function_references_template.ipynb
new file mode 100644
index 0000000..f735f5d
--- /dev/null
+++ b/sum23/lecture_materials/14_Func_Refs/lec_14_function_references_template.ipynb
@@ -0,0 +1,967 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Function references"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Recursion review"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Nested data structures are defined recursively.\n",
+    "\n",
+    "# A Python list can contain lists\n",
+    "# A Python dictionary can contain dictionaries\n",
+    "# A JSON dictionary can contain a JSON dictionary"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Trace Recursion by hand\n",
+    "# Run this on your own in Python Tutor\n",
+    "\n",
+    "def mystery(a, b): \n",
+    "    # precondition: assume a > 0 and b > 0\n",
+    "    if b == 1: \n",
+    "        return a\n",
+    "    return a * mystery(a, b - 1)\n",
+    "\n",
+    "# make a function call here\n",
+    "mystery(3, 2)\n",
+    "\n",
+    "# TODO: what does the mystery function compute?\n",
+    "\n",
+    "# Question: What would be the result of the below function call?\n",
+    "# mystery(-3, -1) \n",
+    "# Answer: "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Learning Objectives:\n",
+    "\n",
+    "- Define a function reference and trace code that uses function references.\n",
+    "- Explain the default use of `sorted()` on lists of tuples, and dictionaries.\n",
+    "- Sort a list of tuples, a list of dictionaries, or a dictionary using a function as a key.\n",
+    "- Use a lambda expression when sorting."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Functions are objects\n",
+    "\n",
+    "- Every data in Python is an object instance, including a function definition\n",
+    "- Implications:\n",
+    "    - variables can reference functions\n",
+    "    - lists/dicts can reference functions\n",
+    "    - we can pass function references to other functions\n",
+    "    - we can pass lists of function references to other functions"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example 1: function object references\n",
+    "#### Use PyTutor to step through this example"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "l1 = [1, 2, 3]    # Explanation: l1 should reference a new list object\n",
+    "l2 = l1           # Explanation: l2 should reference whatever l1 references\n",
+    "\n",
+    "def f(l):         # Explanation: f should reference a new function object\n",
+    "    return l[-1]\n",
+    "\n",
+    "g = f             # Explanation: g should reference whatever f references\n",
+    "\n",
+    "num = f(l2)       # Explanation: l should reference whatever l2 references\n",
+    "                  # Explanation: num should reference whatever f returns\n",
+    "\n",
+    "print(num)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Function references\n",
+    "\n",
+    "- Since function definitions are objects in Python, function reference is a variable that refers to a function object.\n",
+    "- In essence, it gives a function another name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Both these calls would have run the same code, returning the same result\n",
+    "num = f(l1)\n",
+    "num = g(l2) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example 2: function references can be passed as arguments to another function, wow!\n",
+    "#### Use PyTutor to step through this example"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def say_hi():\n",
+    "    print(\"Hello there!\")\n",
+    "\n",
+    "def say_bye():\n",
+    "    print(\"Wash your hands and stay well, bye!\")\n",
+    "    \n",
+    "f = say_hi\n",
+    "f()\n",
+    "f()\n",
+    "f = say_bye\n",
+    "f()\n",
+    "f()\n",
+    "f()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for i in range(2):\n",
+    "    say_hi()\n",
+    "\n",
+    "for i in range(3):\n",
+    "    say_bye()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def call_n_times(f, n):\n",
+    "    for i in range(n):\n",
+    "        f()\n",
+    "\n",
+    "call_n_times(say_hi, 2)\n",
+    "call_n_times(say_bye, 3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# call_n_times(say_bye(), 3) # uncomment to see TypeError\n",
+    "\n",
+    "# Question: Why does this give TypeError?\n",
+    "# Answer: when you specify say_bye(), you are invoking the function, which returns None\n",
+    "#         (default return value when return statement is not defined)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example 3: Apply various transformations to all items on a list"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "L = [\"1\", \"23\", \"456\"]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Write apply_to_each function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# a. Input: list object reference, function object\n",
+    "# b. Output: new list reference to transformed object\n",
+    "# c. Pseudocode:\n",
+    "#        1. Initiliaze new empty list for output - we don't want to modify \n",
+    "#           the input list!      \n",
+    "#        2. Process each item in input list\n",
+    "#        3. Apply the function passed as arugment to 2nd parameter\n",
+    "#        4. And the transformed item into output list\n",
+    "#        5. return output list\n",
+    "\n",
+    "def apply_to_each(original_L, f):\n",
+    "    \"\"\"\n",
+    "    returns a new list with transformed items, by applying f function\n",
+    "    to each item in the original list\n",
+    "    \"\"\"\n",
+    "\n",
+    "    # step 1: create a new list\n",
+    "    # new_vals = []\n",
+    "\n",
+    "    # step 2: iterate through items in original_L\n",
+    "    # for val in original_L:\n",
+    "        # step 3: apply f to each item\n",
+    "        # new_vals.append(f(val))\n",
+    "    \n",
+    "    # step 4: return new list\n",
+    "    # return new_vals \n",
+    "    pass"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Apply `int` function to list L using apply_to_each function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "apply_to_each(..., ...)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Write strip_dollar function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# a. Input: string value\n",
+    "# b. Output: transformed string value\n",
+    "# c. Pseudocode: \n",
+    "#       1. Check whether input string begins with $ - \n",
+    "#          what string method do you need here?\n",
+    "#        2. If so remove it\n",
+    "\n",
+    "def strip_dollar(s):\n",
+    "    \"\"\"\n",
+    "    Removes the beginning $ sign from string s\n",
+    "    \"\"\"\n",
+    "\n",
+    "    # Step 1: check whether input string begins with $\n",
+    "    if s.???(\"$\"):\n",
+    "        # Step 2: if so, remove it\n",
+    "        s = s[1:]\n",
+    "    \n",
+    "    # Step 3: return the new string\n",
+    "    return s"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Apply strip_dollar function and then apply int function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "L = [\"$1\", \"23\", \"$456\"]\n",
+    "vals = apply_to_each(L, strip_dollar)\n",
+    "print(vals)\n",
+    "vals = apply_to_each(vals, int)\n",
+    "print(vals)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Apply upper method call to the below list L by using apply_to_each function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "L = [\"aaa\", \"bbb\", \"ccc\"]\n",
+    "vals = apply_to_each(L, ???)\n",
+    "print(vals)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Custom sorting nested data structures\n",
+    "\n",
+    "Examples:\n",
+    "- list of tuples\n",
+    "- list of dictionaries"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example 4: Custom sort a list of tuples"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "badgers_in_nfl = [ # tuple storing (first name, last name, age)\n",
+    "                   (\"Jonathan\", \"Taylor\", 22 ), \n",
+    "                   (\"Russel\", \"Wilson\", 32), \n",
+    "                   (\"Troy\", \"Fumagalli\", 88),\n",
+    "                   (\"Melvin\", \"Gordon\", 27), \n",
+    "                   (\"JJ\", \"Watt\", 31),\n",
+    "                 ]\n",
+    "\n",
+    "sorted(badgers_in_nfl) # or sort() method by default uses first element to sort"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### What what if we want to sort by the last name or by the length of the name?\n",
+    "\n",
+    "- `sorted` function and `sort` method takes a function reference as keyword argument for the parameter `key`\n",
+    "- We can define functions that take one of the inner data structure as argument and return the field based on which we want to perform the sorting.\n",
+    "    - We then pass a reference to such a function as argument to the parameter `key`.\n",
+    "    \n",
+    "#### Define functions that will enable extraction of item at each tuple index position. These functions only deal with a single tuple processing"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def extract_fname(player_tuple):  # function must have exactly one parameter\n",
+    "    return player_tuple[0]\n",
+    "\n",
+    "# def extract_lname(player_tuple):\n",
+    "#     return ???\n",
+    "\n",
+    "# def extract_age(player_tuple):\n",
+    "#     return ???"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Test extract_fname function on the tuple ('JJ', 'Watt', 31)\n",
+    "extract_fname(('JJ', 'Watt', 31))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Sort players by their last name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted(badgers_in_nfl, key = ???) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Sort players by their age"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted(badgers_in_nfl, key = ???) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Sort players by descending order of age"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted(badgers_in_nfl, key = ???, reverse = ???) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Sort players by length of first name + length of last name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def compute_name_length(player_tuple):\n",
+    "    return ???\n",
+    "\n",
+    "sorted(badgers_in_nfl, ???) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example 5: Custom sort a list of dictionaries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "hurricanes = [\n",
+    "    {\"name\": \"A\", \"year\": 2000, \"speed\": 150},\n",
+    "    {\"name\": \"B\", \"year\": 1980, \"speed\": 100},\n",
+    "    {\"name\": \"C\", \"year\": 1990, \"speed\": 250},\n",
+    "]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Extract hurricane at index 0"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "hurricanes[0]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Extract hurricane at index 1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "hurricanes[1]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Can you compare hurricane at index 0 and hurricane at index 1 using \"<\" operator?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# hurricanes[0] < hurricanes[1] #uncomment to see TypeError"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### What about calling sorted method by passing hurricanes as argument?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# sorted(hurricanes) # Doesn't work because there isn't a defined \"first\" key in a dict.\n",
+    "# Unlike tuple, where the first item can be considered \"first\" by ordering."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort hurricanes based on the year"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# a. Input: single hurricane's dict\n",
+    "# b. Output: return \"year\" value from the dict\n",
+    "\n",
+    "def get_year(hurricane_dict):\n",
+    "    ???\n",
+    "\n",
+    "sorted(hurricanes, ???)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort hurricanes in descending order of their year"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted(hurricanes, key = get_year, reverse = True) \n",
+    "# alternatively get_year function could return negative of year \n",
+    "# --- that produces the same result as passing True as argument to reverse parameter"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort hurricanes in ascending order of their speed"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "hurricanes = [\n",
+    "    {\"name\": \"A\", \"year\": 2000, \"speed\": 150},\n",
+    "    {\"name\": \"B\", \"year\": 1980, \"speed\": 100},\n",
+    "    {\"name\": \"C\", \"year\": 1990}, # notice the missing speed key\n",
+    "]\n",
+    "\n",
+    "def get_speed(hurricane):\n",
+    "    return ???\n",
+    "\n",
+    "sorted(hurricanes, key = get_speed)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example 6: How can you pass string method to sorted function?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted([\"A\", \"b\", \"C\", \"d\"])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted([\"A\", \"b\", \"C\", \"d\"], key = ???) \n",
+    "# hint: to capitalize \"hello\", we call \"hello\".upper() or str.upper(\"hello\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Sorting dictionary by keys / values"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example 7: sorting dictionaries"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "players = {\n",
+    "    \"bob\": 20, \n",
+    "    \"alice\": 8, \n",
+    "    \"alex\": 9, \n",
+    "    \"cindy\": 15} # Key: player_name; Value: score\n",
+    "players"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### This only returns a list of sorted keys. What if we want to create a new sorted dictionary object directly using sorted function?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted(players) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Let's learn about items method on a dictionary\n",
+    "- returns a list of tuples\n",
+    "- each tuple item contains two items: key and value"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# players.items()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Write an extract function to extract dict value (that is player score), using items method return value"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def extract_score(player_tuple):\n",
+    "    return player_tuple[1]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Sort players dict by key"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# we'll walk through this step-by-step\n",
+    "# step1: \n",
+    "sorted(???, key = ???)\n",
+    "\n",
+    "# step 2: fill in blanks\n",
+    "# sorted(players, key = extract_score)  # --> uncomment!\n",
+    "\n",
+    "# step 3: evaluate the input, is it right?\n",
+    "# no -- what's happening? see next cell\n",
+    "# We want the input to extract_score to be a tuple, not a key\n",
+    "\n",
+    "# fix the code\n",
+    "# sorted(players.items(), key = extract_score) --> uncomment"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# when we call sorted(players, key = extract_score), this is what gets compared under the hood:\n",
+    "for item in players:\n",
+    "    print(item[1])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "How can you convert sorted list of tuples back into a `dict`?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "sorted(players, key=extract_score)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for item in players:\n",
+    "    print(item[1])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Using `lambda`\n",
+    "- `lambda` functions are a way to abstract a function reference\n",
+    "- lambdas are simple functions with:\n",
+    "    - multiple possible parameters\n",
+    "    - single expression line as the function body\n",
+    "- lambdas are useful abstractions for:\n",
+    "    - mathematical functions\n",
+    "    - lookup operations\n",
+    "- lambdas are often associated with a collection of values within a list\n",
+    "- Syntax: \n",
+    "```python \n",
+    "lambda parameters: expression\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Now let's write the same solution using lambda."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dict(sorted(players.items(), key = lambda item: item[1] ))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### What about sorting dictionary by values using lambda?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dict(sorted(players.items(), key = ???))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Now let's sort players dict using length of player name."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "dict(sorted(players.items(), key = ???))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Self-practice: Use lambdas to solve the NFL sorting questions"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(badgers_in_nfl)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Sort players using their first name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Sort players using their last name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Sort players using their age"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Sort players using the length of first name and last name"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
-- 
GitLab