COMP 526 – Efficient Algorithms (Spring 2021) · unit page · YouTube
2021-02-10, 33:45

Click any sentence to play from there.

The transcript was generated automatically by YouTube's speech recognition and is offered as is. It may contain errors, in particular in concerning technical terms, names and formulas.

0:00 Introduction

0:03 welcome back to comp five to six on monday we were um i was giving a very very brief introduction to the organizational part of the class uh and i had to stop short because i wanted you all to do the prior knowledge survey let me give you a little bit of an overview of the module now content-wise and also the rest of the organizational part this this continues our monday session that's the remainder of the organizational part the goals of this module are

0:18 Overview

0:44 to build an algorithmic toolbox a set of a set of tools or techniques that computer scientists should know and use in their day-to-day practice as programmers we'll focus on practical methods as opposed to the most challenging theoretical problems so what you will hear in in this class is focused on the things that are actually fast in in a practical setup so we'll talk about methods that have shown to be useful in in applications

1:23 that doesn't mean there's not theoretical challenges behind these but this is this is the focus and one of the outcomes of this even if you're not an algorithmic expert at the end if you're not involved in in programming algorithms themselves at the end i still want you to be able to reason and talk about algorithms because that's the language that expert computer science use expert computer scientists use even even at the level of programmers um a lot of the programming libraries talk in terms of these data structures in terms of these complexity classes big-o classes you just have to understand what they mean otherwise you're not taken seriously and uh lastly there's there's always new applications that arise that need new algorithmic tools and solutions and uh i want you to be able to well understand things that um experts in in research develop but also be able to combine and extend these methods in terms of actual content the plan looks like this these are units that roughly correspond to one week of teaching time but i don't want to be catholic about this some units are a bit bigger and others are a bit shorter we will start with some some basic background on mathematics it's not a lot but we will use

2:27 Plan

2:51 a little bit of that then we'll move on to models of computers that's an important part in a scientific understanding of of computers and algorithms and efficiency to model things to make a clear statement what is it actually that

3:16 what do we mean by running time what do we mean by complexity what do you what do we mean by input well these things will have to be a bit more precise for us to make definitive statements about them

3:32 the unit two will be some catch-up on fundamental data structures for those of you who've done a undergrad in computer science this will probably be a recap recapitulation session but since a third of you roughly are in conversion masters programs um you might not have seen this so we'll go very rapidly over these um just the the punch lines the highlights and the final results and i'll point you to some more in-depth resources but more about that next week and then we'll make our way through different algorithms and data structure techniques for basically one-dimensional data we'll talk about sorting we'll talk about text how you can search in text very efficiently if you have massive amounts of text in in different ways how you can compress text to save space and some more specialized topics at the end um unit 9 is not part of the final exam so this is if you if you like this is um the the add-on topic that goes closer to actual research it will touch on a topic that i've worked on and it's substantially more involved than the other topics but this is essentially my way of showing you there's some some other things out there but you don't have to know that for the final exam

4:56 it's more of a taster for what research could be like one of the questions on the prior knowledge survey was whether you fancy doing a phd and if i remember correctly a lot of you were essentially undecided as of yet to be precise

5:21 96 percent said maybe and the remainder is evenly divided between yes and no way which is quite interesting so it seems that doing a phd is at least a possibility for you and then this last unit will give you a little bit of a taster for what that could be like good so that's um roughly the the topic now um i think you've been waiting for this slide um how do we mark the module at the very end and this has changed from last year and i hope this is a fair way of making it work in the pandemic and the home learning scenario i'll move myself away in a second but for now just focus on the big red box up here the formula for the final mark we'll have a final exam and that will be half of your mark it used to be three quarters and that used to be a requirement for a master level classes that has been relaxed for allowing a bit more flexibility this year um a good deal of that will be class tests so let me move myself over away uh the class tests um are spread throughout the term and they're very very short i'm aiming for a single question where you're basically practicing some of the algorithms and some of the

6:49 topics that we talk about and you will have a practice question that will show you exactly what is asked of you and then you have one question where it really counts so it's it's very short i will try to keep um try to avoid having the semester full of more deadlines i'm sure this is the least thing you need to be micromanaged at the level of more more deadlines over the whole term i'll try to avoid that as much as possible but you should really think of this as being a way to offload weight from the exam two things you can accumulate over the term at a time that's convenient for you and with a very fair way of practicing before it really counts i think this is overall a much fairer way of assessing you than having this one high-stakes exam at the very end

7:54 it's also intermediate feedback for you so it means you don't have to wait till the very end before you see what happens and that's that's another positive thing about this

