BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//American Young Coder - ECPv6.10.1.1//NONSGML v1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:American Young Coder
X-ORIGINAL-URL:https://www.ayclogic.com
X-WR-CALDESC:Events for American Young Coder
REFRESH-INTERVAL;VALUE=DURATION:PT1H
X-Robots-Tag:noindex
X-PUBLISHED-TTL:PT1H
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
DTSTART:20230312T100000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
DTSTART:20231105T090000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230606T170000
DTEND;TZID=America/Los_Angeles:20230606T180000
DTSTAMP:20260507T001207
CREATED:20230607T011416Z
LAST-MODIFIED:20230607T011416Z
UID:20121-1686070800-1686074400@www.ayclogic.com
SUMMARY:5:00 PM – Python Object Oriented Programming – Sebastian
DESCRIPTION:Today We Did\n\nStarted and almost finished Supermarket Application OOP\nSaw a great example about why objects are helpful (they can store multiple attributes)\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nName your homework JUN6_supermarket_hw (or just the same name as the file we created in class)\, please submit by next Monday.\nHomework: We now need to handle what happens outside of the while loop (still inside the application_loop method). All the code we’re writing for our homework will be on the portion right outside of the while loop after it ends (assuming the user typed 4 as selection).\na) Start by finding a way to keep track of the total cost of the entire shopping cart. Then\, increment that tracker by the price of the current item as you loop through each item in the cart. \nb) Inside this loop\, also print out some basic information about the current item in the cart. 
URL:https://www.ayclogic.com/event/500-pm-python-object-oriented-programming-sebastian-8/
CATEGORIES:OOP Python,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230610T140000
DTEND;TZID=America/Los_Angeles:20230610T150000
DTSTAMP:20260507T001207
CREATED:20230610T233855Z
LAST-MODIFIED:20230610T233855Z
UID:20171-1686405600-1686409200@www.ayclogic.com
SUMMARY:2 PM – Intro To Python – Sebastian
DESCRIPTION:Today We Did\n\nReviewed dictionaries\nFinished phone book dictionary program\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nName your homework JUN10_dictionary_hw\, please submit by next Friday.\nHomework: In the book:\na) Page 92 to 97\nb) Page 99 TRY IT YOURSELF 6-1 and 6-2
URL:https://www.ayclogic.com/event/2-pm-intro-to-python-sebastian-33/
CATEGORIES:OOP Python,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230613T170000
DTEND;TZID=America/Los_Angeles:20230613T180000
DTSTAMP:20260507T001207
CREATED:20230614T012112Z
LAST-MODIFIED:20230614T012112Z
UID:20204-1686675600-1686679200@www.ayclogic.com
SUMMARY:5:00 PM – Python Object Oriented Programming – Sebastian
DESCRIPTION:Today We Did\n\nReviewed homework\nSpent a lot of time understanding the pro’s and con’s of attributes vs using the variables we learned about in the beginning of class “local variables”\nReviewed the core concepts of object oriented programming before moving on to inheritance (coming up next week)\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nName your homework JUN13_supermarket_hw\, please submit by next Monday.\nHomework: Given the code that we have\, finish up the rest of the ShoppingCartApplication class by adding the correct print statements where the comments specify.\n \n\nfrom groceryitem import GroceryItem\n\n\nclass ShoppingCartApplication:\n\n    def __init__(self):\n        self.menu = """\nWhat do you want to purchase:\n1. Milk - $5\n2. Eggs - $4\n3. Orange Juice - $6\n4. I am done\, checkout please\nEnter your selection: """\n        # List of GroceryItem\n        self.shopping_cart = []\n        # Dictionary mapping selection to GroceryItem\n        self.menu_items = {\n            "1": GroceryItem("Milk"\, 5\, True)\,\n            "2": GroceryItem("Eggs"\, 4\, True)\,\n            "3": GroceryItem("Orange Juice"\, 6\, False)\n        }\n\n    def check_out(self):\n        cost = 0\n        for grocery_obj in self.shopping_cart:\n            if grocery_obj.is_frozen:\n                pass  # Should print "Frozen grocery item: Milk"\n            else:\n                pass  # Should print "Normal grocery item: Orange Juice"\n            cost += grocery_obj.price\n        print("total cost:"\, cost)\n\n    def application_loop(self):\n        while True:\n            selection = input(self.menu)\n            if selection not in ["1"\, "2"\, "3"\, "4"]:\n                print("Invalid selection")\n            elif selection == "4":\n                break\n            else:\n                grocery_obj = self.menu_items[selection]\n                self.shopping_cart.append(grocery_obj)\n        self.check_out()\n\n\ncart = ShoppingCartApplication()\ncart.application_loop()
URL:https://www.ayclogic.com/event/500-pm-python-object-oriented-programming-sebastian-9/
CATEGORIES:OOP Python
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230616T170000
DTEND;TZID=America/Los_Angeles:20230616T180000
DTSTAMP:20260507T001207
CREATED:20230617T010753Z
LAST-MODIFIED:20230617T010753Z
UID:20244-1686934800-1686938400@www.ayclogic.com
SUMMARY:5:00 PM – Python Object Oriented Programming – Shawn
DESCRIPTION:Today We Did\n\nCreate new class called Staff\nReviewed the difference between attributes and parameters\nAdded staff methods\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nAdd new files to SchoolSystem folder with the following content\nHomework:\na) Create Classroom class which contains attributes class_name\, class_type\, class_size \nb) Create add_classroom() method to SchoolSystem class which makes an instance of our new Classroom class (make an object)\, and saves that object into a new classroom_dictionary (same thing we’ve been doing for our previous add_something() methods). \nc) Create list_classrooms() method to SchoolSystem class which prints all attributes of all Classroom objects in our classroom_dictionary (same as previous list_something() methods). 
URL:https://www.ayclogic.com/event/500-pm-python-object-oriented-programming-shawn/
CATEGORIES:OOP Python,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230617T140000
DTEND;TZID=America/Los_Angeles:20230617T150000
DTSTAMP:20260507T001207
CREATED:20230618T004616Z
LAST-MODIFIED:20230618T004616Z
UID:20256-1687010400-1687014000@www.ayclogic.com
SUMMARY:2 PM – Python Object Oriented Programming – Sebastian
DESCRIPTION:Today We Did\n\nFinished Grocery System V2\nBegan learning about object oriented programming\nLearned about classes\, constructors\, attributes\, methods\, and objects\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nName your homework JUN17_robux_dictionaries\, please submit by next Friday.\nHomework: Please recreate our old Robux project using dictionaries the way we did to the grocery shopping system in class. 
URL:https://www.ayclogic.com/event/2-pm-python-object-oriented-programming-sebastian/
CATEGORIES:OOP Python,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230620T170000
DTEND;TZID=America/Los_Angeles:20230620T180000
DTSTAMP:20260507T001207
CREATED:20230621T011833Z
LAST-MODIFIED:20230621T011849Z
UID:20301-1687280400-1687284000@www.ayclogic.com
SUMMARY:5:00 PM – Python Object Oriented Programming – Sebastian
DESCRIPTION:Today We Did\n\nIntroduction to inheritance\nBegan Monster System project\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nName your homework JUN20_monster_system_hw\, please submit by next Monday.\nHomework: Follow the instructions to build on to the code we made in class.a) Add on to our previous code from the MonsterSystem class so that the following monsters get these health and max_attack ranges:\ndragon\, 100\, 50\ntroll\, 50\, 20\nwater_golem\, 30\, 20\ncyclops\, 60\, 30 \nb) Now we should have 3 variables in our add_monster() method. Use these 3 variables to create a Monster object\, passing those 3 variables in as parameters to the constructor. \nc) Finally time to use our self.monster_dictionary attribute. Use the species variable as the key\, and the object we made in part (b) as the value. AKA\, add the new monster object to our dictionary using species as the key. \nCode from class in case you lost it: \n\nimport random\n\nclass MonsterSystem:\n\n    def __init__(self):\n        self.main_menu = """\nMain Menu\n1. Add Monster\n2. List all monsters\n3. Play Adventure\n4. Exit\nEnter your selection: """\n\n        self.attack_menu = """\n1. Magic attack\n2. Sword attack - 10 to 20 damage\nEnter your selection: """\n\n        self.magic_attack_menu = """\nWhat kind of magic attack you want to do:\n1. Fire magic  - Max damage: 10\n2. Water magic - Max damage: 10\n3. Earth magic - Max damage: 15\n4. Wind magic  - Max damage:  8 \nEnter your selection: """\n\n        self.monster_list = ["dragon"\, "troll"\, "water_golem"\, "cyclops"]\n        self.monster_healths = {\n            "dragon": 100\n        }\n        self.monster_max_attacks = {\n            "dragon": 50\n        }\n        self.monster_dictionary = {}\n        self.player_health = 200\n\n    def add_monster(self):\n        species = random.choice(self.monster_list)\n        health = random.randint(self.monster_healths[species])\n        max_attack = random.randint(self.monster_max_attacks[species]\n\n    def application_loop(self):\n        while True:\n            selection = input(self.main_menu)\n            if selection == "1":\n                self.add_monster()
URL:https://www.ayclogic.com/event/500-pm-python-object-oriented-programming-sebastian-10/
CATEGORIES:OOP Python,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230624T140000
DTEND;TZID=America/Los_Angeles:20230624T150000
DTSTAMP:20260507T001207
CREATED:20230625T060956Z
LAST-MODIFIED:20230625T060956Z
UID:20376-1687615200-1687618800@www.ayclogic.com
SUMMARY:2 PM – Python Object Oriented Programming – Sebastian
DESCRIPTION:Today We Did\n\nWent over dictionary homework\nReviewed more core OOP concepts like when/why attributes are helpful and an be used\nCreated Dog class and showed how objects can interact with each other\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nName your homework JUN24_oop_hw\, please submit by next Friday.\nHomework:\na) Page 162 – TRY IT YOURSELF\nb) Page 163 to Page 166 – copy code to Thonny and run it.
URL:https://www.ayclogic.com/event/2-pm-python-object-oriented-programming-sebastian-2/
CATEGORIES:OOP Python,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230627T170000
DTEND;TZID=America/Los_Angeles:20230627T180000
DTSTAMP:20260507T001207
CREATED:20230628T013841Z
LAST-MODIFIED:20230628T013841Z
UID:20412-1687885200-1687888800@www.ayclogic.com
SUMMARY:5:00 PM – Python Object Oriented Programming – Sebastian
DESCRIPTION:Today We Did\n\nContinued Monster System program\nAdded new menu items to get the last bit of required user input\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nName your homework however you’d like (you may submit your original copy from class)\, please submit by next Monday.\nHomework: Complete the following:\na) At the end of our play() method in the MonsterSystem class\, if the attack_selection was 1 then call magic_attack()\, if it was 2 then call sword_attack() \nb) magic_attack(self\, monster) will get user input while showing the user the magic_attack_menu attribute\, then store it in variable named selection. If selection is 1\, set a variable to a random int from 5-10\, if its 2 then random int 5-10\, if its 3 then random int 5-15\, if its 4 random int 5-8 (from 5 to the specified max value in the menu attribute). \nc) Then by looking at the magic_attack_menu\, you will call the receive_magic_attack() method belonging to the monster which was passed as a parameter to magic_attack()\, giving receive_magic_attack the random number and the corresponding magic type (fire/water/earth/wind) as parameters. \nd) Finally\, add a case to see if the user gave an invalid selection (since you already checked for 1\,2\,3\,4\, we can simplify this). If so\, print an error message and ‘return’ from the method
URL:https://www.ayclogic.com/event/500-pm-python-object-oriented-programming-sebastian-11/
CATEGORIES:OOP Python,Python Class
END:VEVENT
END:VCALENDAR