 Hello ladies and gentlemen and welcome to CSC 111, Intro to Computing Python Edition. My name is Adam Gawita and even before I start talking about what we're doing in this course, I want to at least introduce myself because you're going to be seeing me talk a lot over the next 10 weeks and you know instead of me just being some talking head it might be in you know beneficial to know who I am so to even start who am I. So I am a PhD student here at NC State and before I was here I was an instructor at Cape Fear Community College and UNC Wilmington. Even before then my research was in artificial face aging and using AI. Specifically you know here's me once upon a time when Justin Bieber haircuts were popular and we said well oh you know the face it's just if I took a picture of a face it's just a two-dimensional graph and we can put points on that face a little xy coordinate. Oh well you know we happen to do that for a lot of faces and we build some demographical model for that we could say for example build a statistical model on what a 20 year old white male looks like or Caucasian male looks like. Oh well if we happen to do that for 30 somethings 40 somethings 50 somethings 60 somethings 70 something 80 somethings etc etc and we expand to additional ethnicities and genders oh well you know we can build statistical models and then make estimations based on well what the average does so when I was a 20 something Justin Bieber haircut wearing full with a beard that hadn't fully come in yet well we can say well based on the fact that you match this demographic statistically you're gonna look like this when you're 80 could be worse right but the entire idea there is just taking artificial intelligence and mathematical models and applying them to a certain template. I also worked at a company known as Efficient Energy America which was a smart thermostat for quick service restaurants a quick service restaurant is a McDonald's a Taco Bell golden corral you know those types of restaurants where you just you got a kitchen in a dining area and the entire idea is we wanted to monitor your air conditioning units you know a kitchen that's about 90 degrees going on there it's super hot and very stuffy and so you can't just pump cold air all the time if you're a cook you wish yes you do wish that they did pump cold air all the time but unfortunately owners don't do that either way the entire idea is well those HVAC units maybe there's a statistical model saying we can say when that is starting to break down in fact that is what we were working on so just some more fun little analytics now where my research has taken me is again I was an instructor at two colleges and I fell in love with teaching and specifically in trying to help teach computer science education and that's where I focus in on novel exercise types where we look at you know things that we've done in the past and even you know making predictions on what you are going to do next so for example you are currently watching a video on Moodle well based on the number of different activities that Moodle has to offer or this course has to offer what's the probability that you're going to then look at the slides oh well roughly speaking 12% but you know there's also the probability that you're going to quit after watching this video yep I'm not gonna judge I'm just saying that this is where my research has taken me and starting to do analysis on just how students build their practice regimen and I enjoy it so now that you've learned who I am now it's time to talk about this class again welcome to CSC 111 intercomputing where we will be learning Python edition this course is obviously going to be on Moodle so you can go on Moodle if you are not already on Moodle and you can look at all the course material one of the things that I highly encourage you all to do is take a look at Piazza it is the message board forum that we're going to be using for this course and specifically when we start getting into writing our code and debugging you may run into a problem one of the first things I recommend you do is check Piazza someone may have already had that same problem and myself or Trinity or TA may have already answered that problem and same kind of concept you may see someone else have a problem that you've already encountered and you can be like oh hey you know this is what you did it's basically a Facebook for education either way the other little thing is as you can imagine this is an asynchronous class so one of the things I'm doing is I have allocated three days to office hours Tuesday Wednesday Thursday from 3 to 4.30 p.m. I'm just going to be available on Zoom you can hop in for however much time you need you've run into a problem you you need some assistance in some way you can hop in and I'll just I'll be available for you to kind of pick my brain I also if you can't meet any of those times you can also reach out to me via my email address and we can schedule some time as well so with that in mind what is CSC 111 yes we are going to be learning about where are you we're gonna be learning about Python but as you can clearly see it's not the only thing we're focusing in on and more specifically we are using Python the reason why I call this Python edition is because what we are really learning is this idea of problem-solving Python is just a tool not any different than a hammer not any different than a frying pan it is just a tool to sort of get to the next stage of whatever your vision is if I need to build a birdhouse right I need tools to do that and you know oh well there are a number of different tools I could work off of but a hammer is a tool to do that my frying pan I have a vision for this wonderful culinary masterpiece that I'm going to do I'm going to use risotto style cooking on grits right I need tools to do that I don't even know if risotto style grits would work but regardless my point is I have Python to do that in the computing world and so in this class what we're really focusing in on is this idea of using the computer and using Python to attack status or attack data and be able to then apply statistical models and data analytics to data to solve our problems in scientific research so it's not as exciting as risotto style grits but in my perspective it's actually super fun one of the things that I do want to focus in on though is that Python and programming is gonna result in a lot of debugging there are gonna be times where you're banging your head on the keyboard and you're just frustrated and pissed off and why can't this be masterfully easy that's not how learning works right you don't always just magically become an expert at something I'm not that good of a cook but you guess what I've been doing during the pandemic I've been practicing my cooking skills the same kind of concept what happens if you wanted to learn a musical instrument if you screw up you have to kind of like figure out what you did wrong there and so the same kind of concept will come in that is where myself and Trinity will hopefully be helping you work on your debugging skills during this entire process so with that in mind like I said again this is the Python edition and since you're learning about a new tool and it's a little more complex than a hammer I do like to provide a little bit of background it was built by Guido von Russen over Christmas not this Christmas but Christmas is of past because he looked at programming and was like you suck I'm gonna build something better and he did and it became popular and now it's used all over the place Google uses it video games use it NASA uses it a number of different companies use Python and really as you can sort of see it made Python simple it made it fun again and so the entire idea here is well you know this is what we'll be working off of now specifically especially with this XKCD comic there is a caveat to that Python operates by tons of people out there in the community building all of these libraries for other people to use the problem is that it got so popular that you have to go and download all of these libraries and install them and get them working before you can even work with Python no no I'm not doing that with y'all so literally you think about things like Jupiter spider NumPy, SciPy, Pandas, Matplotlib all of these libraries that Python uses and needs to use well instead of us going out and struggling to install all of them Anaconda happens to just have a one quick here click this button download it and we'll install all of it for you work from and that's exactly what we're going to be using off of this course you're welcome to use other things if you'd like but we're going to be focusing primarily on Anaconda so at least kind of moving into how our course will operate as you can already sort of imagine lectures are going to be asynchronous meaning there is no meeting time that we are all pump going into a zoom and then you watch me lecture that's not gonna happen because you're gonna not have your camera on and you're gonna be like this no instead these videos are available to you to watch whenever you need to watch them one of the things I strongly encourage you to do is code along with me I will be throwing up code and writing code during these videos and I encourage you to pull up your Anaconda environment and code with me see what's going on that way if you make a mistake you can pause the video look fix it and sort of follow along and even play if you want to goof off and just see what else you you know can do with it then in the labs the labs are going to be synchronous and the way I like to think about this actually stems us from working out right think about you want to run a mile or you want to run a 5k a 10k a marathon you want to run a long distance well how do you you don't just go outside and start running a marathon unless you're one of those people at which point right you don't just start running a marathon you have to allocate time to focus in and just work on that and build up your endurance to start running the entire idea for the labs is that is what they this is going to be these are gonna be hands-on times where you can just sit down and practice Python and just build up your your repertoire and skill set of being proficient with Python it is also going to be where you're going to have your homeworks and then as you can always imagine that is also where your exams are going to be oh we're using big fancy exam words now so I guess it's time to talk about grading as I was just talking about obviously yes your midterm and your final exam do exist and they're 20% of your full grade and just to move work upwards since I I did that you will have a project realistically it's not projects but project as a part of this class and it is going to be broken down into three parts realistically what this is is just this one project is going to encompass an entire workflow of data analytics and visualization to spoil it for you you're basically going to be building a moving average or a function to build a moving average then incorporating that with some file I owe reading a text file to produce that visual of that moving average and then finally getting into a visualization taking that data taking that moving average and visualizing cool homeworks as you can imagine our homeworks they are checking to make sure that you understand the entire problem-solving process and coding and so homework homework each week lab exercises again it's making sure that you spend time actually practicing those skills and making sure that you have allocated time every week to make that mile run kind of perspective we also then have lecture exercises these are going to be multiple choice short answer fill-in-the-blank style questions on moodle each week just to make sure do you understand the concepts when we get into conditional statements do you understand what the code is doing the entire time we get into loops you understand what the code is doing all the time and then finally we get into attendance now this may be a little interesting because attendance we're asynchronous so how's that going to work quite literally you're going to have 20 attendance exercises on typos it's a website that I built during my time here but the entire idea is each week you have two of those that you have to do for attendance they must be completed before the the week is up otherwise it's not counted as attendance you are going to be free to use that code wherever you want in fact think of it as like building a template that you can then rely on elsewhere oh I've done this in the past let me do it again so what are these exercises quite literally yes typing exercises now feel like some of you may have pulled away as I wrote that the way I want you to think about this is this is no different than if you are trying to learn a musical instrument right if you want to learn the piano you have to learn how to play the scales C D E to H or is H even I'm not a musician as you can tell but the entire idea is you have to become proficient with the instrument before you can move on to like writing your own piano scores right another example of this is I have been teaching and training martial arts for 14 years and you know martial arts you do drilling and then you punch people they punch you back so if I only like show you a technique once right and you maybe practice it once and then I tell you to go fight someone right you're gonna get creamed because you have not had time to practice and refine that technique so quite literally guess what this is an instrument that you have to become proficient with oh and so fix that and so there we are and so the entire idea is to make sure that you are proficient with the keyboard so the entire idea is that on the right hand side or sorry on the left hand side you're gonna be seeing an image of code and your task is retype it on the right hand side if you make a mistake or a typo the entire idea is well you don't just magically get a zero and you fail and you know no reprieve no the entire idea is well time to fix what you did wrong and revise it oh I messed up when I was playing the piano well I fail at being a musician for the rest of my life no you sit back do it again you practice you try and fix those little pieces and so even though it's something pedantic but something like single quotes if the image was asking for double quotes well typos will just say hey this is where you made a mistake fix that mistake if you come in and then fix those mistakes all you then can do is make a repeated attempt in this case you can in this case you can say submit and congratulations you get a wonderful screen with stars letting you know you can download your code you can download your code do it again or you can return home typos is going to have your attendance exercises but it's also going to have additional exercises that are not for a grade but they are there available to you if you want to continue doing more practice so again I encourage you to do that as well one thing to note is these wonderful stars here do nothing they're not part of the grade you don't need to get three stars to make sure you get a hundred none of that matters they're just there in case you want to you know refine your skill if say for example you don't get this last star oh well you know guess what you can do it again and practice and get better and refine and so you know some fun little things there generally speaking these exercises don't take 10 minutes so you know yes you'll most likely always get that star they're roughly speaking about five to seven but that's about the speed for each one of those now when we think about our homework again you're going to be having some quizzes on Moodle and the entire idea to these programming assignments is typically will tell you hey your job is to build a function we'll talk about functions next week build a function that does some task and here's some ways you can check also known as test cases and guess what then you build it you write that code you name it something and you upload it to moodle we grade it and you get a grade and we move on and do that over and over and over again so again that's just kind of where we get into that now with that being said we are online do not cheat I know that that sounds like I shouldn't have to say that but I have literally caught 1 2 3 4 5 6 7 8 in this case 8 assignments on check we are actively looking for these exercises on check and in this particular case I had one fifth of the class get caught for cheating I'm very serious about that I will look at it I'm very good at the computer it's my research we will find you and we will fail no the entire idea here though is you're not just getting a zero you will get a negative 100 on the assignment again that counts as two zeros it's encouraging not to do that the entire idea is again if you look at these exercises all of this practice I'm trying to give you a number of different activities so that you are given enough time to refine your technical skills it again it's like the piano I want to make sure that you know how to play the piano and so I'm trying my best to give you every possible opportunity of learning you know spending time getting down the scales making sure that you understand music theory having time to practice your scales I don't really have an equivalent you know do play some of my particular song build your own song you know the entire idea is I want to have as much drilling practice for you as possible so that when you need to now do this you're competent and you feel confident that I just know how to do hearts and souls or something harder I again I my my other skill set is punching people and nobody likes it when I explain punching people so hearts and souls either way welcome once again to CC 111 and let's get coding