0% found this document useful (0 votes)
3 views

14_project-prototype.en

Mia Minnes discusses the various roles in computer science, focusing on algorithm development, implementation, and user experience in building applications. The course will involve creating a text editor with functionalities like spell check, autocomplete, and Flesch Index calculation, allowing students to apply fundamental computer science concepts. Students will explore both back-end and front-end development while understanding the interaction between different roles in the project development process.

Uploaded by

tdkhanh1502
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

14_project-prototype.en

Mia Minnes discusses the various roles in computer science, focusing on algorithm development, implementation, and user experience in building applications. The course will involve creating a text editor with functionalities like spell check, autocomplete, and Flesch Index calculation, allowing students to apply fundamental computer science concepts. Students will explore both back-end and front-end development while understanding the interaction between different roles in the project development process.

Uploaded by

tdkhanh1502
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

[MUSIC] Hi, I'm Mia Minnes, and I'd like to think

with you for a minute about computer science and the various roles that
we can play as computer scientists. So, when you think about building your
project or building a new application, there's a spark at the beginning which is
the idea for what you want to build and what you wanna do. And then there's a
process where you
do some algorithm development and decide how you're going to solve
the problem and perform that task. And then you go into
the implementation phase, testing, maybe doing some use cases and
use error analysis. And then think about that user experience,
and the human computer interaction. Now within computer science we
have sub disciplines that really think about each one of these stages and
go even further. And, in this course, we invite you
to try on some of these hats and to work in each one of these roles,
but the focus will be on the first few pieces that we
talked about, those first few stages. The algorithm development, which is where
my research area really focuses, but then also the implementation and
analysis of performance, and different data structures that support the
project and the performance of our code. So what we'll be doing
in this project demo, is showing you a prototype of the project
that you'll be developing in this course. And I hope that you'll be as
excited about it as I am. So what you can see here is a prototype
of the project that you'll be building. Now you'll be focusing on the backend
algorithm design and implementation, and the performance implications. But we've
built a front-end prototype,
very simple user interface. So you can see your work come to life and
really interact with it. Now from the get go you'll already be able
to type in some text into this text box. For example the cat is on the mat. But now
let's think about
the functionality that you'll add in. And so for example,
you'll be able to do spell check. And so when we go on and try to write
more we might wanna write the cat. Look, there's already a mistake,
T-E isn't a word. And so, your code will be able to
highlight those spelling errors and indicate that there's a problem. Moreover, when
we right click on that
error, we can look for suggestions. And so, the, which is what I intended to
spell, comes off as a suggested word. And so if we say the cat is black, then
already when I'm just
starting off to type B-L-A-C, I haven't gotten to a fully
correct spelled word. And so my text editor is saying hold on,
you haven't spelled the word correctly yet, and
I might ask my word processor for help. Could you help me autocomplete the word?
And so in that if I turn on
autocomplete then, now I have a list of suggestions as I'm developing
the new text and as I'm writing more. So for example I can write the and without
having to spell the whole word, I'm coming up, I'm getting suggestions about
how I might want to complete my word. So the cat is [SOUND] happy. That sounds
good, that's the word I want. And now I have three sentences, two of
which were helped by the code that you'll be running, namely Spell Check,
Spell Suggest, and Auto-Complete, which I think is really cool because we
use these functionalities every day when we're typing on our really modern word
processors, but now you get to peek under the hood and see how those
functionalities
really get developed and implemented. Now in addition to the pieces that we've
already seen, we'll also be implementing what's called the Flesch Index,
which is this button over here. And what the Flesch Index lets us
calculate is how hard it is to read this text. And so, for example, if we compute
the
Flesch Index of the text that we have over here, we get a really high number which
indicates that these sentences are really quite simple, and we expect beginning
readers to be able to read and understand what's going on in them. And that kind of
makes sense too. So you'll be implementing that and
moreover, you'll be implementing something
called the edit distance, which lets us compare two words to see
how far they are from one to the other. And you can see how that might
be connected with some of the other functionality that we've already
jammed into this really cool project like autocomplete because then
you want to find nearby words. So, let's try the words hi and bye and let's see how
far apart
they are from one another. And so if we think about
connecting those two words, we see that we could switch the word hi by switching
one word at a time to get all
the way to bye in just first three steps. And so, you'll be implementing that game
too as well as generating mark off text. Which means start with the words that
are already in that text box and try to create new text
based on the patterns or the quirks that we see in the text
that we trained on or we started with. If we want, for example, to generate
maybe 20 more words, based on the cat is on the mat, the cat is black, the cat is
happy, then we see the cat is on the mat. The cat is black. The cat is black. The
cat is happy. The cat. And so notice that these sentences
are a little bit different from what we had before, but
they have some of the same feel. And so we're able to do this
predictive text creation as part of the nifty word processor
that you will be creating. So these are the functionalities that you
will be developing throughout this course. But what's really important aside from
having a sense of satisfaction in building this application, is that you'll be
using
really important fundamental computer science concepts throughout. And you'll be
thinking about how these
roles of back-end developers and front-end developers interact with one
another, and how the algorithm design and the foundational concept of computer
science really drive us forwards as we develop more and more projects.

You might also like