8:10 now the other components of the mark are continuous assessments so that's what ca stands for we'll do a video presentation i'll talk about each of these in more detail the programming puzzles will be further down the line i think none of them is really going on before the easter break um but let me check my my little calendar not to say something wrong here so uh indeed the programming puzzles are all due after the spring break did i say christmas break well either way it's the spring break so uh we'll have some time to discuss these uh in due time the video presentation is the first one it will also be due after the spring break to give you some extra time but i really intend you to work on this earlier than that and basically by the end of week three which is in roughly two weeks from now plus a couple of days i want you to form groups i'll talk in a little more detail about the video presentation on on a few of the next slides so this is more classical continuous assessments as you might have seen from other modules you do some extra tasks tiny little projects over the term and that earns you 10 each and the final bit is

9:36 a participation mark and that's the easiest uh of all to earn for you that is really what you've been doing on monday brilliantly already and what you're hopefully doing today again just participate in the slido questions that's all i'm asking you to do and that's why it's important for me that you sign up on slido with

10:04 the email that i can recognize from your sign up on canvas so use the liverpool email address and put in your name in the way that i can match it then i can i can get the data from slido whether you participate participated and i'll be i'll be generous what i'm really asking for is just uh answering these questions it is not not at all about giving correct answers whenever there is one many of the polls we've had up to now were mostly about what is your opinion on this and what do you think about that we will as we as we progress through the actual material we will more and more have questions where there's a definitive answer to them but i don't expect you to answer correctly for getting these participation marks i just want you to answer because again this is formative assessment it's a way for you and me to see how well you understood what i uh was talking about and that's um even more important in this format because i don't get to see your faces i don't see puzzled looks or i don't see people sleeping because i'm going way too slow so this will be my way to replace that um a little bit

11:26 Clickers

11:27 all right uh let's move on to a little bit of the extra gimmicks that i added to this class you've already seen this this is an old term clickers is what it used to be called when these student response systems like slido were actually using hardware devices that students were forced to buy what a fun what a fun thing but the it's it's just the name stuck around because it's it's a a cute thing a cute name and people just kept it as that as i said so uh the main thing why i want to do this is to keep you engaged keep you awake it's a it's a simple way to make sure the brains are still following that's all it is it's psychology it's a little more than that uh is always it's also a way for me to see how well you're following

12:30 yeah as i said there will be marks but just for the participation not for correct answers and uh like in this case there is really no correct answer so and i think you will be able to see everyone's answer on this one

13:00 so um i'll give you uh a minute or so i think we might be a bit more than 29 people but it's interesting that uh despite your the uh the pandemic class of the pandemic intake who have spent so much time online i guess most of your teaching might really have been asynchronous lectures as opposed to these live streams and that might mean that there was less of a desire for lecturers to use such systems when i asked that question last year um i would have to lie to say that i remember the exact numbers i used the same system last year you know the good old times when we could all be in one room together with the iteration last year it was even even more extreme like almost no one had used the system before that's quite interesting and quite telling in a way um because there's massive evidence that these these uh little questions to keep you awake are super effective to uh well keep you engaged um improve uh participation and improve um people staying connected to the class and uh even learning better all right the next thing on the list is campus wire i've mentioned the platform before i've shown you my screen before so what is campus wire really

14:34 Class Feed

14:38 it's in a sense an online space if you like this term or it's a communication platform it has similarities to things like slack and discord in that it's a chat room organized by topic where people can can hang out but also work productively and collect thoughts uh it has an additional thing that these tools usually don't have and that's the class feed which is specifically for question and answers as i said ben will walk you through this in more detail in the tutorial but in in essence um i want i want you to put all questions about the course that you have um on uh campus wire so that other students have a chance to answer them and there will be some incentives uh to do that that i'll come to so again uh here is the link to join you need the the join code

15:40 to sign up but i guess by now most of you managed to do this and then you can just use the same the same code but with a c instead of a p to directly get to the class and they have nice apps at least i've used the the android app here and it works it works almost flawlessly so that's that's pretty useful

16:04 so as i said this should be uh the main communication tool for our class both while we're having class as well as outside of class if if there's anything that arises the hope is that this will be a life a life thing that that is helpful to all of you

16:30 QA

