Zero Accounting Software 2023, bill for hourly service of staff, set up items, and enter billable time.  First, a word from our sponsor. Well, actually these are just items that we picked from the YouTube shopping affiliate program, but that's actually good for you because these aren't things that were just given to us from some large corporation which we don't even use in exchange for us selling them to you. These are things that we actually researched, purchased, and used ourselves. Bayer Dynamic? Not sure if I said that right, but this is the DT770 Pro 250 OHM Studio Reference Closed Back Headphones. I wear headphones basically every day for a large part of the day. They are important to me. Therefore, I've gone through many different kinds of headphones. I've had these for some time and they've worked quite well. They fit over my ears, but I'm still able to put my glasses on under the headphones. The headphones not pinching too tight on the glasses to give me a headache, which is nice. The quality of the patting is good and it has lasted for some time. I've had these for some time now and they haven't gotten all torn up on me or anything like that. I also like that I have a cord when I'm doing my recordings as opposed to a USB centered headphone because that frees up a USB port and I find the USB headphones to be less reliable. They come with an audio jack that looks like this, which is useful for me because that plugs into my audio interface. However, if you want to use the headphones for some other purpose, I believe it's fairly easy to get a converter to other types of audio jacks. If you would like a commercial free experience, consider subscribing to our website at accountinginstruction.com or accountinginstruction.thinkific.com where we have many different courses. You can purchase one at a time or have a subscription model giving you access to all the courses. Courses which are well organized have other resources like Excel files and PDF files to download and no commercials. Here we are in our custom Zero Home page going into the company file. We set up in a prior presentation that being get great guitars. We're going to duplicate some tabs to put reports in like we do every time. Right-click in the tab up top so we can duplicate it. Back to the tab to the middle. We're going to the accounting dropdown and the balance sheet report. We'll tab to the right then accounting dropdown. We want the income statement, but this time the comparative income statement. We set up in a prior presentation comparing the current month, February that we are working in to the prior month we did data input for January. Going to the tab to the left so we can change the date range, date range change, customizing it. Drop down to 2023. End of it and update the report. Going back to the first tab, we're going to imagine now that we're in a system that's similar to what you might see in a job cost type of system for a service industry. Something like a CPA firm for example or a law firm where we have staff that is doing work. They're accumulating time and we then are going to collect their time sheets periodically and put them into the system so we can bill our clients or customers. But in our case, we're not talking about accountants, lawyers. We're talking about guitar instructors. We've got our guitar instructors doing work. They're doing lessons and they're going to give us the time sheets of who they did the lessons for so that we can do the billing process for them. Quick look at our flow chart. This is from QuickBooks desktop, but we're just looking at the flow of activities to get an idea of what we're doing here from an accounting flow perspective. Now notice that oftentimes if you had someone set up as employee's, then you'd have the employee's cycle. Remember that the employee's cycle would normally be just an easy thing, just like another vendor cycle type of thing, except that you often have to deal with laws and regulations such as withholdings in the United States, for example, which makes the payroll cycle much, much more complex that you have to deal with. Obviously, if we're collecting time, we might need that to help us to populate the payroll cycle because we'll need to enter the time if we're paying them hourly to calculate payroll. However, it could be the fact that we pay people on a salary basis, which is often the case in a law firm or a CPA firm. We pay them salary, but unfortunately for them, they still have to track their time oftentimes. Because they have to give us the information on who they worked for so that we can take that information and help it to bill the client out for that time. So we still have the issue of entering time, not necessarily to process the payroll, but in order to basically bill the clients. We're going to get the information in some format from our staff, in this case, our guitar lesson, instructors, and that could be inside of a zero system and our payroll system or something like that. But it might be in another system that we use just to track the time. It might just be handwritten. It might be in an Excel worksheet. And we're going to get that periodically, possibly at the end of the week, the end of every two weeks, or the end of the month, for example. And then we will use that to go through our billing cycle, putting that into the system so that we can, uh, bill the clients for it. So if we're going to do that over here in zero, oftentimes we're going to set up projects to do that. So we can set up the projects because the projects allow us to bill, uh, within the project. Now, remember that the project is linked. It's kind of like the new system for a job cost system. So it's kind of like what you would think of as jobs. Oftentimes that's how it's often used. So typically we would have a client. Set up and then we could set up a project, uh, related to that client. So let's first see how that would work. Um, we've, we did a little bit of this in the first month. Let's, uh, reiterate it here. So we're going to go to the contacts. And let's say we set up a new contact. And I'm just going to go totally generic this time and just call it customer one. Yes. That's how imaginative we have gotten here. That's the level of imagination that the accountant has fallen to. We're just going to use customer one. All right. And then we can go into our projects. Go into all projects and let, and so these are the project we opened up last time. We had a closed one. I had an open one, but we're just going to add a new project for customer number one. So I'm going to hit the drop down and say, we want a new project and I'm going to make it in progress, a new project in progress. And we'll say this is going to be for, uh, guitar lessons for customer. I'll just say customer one. I'll repeat it a little bit there, even though it's going to be connected to customer one. So, uh, so there we have it. And then, uh, Oh, hold on a sec. I put it in the wrong place. This should, I'm just going to copy that. And this should just be customer one. I think I hope that I didn't add that other one. Maybe I did. That's not, but then I'm going to say it's guitar lessons. The project related to customer number one. Okay. And so I'm not going to put a deadline, estimate, calculate, estimate, and so I'm not going to put a deadline, estimate, calculate, uh, from tasks and estimate expense. I'm not going to put anything there who can view this project, public anyone with access to projects that's good or admin. I'm going to keep it as is. We'll add it in. So now it's automatically going into the project now. So if I, just to show that, if I go into the projects, all projects, here's our project. Now, filling time out for guitar lessons, then we can do that a couple different ways. There's a couple things that we wanna keep in mind. We can add basically a task. So if I go in here and add a task, this is going to be something that we can then add when we're applying out the time. Note though, you could add a task that doesn't have an item related to it, but oftentimes you'd wanna set up an item. So if I start typing something in here, you could see our items are pulling up. If you have a standard item that's in your service items, along with the inventory items that usually populate the invoices, that's a little bit more permanent. And when you have multiple clients, then it might be a little bit easier to pull that item and kind of standardize that item as opposed to putting a new task every time that it's not related to an item. So oftentimes I think the way to go here would be to go to your items, set up the item, and then add the task. Also, we saw last time, another component which is a little confusing, but once you get the idea that it's not too bad, if you go to the staff items, these are the staff that we can basically track the time for. Now, we could set up a cost for these staff members here. We can have a cost related to them, but you gotta be careful with that because this is not the amount that we're actually gonna charge the client for. And there's actually not gonna be a transaction on the financial statements related to this cost. This is just gonna be an internal thing for the job. And you would think the items that would comprise this cost would be things like if I look at the income statement, the wages, right? We've already calculated it in wages, but we're allocating some of the wage line, the stuff we actually pay to the job as we allocate the time over. So it's an internal kind of reporting thing. It's not gonna report anything new onto the financial statements. You have to keep that in mind when you're trying to tie in your project reports to what's on the financial statements if you're using this item. Also note that I believe there's unlimited users. So you have to add the user in order to be able to add them here. And so what's great about zero, unlike some other softwares like the chief competitor QuickBooks Online, I believe you can add unlimited users, which is great. And to do that, you can go to the dropdown up top. You can go to the settings and you can go to your users and then you can add your users and give the necessary permissions in order for the users to populate. Okay, so now I'm gonna go into our items. So I'm gonna go into the business dropdown, products and services. And I'm gonna add an item that I can pull on over into the task and then I'll enter the time related to it. So here's all of our items. Now, I could just use a generic, the hourly service or something that's already there, but I'm gonna add a new one. I'm gonna say we want a new item and I'm gonna say it's gonna be guitar lessons. And this is for, let's say we're gonna say guitar lessons, we'll just call them guitar lessons one. And I'm gonna put that as the same name and code guitar lesson one. I'm not tracking any inventory because it's a service item. I add item to build purchase order and other purchase transactions. We're not gonna be purchasing anything with this one. We're just on the sales side of things. And so the sales price I'm gonna say this time is 75. And then the sales account we're just gonna set up to be, I think we'll just put it into the service items. All right, so that looks good. So I can save it there. So now we've got our item set up for the guitar lessons. Okay, now let's go back into the projects. So I'm gonna go into the projects. Let's go into project number one that we set up. And now I'm gonna add a task. So I'm gonna add a task and that task is gonna be like the items that we're gonna be pulling in here within the project. So I'm just gonna pull in that same item that we just set up. What did I get? I can't remember what I called it. Guitar lessons one. Guitar lessons one. And the estimated hours, I'm not gonna put any, but the hourly charge now is at 75. So I'm gonna say, okay, so now every time I add a new project, I can add the task that will be somewhat standardized because I put it in place as an item and it'll pull in that $75. Note that as I add the item, I might assign guitar lessons for per my instructor. So notice if you have a staff of employees, you might, for example, charge people based on who's doing the work. You might have a billable rate, which is different than the amount you pay them for payroll. It's gonna be higher, of course, because you're trying to make money that you're gonna bill them out at, or you might just say, whoever's working on the staff, I'm gonna bill out in accordance to how much time it took, right? So those are the, so let's go ahead and say save it. And so there we have that. And now let's enter some time. So I'm gonna say, all right, add a time entry. Now I'm imagining that our staff member just gave us the project is one, yeah. The staff member just gave us a time sheet in Excel or something like that to track how much work they did periodically. And then we could just enter that into the system with a time entry. So I'm gonna say it's a task. I'm gonna say it's a guitar lesson. That's the task that we have set up in here. Description, I could put the same thing. Guitar lessons, did I spell that right? I don't know, duration. And then we could put the start and end point, but I'm just gonna put the duration because I'm imagining I'm just doing the data input from the physical time sheets and that would be the easiest thing to do. So they gave me the weekly time sheet.  And then with the date, let's bring it to the end of Feb. Feb, let's say Feb 27 or so. Let's do something like that. And then the staff member, let's say it was Jane, the other staff member that we had set up to be able to apply out the time. So that looks good. So we're gonna say, and notice this item here, whoever did the work might line up. I might make a task that says Jane's hourly billable rate or something like that. Or I can have these things different and then whoever did the work might be different and it'll have the same rate for whoever did the work. Okay, save it. So if I save it, then you could see it pulled into to be invoiced over here. Time and expenses are at the 300. If I go into the time, then there's the 300, here's our time. If I wanna edit or delete it, I have that here. Quotes and invoices and then our profitability pulled in the amount that we're charging. Remember, based on Jane's cost, but this is the side that's not actually gonna record anything new to the financial statements. The billable side will pull in and record revenue when we invoice it and we'll see that on the revenue side. So this isn't reported to anything new on the income statement. It's just basically allocating, say, hey, look, some of that wages or whatever we're allocating over here, generally, because that's the estimated cost for the internal projects report. So that's important to keep in mind. If you're trying to tie the projects reports into the actual financial statements. All right, let's set up another customer and say they worked for another customer as well. So I'm gonna go back to my projects and let's try to set the project and the customer up at the same time this time. So I hit the dropdown. I'm gonna say another one, and this time I'm gonna say this is gonna be customer, I already have customer two. Let's just pick up customer two and I'm gonna say this is gonna be guitar lessons for customer two. And then we'll say calculate from estimate, everything else looks good. So let's create it. It will then open up. So now I'm in the customer two. I have to add a task now so that I can enter the time in the same way. So I'm gonna say add a task and I'm just gonna call the task the same one, guitar lessons, which are pulling in from the items. So now it's standardized whenever I pick that one, it's gonna be at that 75 because it's pulling in from the items. So I'm gonna say, okay, let's save that. And then I'll do another time entry, add, and then a time entry. And the task is gonna be the guitar lessons. That's the only one we've set up thus far. I'll call it guitar lessons here as well. And we're gonna imagine that Jane also did work for customer number two for four hours. So Jane worked total of eight hours according to her time sheet, one for customer one and one for customer two. Okay, so we'll save that same kind of thing. You got the 300 here. You've got the time, profitability pulling through and so on and so forth. But hold on, I'm gonna go back to the time I missed up the date again. Edit, let's make sure the date is in the timeframe we want it to be in. Don't get ahead of yourself. Don't get ahead of yourself.  All right, here we go. All right, so now let's do another one and we're gonna say, we're gonna start another, two more of these, we're gonna say, and this is gonna be for our second billable person here. So we're gonna say, let's go, actually let's set up the billable rate again. I'm gonna go drop down on the business, products and services. And this is going to then be, I'm just gonna add another one. And I'm gonna say, this is gonna be guitar lessons two advanced guitar lessons. And we're not gonna purchase, we're not gonna track the inventory because it's a service item, but this one costs 115, go into the account of service. Tax exempt, movie B to the end. All right, so we'll save that. And then, so now we're gonna bill out for that second person that does guitar lessons, which happens to be Bob Steele. He's an excellent instructor. I've heard from everyone that he does a really good job. So let's go to the projects then, all projects. And then we're gonna say, drop down and a new in progress. And we're gonna, let's just add the customer as we go, customer number three. We're just gonna add it as we go. And then I'm gonna say guitar lessons, guitar lessons, customer three is the job. Okay. And then actually this is the company name customer three. I'm adding the customer as we go, save the contact. All right, then I'll go to the project. Guitar lessons, customer three. And okay, there we have it. So let's create it. It has been created. We're gonna add a task, add the task, drop down. This is gonna be guitar lessons number two, the higher advanced level guitar lessons with our advanced instructor. He doesn't charge enough. I don't feel like, given the skill level that he clearly demonstrates. But whatever, we're gonna go to the add drop down and then we're gonna say that we want a time entry and task is gonna be the guitar lessons two. That's the only one we chose. Guitar lesson one isn't there because even though it's in the items, we didn't add it as a task. And then I'm just gonna say this is guitar lessons advanced. We're imagining we got this stuff from the time sheet from Bob Steele, the instructor. And then we're gonna put in the time that was worked here according to the time sheet, four hours again. We're just keeping it standard four and we'll bring this back to Feb 27, Feb 27. And so we'll save that and then we'll do it one more project. Let's add one more project, all projects. One more project that Bob Steele, the accounting, the guitar instructor worked on. So we're gonna say in progress. This is gonna be customer number four, adding it just on the fly as we go. We're flying along and adding at the same time. This is gonna be guitar lessons customer four and then good. And then once again, we will add the task, drop down task. And we're gonna say this is guitar lessons, but number two, guitar lessons two, 115 is the rate, right? All right, so we're gonna say add the task and then we'll enter the time sheet. Oh, what did I do? I think I added it. Let's enter the time sheet. Time entry, task is guitar lesson two. This is gonna be guitar lessons.  So, and we have the second, all right, so we'll say save it. So now we've entered our time. So we're, imagine that's the billing process that we would do every week, two weeks, bi-weekly, semi-monthly, monthly, depending on what our billing cycle is. Obviously we wouldn't have to add the tasks any time, every time because they would already be in place. So now in future presentations, we'll go through and we will invoice based on this information. So remember, it's pulling in kind of two things in here. One, it's pulling in the expense, but we didn't actually process payroll. So if I look at the profitability report, even though it's showing this 240, we didn't actually process the payroll during this system. We just kind of estimated how much of the payroll is the cost side of things for the project. And therefore this isn't actually impacting the financial statements. On the revenue side of things, we're gonna use the amount that we populated for the item that we pulled into the task to help us to invoice the client. Nothing's there until we invoice the client. That's when the revenue will populate, not only here, but also on the actual income statements, which we'll see in a future presentation.