16:30 all right um i have more to say about this here um about the q a and uh ben will show you how this looks in campus wire but the the theory behind it is whenever you have questions like like this just about the topic or about organizational things where it's very likely that others will have the same question ask them on the class feeds as public questions uh feel free to play with this and test it out while we're going if you feel i'm i'm going slower than you can process it feel free to to test it out while we're doing the class the important part is it's not just you asking questions and ben and me answering them it's also about you answering other people's questions now for organizational stuff like this one uh it's probably fine to leave those to us but for contents about the mid for topic questions about the contents and the material it's very helpful if you make an effort to answer because that's a very effective way to learn something i experienced myself very early on when i was when i was tutoring it's just once you have to explain something you really see if you understood it these q and a's are great ways for you to explore and

17:49 experience exactly that thing learning by teaching and this there's various ways how you can interact with questions so play with it um the feedback i've got um on monday was that the the platform is intuitive enough for you to just play with it so uh yeah feel free feel free to ask if you have questions how to use something but it probably will be good one of the features that has that campus wire has another feed and other things like uh the the forums on canvas for example don't have is you can ask questions anonymously

18:32 and i think you can also just direct message me i don't know if you can ask private questions in the class feed maybe ben knows so if you use private messages if you think you would spoil with your question some assessment or some tutorial problem or if it's only relevant to you i would still say rather use direct messages on campus wire than email because it's it's usually easier to get a quick reply and you have the chance to ask maybe ben and myself so that's double the chance that someone answers rapidly

19:14 QA Goals

19:16 a little bit more about the goals of this q a my goals are i want to be fair so this is more relevant in in a face-to-face setting um then it often happens in in office hours in the traditional sense that some people get an answer and other people get a different answer i don't want this if you have this centralized q a system everyone gets the same answers and that's that's fairer

19:43 i mentioned this already you learn a lot by giving answers so please do that and well this is another thing about just not only anonymous it is also more inclusive if you allow people time to ask now we already have different forms on on slido you can ask questions and then you can also take your time in a face-to-face setting this was more relevant uh being inclusive was more relevant but um it still is in a sense uh if you if you look at the answers so this is this is all things that i like about campus wire so these are our principles so what we will do is i'll try to redirect questions to the class feed if possible and ben and i will wait before we answer anything so that's an important point if if you feel we're just slow if it's a question about material on purpose we will wait a couple of hours or a day before we answer to give others other students a chance to answer first but what comes from that is uh you might get a student answer and you're not sure if it's if it's accurate um well you don't you don't know each other and even if you do um how how sure can you be about the answer

21:01 that's why ben and i will make an effort to explicitly mark good answers and also good questions uh as such there's a feature on the platform for that essentially by upvoting as an instructor you get the official stamp that this answer is is factually correct and if if it needs additional comments we will just put those comments there and finally this is a little bit of um gamification and incentive for you to take part in this uh to get this going i will give you bonus points for essentially the class test mark which is a good part of the final mark so this is worthwhile doing you get some points whenever a question is is marked as good and we'll be generous with that uh it's just um to prevent you from spamming us with nonsense you will also get points for answering whenever that answer is accepted as a good answer you get 20 points and there's extra points if your answer is so good and comprehensive that we don't even have to clarify anything that makes up to 40 points per answer and you see with a hundred points you get one percent at just a plus one on your class test mark so if you participate in this lively you will have a chance to

21:26 QA Gamification

22:23 decently boost your class test mark with that i hope that's incentive enough to keep this going i'm also convinced that you will just profit from especially answering questions on campus wire in terms of your your final exam mark just because you will understand the material better

22:47 a little comment about the video presentation even though it's still a little way to go um the goals here are to engage you with research literature it's a scientific course so it's important to also touch a little bit on on actual research and cutting-edge research and i want you to do this for one particular topic now i know not all of you will be interested in in a career in research and many of you might not really need this skill so i'll give you a lot of leeway to choose a topic that is personally interesting for you and that way i hope that you will find this an actual enjoyable task and by the way i want you to experience some new ways of disseminating knowledge um in a sense uh again this feels a bit outdated i mean um well i don't know maybe this is uh a question i should have asked how many of you have um done a youtube video and uploaded a youtube video maybe this is something for the for the back channel shout out if you want if you're an active youtuber um i mean all of you will be watching youtube videos but how many have created one maybe that's an interesting question so this is your

22:52 Research Literature

24:13 chance to become an active youtuber at least for one for one video you will do this in in groups three to four students so your first task is to find a group of students i realize this is much tougher this term so we will try to use the tutorials to help a bit without and i shifted this back a couple of weeks used to be much earlier last term but i think it's helpful for you to first get to know each other a little bit and then have a way to form groups and if if this is desired i can also assign people randomly to groups that's totally fine and then you will select an article from