And can you just share a little bit about why you're here today lobbying on the state the State House law? Yeah, I'm here because I've been in the State House a lot in the past year and I've heard a lot of excuses I've heard them say we're too busy. I've heard them say we don't have all the information And I'm here because I want to respond to that and I want to tell them that we do have the information we are moving too slowly and We need to see action in our generation because Our planet is being destroyed by human actions. That is the truth and We have the power to stop that in our state and all over the world Thanks, Miriam, and can you talk a little bit about this event today who you've brought out who you're hearing from and You know what you hope to accomplish with this event. Yeah, so the Vermont Youth Lobby's Goal is to bring together young people and lift up their voices and to get action on climate change and so today we have about 400 to 500 students from schools all across Vermont from the Northeast Kingdom from the south of the state from right here in central Vermont all here to learn to learn from each other to talk to hear speeches and Ultimately to make our voices heard to demand action on climate change from our legislators I'm Molly Levy. I use she her pronouns and I'm here because I feel like as young people it's often really really difficult to have our voices heard Especially with government and could feel like we're very powerless in these situations And I think this event is just a great way to meet people and kind of amplify our opinions I'm Kamaria. I use she her pronouns and I'm a freshman at South Billington high school And I should be at school right now But I feel like this is climate action is such a big thing that we need to have a voice in and it's really hard like Molly said To have a say when you're a teenager and you don't get taken seriously And it's just a way to be like seeing and get your voice and ideas spread Hi, my name is Earl. I use he they pronouns and I guess a big reason that I'm here is It's really cool to meet a lot of like-minded people my age who are interested in climate action and climate justice I guess it's it is not only is it hard to have our voices heard it's hard to like get involved and there are a lot of different organizations here that are amplifying youth voices and it's very empowering and I feel very happy to be here Hi, I'm Nico. I use she her pronouns. I go to Burlington high school and I'm here today because We are the future children are the future and we need a home and Being here today has shown me just how many people how many kids are involved and care about this and I've seen that even just me talking to people has spread information and has been able to help us I'm a community organizer with 350 Vermont and we're here just to support youth lobby and all of the kids here in the state Part of like the whole idea of this entire day is to bring people together and learn about all the opportunities That we can build a movement in Vermont and kind of advance climate climate initiatives forward. So and what does 350 do for Vermont? Yeah, so 350 Vermont is a climate justice org so what we really try to do is center the intersection of the climate crisis and like economic and racial oppression and inequality and what we kind of Assume as our theory of change is that that's actually the best access of making and building like real political power and that the real solutions out of a climate crisis aren't say like Incentivizing markets to like make a gradual shift that companies can make profits off of it It's about like really building power and building a people-centered movement that can demand the changes that we need to see Oh and can you speak a little bit about just the value of Having a rally on the state house lawn like why rally out here. Why you know, what's the intended impact today? Yeah, well, I mean, it's a beautiful day out. It's just it's gonna be fun Part of having a rally is building community, you know And so we're making a statement externally to the to the state house and our legislators but what we're also doing is making friendships and Networking and connections so that we can build the movement and like take the energy of today and Kind of bring it back into our communities and really like build the power from there So, yeah, do you want to just share a bit about why you're here today and why rally on the state house lawn today? Yeah, absolutely So I work for VPurg the statewide environmental organization and young people have always been so critical and key and central to VPurgs work and environmental work in general It's so motivating to see young people taking time off of school and getting the resources that they need to know What's happening at the national and state level of politics and paying attention to what elected officials are doing with the resources? We have as a state and the power they have right now and They're they're incredible. They're really motivating and they definitely know what they're talking about and they're not afraid to To put it in the exact terms that the climate crisis needs to be put in and I just really applaud them and I am a young person but it's another thing especially to see folks that are students and Under the age of 18 and can't vote yet and this is how they show up for their community and their their futures, so it's great Can you talk a little bit about what VPurg is trying to do this session and how you're trying to impact legislation Currently, yeah, so VPurg really kind of serves as a watchdog in the state house We follow policy and I personally work on the environmental team So protecting room honors from toxic chemicals and zero waste issues We're really excited to see the bottle bill each 158 that passed in the house a couple weeks ago With overwhelming support and out heads to the Senate We need the full benefits of the program of of our bottle bill It works really well at turning cans into cans bottles into bottles and given the acuteness of the plastic crisis We can't opt out of any ways that we can be Responsibly collecting our waste and doing real recycling so I'm really excited about that As well as the affordable heat act is something that we've been really pushing for and equity is at the forefront of it And the price should not fall on Vermonters to address this it really is going to be The people with the resource in the and the capacity to make this transition They're gonna do that and that's what that bill is about. We're excited to see past Yes, so I was saying that I was a global studies major and I definitely thought that after college I would work for a big international non-profit and I've actually I'm so glad that I found VPurg because I found that state politics is this really empowering sweet spot of Local solutions the proximity that we have to our legislators here I'm not peculiar is really special in something that when you take advantage of it has an impact of passing legislation for a state You know right now if we ban a list of toxic chemicals from period products and personal care products That's protecting hundreds of thousands of Vermonters on that issue But also it makes it easier for other states to follow suit and pass something similar in the ripple effect so it's it's really exciting to be able to work on this level of things and I Feel like I'm truly making a very big impact with the work that I do and I'm so young and it's it's really cool You mentioned a bit of climate related legislation there You can tell from your sticker are aware of the youth climate Lobby's rally on the state house lawn today. What is the value of rallying on the state house lawn? And what's the importance of that work for the work that you're doing? Yeah, that's a great question. I think a lot of people wonder what's the value of protest. What's the value of rally? I think there are two two primary things That are valuable about protest and rally first as a participant in the protest and rally You're with your people you don't feel alone if you're frustrated about something that's going on in the world If you're having an existential crisis about the climate for example You're with people who share that concern and you're taking action together and it renews a sense of hope From the perspective of a legislator One of the reasons I'm here is for our youth. I have children who are 20 and 18 years old and they're not particularly hopeful about our climate future and That's one of the reasons why I wanted to run for office and serve in state legislature Especially when our federal government isn't taking the action that we need to on the climate As you're probably aware the youth climate rally happened on the state house lawn today Can you talk a little bit about just the importance or value of rallying on the state house lawn? What does it mean to you as a legislature as a legislator when? People especially youth come to the state house to share and amplify their voices and their concerns Oh, it is so heartwarming and it is the perfect visual reminder of the issues that are facing Vermont and facing our nation And that we need to take action So of course the best place to tell folks to tell this state that we need to take action is right on the state house lawn I'm actually I feel very privileged that our committee room is right on the front end of the building So we get to see Everything that is happening from the child care rally that happened the other day to today's rally on climate And even when the outright youth were here on trans day of visibility and speaking truth to power But specifically to the peace peace around youth It is so important when we talk about the climate crisis that youth are the ones who are really leading on this charge Though it is a majority of adults who hold the power to actually enact that change our youth understand that the climate crisis Is directly impacting them their future and the sustainability of this earth? And it's amazing seeing them come through the hallways both with their very creative signs We need creativity when we're coming up with these bold solutions But also that confidence to be able to talk directly to legislators It is such an an honor and a privilege to be able to have those conversations as well as opening up Possibilities for the average remanter to come into the people's house and understand that it truly is for the people I think that's what comes up most often as folks that are like oh, it's really intimidating It's a big building the golden dome It kind of feels like a museum and then they show up and they're like wait There wasn't security right out the door. I could literally walk into any committee room and listen I can meet directly with my representative It shows the ways that we can directly engage with democracy You may have noticed that there was a rally on the state house steps today led by youth activists looking for climate action What's the value of that work specifically to you know youth led climate activism, but also just in general You know rallying on the state house steps. How does that work impact what you do and your colleagues do here in the state house? Yeah, it's I will say again from a logistical Point of view it's great to have groups right here because our days don't have a lot of room for like There are hundreds of people I would love to meet with and talk to and I just don't always have time And so as silly as it may sound like having folks right here Sharing what they're asking for what they're worried about what they want to have happen And we can just walk outside and listen to them. It sounds It's significant. I'll just say it may not sound significant, but it is I was really lucky today to meet with a group of students from CVU, which is the high school in my district. I also happened to be school board chair For our school district. So it was so great to on my lunch hour stepped outside Along with a bunch of other representatives from within our school district And we got to hear from the kids about why they were here and what they were Worried about certainly youth Coming here sharing their concerns about the climate. I mean it has it's been said a million times, but We're talking about their future The things that need to be done and need to be changed are in order to give them a future essentially and their Children and children's children like it's all about So The future and so it's just too easy for folks who are like My age and older maybe to say like I don't know. We're doing aren't we doing okay? Like no, we're not and they know it because they Younger people feel a different kind a different level of anxiety. I think then Then we may so it's really really important to have them Speaking up and they bring questions that we don't know the answers to and that's so important too So having them speak up a is Is super important and having them do it right here on the state house lawn. There's a real utility to that Thank you so much angela. What is the value of rallying on the state house law? What does it mean to you as legislators when a group comes together to Advocate for an issue and comes to the state house to to amplify their voices here I So This is really the first year since I've been here Because I I was elected during the pandemic. So I was in my home office the first year. We came back in february But to a very diminished outside presence within the state house And there just wasn't that kind of activity So I've just been so excited because like this is why I'm doing this is and it's especially exciting when there are young people Who are here who are asserting things about What they care about or their fears? And what they want us to do about those things. Um, I just It makes me feel like okay. This is why I'm here. Just a good reminder And I so I'm very energized by it and and um, and it doesn't it doesn't have to be young people, but I mean we had a We had a trans visibility day here. Um, and I mean I will remember forever some of the speeches that that some of these kids made some of them 11 years old And so I am anyway for me It is a great reminder a very visceral one of like this is why I'm doing this That's so true whether it's what um Tiffany was just talking about or whether it's uh A small group of students coming to be honored for their accomplishments in the community or for winning a sports event or a group of students from another country or um A group of students from the boys and girls club It's around vermont And actually a burlington young woman one That award this year for launching girls and boys club youth of the year and she's going to be advocating for Mental health her name is kate and I don't know if I remember her last name But anyway, I think that you know those things are it's really important for us to see People organizing and caring and it's also really important for people who care a lot about issues to see how much we care about them


In this video we are going to see that string objects are just sequences in the abstract sense. In an earlier video we learned that there are concrete data types in Python, like the in data type, the flow data type, but also the string data type, and then there are abstract data types which are really just classifications of the concrete ones. So let's go ahead and create a new file and call it strings are sequences because that's what they are. So let's remember what are the typical sequence properties. So let's briefly review that. Sequence properties. There are four of them. The first three of them basically make them a so-called collection, and the fourth one then makes them a sequence. So let's look at them. So the first property is the so-called container property. So let's make an example. So let's go above here, and let's make an example. Let's create a text object and assign it the string lorem iptum do lore sit amid, which is a sentence that a lot of you have probably heard before, the typical example text case, so to say. And now let's see what does it mean for this text object here to be a container. But quite simple. We said that the characteristic operation for a container property is the inner operator just like that, and the inner operator takes on the left-hand side some object, for example, the letter a as a string object, and on the right-hand side it also takes in this case a string object, and we can this way check if the letter uppercase a is included in the text, and the answer of course is false. Similarly, if I go ahead and check if the lowercase a is in text, then the answer would be true. So previously when we used the inner operator, we used it with lists. On the right-hand side we had a list object. However, the inner operator also works for string objects. So strings and lists are two different concrete data types. However, they are both in the abstract sense containers. So that's just one property. What is another one? Another one, another property is usually called the sized property or the finiteness. So in other words, the container contains a finite number of other objects, and we can show that by using the built-in length function. So any data type that is a sized data type supports the built-in length function. So let's try that with text here as the argument, and we get back 27. 27 is the number of characters in the text object here. Okay, so the second property of a sequence is also true. It's also fulfilled by the string data type. So let's look at the third one. The third one is what we call the iterable property. So this is basically the property that tells us that we can loop over an object. And in many previous videos we always looped over the list object. However, we could also go ahead and we could say we loop over the text object. So let's maybe say for x in text, print x, and let's do that. And we see that we get each letter printed on one line at a time. So in other words, what we are looping over, if we want to use a better name for that, would simply be character, okay? So let's maybe do that here. And let's also maybe end the line here with an empty space instead of a new line character. And now we see we print out Lorem Ipsum and so on with a space in between or maybe with two spaces in between. Okay, so text objects, string objects are iterable. So these three properties, container, size, and iterable, whenever they apply to an object simultaneously, we call it a collection, generically speaking. Okay, and all collections that also have a force property and we call that property formally, the so-called reversible property. So let's simply go ahead and copy-paste our for loop example. And let's maybe simply go ahead and use the built-in reversed function. And we can loop over the text in reverse order, okay? And so any object that can be used as an argument to the reversed built-in is what we call a reversible. And now if any object that fulfills all these four properties is what we call a sequence, okay? And sequences we have seen before are list objects. So list objects are one example, one concrete data type that is a sequence in the abstract sense. And the string object or the string data type, the concrete string data type, is also an example of the abstract sequence data type, okay? So now what do these four properties basically enable us to do? So whenever these four properties are enabled or are there, what we can do with an object is we can do what it's called indexing. So we have seen that a couple of times before when we indexed into a list object using the indexing operator. So let's go ahead and index into the text object here. So I use the indexing operator, the brackets, and let's say I want to get the first index, so index 0. Well, this simply gives me the letter L, okay? So that's it. Now let's go ahead and do that further, go further. So now what do the four properties have to do with the indexing operator here? Well, you need to have an order, right? You need to be reversible. You need to have an order. Reversibility means there is also a forward order. Without an order, we could not index because if I want to obtain element number 0 or element number 1, or in this case, character number 0 or character number 1, how could I do that if the characters are not in an order, okay? But here, because the text objects or string objects are reversible, we know that there is an order and therefore we can index. So that is why the indexing operator only works with objects that are reversible. Now, one thing that we have not seen about the indexing operator in this course yet, but we will do so now is we can also index with negative numbers. So let's index with 2-1. And what that does is it basically gives us the last character, okay? So if we go, if we index from left to right, indexes start at 0. If we index from right to left, then indices start at negative 1. So negative 1 simply means the first character going from the right. Now, we know that the text object has 27 characters in it. So in other words, if I obtain index number negative 27, this will also be L, right? So that is what we can do with indexing. And so why is this important? Well, what does that have to do with the properties above here? Well, if the object were not size, so if it were not finite, then we could not do that. Okay, we can only index from right to left, so in a backwards fashion using negative indices. If we know that the object itself has some end, it has a finite number of things in it. And therefore, the sized property is very important because without it, we couldn't use negative indices. Okay, now you see, now you get an idea of why it is very important to understand that we can classify different objects or objects of different data types with these abstract behaviors. And again, those four together are the sequence one. This is a very common one. And this basically enables us the indexing operator. Let's do a generalization of indexing, which is called slicing. So indexing means we get a single character out of the object. And slicing simply means we get a whole slice out of it. So let's try to get the first three letters. So let's go ahead and use the indexing operator. And instead of giving it a single index, we give it a range and lower end and an upper end from where to where we want to slice out something from the text object here. So let's say we want to begin on the left hand side with zero. Now we write the colon. The colon is just syntax. And let's say I want to obtain the first three characters. I want to go from zero to actually three here in this case. So what we see here is the first index, the left index is included. The upper index, the three is excluded. Otherwise, we would get four letters, right? Because three minus four, these are actually four indices. Zero, one, two, three, four, or zero, one, two, three, these are four indices. But we only get three letters. So that means it must be that the upper index is excluded here. Just as we know it from the range built in before. So that is slicing. And let's look at some of the more details about slicing. So whenever I want to take a slice that starts at the beginning, I could simply leave out the left index. So this going from simply colon three is the same as zero colon three here. So when the first index should be zero, we can just leave it away. Also, let's say I want to index from, let's say, the fifth character, which would be index four, until the end. And we know that the length of the text object is 27. So if I go to 27, because the upper index, as we learned, is excluded. So that will go until the end, basically. So we see that we have M something, and then it goes until the included period here. And whenever we go until the end of a slice, what we can do is the converse of what we did here with leaving away the zero. Well, we couldn't simply go ahead and say we go from index four until the end. We get back the same slice here. Okay, so this is slicing, and there is one more thing you need to know about slicing. This is also very much comparable to the range built in, in that we can also use a step size. So let's say I want to get every other character. What I could do is I could simply say colon colon two. And that basically means go from the very first index or from index zero to excluding the index 27 in steps of two. This will give me every other letter here. And again, because we are going from beginning to end, I can just leave it away and say colon colon two, step size of two. If you want to reverse the letters inside a string, this is actually helpful for one of the future exercises. Actually, one of the exercises regarding chapter six. Then what you could do is you could say, colon colon negative one. A step size of negative one will give you the reverse order. Okay, so this is basically the sentence reversed. Now, in the context of textual data, the step size may not be super important. However, everything I taught you regarding the slicing and regarding the indexing not only holds true for strings, but for sequences in general. So also everything I showed you here regarding the slicing also works for lists. Okay, if you want to get only a subset of the elements inside the list, you can do slicing with the list object just as well. Okay, so now there's one more thing that I want to talk about here. So in the example before in previous videos where we talked about the list object. There was one video which I titled, Who Am I and How Many? Where I go ahead and I have a list of numbers and I exchange one of the numbers. And the other numbers stay the same. Okay, and that was important because objects that could be changed after they were created are called immutable objects, okay? And the opposite of immutable object is immutable objects. And the string data type is an example of immutable object. So that's maybe right here immutability. So immutability means if I take the text object like that and let's say I index into that, let's say the first index, the very first character. And let's say I want to exchange that into let's say X uppercase X. So I want to replace the L with an X, I get an error, type error. Because a text object, so a string object, after it is created in memory, it cannot be changed. That's a very important observation, okay? So we just have to live with that. So some objects, some data types are mutable and some are immutable. And the string data type is simply an immutable data type. And in one of the next videos when we talk about text data, we will talk about string methods and we will see that all the string methods, they return a new string object out of an existing one. And that is different from the list method. So the list method often they change a list object in place. But the string methods, they will always give us back a new string, a new object in memory that has to do with mutability versus immutability. And therefore, this concept is rather important. So note that string objects are simply immutable. So I will see you in the next video when we talk about string methods.