25:04 essentially communications of the acm that's a research journal that publishes articles from all over computer science it's very well known and well renowned so they publish good articles but they also publish articles that are understandable by the general public in computer science so these are articles that are approachable for you at least at least some of them are very very approachable and so you will find something there even if you're not an expert in a certain field or not an expert in computer science yet

25:41 if you want and for those of you who do perceive pursue a research career um i don't want to i don't stop you to do a different paper from a different place but just be very careful with that um [Music] it will be a lot more effort usually and it's easy to get lost in in the world of research papers but if this is relevant to you um be in touch um there's there's plenty of time but uh yeah be in touch about that before you make a selection or a decision and then you can suggest articles and if they're suitable i will give my okay to something outside of comm-icm the final video is only due after the spring break i think that's the whatever day after the spring break that is and that gives you a lot of time to do it but i would really encourage you to do it earlier than that it's it's probably the tuesday after the spring break i would encourage you to finish the video much earlier than that because there will be other continuous assessments coming along but that should give you a little bit more of flexibility how to schedule things also with

26:59 coordinating with other lectures and other deadlines there there was a question in the q a whether we can use campus wire for getting your team together you can absolutely do that so one thing in campus wire is you can create chat rooms i think you should be allowed to create your own private chat rooms so uh you once you've found your group you can absolutely use campus wire to communicate

27:34 for getting a team together in terms of finding others to collaborate um maybe we'll just create another public channel for finding groups if if that's helpful i'll think about it a bit what's the best way to do it um i think spamming the classroom is maybe not so helpful and we currently only have the the social and um topic chat room maybe let me just add

28:09 this right now so uh there's a new chat coming up now it's it's uh you have to join explicitly finding group uh should have been finding groups so you you can use that um just shout out uh if you're looking for a group and what type of article you're interested in maybe that's a way to get started and get a conversation

28:34 Philosophy

28:37 all right um that brings me to the last comment on the organizational site before we can start with some actual material i want to comment a little bit on the philosophy of this module and i want to do this in form of a comic so maybe this is a bit too small i don't want to be i don't want you to be like that guy uh sitting in front of a computer hacking something together and it doesn't work or it works and either way you have no clue what happened uh i would read i would rather like you to be a bit like that so uh i'll just i'll just read this out this is um from from a comic strip so it's it's teachers chatting in the teacher's room the world is so complicated

29:31 the more i learn the less clear anything gets there are too many ideas and arguments to pick and choose from how can i ever trust myself to know the truth about anything and if everything to know i know is so shaky what on earth am i doing teaching well i i guess you just do your best no one can impart perfect universal truths to their students except math teachers thank you so i want to talk a little bit about the uh the universal truths of computer science or of algorithmic algorithms in more specifically and these two exist uh one one of the great things in computer science is all of these um all of these things in in computers they're man made we created these machines we created computers in theory we know exactly what's happening and we also created all these algorithms so again in theory we know exactly what's happening

30:38 and uh that means in principle we can predict and analyze and exactly say what's going on now reality is a little more complicated uh unfortunately it's it can be quite chaotic what happens in an actual computer at a certain moment in time and i think no one is is still able to see through all these layers of obstruction and and handle the complexity of modern day computers that said what we can do is um form models of reality something that came up on in and then comes up in the next unit we can form models of reality that are not perfect models of what happens but they're very close because computers are still very artificial and man-made and they're created after these models so there's there's ways how you can make quantitative predictions and actually prove theorems about things prove theorems in a mathematical way that hold true for things happening in computers that's possible and it's also possible sometimes to prove that certain things are not achievable that's what people call lower bounds and that's another distinctive thing in computer science that hardly any other science can claim there's um a few weak things say in physics there's um laws in in thermodynamics um that tell you certain things are not possible like a perpetual mobility won't

32:09 be possible but machines that you can actually build are usually far away from this so there's other limiting factors friction etc coming into the game much earlier than these fundamental limits in computer science that's not quite true for many problems and you will see some examples

32:34 for some for some problems we know we cannot possibly do better than a certain efficiency and we can also show that we can achieve basically the same efficiency so we can talk about the best possible about optimal algorithms or solutions for a certain problem that's a distinctive thing of computer science that i think no other other science has in the same way and these are the universal truths of algorithms that i want to share with you and show some of the the nicest results from this area now what this means is that we need a little bit of mathematical techniques for that um the module will not be very theoretical um but it will it will use some of the language it will it will not be very heavy in in math in terms of proofs and things but it will use the terminology and i will sometimes hint at what the proofs are like so i want to dive a little bit into mathematical techniques and the the things that are needed for that

← Video 0-1: Welcome, teaching mode, prior knowledge surveyVideo 0-3: §0.1 Proof templates →