<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1760164640344466369</id><updated>2012-02-28T12:39:46.027-08:00</updated><category term='perl qw operator'/><category term='tuples'/><category term='binary tree generation'/><category term='perl variable scope'/><category term='python sequences'/><category term='coding programs by numbers'/><category term='python list manipulation'/><category term='python object comparison'/><category term='unbounded minimalization'/><category term='dempster-shafer support functions'/><category term='persistent objects'/><category term='perl globally scoped variables'/><category term='eyes-free shopping'/><category term='factorial'/><category term='android broadcast receivers'/><category term='android sqlite'/><category term='successor snapshots'/><category term='bitmap manipulation'/><category term='epsilon closures'/><category term='IntentService'/><category term='cocke-younger-kasami'/><category term='* and ** operators'/><category term='android menus'/><category term='blind navigation'/><category term='vladimir kulyukin'/><category term='vars()'/><category term='nondeterministic finite state automata'/><category term='reduce()'/><category term='perl array references'/><category term='independent blidn shopping'/><category term='java'/><category term='android intents'/><category term='wifi'/><category term='android ListView'/><category term='binary tree'/><category term='point and segment reflections'/><category term='church&apos;s thesis'/><category term='python functions'/><category term='android relativelayout'/><category term='perl multidimensional arrays'/><category term='program states'/><category term='introspection'/><category term='equivalence of nfas and dfas'/><category term='perl programming'/><category term='tile ornaments'/><category term='catalan numbers'/><category term='python cgi'/><category term='list comprehension with matrices'/><category term='android process lifecycle'/><category term='perl packages'/><category term='well-ordering principle'/><category term='ubuntu'/><category term='location providers'/><category term='primitive recursiveness'/><category term='android views'/><category term='duck typing'/><category term='formalism'/><category term='PIL'/><category term='quantification'/><category term='program snapshots'/><category term='search engine'/><category term='john nicholson'/><category term='android sqlite databases'/><category term='prime factorization'/><category term='university of ljubljana'/><category term='python strings'/><category term='android secondary menus'/><category term='indoor localization'/><category term='perl my'/><category term='information extraction'/><category term='blind shopping'/><category term='character concatentation'/><category term='min/max'/><category term='CGI'/><category term='polymorphism'/><category term='range()'/><category term='computer  science education'/><category term='del'/><category term='masaryk university'/><category term='trie data structure'/><category term='huffman tree'/><category term='access functions for godel numbers'/><category term='pascal&apos;s triangle'/><category term='fermat&apos;s primality test'/><category term='geocoding'/><category term='min binary heap'/><category term='robotics'/><category term='warnings option'/><category term='touchsreen gesture interfaces'/><category term='bitmaps in python'/><category term='pairing functions'/><category term='python source'/><category term='accessible technology'/><category term='android GUI'/><category term='prime numbers'/><category term='android context menus'/><category term='ShopTalk'/><category term='HRI'/><category term='characteristic functions'/><category term='regular languages'/><category term='grammars and derivations'/><category term='polynomial evaluation'/><category term='partial functions'/><category term='stoplist'/><category term='smarthpones'/><category term='CGI environment variables'/><category term='computability'/><category term='newton&apos;s square root'/><category term='puthon tutorial'/><category term='python os.walk'/><category term='coroutine activities'/><category term='python find()'/><category term='accessible shopping'/><category term='perl string interpolation'/><category term='application lifetime'/><category term='string interpolation'/><category term='hash table'/><category term='joshua miele'/><category term='intersection of normal with line'/><category term='eyes-free barcode scanning'/><category term='subset construction'/><category term='godel decoding'/><category term='perl hashes'/><category term='android intent'/><category term='android programming'/><category term='proof by induction'/><category term='assistive robotics . robot-assisted wayfinding'/><category term='newton-raphson method'/><category term='shared data structures'/><category term='google nexus one'/><category term='left linear grammars'/><category term='strings'/><category term='recusion theory'/><category term='eval()'/><category term='NFA'/><category term='perl on linux'/><category term='python string templates'/><category term='finite automata in robotics'/><category term='godel numbering'/><category term='android OS'/><category term='functional abstraction'/><category term='android activities'/><category term='google maps'/><category term='perl next'/><category term='arrays'/><category term='perl modules'/><category term='XML'/><category term='android services'/><category term='huffman coding'/><category term='blindness'/><category term='java patterns'/><category term='android text-to-speech'/><category term='halting problem'/><category term='verbal route instructions for the blind'/><category term='BNN'/><category term='android'/><category term='pigeon hole principle'/><category term='xrange()'/><category term='python generators'/><category term='python join()'/><category term='avl tree generation'/><category term='bounded summations and products'/><category term='regular expressions'/><category term='computability theory'/><category term='crowdsourcing'/><category term='egrep'/><category term='android content provider'/><category term='recursion'/><category term='euclid&apos;s 1st theorem'/><category term='split()'/><category term='prefix matching'/><category term='primitive recursive predicates'/><category term='primitive recursivness'/><category term='primitive recusively closed'/><category term='directory traversal'/><category term='slovenia'/><category term='compound predicates'/><category term='web development'/><category term='python object serialization'/><category term='python user input'/><category term='computable functions'/><category term='python numbers'/><category term='location-based services'/><category term='rice&apos;s theorem'/><category term='hello android application'/><category term='dynamic and strong typing'/><category term='tokenization'/><category term='CNF'/><category term='formal languages'/><category term='python pickle module'/><category term='android custom menus'/><category term='length of natural numbers'/><category term='program properties'/><category term='numeric context'/><category term='android textviews'/><category term='porter algorithm'/><category term='ShopMobile'/><category term='context free grammars'/><category term='regular grammars'/><category term='independent travel'/><category term='computer science'/><category term='proof by contradiction'/><category term='rehabilitation engineering'/><category term='editing python code'/><category term='turing machines'/><category term='gödel numbering'/><category term='perl array assignment'/><category term='data persistence on android'/><category term='yes-free nutrition information extraction'/><category term='map labeling'/><category term='android development best practices'/><category term='zone vectors'/><category term='function macros'/><category term='quantifiers'/><category term='finite state automata'/><category term='creating bitmaps'/><category term='run-time code generation'/><category term='eyes-free computing'/><category term='assistive robotics . robot-assisted wayfinding . RFID-based localization . human-robot interaction'/><category term='AIDL'/><category term='bounded minimalization'/><category term='python string manipulation'/><category term='perl last'/><category term='basic 2D geometry'/><category term='primes'/><category term='python http server'/><category term='perl lexical variables'/><category term='czech republic'/><category term='android web browsing'/><category term='composition'/><category term='touchscreen'/><category term='IR'/><category term='CGI.pm'/><category term='gödel numbers'/><category term='image binarization'/><category term='python loops'/><category term='zip()'/><category term='perl lexically scoped variables'/><category term='database helpers'/><category term='robot navigation'/><category term='bezout&apos;s identify'/><category term='universal turing machines'/><category term='dempster-shafer theory'/><category term='shared agendas'/><category term='perl dynamically scoped variables'/><category term='primitive instructions'/><category term='KML'/><category term='bhagavatgita in russian'/><category term='perl distributions'/><category term='amit banavalikar'/><category term='human-robot interaction'/><category term='android texttospeech'/><category term='hash'/><category term='verbal route directions for the blind'/><category term='STP predicate'/><category term='sequence unpacking'/><category term='context-free grammars'/><category term='scoping'/><category term='android ContentProvider'/><category term='inheritance'/><category term='perl named and anymous array references'/><category term='perl named array references'/><category term='stemming'/><category term='primitive recursive functions'/><category term='perl variables'/><category term='perl 2D arrays'/><category term='binary heap'/><category term='fermat&apos;s little theorem'/><category term='xml processing on android'/><category term='OCR'/><category term='service robotics'/><category term='perl editors'/><category term='large print maps'/><category term='perl redo'/><category term='computation'/><category term='enumerate()'/><category term='nested scopes'/><category term='perl arrays'/><category term='basic 2D graphics'/><category term='stack machines'/><category term='eyes-free barcode localizaiton and decoding'/><category term='least common multiple'/><category term='android software installation'/><category term='deterministic finite automata'/><category term='pass'/><category term='universality'/><category term='palindrome'/><category term='android handler'/><category term='contradiction'/><category term='theory of computation'/><category term='python OOP'/><category term='data abstraciton'/><category term='multiple inheritance'/><category term='Eclipse'/><category term='perl. perl programming'/><category term='OOP'/><category term='dfa transition function'/><category term='android touchscreen'/><category term='multiple activites within one android application'/><category term='perl global variables'/><category term='context free languages'/><category term='unique factorization theorem'/><category term='education'/><category term='android regular menus'/><category term='perl'/><category term='unbounded quantification'/><category term='perl dynamic scope'/><category term='URI'/><category term='useless symbols in cfgs'/><category term='running python code'/><category term='python built-in objects'/><category term='GUI'/><category term='backus-naur notation'/><category term='DFA'/><category term='horner&apos;s rule'/><category term='perl ranges'/><category term='information retrieval'/><category term='proofs'/><category term='perl grep'/><category term='partially computable functions'/><category term='code vs. xml in android guis'/><category term='python cgihttpserver'/><category term='perl array slices'/><category term='os.walk'/><category term='basic image processing'/><category term='android ArrayAdapter'/><category term='pumping lemma'/><category term='bhagavatgita in sanskrit'/><category term='perl string ranges'/><category term='android shared preferences'/><category term='basic geometry'/><category term='python interpreter'/><category term='synthetic division of polynomials'/><category term='web walker'/><category term='sqlite'/><category term='fibonacci numbers'/><category term='basic computer graphics'/><category term='primitive recursion'/><category term='android xml'/><category term='gps'/><category term='aliasgar kutiyanwala'/><category term='collaborative problem solving'/><category term='string context'/><category term='recursive descent parsing'/><category term='predicates'/><category term='accessible blind shopping'/><category term='2D plotting'/><category term='started intent services'/><category term='aliasgar kutiyanawala'/><category term='mobile computing'/><category term='godel numbers'/><category term='map()'/><category term='max binary heap'/><category term='&quot;perl q qq operators&quot;'/><category term='sets'/><category term='perl foreach'/><category term='perl cgi'/><category term='CFG'/><category term='eyes-free barcode localization'/><category term='perl special variables'/><category term='visual impairment'/><category term='teleassistance'/><category term='exec()'/><category term='low vision'/><category term='game theory'/><category term='turing machine enhancements'/><category term='java programming'/><category term='list comprehension'/><category term='android arrayadapters'/><category term='xml primer'/><category term='nagari script numerals'/><category term='accessibility'/><category term='function intropsection'/><category term='huffman encoding'/><category term='blind route descriptions'/><category term='huffman trees'/><category term='number theory'/><category term='wearable computing'/><category term='pilfonts'/><category term='python dictionaries'/><category term='turning machines'/><category term='computer science education'/><category term='brno'/><category term='array references'/><category term='html tables'/><category term='auto-generation of huffman trees'/><category term='blind travel'/><category term='android drag and drop'/><category term='android ndk'/><category term='godel coding'/><category term='foreach'/><category term='heap'/><category term='list processing'/><category term='context-sensitive subroutines'/><category term='euclid numbers'/><category term='replace()'/><category term='data abstraction with lists and tuples'/><category term='macros'/><category term='vladimir kulyulkin'/><category term='perl lists'/><category term='XML DOM'/><category term='avl tree'/><category term='text processing'/><category term='inner functions'/><category term='python lists'/><category term='android layouts'/><category term='james marston'/><category term='python image library'/><category term='CYK'/><category term='long polynomial division'/><category term='compuer science education'/><category term='partial function'/><category term='assistive technology'/><category term='python data abstraction'/><category term='kleene closures'/><category term='forking server'/><category term='fibonacci sequence'/><category term='dfa implementation in java'/><category term='perl subroutine arguments'/><category term='commong gateway interface'/><category term='set former notation'/><category term='chaitanya gharpure'/><category term='primitive recursively closed'/><category term='cgi get forms'/><category term='android tablelayout'/><category term='python tutorial'/><category term='filter()'/><category term='perl recursive subroutines'/><category term='python iterators'/><category term='android TTS'/><category term='python string methods'/><category term='perl on windows'/><category term='predicate calculus'/><category term='android progrmaming'/><category term='huffman decoding'/><category term='android looper'/><category term='program simulation'/><category term='mobile development best practices'/><category term='complete binary tree'/><category term='android emulator'/><category term='induction'/><category term='python'/><category term='binary exponentiation'/><category term='index sets'/><category term='function parameters'/><category term='universal programs'/><category term='alphabets'/><category term='perl scope'/><category term='IDLE'/><category term='crawler'/><category term='perl matrix manipulation'/><category term='python multiple inheritance'/><category term='eyes-free barcode decoding'/><category term='RoboCart'/><category term='multitasking on android'/><category term='database adapters'/><category term='python programming'/><category term='variable assignments'/><category term='started and bound services'/><category term='REST'/><category term='chomsky normal form'/><category term='CRISS'/><category term='programming'/><category term='tutorial'/><category term='activity lifetime'/><category term='python types'/><category term='primitive recursively closed function classes'/><category term='daniel coster'/><category term='recursion theory'/><category term='ramya venugoplana'/><category term='mini search engine'/><category term='perl numeric ranges'/><category term='cosine similarity'/><category term='perl array slicing'/><category term='step-counter theorem'/><category term='bounded quantification'/><category term='functional programming'/><category term='dictionary'/><category term='verbal route instructions'/><category term='right linear grammars'/><category term='android application components'/><category term='sqlite on android'/><category term='list comprehension with nested loops'/><category term='python installation'/><category term='perl subroutines'/><category term='equivalance of DFAs and NFAs'/><category term='object-oriented programming'/><title type='text'>VKEDCO: Vladimir Kulyukin's Education Coop</title><subtitle type='html'>Computer Science Education, Research, and Development: On Things Computed, Computing, and Computable</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vkedco.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default?start-index=101&amp;max-results=100'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>256</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-3275105800185759232</id><published>2012-02-28T12:37:00.001-08:00</published><updated>2012-02-28T12:38:30.747-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python image library'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='tile ornaments'/><title type='text'>Drawing Tile Ornaments with Python Image Library (PIL)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: xx-small;"&gt;'''&lt;br /&gt;===========================================================================&lt;br /&gt;Module: run_length_ornament.py&lt;br /&gt;Description:&lt;br /&gt;&lt;br /&gt;1. Drawing tile ornaments with run-length encoding.&lt;br /&gt;2. A tile ornament is defined as an RGB image divided into&lt;br /&gt;rows of squares. Each row of squares can be represented&lt;br /&gt;as a sequence of runs of squares of specific colors.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;Let us define three RGB colors: r - red, w - white, o - blue&lt;br /&gt;&lt;br /&gt;r, w, o = (255, 0, 0), (255, 255, 255), (0, 0, 255)&lt;br /&gt;&lt;br /&gt;Then we can represent a 10x10 tile ornament as follows:&lt;br /&gt;&lt;br /&gt;ornament_01 = [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, r, o), (8, w, o), (1, r, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, w, o), (1, r, o), (6, w, o), (1, r, o), (1, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(2, w, o), (1, r, o), (4, w, o), (1, r, o), (2, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(3, w, o), (1, r, o), (2, w, o), (1, r, o), (3, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(4, w, o), (2, r, o), (4, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(4, w, o), (2, r, o), (4, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(3, w, o), (1, r, o), (2, w, o), (1, r, o), (3, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(2, w, o), (1, r, o), (4, w, o), (1, r, o), (2, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, w, o), (1, r, o), (6, w, o), (1, r, o), (1, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, r, o), (8, w, o), (1, r, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;br /&gt;&lt;br /&gt;In this ornament, row 0 consists of 1 red tile with blue outline (1, r, 0),&lt;br /&gt;8 white tiles with a blue outline (8, w, 0), and 1 red tile with a blue&lt;br /&gt;outline. Row 1 consists of 1 white tile with a blue outline, 1 red tile&lt;br /&gt;with a blue outline, 6 white tiles with a blue outline, 1 red tile with&lt;br /&gt;a blue outline, and 1 white tile with a blue outline.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://www.youtube.com/watch?v=piWKJpiC94o"&gt;http://www.youtube.com/watch?v=piWKJpiC94o&lt;/a&gt; for details.&lt;br /&gt;&lt;br /&gt;3. Tiles can be generated for ornament representations with&lt;br /&gt;&lt;br /&gt;- draw_tile_ornament(imgpath='', imgsize=(0, 0), ornament=[], tileside=1)&lt;br /&gt;- draw_tile_ornament_with_ImageDraw(idraw, ornament, side)&lt;br /&gt;&lt;br /&gt;See tests at the end of the module for examples.&lt;br /&gt;&lt;br /&gt;Bugs, comments to vladimir dot kulyukin at gmail dot com&lt;br /&gt;===========================================================================&lt;br /&gt;'''&lt;br /&gt;&lt;br /&gt;import Image&lt;br /&gt;import ImageDraw&lt;br /&gt;&lt;br /&gt;def draw_square(idraw, top_left=(0, 0), side=1,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fill_color=(0,0,0), outline_color=(0,0,0)):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_square uses ImageDraw.rectangle() to draw a square&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - idraw is ImageDraw&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - top_left is the top left of the square&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - side is the number of pixels in the side of the square&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - fill_color is the fill color of the square&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - outline color is the outline color of the square&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idraw.rectangle((top_left, square_bottom_right(top_left, side)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fill=fill_color, outline=outline_color)&lt;br /&gt;&lt;br /&gt;def square_bottom_right(top_left, side):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; square_bottom_right returns the tuple encoding the x, y coordinates&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; of the bottom right of the square given the square's top left coordinates&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and its side&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; top_x, top_y = top_left[0], top_left[1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (top_x + side-1, top_y + side-1)&lt;br /&gt;&lt;br /&gt;def draw_tile_run(idraw, row_run, row_num, side):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_tile_run draws a row of square tiles in the image&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - idraw is an ImageDraw object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - run_run is a list with run-length encodings of tiles&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - row_num is the number of the tile row in the image&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - side is the side of the square tile&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; current_x, run_y = 0, side*row_num&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for re in row_run:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count, fill, outline = re[0], re[1], re[2]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while count &amp;gt; 0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_square(idraw, top_left=(current_x, run_y), side=side,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fill_color=fill, outline_color=outline)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count -= 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; current_x += side&lt;br /&gt;&lt;br /&gt;def draw_tile_ornament(imgpath='', imgsize=(0, 0),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ornament=[], tileside=1):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create an RGB image with white background, draw a tile ornament on it&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and save the image.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - imgpath is a path to the file where the generated image is saved&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - imgsize is the size of the image (should be a multiple of tileside)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - ornament is the run length encoding of a tile ornament&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - tileside is the side of the square tile in pixels&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im = Image.new('RGB', imgsize, (255, 255, 255))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idraw = ImageDraw.Draw(im)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row_run, row_num in zip(ornament, xrange(len(ornament))):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## print (row_num, row_num)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_tile_run(idraw, row_run, row_num, tileside)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im.save(imgpath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del im&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del idraw&lt;br /&gt;&lt;br /&gt;def draw_tile_ornament_with_ImageDraw(idraw, ornament, side):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Use an ImageDraw object to draw a tile ornament in the image&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; associated with that object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - idraw is an ImageDraw object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - ornament is a run-length encoding of a tile ornament&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - side is the length of a square tile in pixels&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row_run, row_num in zip(ornament, xrange(len(ornament))):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## print (row_num, row_num)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_tile_run(idraw, row_run, row_num, side)&lt;br /&gt;&lt;br /&gt;############################## TESTS ###############################&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;## r is red, w -is white, o is outline color (blue)&lt;br /&gt;r, w, o = (255, 0, 0), (255, 255, 255), (0, 0, 255)&lt;br /&gt;&lt;br /&gt;## first tile ornament.&lt;br /&gt;## row 0 consists of 1 red tile with blue outline,&lt;br /&gt;## 8 white tiles with blue outline, and 1 red&lt;br /&gt;## tile with blue outline, etc.&lt;br /&gt;ornament_01 = [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, r, o), (8, w, o), (1, r, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, w, o), (1, r, o), (6, w, o), (1, r, o), (1, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(2, w, o), (1, r, o), (4, w, o), (1, r, o), (2, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(3, w, o), (1, r, o), (2, w, o), (1, r, o), (3, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(4, w, o), (2, r, o), (4, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(4, w, o), (2, r, o), (4, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(3, w, o), (1, r, o), (2, w, o), (1, r, o), (3, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(2, w, o), (1, r, o), (4, w, o), (1, r, o), (2, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, w, o), (1, r, o), (6, w, o), (1, r, o), (1, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, r, o), (8, w, o), (1, r, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;br /&gt;&lt;br /&gt;## second tile ornament&lt;br /&gt;ornament_02 = [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(5, w, o), (1, r, o), (3, w, o), (1, r, o), (11, w, o), (1, r, o), (3, w, o), (1, r, o), (5, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(4, w, o), (3, r, o), (1, w, o), (3, r, o), (9, w, o), (3, r, o), (1, w, o), (3, r, o), (4, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(5, w, o), (5, r, o), (11, w, o), (5, r, o), (5, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(2, w, o), (1, r, o), (3, w, o), (3, r, o), (3, w, o), (1, r, o), (5, w, o), (1, r, o), (3, w, o), (3, r, o),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (3, w, o), (1, r, o), (2, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, w, o), (3, r, o), (1, w, o), (5, r, o), (1, w, o), (3, r, o), (3, w, o), (3, r, o),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1, w, o), (5, r, o), (1, w, o), (3, r, o), (1, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(2, w, o), (5, r, o), (1, w, o), (5, r, o), (5, w, o), (5, r, o), (1, w, o), (5, r, o), (2, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(3, w, o), (3, r, o), (3, w, o), (3, r, o), (3, w, o), (1, r, o), (3, w, o), (3, r, o), (3, w, o),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (3, r, o), (3, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, r, o), (1, w, o), (3, r, o), (5, w, o), (3, r, o), (1, w, o), (3, r, o), (1, w, o), (3, r, o),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (5, w, o), (3, r, o), (1, w, o), (1, r, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(31, r, o)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: xx-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: xx-small;"&gt;&lt;br /&gt;## test draw_square()&lt;br /&gt;def test_01(impath, imx, imy):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im = Image.new('RGB', (imx, imy), (255, 255, 255))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idraw = ImageDraw.Draw(im)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_square(idraw, (10, 10), 20, fill_color=(255, 0, 0), outline_color=(0, 0, 255))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im.save(impath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del im&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del idraw&lt;br /&gt;&lt;br /&gt;## test draw_tile_run&lt;br /&gt;def test_02(impath, imx, imy):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im = Image.new('RGB', (imx, imy), (255, 255, 255))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idraw = ImageDraw.Draw(im)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; red, white = (255, 0, 0), (255, 255, 255)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outline = (0, 0, 255)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_run = [(1, red, outline), (8, white, outline), (1, red, outline)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_tile_run(idraw, row_run, 0, side=10)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im.save(impath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del im&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del idraw&lt;br /&gt;&lt;br /&gt;## drawing ornament_01 with draw_tile_ornament&lt;br /&gt;def test_03(impath):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_tile_ornament(imgpath=impath, imgsize=(100, 100), ornament=ornament_01,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tileside=10) &lt;br /&gt;&lt;br /&gt;## drawing ornament_01 with draw_tile_ornament_with_ImageDraw&lt;br /&gt;def test_04(impath, imx, imy, tileside):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im = Image.new('RGB', (imx, imy), (255, 255, 255))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idraw = ImageDraw.Draw(im)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_tile_ornament_with_ImageDraw(idraw, ornament_01, tileside)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im.save(impath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del im&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del idraw&lt;br /&gt;&lt;br /&gt;## drawing ornament_02 with draw_tile_ornament&lt;br /&gt;def test_05(impath):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_tile_ornament(imgpath=impath, imgsize=(310, 90), ornament=ornament_02,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tileside=10) &lt;br /&gt;&lt;br /&gt;## drawing ornament_02 with draw_tile_ornament_with_ImageDraw&lt;br /&gt;def test_06(impath, imx, imy, tileside):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im = Image.new('RGB', (imx, imy), (255, 255, 255))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idraw = ImageDraw.Draw(im)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; draw_tile_ornament_with_ImageDraw(idraw, ornament_02, tileside)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; im.save(impath)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del im&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; del idraw&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-3275105800185759232?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3275105800185759232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3275105800185759232'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/drawing-tile-ornaments-with-python.html' title='Drawing Tile Ornaments with Python Image Library (PIL)'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-5806121806018605580</id><published>2012-02-27T16:29:00.001-08:00</published><updated>2012-02-27T16:31:11.850-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Quizzes</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Department of Computer Science&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Utah State University&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_01_s12.pdf"&gt;&lt;b&gt;Quiz 01&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_02_s12.pdf"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Quiz 02&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_03_s12.pdf"&gt;&lt;b&gt;Quiz 03&lt;/b&gt;&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_04_s12.pdf"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Quiz 04&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_05_s12.pdf"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Quiz 05&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_06_s12.pdf"&gt;&lt;b&gt;Quiz 06&lt;/b&gt;&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;   &lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;  &lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-5806121806018605580?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5806121806018605580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5806121806018605580'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-quizes.html' title='Python &amp; Perl: Quizzes'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-151471216920008707</id><published>2012-02-27T15:29:00.002-08:00</published><updated>2012-02-28T10:53:07.079-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multiple inheritance'/><category scheme='http://www.blogger.com/atom/ns#' term='inheritance'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='polymorphism'/><category scheme='http://www.blogger.com/atom/ns#' term='object-oriented programming'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='introspection'/><title type='text'>Python &amp; Perl: Lecture 14</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Polymorphism, Encapsulation, Inheritance, Riley's Duck Test, Duck Typing, Critique of Duck Typing, Polymorphism vs. Encapsulation, Encapsulation &amp;amp; Privacy, Class Scope, Multiple Inheritance, Multiple Inheritance Pitfalls&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11775301" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-14" target="_blank" title="Python &amp;amp; Perl: Lecture 14"&gt;Python &amp;amp; Perl: Lecture 14&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11775301" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_06_s12.pdf"&gt;Quiz 06&lt;/a&gt;&amp;nbsp;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-151471216920008707?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/151471216920008707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/151471216920008707'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-lecture-14.html' title='Python &amp; Perl: Lecture 14'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-3894538220952055412</id><published>2012-02-24T13:10:00.005-08:00</published><updated>2012-02-24T13:25:53.887-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pilfonts'/><category scheme='http://www.blogger.com/atom/ns#' term='PIL'/><category scheme='http://www.blogger.com/atom/ns#' term='cosine similarity'/><category scheme='http://www.blogger.com/atom/ns#' term='OCR'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python image library'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='zone vectors'/><title type='text'>Python &amp; Perl: Assignment 07</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Learning Objectives&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;1. Basic image processing with Python Image Library (&lt;a href="http://www.pythonware.com/products/pil/index.htm"&gt;PIL&lt;/a&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;2. Exposure to zone matching in &lt;a href="http://en.wikipedia.org/wiki/Optical_character_recognition"&gt;Optical Character Recognition&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;3. List and dictionary manipulation in &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Zone Matching&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;Zone  matching is a technique used in computer vision for image matching. An  image is divided into several sub-images, called zones. In each zone, a  specific statistic is computed. For example, that statistic can be the  number of horizontal lines or the number of pixels of a specific color.  Consider the image below. The image is divided into 4 zones. Suppose  that statistic that we are interested in is the count of black pixels in  each zone.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://2.bp.blogspot.com/-oqsiaapvsdU/T0fg0xSipoI/AAAAAAAAAE4/8ed_128kv8k/s1600/zone_vector_example.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;u&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-oqsiaapvsdU/T0fg0xSipoI/AAAAAAAAAE4/8ed_128kv8k/s320/zone_vector_example.png" width="320" /&gt;&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://2.bp.blogspot.com/-oqsiaapvsdU/T0fg0xSipoI/AAAAAAAAAE4/8ed_128kv8k/s1600/zone_vector_example.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;Moving clockwise from the top left zone (zone 1), there  are 2 black pixels in zone 1, 3 black pixels in zone 2, 4 black pixels  in zone 3, and 5 black pixels in zone 4. The the zone vector for the above image is [2, 3, 4, 5].&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;If we want to match two images, img1 and img2, we can compute two zone vectors, zv1 and zv2, and then match them by computing their similarity index. One similarity index is &lt;a href="http://en.wikipedia.org/wiki/Cosine_similarity"&gt;cosine similarity&lt;/a&gt; that can be computed by the following formula, where A and B are two vectors (sequences of numbers):&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-xDcp7lrqKmA/T0fmJIbYMMI/AAAAAAAAAFA/Ow5k279pmGI/s1600/cosine_similarity.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="http://4.bp.blogspot.com/-xDcp7lrqKmA/T0fmJIbYMMI/AAAAAAAAAFA/Ow5k279pmGI/s320/cosine_similarity.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;The above formula can be implemented in Python as follows:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;import math&lt;br /&gt;def cosine_similarity(zv1, zv2):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cosine_similarity(zv1, zv2) -&amp;gt; float&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this function computes the cosine similarity between two vectors zv1 and zv2.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dotp = sum(map(lambda x, y: x * y, zv1, zv2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; zmagn1 = math.sqrt(sum([v1*v1 for v1 in zv1]))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; zmagn2 = math.sqrt(sum([v2*v2 for v2 in zv2]))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return float(dotp)/(zmagn1 * zmagn2)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;The cosine similarity metric returns values in the range [-1, 1] with 1 referring to sameness (closest similarity) and -1 referring to the exact opposites.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;&amp;gt;&amp;gt;&amp;gt; cosine_similarity([1, 2], [1, 2])&lt;br /&gt;0.9999999999999998&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; cosine_similarity([1, 2], [-1, -2])&lt;br /&gt;-0.9999999999999998&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Zone Matching in Optical Character Recognition&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;Suppose that we have two character bitmaps and we want to compute how similar they are. In OCR, such bitmaps can be obtained through character segmentation when an text image is segmented into individual characters.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/-cqkQbjch20U/T0fqPUcydII/AAAAAAAAAFQ/4iZpfJEX1p8/s1600/A.BMP" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-cqkQbjch20U/T0fqPUcydII/AAAAAAAAAFQ/4iZpfJEX1p8/s1600/A.BMP" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/-hW6s5tC6tL8/T0fqE4IwVSI/AAAAAAAAAFI/ZOMRrxJgQAc/s1600/A.BMP" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-hW6s5tC6tL8/T0fqE4IwVSI/AAAAAAAAAFI/ZOMRrxJgQAc/s1600/A.BMP" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;To do zone matching, we compute two zone vectors and then apply a similarity metric, e.g. cosine similarity, that returns a number indicating how similar the two bitmaps are.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;How many zones should we have? The answer depends on the needs of a specific OCR application and can range from the number of pixels in the image (essentially each pixel becomes its own zone) to 1 (the entire image is considered to be the only zone).&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;In this assignment, we will make two simplifying assumptions: 1) all character bitmaps are 20 x 20 and 2) each image is broken into 16 5 x 5 zones. Thus, if each zone is specified in terms of its top left and bottom right corners, the first zone in the top left corner is (0, 0, 4, 4), the second zone immediately to the right of the first zone is (5, 0, 9, 4), the third zone immediately to the right of the second zone is (10, 0, 14, 4), and the fourth zone immediately to the right of the third zone is (15, 0, 19, 4). In general, the coordinates of each zone are as follows.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/-ADO1qwmOSf4/T0fykekL65I/AAAAAAAAAFY/CtelQmdoDEQ/s1600/zone_coords.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://2.bp.blogspot.com/-ADO1qwmOSf4/T0fykekL65I/AAAAAAAAAFY/CtelQmdoDEQ/s320/zone_coords.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: justify;" trbidi="on"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;&amp;gt;&amp;gt;&amp;gt; zone_coords = ((0, 0, 4, 4),&amp;nbsp;&amp;nbsp; (5, 0, 9, 4),&amp;nbsp;&amp;nbsp; (10, 0, 14, 4),&amp;nbsp;&amp;nbsp; (15, 0, 19, 4),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0, 5, 4, 9),&amp;nbsp;&amp;nbsp; (5, 5, 9, 9),&amp;nbsp;&amp;nbsp; (10, 5, 14, 9),&amp;nbsp;&amp;nbsp; (15, 5, 19, 9),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0, 10, 4, 14), (5, 10, 9, 14), (10, 10, 14, 14), (15, 10, 19, 14),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0, 15, 4, 19), (5, 15, 9, 19), (10, 15, 14, 19), (15, 15, 19, 19))&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;What to Implement&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;zone_vector(imgpath, zone_coords) &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;- imgpath is a path of an 20 x 20 RGB bitmap with a single character&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;- zone_coords is a list of 4-tuples, each of which specifies the top left and bottom right coordinates of a 5x5 zone&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;The &lt;b&gt;zone_vector&lt;/b&gt; function returns the list of black pixel counts in each of the 16 zones:&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;&amp;gt;&amp;gt;&amp;gt; zone_vector('C:/Python27/my_code/letter_images_courR18/A.BMP', zone_coords)&lt;br /&gt;[2, 13, 1, 0, 0, 12, 10, 0, 6, 13, 15, 0, 6, 6, 10, 2]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;build_zone_vector_map(dir, zone_coords)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;- dir is a directory, zone_coords is a sequence of zone coords (4-tuples)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;- dir is assumped to store 20x20 RGB bitmaps of 26 ASCII characters: A.bmp, B.bmp, C.bmp, etc.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;The function &lt;b&gt;build_zone_vector_map&lt;/b&gt; returns a dictionary that maps characters to their zone vectors:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;&amp;gt;&amp;gt;&amp;gt; zv_map = build_zone_vector_map('C:/Python27/my_code/letter_images_courR18/', zone_coords)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; zv_map&lt;br /&gt;{'A': [2, 13, 1, 0, 0, 12, 10, 0, 6, 13, 15, 0, 6, 6, 10, 2], 'C': [1, 10, 12, 0, 9, 2, 4, 0, 8, 4, 2, 0, 0, 8, 8, 0], 'B': [4, 12, 10, 0, 0, 16, 16, 0, 0, 10, 7, 5, 4, 10, 9, 0], 'E': [4, 12, 12, 0, 0, 16, 12, 0, 0, 10, 7, 3, 4, 10, 10, 2], 'D': [7, 11, 9, 0, 5, 5, 7, 4, 5, 5, 8, 3, 6, 10, 7, 0], 'G': [1, 10, 11, 3, 9, 2, 2, 2, 8, 4, 14, 5, 0, 8, 8, 0], 'F': [4, 12, 11, 3, 0, 16, 10, 2, 0, 10, 4, 0, 4, 10, 2, 0], 'I': [2, 12, 8, 0, 0, 10, 0, 0, 0, 10, 0, 0, 2, 10, 8, 0], 'H': [7, 7, 12, 2, 5, 13, 14, 0, 5, 5, 10, 0, 6, 6, 10, 2], 'K': [7, 7, 13, 0, 5, 18, 3, 0, 5, 9, 11, 0, 6, 6, 6, 2], 'J': [0, 8, 12, 2, 0, 0, 10, 0, 8, 1, 11, 0, 1, 10, 3, 0], 'M': [8, 4, 10, 2, 10, 11, 19, 0, 10, 4, 10, 0, 6, 4, 8, 2], 'L': [4, 12, 2, 0, 0, 10, 0, 0, 0, 10, 6, 0, 4, 10, 10, 0], 'O': [1, 10, 9, 0, 9, 2, 7, 4, 8, 4, 9, 3, 0, 8, 6, 0], 'N': [5, 7, 10, 2, 5, 15, 10, 0, 5, 7, 18, 0, 4, 6, 7, 0], 'Q': [1, 10, 9, 0, 9, 2, 7, 4, 8, 4, 9, 3, 0, 19, 16, 2], 'P': [4, 12, 10, 1, 0, 10, 6, 5, 0, 16, 8, 0, 4, 10, 2, 0], 'S': [1, 11, 12, 0, 3, 13, 7, 0, 6, 2, 14, 0, 4, 9, 7, 0], 'R': [7, 11, 7, 0, 5, 9, 12, 0, 5, 10, 11, 0, 6, 6, 6, 2], 'U': [5, 7, 10, 2, 5, 5, 10, 0, 4, 6, 10, 0, 0, 9, 7, 0], 'T': [6, 12, 12, 0, 6, 10, 6, 0, 0, 10, 0, 0, 0, 10, 6, 0], 'W': [8, 4, 10, 2, 10, 14, 14, 0, 7, 11, 18, 0, 2, 4, 6, 0], 'V': [8, 4, 10, 2, 5, 5, 10, 0, 0, 11, 9, 0, 0, 6, 2, 0], 'Y': [8, 7, 13, 2, 1, 13, 10, 0, 0, 10, 0, 0, 0, 10, 6, 0], 'X': [8, 7, 13, 2, 1, 14, 9, 0, 3, 11, 12, 0, 6, 6, 10, 2], 'Z': [3, 11, 13, 0, 2, 5, 11, 0, 1, 13, 6, 0, 2, 10, 10, 0]}&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;find_best_zv_char_match(char_zv, zv_map, similarity=cosine_similarity)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;- char_zv is a zone vector of a specific character&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;- zv_map is a dictionary computed by &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;build_zone_vector_map&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;- similarity if a similarity function that computes the similarity coefficient of two vectors as explained above; the function defaults to &lt;b&gt;cosine_similarity&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;The&amp;nbsp;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;find_best_zv_char_match&lt;/b&gt; function computes the similarity coefficients between char_zv and each zone vector in zv_map and returns a 2-tuple (character, similarity) describing the best matching character, i.e., the character in zv_map whose zone vector is closest to char_zv.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;## Assume that these two directories store 26 images each of characters generated with two PIL fonts: helvR18 (helvetica)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;## and courR18 (courier). You can download both directories from the links below. &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp; helvR18_dir = 'C:/Python27/my_code/letter_images_helvR18/'&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; courR18_dir = 'C:/Python27/my_code/letter_images_courR18/' &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;## Build zone vector maps of both directories &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;&amp;gt;&amp;gt;&amp;gt; zv_helvR18_map = build_zone_vector_map(helvR18_dir, zone_coords)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; zv_courR18_map = build_zone_vector_map(courR18_dir, zone_coords)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;## Find which courier character in the courier map best matches 'A' in the helvetica map:&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; find_best_zv_char_match(zv_helvR18_map['A'], zv_courR18_map)&lt;br /&gt;('A', 0.8921846206693678)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;find_all_zv_char_matches(char_zv, zv_map, similarity=cosine_similarity)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;- char_zv is a zone vector of a specific character&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;- zv_map is a dictionary computed by &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;build_zone_vector_map&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;-  similarity if a similarity function that computes the similarity  coefficient of two vectors as explained above; the function defaults to  cosine_similarity&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;The&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;find_best_zv_char_match&lt;/b&gt; returns a list of all the 2-tuple matches to char_zv in zv_map sorted by similarity from smallest to largest:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;## Build the zone vector maps&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;&amp;gt;&amp;gt;&amp;gt; zv_helvR18_map = build_zone_vector_map(helvR18_dir, zone_coords)&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; zv_courR18_map = build_zone_vector_map(courR18_dir, zone_coords)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;## Fetch all the matches in the courier map to 'A' in the helvetica map &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;&amp;gt;&amp;gt;&amp;gt; find_all_zv_char_matches(zv_helvR18_map['A'], zv_courR18_map)&lt;br /&gt;[('A', 0.8921846206693678), ('R', 0.8867527803753008), ('N', 0.857364436133189), ('X', 0.8410813744186475), ('W', 0.8252742885180057), ('S', 0.8117208610738799), ('K', 0.8112849008138655), ('H', 0.8110106998168068), ('E', 0.7942097508553673), ('P', 0.793036432410823), ('B', 0.7880989046578882), ('M', 0.7660952365076868), ('F', 0.7647614851398058), ('U', 0.7449156574968028), ('D', 0.7420315011847803), ('V', 0.7348251972826993), ('Z', 0.7341292322409033), ('J', 0.6969592496086756), ('O', 0.6933631327550601), ('G', 0.6704625620142035), ('L', 0.6561226059771946), ('Y', 0.6241987114939874), ('T', 0.6146999759695536), ('I', 0.5898578441953785), ('C', 0.5573705223352501), ('Q', 0.532469639637666)]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;## Fetch all the matches in the courier map to 'A' in the helvetica map&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; find_all_zv_char_matches(zv_helvR18_map['B'], zv_courR18_map)&lt;br /&gt;[('D', 0.8875154490908648), ('H', 0.8735458011442355), ('M', 0.8631289484030148), ('C', 0.8230426492867466),&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span style="font-size: xx-small;"&gt;('O', 0.8131857091782351), ('U', 0.8124257209396084), ('R', 0.8022079736569203), ('B', 0.7963716924968524), ('E', 0.7961110741278905), ('Q', 0.794974685832749), ('T', 0.7814453499703188), ('S', 0.7731875146911998), ('X', 0.7707512518942817), ('Y', 0.7703962650853087), ('K', 0.7530620390345039), ('Z', 0.7484446753728139), ('G', 0.7374219285169179), ('N', 0.7322517854077153), ('F', 0.72647889366848), ('W', 0.7219962528093908), ('J', 0.6953747379723422), ('V', 0.6813651169374652), ('I', 0.6542987929075076), ('A', 0.6394440395522312), ('P', 0.6216523199438762), ('L', 0.6211891591279907)]&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Due Date&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;March 03, 2012, by 11:59pm&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;What and Where to Submit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;Save your code in &lt;b&gt;Assignment_07_YourFirstName_YourLastName.py&lt;/b&gt; and drop it into your Dropbox folder. Your code should implement &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;zone_vector(imgpath, zone_coords)&lt;/b&gt;,&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt;build_zone_vector_map(dir, zone_coords), &lt;/b&gt;&lt;b&gt;find_best_zv_char_match(char_zv, zv_map, similarity=cosine_similarity)&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;, and&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;find_all_zv_char_matches(char_zv, zv_map, similarity=cosine_similarity) &lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;according to the above specifications. You can test your code with these two bitmap directories &lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/letter_images_courR18.rar"&gt;(cour18.rar&lt;/a&gt; and &lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/letter_images_helvR18.rar"&gt;helvR18.rar&lt;/a&gt;) that you can uncompress on your computer.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;References&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;1. &lt;a href="http://en.wikipedia.org/wiki/Cosine_similarity"&gt;http://en.wikipedia.org/wiki/Cosine_similarity&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;2. &lt;a href="http://www.pythonware.com/products/pil/index.htm"&gt;http://www.pythonware.com/products/pil/index.htm&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: x-small;"&gt;3. &lt;a href="http://en.wikipedia.org/wiki/Optical_character_recognition"&gt;http://en.wikipedia.org/wiki/Optical_character_recognition&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-3894538220952055412?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3894538220952055412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3894538220952055412'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-assignment-07.html' title='Python &amp; Perl: Assignment 07'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-oqsiaapvsdU/T0fg0xSipoI/AAAAAAAAAE4/8ed_128kv8k/s72-c/zone_vector_example.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-1825770816380541870</id><published>2012-02-24T08:21:00.000-08:00</published><updated>2012-02-24T08:21:05.438-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data abstraction with lists and tuples'/><category scheme='http://www.blogger.com/atom/ns#' term='trie data structure'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Assignment 05 Solution</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11735731" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-05-solution" target="_blank" title="Python &amp;amp; Perl: Assignment 05 Solution"&gt;Python &amp;amp; Perl: Assignment 05 Solution&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11735731" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-1825770816380541870?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1825770816380541870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1825770816380541870'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-assignment-05-solution.html' title='Python &amp; Perl: Assignment 05 Solution'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-5838530408322972711</id><published>2012-02-23T07:16:00.000-08:00</published><updated>2012-02-23T07:17:35.164-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python OOP'/><category scheme='http://www.blogger.com/atom/ns#' term='PIL'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='object-oriented programming'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python image library'/><category scheme='http://www.blogger.com/atom/ns#' term='OOP'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Lecture 13</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;PIL Basics, Creating &amp;amp; Saving Images, Getting &amp;amp; Setting Pixel Values, PIL Coordinates, PIL Colors, PIL Fonts, Image, ImageDraw, ImageFont, Classes vs. Objects,&amp;nbsp; Data &amp;amp; Method Attributes&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11720584" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-13" target="_blank" title="Python &amp;amp; Perl: Lecture 13"&gt;Python &amp;amp; Perl: Lecture 13&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="font-size: x-small;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11720584" width="425"&gt;&lt;/iframe&gt;&lt;/span&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-5838530408322972711?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5838530408322972711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5838530408322972711'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-lecture-13.html' title='Python &amp; Perl: Lecture 13'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-3697484813879862127</id><published>2012-02-21T09:35:00.000-08:00</published><updated>2012-02-21T09:35:41.322-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='trie data structure'/><category scheme='http://www.blogger.com/atom/ns#' term='text processing'/><category scheme='http://www.blogger.com/atom/ns#' term='prefix matching'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Trie in Python</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: xx-small;"&gt;### *********************************************************&lt;br /&gt;### Module: trie.py&lt;br /&gt;### Description: A list and tuple based Python implementation&lt;br /&gt;### of the Trie data structure that supports the following&lt;br /&gt;### methods:&lt;br /&gt;### 1. insert_key(k, v, trie) - insert a non-empty string key k&lt;br /&gt;###&amp;nbsp;&amp;nbsp;&amp;nbsp; into trie and associate k with value v&lt;br /&gt;### 2. has_key(k, trie) - True if trie has key k&lt;br /&gt;### 3. retrieve_val(k, trie) - retrieve value indexed under key&lt;br /&gt;###&amp;nbsp;&amp;nbsp;&amp;nbsp; k in trie&lt;br /&gt;### 4. start_with_prefix(prefix, trie) - return the list of&lt;br /&gt;###&amp;nbsp;&amp;nbsp;&amp;nbsp; all keys in trie that start with prefix.&lt;br /&gt;###&lt;br /&gt;### Bugs, comments to vladimir dot kulyukin at gmail dot com&lt;br /&gt;### *********************************************************&lt;br /&gt;&lt;br /&gt;### ***************** HELPER FUNCTIONS **********************&lt;br /&gt;&lt;br /&gt;def is_trie_bucket(x):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return isinstance(x, tuple) and \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len(x) == 2 and \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isinstance(x[0], str) and \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isinstance(x[1], list) and \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len(x[1]) == 1&lt;br /&gt;&lt;br /&gt;def is_trie_branch(x):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return isinstance(x, list)&lt;br /&gt;&lt;br /&gt;def get_bucket_key(b):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return b[0]&lt;br /&gt;&lt;br /&gt;def get_bucket_val(b):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return b[1][0]&lt;br /&gt;&lt;br /&gt;### ******************** INSERT_KEY ************************&lt;br /&gt;&lt;br /&gt;def insert_key(k, v, trie):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## do not insert empty keys&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if k == '':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## if trie has k or stores it with the same value v,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## do not insert&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif has_key(k, trie) and retrieve_val(k, trie) == v:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = trie&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## for each character c in k, find a child&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## branch that starts with c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for c in k:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; branch = find_child_branch(tr, c)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## if there is no branch that starts with c,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## create it and append it at the end of&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## the current level.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if branch == None:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_branch = [c]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr.append(new_branch)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = new_branch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = branch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## tr is now bound to the branch, so insert&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## a new bucket.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr.append((k,[v]))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return None&lt;br /&gt;&lt;br /&gt;## a branch is either empty or it is a list whose first&lt;br /&gt;## element is a character and the rest are buckets or&lt;br /&gt;## sub-branches.&lt;br /&gt;def get_child_branches(trie):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if trie == []:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return trie[1:]&lt;br /&gt;&lt;br /&gt;def find_child_branch(trie, c):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for branch in get_child_branches(trie):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if branch[0] == c:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return branch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return None&lt;br /&gt;&lt;br /&gt;### ************************ HAS_KEY *************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;def has_key(k, trie):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; br = retrieve_branch(k, trie)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if br == None:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return is_trie_bucket(get_child_branches(br)[0])&lt;br /&gt;&lt;br /&gt;### ******************** RETRIEVE_VAL ************************&lt;br /&gt;&lt;br /&gt;## find a branch in trie that is indexed under k.&lt;br /&gt;def retrieve_branch(k, trie):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if k == '':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = trie&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for c in k:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; br = find_child_branch(tr, c)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if br == None:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = br&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return tr&lt;br /&gt;&lt;br /&gt;## find a branch and retrieve its bucket, second element.&lt;br /&gt;def retrieve_val(k, trie):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not has_key(k, trie): return None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; br = retrieve_branch(k, trie)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return get_bucket_val(br[1])&lt;br /&gt;&lt;br /&gt;### *************** START_WITH_PREFIX ************************&lt;br /&gt;&lt;br /&gt;def start_with_prefix(prefix, trie):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## 1. find the branch indexed by prefix&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; br = retrieve_branch(prefix, trie)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if br == None: return []&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; key_list = []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; q = get_child_branches(br)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## 2. go through the sub-branches of the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## branch indexed by the prefix and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## collect the bucket strings into key_list&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while not q == []:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curr_br = q.pop(0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if is_trie_bucket(curr_br):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key_list.append(get_bucket_key(curr_br))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif is_trie_branch(curr_br):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q.extend(get_child_branches(curr_br))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 'ERROR: bad branch'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return key_list&lt;br /&gt;&lt;br /&gt;### ************************** TESTS **************************&lt;br /&gt;&lt;br /&gt;### construct a trie from http://en.wikipedia.org/wiki/Trie&lt;br /&gt;def test_01():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = [[]]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key('to', 7, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key('tea', 3, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key('ted', 4, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key('ten', 12, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key('A', 15, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key('i', 11, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key('in', 5, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key('inn', 9, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return tr&lt;br /&gt;&lt;br /&gt;### test start_with_prefix on the trie returned by test_01()&lt;br /&gt;def test_02():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = test_01()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print start_with_prefix('t', tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print start_with_prefix('te', tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print start_with_prefix('i', tr)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;the_tent = '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THE TENT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Jalaluddin Rumi&lt;br /&gt;&lt;br /&gt;Outside, the freezing desert night.&lt;br /&gt;This other night inside grows warm, kindling.&lt;br /&gt;Let the landscape be covered with thorny crust.&lt;br /&gt;We have a soft garden in there.&lt;br /&gt;The continents blasted,&lt;br /&gt;cities and little towns, everything&lt;br /&gt;become a scorched, blackened ball.&lt;br /&gt;The news we hear is full of grief for that future,&lt;br /&gt;but the real news inside here&lt;br /&gt;is there's no news at all.&lt;br /&gt;&lt;br /&gt;Translated from the Persian by Coleman Barks&lt;br /&gt;'''&lt;br /&gt;&lt;br /&gt;import string&lt;br /&gt;&lt;br /&gt;### remove punctuation and '\n' from txt&lt;br /&gt;### and lowercase all characters&lt;br /&gt;def normalize_text(txt):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ntxt = txt.strip()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for pc in string.punctuation:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ntxt = ntxt.replace(pc, ' ')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ntxt = ntxt.replace('\n', ' ')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ntxt = ntxt.lower()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ntxt&lt;br /&gt;&lt;br /&gt;### construct a trie whose keys are words in&lt;br /&gt;### the normalized text of Rumi's poem 'The Tent'&lt;br /&gt;def test_03():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tent_normalized = normalize_text(the_tent)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; words = tent_normalized.split(' ')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = [[]]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for w in words:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_key(w, True, tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return tr&lt;br /&gt;&lt;br /&gt;### try a few calls with start_with_prefix on&lt;br /&gt;### the trie constructed in test_03()&lt;br /&gt;def test_04():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr = test_03()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print start_with_prefix('th', tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print start_with_prefix('b', tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print start_with_prefix('bl', tr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print start_with_prefix('bla', tr)&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-3697484813879862127?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3697484813879862127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3697484813879862127'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/trie-in-python.html' title='Trie in Python'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-3358147678021597913</id><published>2012-02-17T16:51:00.000-08:00</published><updated>2012-02-17T17:02:13.122-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python image library'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='tile ornaments'/><title type='text'>Python &amp; Perl: Assignment 06</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11643129" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-06" target="_blank" title="Python &amp;amp; Perl: Assignment 06"&gt;Python &amp;amp; Perl: Assignment 06&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11643129" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Due Date&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;February 24, 2012, by 11:59pm&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;What and Where to Submit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;Save your code in &lt;b&gt;Assignment_06_YourFirstName_YourLastName.py&lt;/b&gt; and drop it into your Dropbox folder. Your code should also implement the function discussed &lt;b&gt;draw_tile_ornament(imgpath='', imgsize=(0,0), ornament=[], tileside=1)&lt;/b&gt;. Test your code on the following ornament representation and save the generated bitmap into your Dropbox folder as &lt;b&gt;my_tile_ornament.bmp&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;## r is red, w is white, o is outline color (blue)&lt;br /&gt;r, w, o = (255, 0, 0), (255, 255, 255), (0, 0, 255)&lt;br /&gt;ornament_01 = [&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, r, o), (8, w, o), (1, r, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, w, o), (1, r, o), (6, w, o), (1, r, o), (1, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(2, w, o), (1, r, o), (4, w, o), (1, r, o), (2, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(3, w, o), (1, r, o), (2, w, o), (1, r, o), (3, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(4, w, o), (2, r, o), (4, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(4, w, o), (2, r, o), (4, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(3, w, o), (1, r, o), (2, w, o), (1, r, o), (3, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(2, w, o), (1, r, o), (4, w, o), (1, r, o), (2, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, w, o), (1, r, o), (6, w, o), (1, r, o), (1, w, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [(1, r, o), (8, w, o), (1, r, o)],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/b&gt; &lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-3358147678021597913?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3358147678021597913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3358147678021597913'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-assignment-06.html' title='Python &amp; Perl: Assignment 06'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6987708225365528263</id><published>2012-02-16T07:17:00.004-08:00</published><updated>2012-02-23T15:11:39.730-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scoping'/><category scheme='http://www.blogger.com/atom/ns#' term='nested scopes'/><category scheme='http://www.blogger.com/atom/ns#' term='reduce()'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='function parameters'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='map()'/><category scheme='http://www.blogger.com/atom/ns#' term='vars()'/><category scheme='http://www.blogger.com/atom/ns#' term='* and ** operators'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='filter()'/><title type='text'>Python &amp; Perl: Lecture 12</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Function Parameters, Positional Parameters, Keyword Parameters, Collecting Positional and Keyword Parameters with * and ** Operators, Parameter Distribution, Scoping, Nested Scopes, Scope Sensitivity of vars(), Functional Programming, map(), reduce(), filter(), Lambda Expressions&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11614325" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-12" target="_blank" title="Python &amp;amp; Perl: Lecture 12"&gt;Python &amp;amp; Perl: Lecture 12&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11614325" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_05_s12.pdf"&gt;&lt;span style="font-size: x-small;"&gt;Quiz 05&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div id="__ss_11614325" style="width: 425px;"&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6987708225365528263?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6987708225365528263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6987708225365528263'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-lecture-12.html' title='Python &amp; Perl: Lecture 12'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6115710119230049529</id><published>2012-02-14T13:14:00.000-08:00</published><updated>2012-02-14T13:17:11.744-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='auto-generation of huffman trees'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman trees'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Assignment 04 Solution</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11572320" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-04-solution" target="_blank" title="Python &amp;amp; Perl: Assignment 04 Solution"&gt;Python &amp;amp; Perl: Assignment 04 Solution&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11572320" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6115710119230049529?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6115710119230049529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6115710119230049529'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-assignment-04-solution.html' title='Python &amp; Perl: Assignment 04 Solution'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-235897563515622149</id><published>2012-02-14T11:26:00.000-08:00</published><updated>2012-02-14T12:49:00.089-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python source'/><category scheme='http://www.blogger.com/atom/ns#' term='auto-generation of huffman trees'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman coding'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Manual and Auto Generation of Huffman Trees in Python</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: xx-small;"&gt;###########################################################################&lt;br /&gt;### Manual and Auto Generation of Huffman Trees&lt;br /&gt;###&lt;br /&gt;### PDF slides are at&lt;br /&gt;### -&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt; http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html&lt;/a&gt;&lt;br /&gt;### - &lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-assignment-04.html"&gt;http://vkedco.blogspot.com/2012/02/python-perl-assignment-04.html&lt;/a&gt;&lt;br /&gt;###&lt;br /&gt;### Bugs, comments to vladimir dot kulyukin at gmail dot com &lt;br /&gt;###########################################################################&lt;br /&gt;&lt;br /&gt;def make_leaf(symbol, weight):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (symbol, weight)&lt;br /&gt;&lt;br /&gt;def is_leaf(x):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return isinstance(x, tuple) and \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len(x) == 2 and \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isinstance(x[0], str) and \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isinstance(x[1], int)&lt;br /&gt;&lt;br /&gt;def get_leaf_symbol(leaf):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return leaf[0]&lt;br /&gt;&lt;br /&gt;def get_leaf_freq(leaf):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return leaf[1]&lt;br /&gt;&lt;br /&gt;def get_left_branch(huff_tree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return huff_tree[0]&lt;br /&gt;&lt;br /&gt;def get_right_branch(huff_tree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return huff_tree[1]&lt;br /&gt;&lt;br /&gt;def get_symbols(huff_tree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if is_leaf(huff_tree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return [get_leaf_symbol(huff_tree)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return huff_tree[2]&lt;br /&gt;&lt;br /&gt;def get_freq(huff_tree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if is_leaf(huff_tree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return get_leaf_freq(huff_tree)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return huff_tree[3]&lt;br /&gt;&lt;br /&gt;def make_huffman_tree(left_branch, right_branch):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return [left_branch,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; right_branch,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_symbols(left_branch) + get_symbols(right_branch),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get_freq(left_branch) + get_freq(right_branch)]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;########################################################################&lt;br /&gt;###&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Two Manually Constructed Huffman Trees&lt;br /&gt;########################################################################&lt;br /&gt;&lt;br /&gt;### Picture of manual_ht01 is at&lt;br /&gt;### &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html&lt;/a&gt;&lt;br /&gt;manual_ht01 = make_huffman_tree(make_leaf('A', 4),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make_huffman_tree(make_leaf('B', 2),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make_huffman_tree(make_leaf('D', 1),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make_leaf('C', 1))))&lt;br /&gt;&lt;br /&gt;### Picture of manual_ht02 defined below is at&lt;br /&gt;### &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html&lt;/a&gt;&lt;br /&gt;E_1 = make_leaf('E', 1)&lt;br /&gt;F_1 = make_leaf('F', 1)&lt;br /&gt;&lt;br /&gt;G_1 = make_leaf('G', 1)&lt;br /&gt;H_1 = make_leaf('H', 1)&lt;br /&gt;&lt;br /&gt;C_1 = make_leaf('C', 1)&lt;br /&gt;D_1 = make_leaf('D', 1)&lt;br /&gt;&lt;br /&gt;B_3 = make_leaf('B', 3)&lt;br /&gt;A_8 = make_leaf('A', 8)&lt;br /&gt;&lt;br /&gt;EF_2 = make_huffman_tree(E_1, F_1)&lt;br /&gt;GH_2 = make_huffman_tree(G_1, make_leaf('H', 1))&lt;br /&gt;EFGH_4 = make_huffman_tree(EF_2, GH_2)&lt;br /&gt;&lt;br /&gt;CD_2 = make_huffman_tree(C_1, D_1)&lt;br /&gt;BCD_5 = make_huffman_tree(B_3, CD_2)&lt;br /&gt;&lt;br /&gt;BCDEFGH_9 = make_huffman_tree(BCD_5, EFGH_4)&lt;br /&gt;&lt;br /&gt;ABCDEFGH_17 = make_huffman_tree(A_8, BCDEFGH_9)&lt;br /&gt;manual_ht02 = ABCDEFGH_17&lt;br /&gt;&lt;br /&gt;########################################################################&lt;br /&gt;###&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Huffman Encoding and Decoding&lt;br /&gt;########################################################################&lt;br /&gt;&lt;br /&gt;def huffman_decode(bits, huff_tree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if bits == []: return []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; curr_branch = huff_tree&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; next_branch = None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; decoding = []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while bits != []:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; next_branch = select_branch(bits[0], curr_branch)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if is_leaf(next_branch):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; decoding.append(get_leaf_symbol(next_branch))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curr_branch = huff_tree&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curr_branch = next_branch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del bits[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return decoding&lt;br /&gt;&lt;br /&gt;def select_branch(bit, tree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if bit == 0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return get_left_branch(tree)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif bit == 1:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return get_right_branch(tree)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 'ERROR: Incorrect Bit'&lt;br /&gt;&lt;br /&gt;def huffman_encode(symbols, htree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; encoding = []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for s in symbols:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; encoding.extend(huffman_encode_symbol(s, htree))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return encoding&lt;br /&gt;&lt;br /&gt;def huffman_encode_symbol(s, htree):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; encoding = []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; curr_branch = htree&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while not is_leaf(curr_branch):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not s in get_symbols(curr_branch):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 'ERROR: Symbol not in tree'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif s in get_symbols(get_left_branch(curr_branch)):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; encoding.append(0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curr_branch = get_left_branch(curr_branch)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif s in get_symbols(get_right_branch(curr_branch)):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; encoding.append(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curr_branch = get_right_branch(curr_branch)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 'ERROR: Symbol in neither branch'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return encoding&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;######################################################################&lt;br /&gt;###&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Auto-Generation of Huffman Trees&lt;br /&gt;######################################################################&lt;br /&gt;&lt;br /&gt;the_tent = '''&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; THE TENT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Jalaluddin Rumi&lt;br /&gt;&lt;br /&gt;Outside, the freezing desert night.&lt;br /&gt;This other night inside grows warm, kindling.&lt;br /&gt;Let the landscape be covered with thorny crust.&lt;br /&gt;We have a soft garden in there.&lt;br /&gt;The continents blasted,&lt;br /&gt;cities and little towns, everything&lt;br /&gt;become a scorched, blackened ball.&lt;br /&gt;The news we hear is full of grief for that future,&lt;br /&gt;but the real news inside here&lt;br /&gt;is there's no news at all.&lt;br /&gt;&lt;br /&gt;Translated from the Persian by Coleman Barks&lt;br /&gt;'''&lt;br /&gt;&lt;br /&gt;### take a string txt and return a dictionary that maps each&lt;br /&gt;### character to its frequency in the string&lt;br /&gt;def freq_table(txt):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftble = {}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for c in txt:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if c not in ftble:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftble[c] = 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftble[c] += 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ftble&lt;br /&gt;&lt;br /&gt;### this is a comparator function that allows us to compare&lt;br /&gt;### Huffman nodes to each other.&lt;br /&gt;def huff_node_freq_cmp(node1, node2):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; freq1, freq2 = get_freq(node1), get_freq(node2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if freq1 &amp;lt; freq2:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif freq1 &amp;gt; freq2:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0&lt;br /&gt;&lt;br /&gt;### insert an item into its appropriate place in a list given&lt;br /&gt;### a comparator function cmpf, e.g., huff_node_freq_cmp&lt;br /&gt;def insert_item(item, lst, cmpf):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def insert_item_aux(item, lst, cmpf, n, pos):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if pos == n:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst.append(item)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif cmpf(item, lst[pos]) == -1 or cmpf(item, lst[pos]) == 0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst.insert(pos, item)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_item_aux(item, lst, cmpf, n, pos+1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_item_aux(item, lst, cmpf, len(lst), 0)&lt;br /&gt;&lt;br /&gt;### one way to combine two Huffman nodes is to let the left node&lt;br /&gt;### be the left branch and the right node be the right branch.&lt;br /&gt;def combine_left_right(n1, n2):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return make_huffman_tree(n1, n2)&lt;br /&gt;&lt;br /&gt;### another way to combine two Huffman nodes is to let the left node&lt;br /&gt;### be the right branch and the right node be the left branch.&lt;br /&gt;def combine_right_left(n1, n2):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return make_huffman_tree(n2, n1)&lt;br /&gt;&lt;br /&gt;### the work horse function called by build_huffman_tree below.&lt;br /&gt;### It takes a list of Huffman nodes and a combiner function, e.g.,&lt;br /&gt;### combine_left_right and returns a Huffman tree.&lt;br /&gt;### Important: nodes are assumed to be sorted by their&lt;br /&gt;### frequencies from smallest to largest. So that the first&lt;br /&gt;### two nodes in nodes&lt;br /&gt;def build_huffman_tree_aux(node_lst, combine):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(node_lst) == 0:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return None&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif len(node_lst) == 1:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return node_lst[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## keep looping so long as there are more than two nodes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## in node_lst. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while len(node_lst) &amp;gt; 2:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## 1. combine two nodes with the lowest frequencies&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_node = combine(node_lst[0], node_lst[1])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## 2. delete two combined nodes from node_lst&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del node_lst[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del node_lst[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## 3. insert new_node into node_lst into its right&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## position.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insert_item(new_node, node_lst, huff_node_freq_cmp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ## print nodes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return make_huffman_tree(node_lst[0], node_lst[1])&lt;br /&gt;&lt;br /&gt;def build_huffman_tree(txt, combine=combine_left_right):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### 1. build a frequency table from txt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftble = freq_table(txt)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### 2. get the list of Huffman nodes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; node_lst = ftble.items()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### 3. sort node_lst by the node frequency from smallest&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ###&amp;nbsp;&amp;nbsp;&amp;nbsp; to largest&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; node_lst.sort(huff_node_freq_cmp)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### 4. call the above build_huffman_tree_aux workhorse&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return build_huffman_tree_aux(node_lst, combine)&lt;br /&gt;&lt;br /&gt;###########################################################################&lt;br /&gt;##&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Tests&lt;br /&gt;###########################################################################&lt;br /&gt;&lt;br /&gt;test_txt_01 = 'AAAAAAAABBBCDEFGH'&lt;br /&gt;&lt;br /&gt;def test_01():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ht = build_huffman_tree(test_txt_01)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print huffman_encode('A', ht)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print huffman_encode('B', ht)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print huffman_encode('C', ht)&lt;br /&gt;&lt;br /&gt;def test_02():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ht = build_huffman_tree(the_tent)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return the_tent == ''.join(huffman_decode(huffman_encode(the_tent, ht), ht))&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-235897563515622149?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/235897563515622149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/235897563515622149'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/manual-and-auto-generation-of-huffman.html' title='Manual and Auto Generation of Huffman Trees in Python'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-3774592548126480160</id><published>2012-02-14T07:19:00.000-08:00</published><updated>2012-02-14T07:19:35.982-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIL'/><category scheme='http://www.blogger.com/atom/ns#' term='functional abstraction'/><category scheme='http://www.blogger.com/atom/ns#' term='function intropsection'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='exec()'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='eval()'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='run-time code generation'/><title type='text'>Python &amp; Perl: Lecture 11</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Run-Time Code Generation, Execution, &amp;amp; Evaluation, Functional Abstraction, Function Introspection, Installing Python Image Library (PIL)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11566950" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-11" target="_blank" title="Python &amp;amp; Perl: Lecture 11"&gt;Python &amp;amp; Perl: Lecture 11&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11566950" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-3774592548126480160?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3774592548126480160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3774592548126480160'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-lecture-11.html' title='Python &amp; Perl: Lecture 11'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-1357100016365772724</id><published>2012-02-10T16:58:00.000-08:00</published><updated>2012-02-10T17:04:05.996-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trie data structure'/><category scheme='http://www.blogger.com/atom/ns#' term='text processing'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Assignment 05</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11519067" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-05" target="_blank" title="Python &amp;amp; Perl: Assignment 05"&gt;Python &amp;amp; Perl: Assignment 05&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11519067" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Due Date&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;February 17, 2012, by 11:59pm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;What and Where to Submit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;Save your code in &lt;b&gt;Assignment_05_YourFirstName_YourLastName.py&lt;/b&gt; and drop it into your Dropbox folder. You should use only list and tuple to implement the Trie data structure. Your code should also implement the four functions discussed in the Assignment screencast: &lt;b&gt;insert_key(k, v, trie)&lt;/b&gt;, &lt;b&gt;retreive_val(k, trie)&lt;/b&gt;, &lt;b&gt;has_key(k, trie)&lt;/b&gt;, and &lt;b&gt;start_with_prefix(prefix, trie)&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-1357100016365772724?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1357100016365772724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1357100016365772724'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-lecture-05.html' title='Python &amp; Perl: Assignment 05'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4289258035022587996</id><published>2012-02-08T16:17:00.000-08:00</published><updated>2012-02-09T10:45:48.915-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='del'/><category scheme='http://www.blogger.com/atom/ns#' term='list comprehension with nested loops'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='exec()'/><category scheme='http://www.blogger.com/atom/ns#' term='pass'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='list comprehension with matrices'/><title type='text'>Python &amp; Perl: Lecture 10</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;List Comprehension with Nested For-Loops, List Comprehension with Matrices, List Comprehension &amp;amp; Loop Variables, List Comprehension Uses, pass, del, exec() &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11489726" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-10" target="_blank" title="Python &amp;amp; Perl: Lecture 10"&gt;Python &amp;amp; Perl: Lecture 10&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11489726" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4289258035022587996?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4289258035022587996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4289258035022587996'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-lecture-10.html' title='Python &amp; Perl: Lecture 10'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2674986074784819813</id><published>2012-02-07T16:44:00.000-08:00</published><updated>2012-02-07T16:44:59.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman decoding'/><category scheme='http://www.blogger.com/atom/ns#' term='auto-generation of huffman trees'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman encoding'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman coding'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Assignment 03 Solution</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11472368" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-03-solution" target="_blank" title="Python &amp;amp; Perl: Assignment 03 Solution"&gt;Python &amp;amp; Perl: Assignment 03 Solution&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11472368" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2674986074784819813?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2674986074784819813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2674986074784819813'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-assignment-03-solution.html' title='Python &amp; Perl: Assignment 03 Solution'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-5969163823971149945</id><published>2012-02-06T17:02:00.000-08:00</published><updated>2012-02-07T10:10:58.571-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zip()'/><category scheme='http://www.blogger.com/atom/ns#' term='enumerate()'/><category scheme='http://www.blogger.com/atom/ns#' term='xrange()'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='range()'/><category scheme='http://www.blogger.com/atom/ns#' term='sequence unpacking'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmaps in python'/><category scheme='http://www.blogger.com/atom/ns#' term='list comprehension'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='variable assignments'/><title type='text'>Python &amp; Perl: Lecture 09</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Variable Assignments, Sequence Unpacking, range(), xrange(), zip(), enumerate(), List Comprehension&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11453789" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-09" target="_blank" title="Python &amp;amp; Perl: Lecture 09"&gt;Python &amp;amp; Perl: Lecture 09&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="font-size: x-small;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11453789" width="425"&gt;&lt;/iframe&gt;&lt;/span&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_04_s12.pdf"&gt;&lt;span style="font-size: x-small;"&gt;Quiz 04&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-5969163823971149945?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5969163823971149945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5969163823971149945'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-lecture-09.html' title='Python &amp; Perl: Lecture 09'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-8535371607200355609</id><published>2012-02-03T15:17:00.001-08:00</published><updated>2012-02-03T15:19:54.024-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='auto-generation of huffman trees'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman coding'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman trees'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Assignment 04</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11410199" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-04" target="_blank" title="Python &amp;amp; Perl: Assignment 04"&gt;Python &amp;amp; Perl: Assignment 04&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11410199" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Due Date&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;February 10, 2012, by 11:59pm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;What and Where to Submit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;Save your code in &lt;b&gt;Assignment_04_YourFirstName_YourLastName.py&lt;/b&gt; and drop it into your Dropbox folder. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-8535371607200355609?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8535371607200355609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8535371607200355609'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-assignment-04.html' title='Python &amp; Perl: Assignment 04'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2961503238106483657</id><published>2012-02-01T15:14:00.000-08:00</published><updated>2012-02-02T06:28:27.594-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='python string templates'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman coding'/><category scheme='http://www.blogger.com/atom/ns#' term='python dictionaries'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmaps in python'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman trees'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Lecture 08</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;String Templates, Data Abstraction: Auto-Generation of Huffman Trees, Deep and Shallow Copying, Dictionary Access with get(), Creating Dictionaries from Keys and Key-Value Pairs, Dictionaries as Flexible Lookup Lists, Dictionaries as Sparse Data Structures, Dictionaries as Format Specifiers&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11375376" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-08" target="_blank" title="Python &amp;amp; Perl: Lecture 08"&gt;Python &amp;amp; Perl: Lecture 08&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11375376" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2961503238106483657?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2961503238106483657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2961503238106483657'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/02/python-perl-lecture-08.html' title='Python &amp; Perl: Lecture 08'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6797817091552820539</id><published>2012-01-30T15:57:00.000-08:00</published><updated>2012-02-07T10:08:36.283-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='split()'/><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='python join()'/><category scheme='http://www.blogger.com/atom/ns#' term='python find()'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python string methods'/><category scheme='http://www.blogger.com/atom/ns#' term='replace()'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python dictionaries'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Lecture 07</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;String Methods find(), split(), join(), replace(), translate(), Dictionaries, Dictionary Construction, Dictionary Access, Adding New Key-Value Pairs to Dictionaries&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11341960" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-07" target="_blank" title="Python &amp;amp; Perl: Lecture 07"&gt;Python &amp;amp; Perl: Lecture 07&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11341960" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_03_s12.pdf"&gt;&lt;span style="font-size: x-small;"&gt;Quiz 03&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6797817091552820539?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6797817091552820539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6797817091552820539'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-lecture-07.html' title='Python &amp; Perl: Lecture 07'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-8540444191469586209</id><published>2012-01-27T06:54:00.000-08:00</published><updated>2012-02-03T15:16:31.424-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman coding'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmaps in python'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman trees'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='data abstraciton'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='python list manipulation'/><title type='text'>Python &amp; Perl: Assignment 03</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11410117" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-03" target="_blank" title="Python &amp;amp; Perl: Assignment 03"&gt;Python &amp;amp; Perl: Assignment 03&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11410117" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;div id="__ss_11025943" style="width: 425px;"&gt;&lt;div id="__ss_11165611" style="text-align: justify; width: 425px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="__ss_11165611" style="text-align: justify; width: 425px;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Learning Objectives&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div id="__ss_11165611" style="text-align: justify; width: 425px;"&gt;&lt;/div&gt;&lt;div id="__ss_11165611" style="text-align: justify; width: 425px;"&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;This assignment has three learning objectives: 1) list manipulation; 2) data abstraction with lists; and 3) huffman coding. You may want to review the slides and screencasts of &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;Lecture 05&lt;/a&gt; before working on this assignment.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_11165611" style="width: 425px;"&gt;&lt;/div&gt;&lt;div id="__ss_11165611" style="width: 425px;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Huffman Encoding&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div id="__ss_11165611" style="width: 425px;"&gt;&lt;/div&gt;&lt;div id="__ss_11165611" style="width: 425px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Let us use the tree on Slide 14 to see how Huffman trees can encode &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;symbols. Suppose we need to encode a symbol. We start at the root &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;node and check if the symbol is in its list of symbols. If it is not, &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;we return an error message, because the tree does not have the symbol &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;we wish to encode. If it is, we check if the symbol is in the list &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;of symbols of the left branch or the right branch. If it is in the &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;list of symbols of the left branch, we add&lt;b&gt; 0&lt;/b&gt; to our encoding and go &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;left. If it is in the list of symbols of the right branch, we add &lt;b&gt;1&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;to our encoding and go right. When we reach a leaf whose only symbol &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;is the symbol we are encoding, we are done. The gist of the Huffman&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; encoding algorithm boils down to this simple selection:&lt;i&gt; if the symbol&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt; is in the left branch, add 0 to your encoding and recurse left; if&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; it is in the right branch, add 1 to your encoding and recurse right;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt; if the symbol is in neither branch, return an error&lt;/i&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Let us consider an example. Suppose we want to encode &lt;b&gt;'B'&lt;/b&gt; with the &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;tree on Slide 14 of &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;Lecture 05&lt;/a&gt;. We start by checking if &lt;b&gt;'B' &lt;/b&gt;is on &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;the list of symbols of the root node &lt;b&gt;{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'}:17&lt;/b&gt;. &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Since it is, we check if &lt;b&gt;'B'&lt;/b&gt; is in the list of symbols of the left branch rooted&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; at &lt;b&gt;{'A'}:8&lt;/b&gt; or the list of symbols of the right branch rooted at &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;{'B', 'C', 'D', 'E', 'F', 'G', 'H'}:9&lt;/b&gt;. Since&lt;b&gt; 'B'&lt;/b&gt; is in the list of symbols of the &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;right branch, we add &lt;b&gt;1&lt;/b&gt; to our encoding and recurse to the right branch. &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;We again check if &lt;b&gt;'B'&lt;/b&gt; is in the list of symbols of the left branch rooted&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; at &lt;b&gt;{'B', 'C', 'D'}:5 &lt;/b&gt;or in the list of symbols of the right branch rooted&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; at &lt;b&gt;{'E', 'F', 'G', 'H'}:4&lt;/b&gt;. Since&lt;b&gt; 'B'&lt;/b&gt; is in the left branch, we add&lt;b&gt; 0&lt;/b&gt; to our &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;encoding and recurse left to&lt;b&gt; {'B', 'C', 'D'}:5&lt;/b&gt;. We again check if&lt;b&gt; 'B' &lt;/b&gt;is in &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;the left branch or the right branch of this node. It is in the left one, so we &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;add &lt;b&gt;0&lt;/b&gt; to our encoding and recursive to&lt;b&gt; B:3&lt;/b&gt;. Since this is a leaf whose&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; only symbol is&lt;b&gt; 'B'&lt;/b&gt;, we are done. So the resulting encoding of&lt;b&gt; 'B'&lt;/b&gt; in this &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;tree is &lt;b&gt;100&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;To encode a list of symbols is to produce a list of bits that encodes&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; each individual symbol in the list in the order in which they occur. For&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; example, the encoding of &lt;b&gt;['A', 'B', 'B', 'A']&lt;/b&gt; is &lt;b&gt;[0, 1, 0, 0, 1, 0, 0, 0]&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="__ss_11165611" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Huffman Decoding&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Decoding is the reverse of encoding. We are given a list of bits and produce the corresponding list of symbols. For example, if our tree is the one on Slide 14 of &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;Lecture 05&lt;/a&gt; and our list of bits is equal &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;to&lt;b&gt; [0]&lt;/b&gt;, we return &lt;b&gt;['A']&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;In general, given a list of bits, we start at the root of the Huffman&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; tree and use each bit to go either left or right. Once we reach a leaf &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;node, we add the symbol of the leaf node to our result and start at the &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;top. If we run out of bits before reaching a leaf, we signal an error.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; If the list of bits contains something other than 0 or 1, we also&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; signal an error.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Suppose we want to use the tree on Slide 14 of &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;Lecture 05&lt;/a&gt; to decode&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; the bit list &lt;b&gt;[0, 1, 0, 0, 1, 0, 0, 0]&lt;/b&gt;. We start at the top of the&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; tree. We read &lt;b&gt;0&lt;/b&gt; and reach the leaf &lt;b&gt;{'A'}:8&lt;/b&gt;. Thus, we add &lt;b&gt;'A'&lt;/b&gt; to &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;our result. We start again at the top and read 1 to reach &lt;b&gt;{'B', 'C',&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt; 'D', 'E', 'F', 'G', 'H'}:9&lt;/b&gt;. This is not a leaf, so we read the&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; next bit, which is&lt;b&gt; 0&lt;/b&gt;, to go to &lt;b&gt;{'B', 'C', 'D'}:5&lt;/b&gt;. This is not&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; a leaf either, so we read the next bit and reach &lt;b&gt;B:3&lt;/b&gt;. This is a leaf,&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; so we add&lt;b&gt; 'B'&lt;/b&gt; to our result. It is easy to verify that the remainder&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; of the bit stream, i.e., &lt;b&gt;[1, 0, 0, 0]&lt;/b&gt;, add&lt;b&gt;s 'B' &lt;/b&gt;and&lt;b&gt; 'A'&lt;/b&gt; to the&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; result decoding. Thus, &lt;b&gt;[0, 1, 0, 0, 1, 0, 0, 0]&lt;/b&gt; is decoded as&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;['A', 'B', 'B', 'A']&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;What to Impelement&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Implement the Huffman tree functions defined &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;Lecture 05&lt;/a&gt; and &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;the accompanying screencast, and use the function &lt;b&gt;make_huffman_tree&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;to build the Huffman tree given on Slide 14 of &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;Lecture 05&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Implement the function &lt;b&gt;huffman_encode(symbols, huffman_tree)&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; that takes a list of symbols and the root of a Huffman &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;tree and returns the list of bits that encode the symbols. For &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;example, if ht is a variable bound the huffman tree on Slide 14, &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;then:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; huffman_encode(['B', 'A', 'C'], ht)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;[1, 0, 0, 0, 1, 0, 1, 0]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; huffman_encode(['A', 'B', 'B', 'A'], ht)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;[0, 1, 0, 0, 1, 0, 0, 0]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Implement the function &lt;b&gt;huffman_decode(bits, huffman_tree)&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; that takes a list of bits and the root of a Huffman &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;tree and returns the list of symbols encoded by the bits.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; For example, if ht is a variable bound to the huffman tree &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;on Slide 14, then:&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; huffman_decode([0, 1, 0, 0, 1, 0, 0, 0], ht)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;['A', 'B', 'B', 'A']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; huffman_decode([1, 0, 0, 0, 1, 0, 1, 0], ht)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;['B', 'A', 'C']&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Note that since encoding and decoding are the reversals of&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; each other, the correctness of your implementation can&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; be tested as follows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; msg = ['B', 'A', 'C']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; code = [1, 0, 0, 0, 1, 0, 1, 0]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; huffman_decode(huffman_encode(msg, ht), ht)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;['B', 'A', 'C']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; huffman_decode(huffman_encode(msg, ht), ht) == msg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;True&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;gt;&amp;gt;&amp;gt; huffman_encode(huffman_decode(code, ht), ht) == code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;True&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Due Date&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;February 03, 2012, by 11:59pm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;What and Where to Submit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;Save your code in &lt;b&gt;Assignment_03_YourFirstName_YourLastName.py&lt;/b&gt; and drop it into your Dropbox folder. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-8540444191469586209?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8540444191469586209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8540444191469586209'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-assignment-03.html' title='Python &amp; Perl: Assignment 03'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-7202739948442481797</id><published>2012-01-25T12:30:00.000-08:00</published><updated>2012-01-25T12:30:58.633-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free computing'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free barcode scanning'/><category scheme='http://www.blogger.com/atom/ns#' term='slovenia'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile computing'/><category scheme='http://www.blogger.com/atom/ns#' term='yes-free nutrition information extraction'/><category scheme='http://www.blogger.com/atom/ns#' term='university of ljubljana'/><title type='text'>Eyes-Free Barcode Scanning and Nutrition Information Extraction on Smartphones</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Eyes-Free Barcode Scanning and Nutrition Information Extraction on Smartphones&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Research Seminar at the Faculty of Informatics, University of Ljubljana, Ljubljana, Slovenia &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11259085" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/eyesfree-barcode-scanning-and-nutrition-information-extraction-on-smartphones" target="_blank" title="Eyes-Free Barcode Scanning and Nutrition Information Extraction on Smartphones"&gt;Eyes-Free Barcode Scanning and Nutrition Information Extraction on Smartphones&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11259085" width="425"&gt;&lt;/iframe&gt; &lt;/div&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-7202739948442481797?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/7202739948442481797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/7202739948442481797'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/eyes-free-barcode-scanning-and_25.html' title='Eyes-Free Barcode Scanning and Nutrition Information Extraction on Smartphones'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4701799421981920268</id><published>2012-01-19T14:38:00.000-08:00</published><updated>2012-01-19T14:38:10.992-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='fermat&apos;s little theorem'/><category scheme='http://www.blogger.com/atom/ns#' term='fermat&apos;s primality test'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='number theory'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><title type='text'>Python &amp; Perl: Assignment 02</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;hr /&gt;&lt;div id="__ss_11025943" style="width: 425px;"&gt;&lt;div id="__ss_11165611" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-02" target="_blank" title="Python &amp;amp; Perl: Assignment 02"&gt;Python &amp;amp; Perl: Assignment 02&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11165611" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Due Date&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;January 27, 2012, by 11:59pm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;What and Where to Submit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;Save your code in &lt;b&gt;Assignment_02_YourFirstName_YourLastName.py&lt;/b&gt; and drop it into your Dropbox folder. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4701799421981920268?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4701799421981920268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4701799421981920268'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-assignment-02.html' title='Python &amp; Perl: Assignment 02'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2305750703059816719</id><published>2012-01-19T06:47:00.000-08:00</published><updated>2012-01-30T15:51:19.711-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='python string manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='python join()'/><category scheme='http://www.blogger.com/atom/ns#' term='python loops'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='python object comparison'/><title type='text'>Python &amp; Perl: Lecture 06</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Strings, String Manipulation, String Formatting, Format Specifiers, Specifier Widths, Specifier Precision, Optional Conversion Flags, String Module, join(), Object Comparison, While and For Loops&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr style="height: 2px;" /&gt;&lt;/div&gt;&lt;div id="__ss_11145915" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-06" target="_blank" title="Python &amp;amp; Perl: Lecture 06"&gt;Python &amp;amp; Perl: Lecture 06&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11158030" width="425"&gt;&lt;/iframe&gt; &lt;/div&gt;&lt;div id="__ss_11158030" style="width: 425px;"&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2305750703059816719?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2305750703059816719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2305750703059816719'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-lecture-06.html' title='Python &amp; Perl: Lecture 06'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2516704059380873163</id><published>2012-01-18T17:30:00.000-08:00</published><updated>2012-01-19T07:10:42.912-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python data abstraction'/><category scheme='http://www.blogger.com/atom/ns#' term='puthon tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman tree'/><category scheme='http://www.blogger.com/atom/ns#' term='huffman coding'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmaps in python'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='python list manipulation'/><title type='text'>Python &amp; Perl: Lecture 05</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Data Abstraction, Building Huffman Trees with Lists and Tuples, List Manipulation, list.append(), list.extend(), list.remove(), list.reverse(), list.index(), list.count(), list.sort(), Customizing list.sort()&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div id="__ss_11145915" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-05" target="_blank" title="Python &amp;amp; Perl: Lecture 05"&gt;Python &amp;amp; Perl: Lecture 05&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="font-size: x-small;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11145915" width="425"&gt;&lt;/iframe&gt;&lt;/span&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_02_s12.pdf"&gt;&lt;span style="font-size: x-small;"&gt;Quiz 02&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2516704059380873163?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2516704059380873163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2516704059380873163'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html' title='Python &amp; Perl: Lecture 05'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-5335023800657431310</id><published>2012-01-18T13:58:00.000-08:00</published><updated>2012-01-18T13:58:57.482-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='python lists'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python sequences'/><category scheme='http://www.blogger.com/atom/ns#' term='python types'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmaps in python'/><category scheme='http://www.blogger.com/atom/ns#' term='dynamic and strong typing'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='duck typing'/><title type='text'>Python &amp; Perl: Lecture 04</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Types in Python, Dynamic and Strong Typing, Duck Typing, Python Built-in Sequences, Lists&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_10992211" style="width: 425px;"&gt;&lt;div id="__ss_11110355" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-04" target="_blank" title="Python &amp;amp; Perl: Lecture 04"&gt;Python &amp;amp; Perl: Lecture 04&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="font-size: x-small;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11143459" width="425"&gt;&lt;/iframe&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="__ss_11143459" style="width: 425px;"&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-5335023800657431310?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5335023800657431310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5335023800657431310'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-lecture-04.html' title='Python &amp; Perl: Lecture 04'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-114296868645780329</id><published>2012-01-17T18:10:00.000-08:00</published><updated>2012-01-17T18:10:33.810-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='john nicholson'/><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free barcode scanning'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile computing'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='smarthpones'/><category scheme='http://www.blogger.com/atom/ns#' term='aliasgar kutiyanawala'/><title type='text'>Toward Real Time Eyes-Free Barcode Scanning on Smartphones in Video Mode</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Toward Real Time Eyes-Free Barcode Scanning on Smartphones in Video Mode&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Aliasgar Kutiayanawala&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;John Nicholson&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Computer Science &amp;amp; IT Department&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Austin Peay University&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11121846" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/resna-shop-mobile-poster-2011" target="_blank" title="Toward Real Time Eyes-Free Barcode Scanning on Smartphones in Video Mode"&gt;Toward Real Time Eyes-Free Barcode Scanning on Smartphones in Video Mode&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11121846" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-114296868645780329?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/114296868645780329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/114296868645780329'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/toward-real-time-eyes-free-barcode.html' title='Toward Real Time Eyes-Free Barcode Scanning on Smartphones in Video Mode'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6126288581648192569</id><published>2012-01-17T07:19:00.000-08:00</published><updated>2012-01-19T07:08:43.101-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python built-in objects'/><category scheme='http://www.blogger.com/atom/ns#' term='python strings'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='python user input'/><category scheme='http://www.blogger.com/atom/ns#' term='python numbers'/><title type='text'>Python &amp; Perl: Lecture 03</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Python Built-In Objects, Numbers, Numeric Operations, Modules, User Input, Strings&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_10992211" style="width: 425px;"&gt;&lt;div id="__ss_11110355" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-03" target="_blank" title="Python &amp;amp; Perl: Lecture 03"&gt;Python &amp;amp; Perl: Lecture 03&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11110355" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/PythonPerl/quizes/cs3430_quiz_01_s12.pdf"&gt;Quiz 01&lt;/a&gt;&amp;nbsp;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6126288581648192569?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6126288581648192569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6126288581648192569'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-lecture-03_17.html' title='Python &amp; Perl: Lecture 03'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4353749092223731470</id><published>2012-01-13T12:28:00.000-08:00</published><updated>2012-01-19T14:33:47.631-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='newton-raphson method'/><category scheme='http://www.blogger.com/atom/ns#' term='IDLE'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='python functions'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Assignment 01</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Utah State University &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;hr /&gt;&lt;div id="__ss_11025943" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-assignment-01" target="_blank" title="Python &amp;amp; Perl: Assignment 01"&gt;Python &amp;amp; Perl: Assignment 01&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="font-size: x-small;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11025943" width="425"&gt;&lt;/iframe&gt;&lt;/span&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Due Date&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;January 20, 2012, by 11:59pm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;What and Where to Submit&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="JUSTIFY" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-small;"&gt;Save your code in &lt;b&gt;Assignment_01_YourFirstName_YourLastName.py&lt;/b&gt; and drop it into your Dropbox folder. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4353749092223731470?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4353749092223731470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4353749092223731470'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-assignment-01.html' title='Python &amp; Perl: Assignment 01'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4932283782788522347</id><published>2012-01-12T15:51:00.000-08:00</published><updated>2012-01-25T12:27:10.322-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='crowdsourcing'/><category scheme='http://www.blogger.com/atom/ns#' term='masaryk university'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free shopping'/><category scheme='http://www.blogger.com/atom/ns#' term='brno'/><category scheme='http://www.blogger.com/atom/ns#' term='accessible technology'/><category scheme='http://www.blogger.com/atom/ns#' term='teleassistance'/><category scheme='http://www.blogger.com/atom/ns#' term='czech republic'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile computing'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Eyes-Free Barcode Scanning and Nutrition Information Extraction on Smartphones</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Eyes-Free Barcode Scanning and Nutrition Information Extraction on Smartphones&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Research Seminar at the Faculty of Informatics, Masaryk University, Brno, Moravia, Czech Republic &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_11002221" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/eyesfree-barcode-scanning-and-nutrtition-information-extraction-on-smartphones" target="_blank" title="Eyes-Free Barcode Scanning and Nutrtition Information Extraction on Smartphones"&gt;Eyes-Free Barcode Scanning and Nutrtition Information Extraction on Smartphones&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/11002221" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4932283782788522347?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4932283782788522347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4932283782788522347'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/eyes-free-barcode-scanning-and.html' title='Eyes-Free Barcode Scanning and Nutrition Information Extraction on Smartphones'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-5182988614595970116</id><published>2012-01-12T07:37:00.000-08:00</published><updated>2012-01-12T15:55:42.048-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='running python code'/><category scheme='http://www.blogger.com/atom/ns#' term='tuples'/><category scheme='http://www.blogger.com/atom/ns#' term='editing python code'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Lecture 02</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Editing Python Code, Running Python Code, Python Code Execution, Functional Abstraction, Tuples&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_10992211" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-perl-lecture-02" target="_blank" title="Python &amp;amp; Perl: Lecture 02"&gt;Python &amp;amp; Perl: Lecture 02&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10992211" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-5182988614595970116?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5182988614595970116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5182988614595970116'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-lecture-02.html' title='Python &amp; Perl: Lecture 02'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2788603097957432700</id><published>2012-01-10T07:18:00.000-08:00</published><updated>2012-01-10T14:32:20.211-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='python installation'/><category scheme='http://www.blogger.com/atom/ns#' term='python interpreter'/><title type='text'>Python &amp; Perl: Lecture 01</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Python Overview (History, Features, Strengths, Weaknesses), Python Installation on Windows/Linux/Mac, Python Interpreter, Python 2 vs Python 3, Comments, Booleans, Variables, Lists, Strings, Tuples, Built-in Functions and Methods&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div id="__ss_10938364" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/python-10938364" target="_blank" title="Python &amp;amp; Perl: Lecture 01"&gt;Python &amp;amp; Perl: Lecture 01&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="font-size: x-small;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10938364" width="425"&gt;&lt;/iframe&gt;&lt;/span&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2788603097957432700?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2788603097957432700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2788603097957432700'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-perl-lecture-01.html' title='Python &amp; Perl: Lecture 01'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2228809622025421755</id><published>2012-01-09T13:14:00.000-08:00</published><updated>2012-01-10T09:53:21.161-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Syllabus</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Department of Computer Science&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Utah State University&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;General Info&lt;/span&gt;&lt;br /&gt;&lt;center&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Dates&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;                 &lt;td style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Jan 09, 2012 - May 04, 2012&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Meeting Times&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                 &lt;td style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;9:00am - 10:15am, TU &amp;amp; TH&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Location&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                 &lt;td&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Geology 308&lt;/span&gt;&lt;/i&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Instructor's Office &lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                 &lt;td&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Old Main, 401E&lt;/span&gt;&lt;/i&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Office Hours&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                 &lt;td&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;1:00 - 2:00pm, TU &amp;amp;TH&lt;/span&gt;&lt;/i&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Email&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                 &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;vladimir dot kulyukin at usu dot edu&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt;&lt;/h2&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Prerequisites &lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;CS 1400 (Introduction to Programming in C++);&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Completion of University Studies Breadth of Life Sciences (BLS) course;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Fulfillment of University Studies Quantitative Literacy (QL) requirement. &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Course Description and Objectives&lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The primary objective is to introduce you to the two programming languages Python and Perl. We will do 10 weeks of Python and 5 weeks of Perl. By the end of the class you should be able to write programs in each language: more advanced programs in Python and less advanced programs in Perl. By the end of the class, you will have mastered or become closely familiar with the following concepts and topics:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Python&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Platforms&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Data types and operations&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Main control structures&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Functions&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;File I/O&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;OOP basics&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;Network programming&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;Basics of image processing&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;CGI scripting &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: x-small;"&gt;Online resources &amp;amp; communities &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Perl&lt;/b&gt;&lt;/span&gt; &lt;ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Platforms&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Data types and operations&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Control structures&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Subroutines&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Regular expressions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;CGI scripting&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Online resources &amp;amp; communities&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;Text Books&lt;/span&gt;&lt;/h2&gt;&lt;ol style="text-align: left;"&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;a href="http://www.amazon.com/Beginning-Python-Novice-Professional-Professionals/dp/1590599829"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;M. Hetland. "Beginning Python: From Novice to Professional," APRESS.&lt;/i&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://greenteapress.com/thinkpython/"&gt;&lt;i&gt;A. Downey. "Python: How For Software Design: How to Think Like a Computer Scientist," Green Tea Press.&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;&lt;a href="http://www.amazon.com/Beginning-Perl-Experts-Voice-Source/dp/1430227931#reader_1430227931"&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;J. Lee&lt;/span&gt;, "Beginning Perl", 2nd or 3rd Ed., APRESS&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Exams&lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;Midterm: March 08, 2012, 9:00 - 10:15, online&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Final Exam: May 01, 2012, 9:30 - 11:20am, online&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The midterm exam will be exclusively on Python. The final exam will be both on Python and Perl, but heavily biased toward Perl. There will also be regular 5- or 10-minute in-class quizes. The quizes will not be worth any points and will not contribute to your final grade. Their purpose is twofold: to help you evaluate your knowledge and understanding of the previously covered material and to help me adjust my in-class presentations on the basis of your quiz performance.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Assignments&lt;/span&gt;&lt;/h2&gt;&lt;span style="font-size: x-small;"&gt;All coding assignments and the final project  will be submitted and graded through Dropbox. If you do not have  Dropbox installed on your machine yet, go to &lt;a href="http://www.dropbox.com/"&gt;www.dropbox.com&lt;/a&gt; and take a few minutes to install it. After you have Dropbox installed, send me an email with the subject &lt;b&gt;"CS3430 Dropbox Folder"&lt;/b&gt; from the email address that you intend to use for this class (e.g., &lt;b&gt;john.nicholson@aggiemail.usu.edu&lt;/b&gt;). In the body of your email write your first and last names in full (e.g., &lt;b&gt;John Nicholson&lt;/b&gt;, &lt;b&gt;Chaitanya Gharpure&lt;/b&gt;, &lt;b&gt;Aliasgar Kutiyanawala&lt;/b&gt;). I will check your name against the class roster and, If you are registered,&amp;nbsp; will create a Dropbox folder &lt;b&gt;cs3430_s12_yourfirstname_yourlastname&lt;/b&gt; (e.g., &lt;b&gt;cs3430_f11_john_nicholson&lt;/b&gt;), and share that folder with the email address of your message. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: xx-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: xx-small;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;No late submissions will be accepted unless there is a good reason. So be cognizant of the deadlines and due dates. &lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Assignments&lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;I  plan to have to have 12 assignments (8 in Python and 4 in Perl) plus a final project in the last 4 weeks of the semester. The final project will require a 3-5 page writeup in  addition to the source code.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;All coding assignments and the final projects will  be submitted and graded through Dropbox. If you do not have Dropbox  installed on your machine yet, go to &lt;a href="http://www.dropbox.com/"&gt;www.dropbox.com&lt;/a&gt; and take a few minutes to install it. After you have Dropbox installed, send me an email with the subject &lt;b&gt;"CS6890 Dropbox Folder"&lt;/b&gt; from the email address that you intend to use for this class (e.g., &lt;b&gt;john.nicholson@aggiemail.usu.edu&lt;/b&gt;). In the body of your email write your first and last names in full (e.g., &lt;b&gt;John Nicholson&lt;/b&gt;, &lt;b&gt;Chaitanya Gharpure&lt;/b&gt;, &lt;b&gt;Aliasgar Kutiyanawala&lt;/b&gt;). I will check this name against the class roster. If you are registered,&amp;nbsp; I will create a Dropbox folder &lt;b&gt;cs6890_f11_yourfirstname_yourlastname&lt;/b&gt; (e.g., &lt;b&gt;cs6890_f11_john_nicholson&lt;/b&gt;), and share that folder with the email address of your message. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;No late submissions will be accepted unless there is a good reason. So be cognizant of the deadlines and due dates. &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Assignments &amp;amp; Projects&lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;I  plan to have eight regular assignments in the first 10 weeks of the  semester and a final project in the last 4 weeks of the semester. All assignments  will be coding. The final project will require a 3-5 page writeup in  addition to the source code.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;All coding assignments and the project will  be submitted and graded through Dropbox. If you do not have Dropbox  installed on your machine yet, go to &lt;a href="http://www.dropbox.com/"&gt;www.dropbox.com&lt;/a&gt; and take a few minutes to install it. After you have Dropbox installed, send me an email with the subject &lt;b&gt;"CS6890 Dropbox Folder"&lt;/b&gt; from the email address that you intend to use for this class (e.g., &lt;b&gt;john.nicholson@aggiemail.usu.edu&lt;/b&gt;). In the body of your email write your first and last names in full (e.g., &lt;b&gt;John Nicholson&lt;/b&gt;, &lt;b&gt;Chaitanya Gharpure&lt;/b&gt;, &lt;b&gt;Aliasgar Kutiyanawala&lt;/b&gt;). I will check this name against the class roster. If you are registered,&amp;nbsp; I will create a Dropbox folder &lt;b&gt;cs6890_f11_yourfirstname_yourlastname&lt;/b&gt; (e.g., &lt;b&gt;cs6890_f11_john_nicholson&lt;/b&gt;), and share that folder with the email address of your message. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;No late submissions will be accepted unless there is a good reason. So be cognizant of the deadlines and due dates.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;There will be approximately one assignment per week. The load may vary, however, depending on how fast we move through the material. It is the responsibility of the student to ensure that their assignment is complete and correct. The written portion of assignments may consist of short programming and design questions.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;/span&gt;Grading of the programming assignments will be based on the following criteria:&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Completion of program features as outlined in the assignment description;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Ability to handle error conditions (i.e. the program does not crash)&lt;/span&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Clear and concise code comments;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Code elegance and efficiency: meaningful variable, function, and class names, functional abstractions, etc.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="Standard"&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In week 11, you will be given a four-week programming project that will be due on the day of the final exam.&amp;nbsp; You will be required to write not only the source code but also document it. I will give you two project topics of which you can choose the one on which you will work on for five weeks.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;You can negotiate your own project with me. For example, if you work for a company or a research project and want to implement some programming tool, please contact me before the final project is assigned. The two main criteria that I will use to decide whether you should be given the go-ahead are:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The complexity of the project (it has to be comparable to the complexity of the assignend projects); and&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="font-size: x-small;"&gt;Your ability to complete the project on time given your previous class performance. It is unlikely that you will be able to choose your own project if your previous performance record is average or below average. Do not get too ambitious on your project's scope: there will be several regular Perl assignments in addition to the project and, of course, other courses. Please do not start your project before you get my approval.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Grading Percentages&lt;br /&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span style="font-size: x-small;"&gt;The class will be graded as follows:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Python Assignments - 40%;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Perl Assignments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - 20%;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Midterm Exam &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; - 10%;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Final Exam&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - 10%;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Final Project&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - 20%&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Grade Argumentation&lt;br /&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;If you think that I or the grader or I made a mistake, let me know. You deserve credit when it is due. If you are concerned about your grade, do not ask what you can do to raise it one week before the final. That is a too late. In order for me to help you, we both need time in order to solve the issue. Come see me as soon as you perceive a problem. Obviously, you should have satisfied the course prerequisites. If you have not, you should complete them before taking this class.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; Do not attempt to negotiate grades. If you just “need” B- instead of a C+ for whatever reasons, it will not happen.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; Students must be officially registered for this course. Attending class beyond the last date to add without being officially registered is not allowed and will not be approved by the dean’s office. No assignments or tests of any kind will be graded for students whose names do not appear on the class list.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Plagiarism&lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;The basic rule about cheating is &lt;b&gt;DO NOT DO IT!&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;You are free to talk with each other about regular assignments in general terms. However, you must write your own solutions and/or computer code. No collaboration is allowed on exams. Activities that violate the plagiarism policy include (but are not limited to): copying another person's work on a programming project, homework assignment, or exam; using any reference not authorized by the instructor on a programming project, homework assignment, or exam. The penalty for violating the plagiarism policy may be an F in the course. Appropriate university authorities may be informed of cheating incidents in a formal letter.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;You can always ask me before you do something. Some examples of cheating include copying another's work, turning in another's work as your own, allowing someone else to copy your work, doing work for another, letting another have access to your solution, using unapproved materials during a test, turning in duplicate or near-duplicate assignments, and working with another person to complete an assignment.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;You are required to do your own work. This does NOT mean working together and turning in two solutions. You are also responsible for protecting your code. Take care to keep your code unavailable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; to other students. Occurrences of cheating will have serious consequences for all involved. The first incident will carry a penalty of the student being given negative points equal to the value of the assignment or test. A second occurrence is grounds for a failing grade in the course and possible University action.&lt;/span&gt;&lt;/span&gt;  &lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;div class="Standard" style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Please refer to the USU Computer Science Department official cheating policy at&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;a href="http://digital.cs.usu.edu/cheating_policy.html"&gt; http://digital.cs.usu.edu/cheating_policy.html&lt;/a&gt;. Files submitted for homework may be electronically compared to detect cheating.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;ADA Compliance&lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;If a student has a disability that will likely require some accommodation by the instructor, the student must contact the instructor and document the disability through the Disability Resource Center, preferably during the first week of the course. Any request for special considerations relating to attendance, pedagogy, taking of examinations, etc. must be discussed with and approved by the instructor. In cooperation with the Disability Resource Center, course materials can be provided in alternative formats, e.g., large print, audio, diskette, or Braille.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;hr /&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Incompletes&lt;/span&gt;&lt;/h2&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;The University policy will be adhered to for incompletes. This means that an incomplete cannot be given to prevent receipt of a bad grade. Under no circumstances can an incomplete be given for which a re-take of the class is required to make up the work. In such situations, a withdrawal or late withdrawal is required. If a student feels that an incomplete is appropriate, it is their responsibility to immediately discuss the matter with their instructor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: justify;"&gt;&lt;hr /&gt;&lt;/div&gt;&lt;h2 style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;&lt;span style="font-size: x-small;"&gt;Add &amp;amp; Drop Dates&lt;/span&gt;&lt;/h2&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;  &lt;br /&gt;&lt;div class="Standard" style="text-align: justify; text-autospace: none;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The university's academic calendar can be found at&amp;nbsp;&lt;a href="http://www.usu.edu/registrar/dates/"&gt;http://www.usu.edu/registrar/dates/&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.blogger.com/goog_1788697603"&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. &lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Please note that a student who signs up after the beginning of classes is still responsible for any homework assigned and due before that date.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2228809622025421755?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2228809622025421755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2228809622025421755'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-and-perl-programming-syllabus.html' title='Python &amp; Perl: Syllabus'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4666817801619576726</id><published>2012-01-09T12:40:00.002-08:00</published><updated>2012-02-28T10:55:06.938-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='CGI'/><title type='text'>Python &amp; Perl: Lectures</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Department of Computer Science&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Utah State University&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-01.html"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Lecture 01:&lt;/b&gt; Python Overview (History, Features, Strengths, Weaknesses), Python 2.X or Python 3.X, Python Installation, Python Interpreter, Comments, Variables, Lists, Strings, Tuples, Built-in Functions and Methods&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-02.html"&gt;&lt;b&gt;Lecture 02:&lt;/b&gt; Editing Python Code, Running Python Code, Python Code Execution, Functional Abstraction, Tuples,&lt;/a&gt; &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-02.html"&gt;Importing from the Future&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-03_17.html"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Lecture 03:&lt;/b&gt; Python Built-In Objects, Numbers, Modules, User Input, Strings&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-04.html"&gt;&lt;b&gt;Lecture 04:&lt;/b&gt; Python Types, Strong and Dynamic Typing, Duck Typing, Built-In Sequences, Lists&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-05.html"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Lecture 05:&lt;/b&gt; Data Abstraction, Building Huffman Trees with Lists and Tuples, List Manipulation with Built-In Methods, list.append(), list.extend(), list.count(), list.index(), list.remove(), list.reverse(), list.sort(), Customizing list.sort()&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.vkedco.blogspot.com/2012/01/python-perl-lecture-06.html"&gt;&lt;b&gt;Lecture 06:&lt;/b&gt; Strings, String Manipulation, String Formatting, Format Specifiers, Specifier Width, Specifier Precision, Optional Conversion Flags, String Building, Object Comparison, While and For Loops&lt;/a&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-07.html"&gt;&lt;b&gt;Lecture 07&lt;/b&gt;: String Methods&lt;/a&gt; &lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-07.html"&gt;find(), split(), join(), replace(), translate(), Dictionaries, Dictionary Construction, &lt;/a&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-lecture-07.html"&gt;Dictionary Access, Adding New Key-Value Pairs to Dictionaries&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-08.html"&gt;&lt;b&gt;Lecture 08&lt;/b&gt;: &lt;/a&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-08.html"&gt;String Templates, Data Abstraction: Auto-Generation of Huffman Trees, Deep and Shallow Copying, Dictionary Access with get(), Creating Dictionaries from &lt;/a&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-08.html"&gt;Keys and Key-Value Pairs, Dictionaries as Flexible Lookup Lists, Dictionaries as Sparse Data Structures, Dictionaries &lt;/a&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-08.html"&gt;as Format Specifiers&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-09.html"&gt;&lt;b&gt;Lecture 09:&lt;/b&gt; Variable Assignment, Sequence Unpacking, zip(), range(), xrange(), enumerate(), List Comprehension&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-10.html"&gt;&lt;b&gt;Lecture 10:&lt;/b&gt; List Comprehension with Nested Loops, List Comprehension with Matrices, List Comprehension Uses, List Comprehension &amp;amp; Loop Variables, pass, del, exec()&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-11.html"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Lecture 11:&lt;/b&gt; Run-Time Code Generation, Execution, &amp;amp; Evaluation, Functional Abstraction, Function Introspection, Installing Python Image Library (PIL)&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-12.html"&gt;&lt;b&gt;Lecture 12:&lt;/b&gt; Function Parameters, Positional Parameters, Keyword Parameters, Combining Positional and Keyword&lt;/a&gt; &lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-12.html"&gt;Parameters with * and ** Operators, Scoping, Nested Scopes, Scope Sensitivity of vars(), Functional Programming,&lt;/a&gt; &lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-12.html"&gt;map(), reduce(), filter(), lambda expressions&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-13.html"&gt;&lt;b&gt;Lecture 13:&lt;/b&gt; PIL Basics, Creating &amp;amp; Saving Images, Getting &amp;amp; Setting Pixel Values, PIL Coordinates&lt;/a&gt;,&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-13.html"&gt; PIL Colors, PIL&lt;/a&gt; &lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-13.html"&gt;Fonts, Classes vs. Objects, Data &amp;amp; Method Attributes&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-14.html"&gt;&lt;b&gt;Lecture 14:&lt;/b&gt; Polymorphism, Encapsulation, Inheritance, Duck Typing, Critique of Duck Typing, Multiple Inheritance, Multiple Inheritance Pitfalls&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.blogger.com/goog_1424385623"&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-10.html"&gt;&lt;/a&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;   &lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;  &lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4666817801619576726?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4666817801619576726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4666817801619576726'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-and-perl-programming-lectures.html' title='Python &amp; Perl: Lectures'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-7328728617031915872</id><published>2012-01-09T12:36:00.003-08:00</published><updated>2012-02-28T12:39:46.038-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='CGI'/><title type='text'>Python &amp; Perl: Assignments</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Department of Computer Science&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Utah State University&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-assignment-01.html"&gt;Assignment 01&lt;/a&gt;, Due Jan 20, 2012, by 11:59pm, in your Dropbox folder&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-assignment-02.html"&gt;Assignment 02&lt;/a&gt;, Due Jan 27, 2012, by 11:59pm, in your Dropbox folder&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-perl-assignment-03.html"&gt;Assignment 03&lt;/a&gt;, Due Feb 03, 2012, by 11:59pm, in your Dropbox folder, &lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-assignment-03-solution.html"&gt;Solution&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-assignment-04.html"&gt;Assignment 04&lt;/a&gt;, Due Feb 10, 2012, by 11:59pm, in your Dropbox folder, &lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-assignment-04-solution.html"&gt;Solution&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-lecture-05.html"&gt;Assignment 05&lt;/a&gt;, Due Feb 17, 2012, by 11:59pm, in your Dropbox folder, &lt;a href="http://www.vkedco.blogspot.com/2012/02/python-perl-assignment-05-solution.html"&gt;Solution&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-assignment-06.html"&gt;Assignment 06&lt;/a&gt;, Due Feb 24, 2012, by 11:59pm, in your Dropbox folder, &lt;a href="http://vkedco.blogspot.com/2012/02/drawing-tile-ornaments-with-python.html"&gt;Solution&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-assignment-07.html"&gt;Assignment 07&lt;/a&gt;, Due Mar 03, 2012, by 11:59pm in your Dropbox folder &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html"&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-7328728617031915872?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/7328728617031915872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/7328728617031915872'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-and-perl-programming-assignments.html' title='Python &amp; Perl: Assignments'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-768896580655306803</id><published>2012-01-09T12:35:00.002-08:00</published><updated>2012-02-27T16:34:17.902-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='python programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl programming'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Python &amp; Perl: Home</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Department of Computer Science&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Utah State University&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Syllabus&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;                 &lt;td style="text-align: left;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-syllabus.html"&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Syllabus&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Lectures&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                 &lt;td style="text-align: left;"&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-lectures.html"&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Lectures&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Assignments&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                 &lt;td&gt;&lt;a href="http://vkedco.blogspot.com/2012/01/python-and-perl-programming-assignments.html"&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Assignments&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Quizzes&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;                 &lt;td&gt;&lt;a href="http://vkedco.blogspot.com/2012/02/python-perl-quizes.html"&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;Quizzes&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/center&gt;     &lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-768896580655306803?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/768896580655306803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/768896580655306803'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/python-and-perl-programming-home.html' title='Python &amp; Perl: Home'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4760011467108671993</id><published>2012-01-05T10:43:00.000-08:00</published><updated>2012-01-05T10:44:43.924-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='accessible shopping'/><category scheme='http://www.blogger.com/atom/ns#' term='service robotics'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='john nicholson'/><category scheme='http://www.blogger.com/atom/ns#' term='chaitanya gharpure'/><category scheme='http://www.blogger.com/atom/ns#' term='blind navigation'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='blindness'/><title type='text'>RoboCart: Toward Robot-Assisted Navigation of Grocery Stores by the Visually Impaired</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chaitanya Gharpure&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; John Nicholson &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science, Utah State University&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract: &lt;/b&gt;This paper presents RoboCart, a proof-of-concept prototype of a robotic  shopping assistant for the visually impaired. The purpose of RoboCart is  to help visually impaired customers navigate a typical grocery store  and carry purchased items. The current hardware and software components  of the system are presented. For localization, RoboCart relies on RFID  tags deployed at various locations in the store. For navigation,  RoboCart relies on laser range finding. Experiences with deploying  RoboCart in a real grocery store are described. The current status of  the system and its limitations are outlined.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Kulyukin,   V., Gharpure, C., and Nicholson, J. (2005). "RoboCart: Toward Robot-Assisted Navigation of Grocery Stores by the Visually Impaired."&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: x-small;"&gt;Proceedings of the IEEE/RJS Conference on Intelligent Robots and Systems (IROS 2005), pp. 2845                         -  2850, DOI: 10.1109/IROS.2005.1545107, IEEE/RJS, Edmonton, Alberta, Canada.&lt;a href="http://www.blogger.com/goog_620575446" target="_blank"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;div id="__ss_10732728" style="width: 477px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/robocart-toward-robotassisted-navigation-of-grocery-stores-by-the-visually-impaired" target="_blank" title="RoboCart: Toward Robot-Assisted Navigation of Grocery Stores by the Visually Impaired"&gt;RoboCart: Toward Robot-Assisted Navigation of Grocery Stores by the Visually Impaired&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10732728" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more documents from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4760011467108671993?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4760011467108671993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4760011467108671993'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/robocart-toward-robot-assisted.html' title='RoboCart: Toward Robot-Assisted Navigation of Grocery Stores by the Visually Impaired'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4110267306154245908</id><published>2012-01-03T10:03:00.000-08:00</published><updated>2012-01-03T10:03:41.125-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='service robotics'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='john nicholson'/><category scheme='http://www.blogger.com/atom/ns#' term='robotics'/><category scheme='http://www.blogger.com/atom/ns#' term='dempster-shafer theory'/><category scheme='http://www.blogger.com/atom/ns#' term='dempster-shafer support functions'/><category scheme='http://www.blogger.com/atom/ns#' term='indoor localization'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='amit banavalikar'/><title type='text'>Wireless Indoor Localization with Dempster-Shafer Simple Support Functions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Amit Banavalikar&lt;span class="ssml_ft_1_1" style="left: 31.8136%; top: 29.5455%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; John Nicholson &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science, Utah State University&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract: &lt;/b&gt;A mobile robot is localized in an indoor environment using IEEE 802.11b wireless signals. Simple support functions of the Dempster-Shafer theory are used to combine evidence from multiple localization algorithms. Emperical results are presented and discussed. Conclusions are drawn regarding when the proposed sensor fusion methods may improve performance and when they may not.&lt;span class="ssml_ft_1_1" style="left: 22.2249%; top: 58.7121%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Kulyukin,  V., Banavalikar, A., and Nicholson, J. (2005). "Wireless Indoor Localization with Dempster-Shafer Simple Support Functions."&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: x-small;"&gt;Technical Report USU-CSATL-1-05-05, Computer Science Assistive Technology Laboratory, Department        of Computer Science, Utah State University.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="__ss_10782107" style="width: 477px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/wireless-indoor-localization-with-dempstershafer-simple-support-functions" target="_blank" title="Wireless Indoor Localization with Dempster-Shafer Simple Support Functions"&gt;Wireless Indoor Localization with Dempster-Shafer Simple Support Functions&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10782107" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more documents from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4110267306154245908?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4110267306154245908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4110267306154245908'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/wireless-indoor-localization-with.html' title='Wireless Indoor Localization with Dempster-Shafer Simple Support Functions'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-7735926665288893691</id><published>2012-01-02T12:58:00.000-08:00</published><updated>2012-01-02T12:58:02.380-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='blind navigation'/><category scheme='http://www.blogger.com/atom/ns#' term='aliasgar kutiyanwala'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='gps'/><category scheme='http://www.blogger.com/atom/ns#' term='ramya venugoplana'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='blindness'/><title type='text'>A Software Tool for Rapid Acquisition of Streetwise Geo-Referenced Maps</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="ssml_ft_1_1" style="left: 14.7059%; top: 29.5455%;"&gt;A&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 16.1224%; top: 29.5455%;"&gt;l&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 16.6682%; top: 29.5455%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 17.2141%; top: 29.5455%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 18.0855%; top: 29.5455%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 18.849%; top: 29.5455%;"&gt;g&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 19.8302%; top: 29.5455%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 20.7016%; top: 29.5455%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 21.8455%; top: 29.5455%;"&gt; K&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 23.262%; top: 29.5455%;"&gt;u&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 24.183%; top: 29.5455%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 24.7289%; top: 29.5455%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 25.2748%; top: 29.5455%;"&gt;y&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 26.2559%; top: 29.5455%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 27.1273%; top: 29.5455%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 28.1085%; top: 29.5455%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 28.9799%; top: 29.5455%;"&gt;w&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 30.3963%; top: 29.5455%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 31.2677%; top: 29.5455%;"&gt;l&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 31.8136%; top: 29.5455%;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ramya Venugopalan &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science, Utah State University&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract: &lt;/b&gt;&lt;span class="ssml_ft_1_1" style="left: 14.7059%; top: 57.0707%;"&gt;R&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 16.0125%; top: 57.0707%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 16.882%; top: 57.0707%;"&gt;p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 17.8612%; top: 57.0707%;"&gt;G&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 19.2757%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 20.1451%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 21.1243%; top: 57.0707%;"&gt;R&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 22.431%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 23.3004%; top: 57.0707%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 23.9522%; top: 57.0707%;"&gt;,&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 25.2916%; top: 57.0707%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 26.9427%; top: 57.0707%;"&gt; s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 27.7043%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 28.6835%; top: 57.0707%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 29.3353%; top: 57.0707%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 29.902%; top: 57.0707%;"&gt;w&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 31.3165%; top: 57.0707%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 32.1859%; top: 57.0707%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 32.8376%; top: 57.0707%;"&gt;e &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 34.4888%; top: 57.0707%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 34.9673%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 35.9465%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 36.9258%; top: 57.0707%;"&gt;l &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 38.2001%; top: 57.0707%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 38.8518%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 39.8693%; top: 57.0707%;"&gt;r &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 41.3067%; top: 57.0707%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 41.9599%; top: 57.0707%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 42.8307%; top: 57.0707%;"&gt;p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 43.8112%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 44.3565%; top: 57.0707%;"&gt;d &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 46.1214%; top: 57.0707%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 46.9922%; top: 57.0707%;"&gt;c&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 47.863%; top: 57.0707%;"&gt;q&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 48.8436%; top: 57.0707%;"&gt;u&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 49.8242%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 50.3695%; top: 57.0707%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 51.1324%; top: 57.0707%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 51.6777%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 52.223%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 53.2036%; top: 57.0707%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 54.9685%; top: 57.0707%;"&gt; o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 55.9491%; top: 57.0707%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 57.3865%; top: 57.0707%;"&gt; s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 58.1495%; top: 57.0707%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 58.6948%; top: 57.0707%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 59.3479%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 60.2187%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 61.0895%; top: 57.0707%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 61.6348%; top: 57.0707%;"&gt;w&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 63.0507%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 63.5959%; top: 57.0707%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 64.3589%; top: 57.0707%;"&gt;e &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 66.014%; top: 57.0707%;"&gt;g&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 66.9946%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 67.8654%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 68.8459%; top: 57.0707%;"&gt;-&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 69.4991%; top: 57.0707%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 70.1522%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 71.023%; top: 57.0707%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 71.6761%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 72.5469%; top: 57.0707%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 73.2001%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 74.0708%; top: 57.0707%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 75.0514%; top: 57.0707%;"&gt;c&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 75.9222%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 76.793%; top: 57.0707%;"&gt;d &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 78.5579%; top: 57.0707%;"&gt;m&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 80.0654%; top: 57.0707%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 80.8824%; top: 57.0707%;"&gt;p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 81.8629%; top: 57.0707%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 82.6259%; top: 57.0707%;"&gt;,&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 83.9006%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 84.4459%; top: 57.0707%;"&gt;s &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 14.7059%; top: 58.7121%;"&gt;p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 15.6869%; top: 58.7121%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 16.3404%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 17.2116%; top: 58.7121%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 17.9749%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 18.8461%; top: 58.7121%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 19.8271%; top: 58.7121%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 20.3727%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 21.2439%; top: 58.7121%;"&gt;d&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 22.2249%; top: 58.7121%;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Kulyukin, V., Kutiyanawala, A., and Venugopalan, R. (2009). "A Software Tool for Rapid Acquisition of Streetwise Geo-Referenced Maps."&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Proceedings of the 24th Annual International Technology and        Persons with Disabilities Conference&lt;/i&gt;        (&lt;a href="http://csunconference.org/"&gt;CSUN 2009&lt;/a&gt;), Los Angeles, CA.&lt;/span&gt;&lt;/div&gt;&lt;div id="__ss_10659327" style="width: 477px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/a-software-tool-for-rapid-acquisition-of-streetwise-georeferenced-maps" target="_blank" title="A Software Tool for Rapid Acquisition of Streetwise Geo-Referenced Maps"&gt;A Software Tool for Rapid Acquisition of Streetwise Geo-Referenced Maps&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10659327" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more documents from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-7735926665288893691?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/7735926665288893691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/7735926665288893691'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2012/01/software-tool-for-rapid-acquisition-of.html' title='A Software Tool for Rapid Acquisition of Streetwise Geo-Referenced Maps'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-8270781764854540713</id><published>2011-12-22T17:55:00.000-08:00</published><updated>2011-12-22T17:56:46.092-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='daniel coster'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='verbal route instructions for the blind'/><category scheme='http://www.blogger.com/atom/ns#' term='john nicholson'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='accessible blind shopping'/><category scheme='http://www.blogger.com/atom/ns#' term='independent blidn shopping'/><title type='text'>On Sufficiency  of Verbal Instructions for Independent Blind Shopping</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; John Nicholson &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science, Utah State University&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract: &lt;/b&gt;&lt;span class="ssml_ft_1_1" style="left: 14.7059%; top: 57.0707%;"&gt;A&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 17.0535%; top: 57.0707%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 17.7071%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 18.2527%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 19.1239%; top: 57.0707%;"&gt;l&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 19.6696%; top: 57.0707%;"&gt;d&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 21.582%; top: 57.0707%;"&gt; s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 22.3453%; top: 57.0707%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 22.891%; top: 57.0707%;"&gt;u&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 23.872%; top: 57.0707%;"&gt;d&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 24.8529%; top: 57.0707%;"&gt;y &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 26.7653%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 27.7463%; top: 57.0707%;"&gt;f &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 29.3312%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 29.8769%; top: 57.0707%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 30.8578%; top: 57.0707%;"&gt;d&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 31.8388%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 32.71%; top: 57.0707%;"&gt;p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 33.691%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 34.5622%; top: 57.0707%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 35.5431%; top: 57.0707%;"&gt;d&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 36.5241%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 37.3953%; top: 57.0707%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 38.3763%; top: 57.0707%;"&gt;t &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 39.8533%; top: 57.0707%;"&gt;b&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 40.8343%; top: 57.0707%;"&gt;l&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 41.38%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 41.9257%; top: 57.0707%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 42.9067%; top: 57.0707%;"&gt;d &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 44.819%; top: 57.0707%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 45.5824%; top: 57.0707%;"&gt;h&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 46.5633%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 47.5443%; top: 57.0707%;"&gt;p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 48.5253%; top: 57.0707%;"&gt;p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 49.5063%; top: 57.0707%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 50.052%; top: 57.0707%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 51.0329%; top: 57.0707%;"&gt;g&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 52.9412%; top: 57.0707%;"&gt; i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 53.4873%; top: 57.0707%;"&gt;n &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 55.402%; top: 57.0707%;"&gt;a &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 57.2069%; top: 57.0707%;"&gt;m&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 58.6601%; top: 57.0707%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 59.6415%; top: 57.0707%;"&gt;d&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 60.6229%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 61.6013%; top: 57.0707%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 62.2552%; top: 57.0707%;"&gt;n &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 64.1699%; top: 57.0707%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 64.9337%; top: 57.0707%;"&gt;u&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 65.915%; top: 57.0707%;"&gt;p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 66.8964%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 67.768%; top: 57.0707%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 68.4219%; top: 57.0707%;"&gt;m&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 69.9346%; top: 57.0707%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 70.8062%; top: 57.0707%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 71.4601%; top: 57.0707%;"&gt;k&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 72.4415%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 73.3131%; top: 57.0707%;"&gt;t &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 74.7925%; top: 57.0707%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 75.5562%; top: 57.0707%;"&gt;u&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 76.5376%; top: 57.0707%;"&gt;g&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 77.519%; top: 57.0707%;"&gt;g&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 78.5003%; top: 57.0707%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 79.3719%; top: 57.0707%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 80.1356%; top: 57.0707%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 80.6817%; top: 57.0707%;"&gt;s &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 82.3788%; top: 57.0707%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 82.9248%; top: 57.0707%;"&gt;h&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 83.9062%; top: 57.0707%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 84.7778%; top: 57.0707%;"&gt;t &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 14.7059%; top: 58.7121%;"&gt;v&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 15.6869%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 16.558%; top: 58.7121%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 17.2116%; top: 58.7121%;"&gt;b&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 18.1925%; top: 58.7121%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 19.0637%; top: 58.7121%;"&gt;l &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 20.0973%; top: 58.7121%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 20.6429%; top: 58.7121%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 21.6239%; top: 58.7121%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 22.3873%; top: 58.7121%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 22.9329%; top: 58.7121%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 23.5865%; top: 58.7121%;"&gt;u&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 24.5675%; top: 58.7121%;"&gt;c&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 25.4386%; top: 58.7121%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 25.9843%; top: 58.7121%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 26.53%; top: 58.7121%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 27.511%; top: 58.7121%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 28.492%; top: 58.7121%;"&gt;s &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 29.7431%; top: 58.7121%;"&gt;m&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 31.2092%; top: 58.7121%;"&gt;a&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 32.1895%; top: 58.7121%;"&gt;y&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 33.6584%; top: 58.7121%;"&gt; b&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 34.6393%; top: 58.7121%;"&gt;e &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 35.9984%; top: 58.7121%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 36.7617%; top: 58.7121%;"&gt;u&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 37.7427%; top: 58.7121%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 38.3962%; top: 58.7121%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 39.0497%; top: 58.7121%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 39.5954%; top: 58.7121%;"&gt;c&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 40.4666%; top: 58.7121%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 41.0123%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 41.8835%; top: 58.7121%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 42.8105%; top: 58.7121%;"&gt;t &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 43.8463%; top: 58.7121%;"&gt;f&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 44.4999%; top: 58.7121%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 45.4809%; top: 58.7121%;"&gt;r &lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 46.6246%; top: 58.7121%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 47.2781%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 48.1493%; top: 58.7121%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 48.695%; top: 58.7121%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 49.3485%; top: 58.7121%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 49.8942%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 50.7654%; top: 58.7121%;"&gt;v&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 51.7463%; top: 58.7121%;"&gt;i&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 52.292%; top: 58.7121%;"&gt;n&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 53.273%; top: 58.7121%;"&gt;g&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 54.7442%; top: 58.7121%;"&gt; s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 55.5075%; top: 58.7121%;"&gt;h&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 56.4885%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 57.3597%; top: 58.7121%;"&gt;l&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 57.9054%; top: 58.7121%;"&gt;v&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 58.8863%; top: 58.7121%;"&gt;e&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 59.7575%; top: 58.7121%;"&gt;d&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 61.2287%; top: 58.7121%;"&gt; p&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 62.2097%; top: 58.7121%;"&gt;r&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 62.8632%; top: 58.7121%;"&gt;o&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 63.8442%; top: 58.7121%;"&gt;d&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 64.8252%; top: 58.7121%;"&gt;u&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 65.8061%; top: 58.7121%;"&gt;c&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 66.6773%; top: 58.7121%;"&gt;t&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 67.223%; top: 58.7121%;"&gt;s&lt;/span&gt;&lt;span class="ssml_ft_1_1" style="left: 67.9863%; top: 58.7121%;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Nicholson, J., Kulyukin, V., and Coster, D. (2009). "On Sufficiency&amp;nbsp; of Verbal Instructions for Independent Blind Shopping."&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Proceedings of the 24th Annual International Technology and        Persons with Disabilities Conference&lt;/i&gt;        (&lt;a href="http://csunconference.org/"&gt;CSUN 2009&lt;/a&gt;), Los Angeles, CA.&lt;/span&gt;&lt;/div&gt;&lt;div id="__ss_10659290" style="width: 477px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/on-sufficiency-of-verbal-instructions-for-independent-blind-shopping" target="_blank" title="On Sufficiency of Verbal Instructions for Independent Blind Shopping"&gt;On Sufficiency of Verbal Instructions for Independent Blind Shopping&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10659290" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-8270781764854540713?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8270781764854540713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8270781764854540713'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/on-sufficiency-of-verbal-instructions.html' title='On Sufficiency  of Verbal Instructions for Independent Blind Shopping'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-1272267293202463691</id><published>2011-12-21T14:55:00.000-08:00</published><updated>2011-12-21T14:57:06.389-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='verbal route instructions'/><category scheme='http://www.blogger.com/atom/ns#' term='collaborative problem solving'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='john nicholson'/><category scheme='http://www.blogger.com/atom/ns#' term='independent travel'/><category scheme='http://www.blogger.com/atom/ns#' term='blind navigation'/><category scheme='http://www.blogger.com/atom/ns#' term='CRISS'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='blind travel'/><title type='text'>CRISS: A Collaborative Route Information Sharing System for Visually Impaired Travelers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; John Nicholson &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Department of Computer Science, Utah State University&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract: &lt;/b&gt;Limited sensory information about a new environment often requires people with a visual impairment to rely on sighted guides for showing or describing routes around the environment. However, route descriptions provided by other blind independent navigators, (e.g., over a cell phone), can also be used to guide a traveler along a previously unknown route. A visually impaired guide can often describe a route as well or better than a sighted person since the guide is familiar with the issues of blind navigation. This chapter introduces a Collaborative Route Information Sharing System (CRISS). CRISS is a collaborative online environment where visually impaired and sighted people will be able to share and manage route descriptions for indoor and outdoor environments. It then describes the system’s Route Analysis Engine module which takes advantage of information extraction techniques to find landmarks in natural language route descriptions written by independent blind navigators.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Nicholson, J., Kulyukin, V. (2009).       &lt;b&gt;CRISS: A Collaborative Route Information Sharing System for Visually  Impaired Travelers&lt;/b&gt;.       In M. M. Cruz-Cunha; E. F. Oliveira; A. J. Tavares; L. G. Ferreira        (Edtrs.),        &lt;a href="http://www.igi-global.com/reference/details.asp?ID=34405"&gt;  Handbook of Research on Social Dimensions of Semantic Technologies and   Web Services (Volume II)&lt;/a&gt;, pp. 720-741, ISBN: 978-1-60566-650-1, IGI Global, Hershey, PA, USA.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="__ss_10659078" style="width: 477px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/criss-a-collaborative-route-information-sharing-system-for-visually-impaired-travelers" target="_blank" title="CRISS: A Collaborative Route Information Sharing System for Visually Impaired Travelers"&gt;CRISS: A Collaborative Route Information Sharing System for Visually Impaired Travelers&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10659078" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-1272267293202463691?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1272267293202463691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1272267293202463691'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/criss-collaborative-route-information.html' title='CRISS: A Collaborative Route Information Sharing System for Visually Impaired Travelers'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-3321894677888600174</id><published>2011-12-20T12:59:00.000-08:00</published><updated>2011-12-20T13:09:40.806-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free computing'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='john nicholson'/><category scheme='http://www.blogger.com/atom/ns#' term='teleassistance'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile computing'/><category scheme='http://www.blogger.com/atom/ns#' term='accessible blind shopping'/><category scheme='http://www.blogger.com/atom/ns#' term='aliasgar kutiyanawala'/><category scheme='http://www.blogger.com/atom/ns#' term='rehabilitation engineering'/><title type='text'>Teleassistance in Accessible Shopping for the Blind</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;Aliasgar Kutiyanawala (1) &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vladimir Kulyukin (1)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; John Nicholson (2) &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;(1) Department of Computer Science, Utah State University&lt;br /&gt;(2) Computer Science and Information Technology Department, Austin Peay University &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract:&lt;/b&gt; In this paper, we present TeleShop, the teleassistance module of ShopMobile 2, our mobile accessible shopping system for visually impaired (VI) and blind individuals that we have been developing for the past several years. TeleShop enables its users to obtain help from remote sighted guides by transmitting images and voice from their smartphones to the guides’ computers or phones. We have successfully tested TeleShop in a laboratory study in which a married couple (a blind husband and a sighted wife) used it to retrieve grocery products and read nutrition facts from product packages.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt; Kutiyanawala, A., &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Kulyukin, V., and,&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Nicholson, J.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; (2011).&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; "Teleassistance in Accessible Shopping for the Blind."&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Proceedings of the the 2011 International Conference on Internet         Computing (&lt;a href="http://www.world-academy-of-science.org/worldcomp11/ws/conferences/icomp11"&gt;       ICOMP 2011&lt;/a&gt;)&lt;/i&gt;, pp. 190-193, July 18-21, 2011, Las Vegas, USA.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="__ss_10650487" style="width: 477px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/teleassistance-in-accessible-shopping-for-the-blind" target="_blank" title="Teleassistance in Accessible Shopping for the Blind"&gt;Teleassistance in Accessible Shopping for the Blind&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10650487" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Teleassistance in Blind Shopping: Laboratory Experiment 01&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vmWFhOtmhuI?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vmWFhOtmhuI?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Teleassistance in Blind Shopping: Laboratory Experiment 02&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/czX7RftdyW0?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/czX7RftdyW0?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Teleassistance in Blind Shopping: Laboratory Experiment 03&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jOsF3NZtoMo?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/jOsF3NZtoMo?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Teleassistance in Blind Shopping: Laboratory Experiment 03&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UZaoz7ej79w?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/UZaoz7ej79w?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Teleassistance in Blind Shopping: Laboratory Experiment 04&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OmaMV5GFDDo?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/OmaMV5GFDDo?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Teleassistance in Blind Shopping: Exit Interviews with Participants&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/82UccNRGr0g?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/82UccNRGr0g?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-3321894677888600174?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3321894677888600174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3321894677888600174'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/teleassistance-in-accessible-shopping.html' title='Teleassistance in Accessible Shopping for the Blind'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6312068790696978756</id><published>2011-12-19T12:49:00.000-08:00</published><updated>2011-12-19T12:50:23.769-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blind route descriptions'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyulkin'/><category scheme='http://www.blogger.com/atom/ns#' term='john nicholson'/><category scheme='http://www.blogger.com/atom/ns#' term='blind navigation'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='accessible blind shopping'/><category scheme='http://www.blogger.com/atom/ns#' term='information extraction'/><category scheme='http://www.blogger.com/atom/ns#' term='aliasgar kutiyanawala'/><title type='text'>On Automated Landmark Identification in Written Route Descriptions by Visually Impaired Individuals</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;John Nicholson &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vladimir Kulyukin &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Aliasgar Kutiyanawala &lt;br /&gt;Department of Computer Science, Utah State University&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract:&lt;/b&gt; Route descriptions are used to describe how to complete a route from one location to another location. A key component of route descriptions is the set of landmarks that are mentioned in the description and will be encountered as the actions in the description are executed. People with visual impairments mention more landmarks than people with normal vision. They also refer to landmarks experienced along non-turning segments of the route, not just at turns. This paper describes an analysis of a set of route descriptions written by people with visual impairments. The analysis is centered on understanding the types of language patterns that people use in route descriptions and that can used to identify mentions of landmarks. The patterns can subsequently be used to build tools that can automatically extract landmarks from text. One set of techniques used to automatically extract information from natural language text is Information Extraction (IE). When developing IE-based tools, natural language texts are analyzed and rules are created that can automatically extract the desired information from the text. We have been developing the Route Analysis Engine (RAE), an IE-based tool that can automatically identify landmarks in route descriptions. In 2007, an online web-based survey was used to collect real-world route descriptions from visually impaired individuals. Respondents were asked to submit two route descriptions, an outdoor route description for guiding travelers from one building to another building and an indoor route description for guiding travelers from one room to another room in the same building. We received 52 responses, providing 104 English route descriptions: 52 indoor route descriptions and 52 outdoor route descriptions. Two thirds of the route descriptions were placed in the training set for the purpose of analysis and IE rule development. The remainder were placed in an evaluation set used to test the effectiveness of the IE rules .&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; Nicholson, J.,&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Kulyukin, V., Kutiyanawala, D.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; (2010).&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; "On Automated Landmark Identification in Written Route Descriptions by Visually Impaired Individuals."&lt;i&gt;     Proceedings of the 25th Annual International Technology and        Persons with Disabilities Conference &lt;/i&gt;       (&lt;a href="http://csunconference.org/"&gt;CSUN 2010&lt;/a&gt;), San Diego, CA.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_10640649" style="width: 477px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/on-automated-landmark-identification-in-written-route-descriptions-by-visually-impaired-individuals" target="_blank" title="On Automated Landmark Identification in Written Route Descriptions by Visually Impaired Individuals"&gt;On Automated Landmark Identification in Written Route Descriptions by Visually Impaired Individuals&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10640649" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6312068790696978756?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6312068790696978756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6312068790696978756'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/on-automated-landmark-identification-in.html' title='On Automated Landmark Identification in Written Route Descriptions by Visually Impaired Individuals'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2873797974617597433</id><published>2011-12-19T12:39:00.000-08:00</published><updated>2011-12-19T12:51:15.702-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='verbal route directions for the blind'/><category scheme='http://www.blogger.com/atom/ns#' term='blind navigation'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile computing'/><title type='text'>On Self-Sufficiency of Verbal Route Directions for Blind Navigation with Prior Exposure</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;Aliasgar Kutiyanawala&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vladimir Kulyukin &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Daniel Bryce &lt;br /&gt;Department of Computer Science, Utah State University&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract:&lt;/b&gt; We define verbal route directions to be self-sufficient if they can be used by independent visually impaired (VI) travelers to successfully navigate a route from A to B in a given environment without any electronic aid capable of receiving external signals or any human assistance. We distinguish self-sufficient route directions from self-sufficient routes. A self-sufficient route anticipates potential route execution failures and provides either extra localization actions or contingencies for route repair. Self-sufficient verbal route directions are complete or partial verbal realizations of self-sufficient routes. We conducted a preliminary investigation of the self-sufficiency of verbal route directions for outdoor environments with three completely blind students of Utah State University (USU). In this study, the generation of routes and route directions was done manually. We selected two routes on the Utah State University (USU) campus and manually wrote a set of route directions which we believed to be self-sufficient and then encoded our route directions in a computer program than ran on a Nokia E70 cellular phone. Furthermore, our investigation was confined to the case when VI individuals receive prior exposure to the route they will have to navigate independently. This study models the situation when a visually impaired student navigates the route once with an O&amp;amp;M instructor or a friend and then has to navigate the route independently. &lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; Kutiyanawala, A.,&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Kulyukin, V., Bryce, D.&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; (2010). "On Self-Sufficiency of Verbal Route Directions for Blind Navigation with Prior Exposure."&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;i&gt;     Proceedings of the 25th Annual International Technology and        Persons with Disabilities Conference &lt;/i&gt;       (&lt;a href="http://csunconference.org/"&gt;CSUN 2010&lt;/a&gt;), San Diego, CA.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_10640424" style="width: 477px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/csun-2010-selfsufficientroutes" target="_blank" title="On Self-Sufficiency of Verbal Route Directions for Blind Navigation with Prior Exposure"&gt;On Self-Sufficiency of Verbal Route Directions for Blind Navigation with Prior Exposure&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10640424" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2873797974617597433?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2873797974617597433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2873797974617597433'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/on-self-sufficiency-of-verbal-route.html' title='On Self-Sufficiency of Verbal Route Directions for Blind Navigation with Prior Exposure'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-5529941821202350548</id><published>2011-12-19T12:25:00.000-08:00</published><updated>2011-12-19T12:51:53.919-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='james marston'/><category scheme='http://www.blogger.com/atom/ns#' term='accessibility'/><category scheme='http://www.blogger.com/atom/ns#' term='map labeling'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='large print maps'/><category scheme='http://www.blogger.com/atom/ns#' term='joshua miele'/><category scheme='http://www.blogger.com/atom/ns#' term='low vision'/><category scheme='http://www.blogger.com/atom/ns#' term='aliasgar kutiyanawala'/><category scheme='http://www.blogger.com/atom/ns#' term='blindness'/><title type='text'>Automated SVG Map Labeling for Customizable Large Print Maps for Low Vision Individuals</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt; (1), James Marston (2), Joshua Miele (3), Aliasgar Kutiyanawala (1)&lt;br /&gt;(1) Department of Computer Science, Utah State University&lt;br /&gt;(2) Atlanta VA Rehabilitation R&amp;amp;D Center for Vision Loss&lt;br /&gt;(3) Smith-Kettlewell Eye Research Institute&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract:&lt;/b&gt; Many people with visual impairments do not read Braille and have problems interpreting tactile information. Some of them have enough residual vision so that if streets and their names were presented in the proper color, size, and style, they could benefit from customizable large print maps. Such maps would allow people with low vision to study a new area, pre-­‐plan travel, and have portable maps to consult while navigating in unfamiliar areas. This paper presents an algorithm for placing street names on street maps produced by the Tactile Map Automated Product on (TMAP) software in the Scalable Vector Graphics (SVG) format.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Kulyukin, V., Marston, J., Miele, J., and Kutiyanawala, A. (2010). "Automated SVG Map Labeling for Customizable Large Print Maps for Low Vision Individuals." &lt;i&gt;Proceedings of the 2010 Rehabilitation Engineering and Assistive Technology Society of North   America Conference&lt;/i&gt;  (&lt;a href="http://resna.org/conference/2010-resna-conference"&gt;RESNA 2010&lt;/a&gt;),   Las Vegas, NV.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_10640223" style="width: 477px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/automated-svg-map-labeling-for-customizable-large-print-maps-for-low-vision-individuals" target="_blank" title="Automated SVG Map Labeling for Customizable Large Print Maps for Low Vision Individuals"&gt;Automated SVG Map Labeling for Customizable Large Print Maps for Low Vision Individuals&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10640223" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-5529941821202350548?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5529941821202350548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5529941821202350548'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/automated-svg-map-labeling-for.html' title='Automated SVG Map Labeling for Customizable Large Print Maps for Low Vision Individuals'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-1449553252878076474</id><published>2011-12-19T12:09:00.000-08:00</published><updated>2011-12-19T12:52:28.905-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ShopMobile'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free barcode scanning'/><category scheme='http://www.blogger.com/atom/ns#' term='ShopTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='accessible blind shopping'/><category scheme='http://www.blogger.com/atom/ns#' term='aliasgar kutiyanawala'/><category scheme='http://www.blogger.com/atom/ns#' term='blindness'/><title type='text'>From ShopTalk to ShopMobile: Vision-Based Barcode Scanning with Mobile Phones for Independent Blind Grocery Shopping</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt; and Aliasgar Kutiyanawala&lt;br /&gt;Department of Computer Science, Utah State University&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract:&lt;/b&gt; Independent grocery shopping is a major challenge for many visually impaired (VI) individuals. In 2006, we began our work on ShopTalk, a wearable system for independent blind supermarket shopping. ShopTalk consisted of a small OQO computer, a wireless barcode reader, and a numeric keypad, and was based on a simple insight: independent blind shopping = verbal route instructions + barcode scans. The system was the first attempt reported in the accessible shopping literature to use shelf barcodes as topological points for locating products through verbal directions. In 2008-­‐09, we ported ShopTalk to a mobile phone platform. This paper presents a vision-­‐based barcode scanning method that will allow ShopMobile, the next generation of ShopTalk, to run on a mobile phone with no external barcode scanner.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt; Kulyukin, V. and Kutiyanawala, A. (2010). "From ShopTalk to ShopMobile: Vision-Based Barcode Scanning with Mobile Phones for Independent Blind Grocery Shopping." &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Proceedings of the 2010 Rehabilitation Engineering and Assistive Technology Society of North   America Conference&lt;/i&gt;  (&lt;a href="http://resna.org/conference/2010-resna-conference"&gt;RESNA 2010&lt;/a&gt;),   Las Vegas, NV.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_10640062" style="width: 477px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/from-shoptalktoshopmobile-resna2010" target="_blank" title="From ShopTalk to ShopMobile: Vision-Based Barcode Scanning with Mobile Phones for Independent Blind Grocery Shopping"&gt;From ShopTalk to ShopMobile: Vision-Based Barcode Scanning with Mobile Phones for Independent Blind Grocery Shopping&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10640062" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-1449553252878076474?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1449553252878076474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1449553252878076474'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/from-shoptalk-to-shopmobile-vision.html' title='From ShopTalk to ShopMobile: Vision-Based Barcode Scanning with Mobile Phones for Independent Blind Grocery Shopping'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-8490182223213749652</id><published>2011-12-16T16:19:00.000-08:00</published><updated>2011-12-19T11:54:47.739-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RoboCart'/><category scheme='http://www.blogger.com/atom/ns#' term='human-robot interaction'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive robotics . robot-assisted wayfinding'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='chaitanya gharpure'/><category scheme='http://www.blogger.com/atom/ns#' term='visual impairment'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='accessible blind shopping'/><category scheme='http://www.blogger.com/atom/ns#' term='blindness'/><title type='text'>User Intent Communication in Robot-Assisted Shopping for the Blind</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt; (1) and Chaitanya Gharpure (2)&lt;br /&gt;(1) Department of Computer Science, Utah State University&lt;br /&gt;(2) Google, Inc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract:&lt;/b&gt; The research reported in this chapter describes our work on robot-assisted shopping for the blind. In our previous research, we developed RoboCart, a robotic shopping cart for the visually impaired (Gharpure, 2008; Kulyukin et al., 2008; Kulyukin et al., 2005). RoboCart's operation includes four steps: 1) the blind shopper (henceforth the shopper) selects a product; 2) the robot guides the shopper to the shelf with the product; 3) the shopper finds the product on the shelf, places it in the basket mounted on the robot, and either selects another product or asks the robot to take him to a cash register; 4) the robot guides the shopper to the cash register and then to the exit. Steps 2, 3, and 4 were addressed in our previous publications (Gharpure &amp;amp; Kulyukin 2008; Kulyukin 2007; Kulyukin &amp;amp; Gharpure 2006). In this paper, we focus on Step 1 that requires the shopper to select a product from the repository of thousands of products, thereby communicating the next target destination to RobotCart. This task becomes time critical in opportunistic grocery shopping when the shopper does not have a prepared list of products. If the shopper is stranded at a location in the supermarket selecting a product, the shopper may feel uncomfortable or may negatively affect the shopper traffic.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt; &lt;i&gt;&lt;a href="http://sciyo.com/books/show/title/advances-in-human-robot-interaction?PHPSESSID=blcepqgampvj215l3qbbpr6611"&gt;Advances in Human-Robot Interaction&lt;/a&gt;&lt;/i&gt;, Vladimir Kulyukin (Edtr),        ISBN 978-953-307-020-9, INTECH, December 2009.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_10619280" style="width: 477px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/user-intent-communication-in-robotassisted-shopping-for-the-blind" target="_blank" title="User Intent Communication in Robot-Assisted Shopping for the Blind"&gt;Full Chapter: User Intent Communication in Robot-Assisted Shopping for the Blind&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10619280" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-8490182223213749652?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8490182223213749652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8490182223213749652'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/user-intent-communication-in-robot.html' title='User Intent Communication in Robot-Assisted Shopping for the Blind'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2835009129529921002</id><published>2011-12-14T10:35:00.000-08:00</published><updated>2011-12-14T10:46:50.522-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google nexus one'/><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free computing'/><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free barcode localization'/><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free barcode decoding'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='assistive technology'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile computing'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='aliasgar kutiyanawala'/><title type='text'>Eyes-Free Barcode Localization and Decoding for Visually Impaired Mobile Phone Users</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&amp;nbsp; and Aliasgar Kutiyanawala&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Abstract:&lt;/b&gt; An eyes-free barcode localization and decoding method is presented that enables visually impaired (VI) mobile phone users to decode MSI (Modified Plessy) barcodes on shelves and UPC barcodes on individual boxes, cans, and bottles. Simple and efficient barcode localization and decoding techniques are augmented with an interactive haptic feedback loop that allows the VI user to align the phone’s camera with a fixed surface in the pitch and yaw planes. The method is implemented on a Google Nexus One smart phone running Android 2.1. A laboratory study is presented in which the method was evaluated by one VI and four blindfolded sighted participants.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Reference:&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;Proceedings of the 2010 International Conference on Image  Processing, Computer Vision, &amp;amp; Pattern Recognition (IPCV 2010), Vol. 1, pp. 130-135.  July 12-15, 2010, Las Vegas, NV. CSREA Press.&lt;/span&gt;&lt;br /&gt;&lt;div id="__ss_10593378" style="width: 477px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/ipcv2010-paper" target="_blank" title="Eyes-Free Barcode Localization and Decoding for Visually Impaired Mobile Phone Users"&gt;Full Paper: Eyes-Free Barcode Localization and Decoding for Visually Impaired Mobile Phone Users&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="510" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10593378" width="477"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;span class="long-title" dir="ltr" id="eow-title" title="ShopMobile: Mobile Eyes-Free Shopping System on Google Nexus One"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;ShopMobile: Mobile Eyes-Free Shopping System on Android Smartphone&lt;/b&gt;&lt;/span&gt;   &lt;/span&gt;&lt;/div&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LW_mEVlFpmg?version=3&amp;feature=player_detailpage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/LW_mEVlFpmg?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;ShopMobile: Eyes-Free Barcode Scanning on Android Smartphone (User Trial)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-aiT-Zan7AE?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/-aiT-Zan7AE?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2835009129529921002?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2835009129529921002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2835009129529921002'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/eyes-free-barcode-localization-and.html' title='Eyes-Free Barcode Localization and Decoding for Visually Impaired Mobile Phone Users'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2589784680010562194</id><published>2011-12-09T12:30:00.000-08:00</published><updated>2011-12-09T14:18:11.000-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finite state automata'/><category scheme='http://www.blogger.com/atom/ns#' term='CNF'/><category scheme='http://www.blogger.com/atom/ns#' term='equivalance of DFAs and NFAs'/><category scheme='http://www.blogger.com/atom/ns#' term='CFG'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='recursive descent parsing'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='tokenization'/><title type='text'>Theory of Computation: Lecture 39</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Stages of Compilation, Syntactic Analysis, Tokenization with Non-Deterministic Finite State Automata, Recursive Descent Parsing with Context-Free Grammars&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10536405" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-39" target="_blank" title="Theory of Computation: Lecture 39"&gt;Theory of Computation: Lecture 39&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10536405" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt; &lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2589784680010562194?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2589784680010562194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2589784680010562194'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/theory-of-computation-lecture-39.html' title='Theory of Computation: Lecture 39'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-9082100561185848125</id><published>2011-12-07T12:31:00.001-08:00</published><updated>2011-12-09T12:28:23.773-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='context-free grammars'/><category scheme='http://www.blogger.com/atom/ns#' term='chomsky normal form'/><category scheme='http://www.blogger.com/atom/ns#' term='CNF'/><category scheme='http://www.blogger.com/atom/ns#' term='CFG'/><category scheme='http://www.blogger.com/atom/ns#' term='CYK'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='cocke-younger-kasami'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Theory of Computation: Lecture 38</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;CFL Membership, Cocke-Younger-Kasami (CYK) Algorithm&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10504407" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-38" target="_blank" title="Theory of Computation: Lecture 38"&gt;Theory of Computation: Lecture 38&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10504407" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt; &lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-9082100561185848125?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/9082100561185848125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/9082100561185848125'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/theory-of-computation-lecture-38.html' title='Theory of Computation: Lecture 38'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4382369194599314392</id><published>2011-12-07T10:04:00.000-08:00</published><updated>2011-12-07T10:04:05.273-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='android programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Assignment 09: Final Project Submission</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;br /&gt;Utah State University &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0in; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Due Date&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;Your final project submissions are due on December 14, 2011, by 11:59 p.m. in your Dropbox folder.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;What to Submit&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;You need to submit your source code and documentation. Give your submission folder an easily identifiable name such as &lt;b&gt;CS6890_F11_FinalProject&lt;/b&gt;, for example. Your documentation should contain detailed instructions of how to run your project. Use cases and control charts would be greatly appreciated.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Scheduling Demos&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;If your project is not self-contained, you need to schedule a demo. I set up an online scheduling poll and had a Python script drop a html file with a link to it into your Dropbox folder. A project is not self-contained if it requires third-party installations (e.g., a computer vision library, a game engine, a graphics package, etc.).&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;If your project consumes web sites and services (RSS feeds, YouTube channels, Amazon Mechanical Turk, etc.), your project is self-contained. Make sure that if your application requires a password to consume a site or a service, it must be included and, if necessary, encrypted in your apk.&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/android-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4382369194599314392?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4382369194599314392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4382369194599314392'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/assignment-09-final-project-submission.html' title='Assignment 09: Final Project Submission'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6186021663064077882</id><published>2011-12-06T16:35:00.000-08:00</published><updated>2012-01-04T10:01:32.446-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android ndk'/><category scheme='http://www.blogger.com/atom/ns#' term='bitmap manipulation'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='android programming'/><category scheme='http://www.blogger.com/atom/ns#' term='image binarization'/><category scheme='http://www.blogger.com/atom/ns#' term='android touchscreen'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='android drag and drop'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android Programming: Lecture 14</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Touchscreens, Drag and Drop, Android Native Development Kit &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/android-programming-lecture-14" target="_blank" title="Android Programming: Lecture 14"&gt;Android Programming: Lecture 14&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10503707" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div id="__ss_10503707" style="width: 425px;"&gt;&lt;div style="padding: 5px 0pt 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source for DragDropTouchDemo Project (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/DragDropTouchDemo.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source for BuiltGestureConsumer Project (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/BuiltGesturesConsumer.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source for NDKDemo Project (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/NDKDemo.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source for NDKIncrementArray (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/NDKIncrementArray.rar"&gt;rar&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source code for NDKImageBinarization Project (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/NDKImageBinarization.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Screencast 01: Android NDK: Native Array Manipulation&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3Twr1C4igAU?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/3Twr1C4igAU?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;i&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/android-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6186021663064077882?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6186021663064077882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6186021663064077882'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/android-programming-lecture-14.html' title='Android Programming: Lecture 14'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6364010399090929392</id><published>2011-12-05T13:36:00.000-08:00</published><updated>2011-12-05T13:36:47.349-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='useless symbols in cfgs'/><category scheme='http://www.blogger.com/atom/ns#' term='chomsky normal form'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='stack machines'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='context free grammars'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Theory of Computation: Lecture 37</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Stack Machines, Acceptance by Empty Stack, Converting FSAs to Stack Machines, Converting CFGs to Stack Machines, Useless Symbols in CFGs, Elimination of Useless Symbols, Chomsky Normal Form&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10472643" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-37" target="_blank" title="Theory of Computation: Lecture 37"&gt;Theory of Computation: Lecture 37&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10472643" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt; &lt;/a&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6364010399090929392?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6364010399090929392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6364010399090929392'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/theory-of-computation-lecture-37.html' title='Theory of Computation: Lecture 37'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6204380596115488557</id><published>2011-12-02T12:19:00.000-08:00</published><updated>2011-12-02T12:19:29.958-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='context-free grammars'/><category scheme='http://www.blogger.com/atom/ns#' term='CFG'/><category scheme='http://www.blogger.com/atom/ns#' term='BNN'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='stack machines'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='computability'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='backus-naur notation'/><title type='text'>Theory of Computation: Lecture 36</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Context-Free Grammars (CFGs), Backus-Naur Notation (BNN), Stack Machines&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10438498" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture36" target="_blank" title="Theory of Computation: Lecture36"&gt;Theory of Computation: Lecture36&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10438498" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6204380596115488557?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6204380596115488557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6204380596115488557'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/12/theory-of-computation-lecture-36.html' title='Theory of Computation: Lecture 36'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-870944285673297784</id><published>2011-11-30T12:25:00.000-08:00</published><updated>2011-11-30T15:07:22.330-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finite state automata'/><category scheme='http://www.blogger.com/atom/ns#' term='regular grammars'/><category scheme='http://www.blogger.com/atom/ns#' term='regular languages'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='left linear grammars'/><category scheme='http://www.blogger.com/atom/ns#' term='right linear grammars'/><title type='text'>Theory of Computation: Lecture 35</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Regular Grammars, Right Linear Grammars, Left Linear Grammars, Language Reversals, Regular Grammars and Regular Languages&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10405725" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-35" target="_blank" title="Theory of Computation: Lecture 35"&gt;Theory of Computation: Lecture 35&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10405725" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-870944285673297784?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/870944285673297784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/870944285673297784'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/theory-of-computation-lecture-35.html' title='Theory of Computation: Lecture 35'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-1827695562637563942</id><published>2011-11-29T16:38:00.000-08:00</published><updated>2011-12-29T11:55:50.081-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='bhagavatgita in sanskrit'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='bhagavatgita in russian'/><category scheme='http://www.blogger.com/atom/ns#' term='android texttospeech'/><category scheme='http://www.blogger.com/atom/ns#' term='android programming'/><category scheme='http://www.blogger.com/atom/ns#' term='android TTS'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Android Programming: Lecture 13</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;AIDL and Bounded Services, AIDL Complex Types, Speech Synthesis, Overcoming TTS Limitations through Phonetic Spelling, Overcoming TTS Limitations through Human Recording, Teaching Android to Speak Sanskrit and Russian&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="__ss_10471847" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/android-programming-lecture-13" target="_blank" title="Android Programming: Lecture 13"&gt;Android Programming: Lecture 13&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10471847" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Screencast 01: Android Bound (Remote) Services with AIDL Primitive Types&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jICPv7WGw_M?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/jICPv7WGw_M?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Screencast 02: Bhagavatgita in Sanskrit and Russian on Android&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CeVX_XMMHDE?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/CeVX_XMMHDE?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;AIDLService Project's source code (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/AIDLService.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;AIDLServiceConsumer Project's source code (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/AIDLServiceConsumer.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;SimpleTTSDemo Project's source code (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/SimpleTTSDemo.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;TTSDonQuixote Project's source code (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/TTSDonQuixote.zip"&gt;zip&lt;/a&gt;) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt; BhagavatGitaTTS Project's source code (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/BhagavatGitaTTS.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;i&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/android-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-1827695562637563942?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1827695562637563942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/1827695562637563942'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/android-programming-lecture-13.html' title='Android Programming: Lecture 13'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-483786859328590650</id><published>2011-11-28T12:21:00.000-08:00</published><updated>2011-11-28T17:11:06.337-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finite automata in robotics'/><category scheme='http://www.blogger.com/atom/ns#' term='regular languages'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='java patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='grammars and derivations'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='pumping lemma'/><category scheme='http://www.blogger.com/atom/ns#' term='egrep'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Theory of Computation: Lecture 34</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Pumping Lemma for Regular Languages, Finite Automata in Robotics, EGREP and Java Patterns, Grammars and Derivations&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10375198" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-34" target="_blank" title="Theory of Computation: Lecture 34"&gt;Theory of Computation: Lecture 34&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10375198" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-483786859328590650?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/483786859328590650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/483786859328590650'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/theory-of-computation-lecture-34.html' title='Theory of Computation: Lecture 34'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-7722893356872046352</id><published>2011-11-24T12:46:00.000-08:00</published><updated>2011-12-29T11:55:23.683-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IntentService'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='started intent services'/><category scheme='http://www.blogger.com/atom/ns#' term='started and bound services'/><category scheme='http://www.blogger.com/atom/ns#' term='android programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='AIDL'/><category scheme='http://www.blogger.com/atom/ns#' term='android handler'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='shared agendas'/><category scheme='http://www.blogger.com/atom/ns#' term='android looper'/><title type='text'>Android Programming: Lecture 12</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Started (Local) Intent Services, Shared Agendas, Loopers and Handlers, Bound Services, Android Interface Definition Language&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div id="__ss_10491241" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/android-programming-lecture-12" target="_blank" title="Android Programming: Lecture 12"&gt;Android Programming: Lecture 12&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10491241" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;StartedSumIntent Project's source code (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/StartedSumIntentService.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;StartedSumLooperService Project's source code (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/StartedSumLooperService.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt; StartedSumLooperService2 Project's source code (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/StartedSumLooperService2.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Screencast 01: Consumption and Development of Android Intent Services&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/d8xZUBOK8x4?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/d8xZUBOK8x4?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;i&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/android-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-7722893356872046352?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/7722893356872046352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/7722893356872046352'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/android-programming-lecture-12.html' title='Android Programming: Lecture 12'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-5228144832811893775</id><published>2011-11-21T11:43:00.000-08:00</published><updated>2011-11-21T16:12:47.820-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pigeon hole principle'/><category scheme='http://www.blogger.com/atom/ns#' term='epsilon closures'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='computability'/><category scheme='http://www.blogger.com/atom/ns#' term='equivalence of nfas and dfas'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expressions'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Theory of Computation: Lecture 33</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Equivalence of DFAs and NFAs, Epsilon Closures, Regular Expressions, Converting Regular Expressions into NFAs, Pigeon Hole Principle&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_10262120"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-33" title="Theory of Computation: Lecture 33" target="_blank"&gt;Theory of Computation: Lecture 33&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/10262120" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-5228144832811893775?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5228144832811893775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/5228144832811893775'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/theory-of-computation-lecture-33.html' title='Theory of Computation: Lecture 33'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-8249933915431006739</id><published>2011-11-18T12:29:00.000-08:00</published><updated>2011-11-21T09:42:10.037-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NFA'/><category scheme='http://www.blogger.com/atom/ns#' term='finite state automata'/><category scheme='http://www.blogger.com/atom/ns#' term='equivalance of DFAs and NFAs'/><category scheme='http://www.blogger.com/atom/ns#' term='DFA'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='nondeterministic finite state automata'/><category scheme='http://www.blogger.com/atom/ns#' term='computability'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='subset construction'/><title type='text'>Theory of Computation: Lecture 32</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Non-Determinism, Non-Deterministic Finite Automata (NFAs), How NFAs Work, Subset Construction, Equivalence of DFAs and NFAs, NFA Implementation &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10224577" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-32" target="_blank" title="Theory of Computation: Lecture 32"&gt;Theory of Computation: Lecture 32&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10224577" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;b&gt;Errata:&lt;/b&gt; The author of the 2nd reference on the Slide "References and Reading Suggestions" A. Brooks Webber.&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-8249933915431006739?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8249933915431006739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/8249933915431006739'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/theory-of-computation-lecture-32.html' title='Theory of Computation: Lecture 32'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-605218741043705124</id><published>2011-11-16T14:55:00.000-08:00</published><updated>2011-12-29T11:54:27.904-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android process lifecycle'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='android services'/><category scheme='http://www.blogger.com/atom/ns#' term='started and bound services'/><category scheme='http://www.blogger.com/atom/ns#' term='android programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='multitasking on android'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='java programming'/><title type='text'>Android Programming: Lecture 11</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Multitasking, Services, Started (Local) Services, Bound (Remote) Services, Consumption of HTTP Services, Development of Started Services, Process Lifecycle, Process Importance Levels&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;div id="__ss_10491165" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/android-programming-lecture-11" target="_blank" title="Android Programming: Lecture 11"&gt;Android Programming: Lecture 11&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="font-size: x-small;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10491165" width="425"&gt;&lt;/iframe&gt;&lt;/span&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;HttpGetURLSource Project's source (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/HttpGetURLSource.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;HttpGetURLSource2 Project's source (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/HttpGetURLSource2.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;StartedCatalanService Project's source (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/StartedCatalanService.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Coding Solution to &lt;a href="http://vkedco.blogspot.com/2011/10/android-programming-assignment-08.html"&gt;Assignment 08&lt;/a&gt; (watch Screencast 03 below for details)&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;ScienceCPBuilder Project's source (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/ScienceCPBuilder.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;ScienceCPConsumer Project's source (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/ScienceCPConsumer.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Screencast 01: Consumption and Development of Services (Part 01)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/mwYk6fyFBwI?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/mwYk6fyFBwI?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Screencast 02: Consumption and Development of Services (Part 02)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bv4FXkIqf_4?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/bv4FXkIqf_4?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Screencast 03: Auto Generation of Content Providers from XML Resources (Part 02)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/H-7877ExgnU?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/H-7877ExgnU?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Screencast 04: Started (Local) Intent Service for Computing Catalan Numbers&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;object style="height: 390px; width: 640px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Ab-7fGd2miI?version=3&amp;feature=player_profilepage"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Ab-7fGd2miI?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;i&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/android-programming-home.html"&gt;&lt;span style="font-size: x-small;"&gt;Back to Class Home Page&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-605218741043705124?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/605218741043705124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/605218741043705124'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/android-programming-lecture-11.html' title='Android Programming: Lecture 11'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-2565943408619297382</id><published>2011-11-16T12:19:00.000-08:00</published><updated>2011-11-21T09:41:54.633-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='formal languages'/><category scheme='http://www.blogger.com/atom/ns#' term='deterministic finite automata'/><category scheme='http://www.blogger.com/atom/ns#' term='dfa transition function'/><category scheme='http://www.blogger.com/atom/ns#' term='DFA'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='dfa implementation in java'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='computability'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Theory of Computation: Lecture 31</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Deterministic Finite Automata (DFAs), How DFAs Work, DFA Transition Function, Formal Languages Accepted By DFAs, Sample DFA Problems, Sample DFA Implementation&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10192385" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-31" target="_blank" title="Theory of Computation: Lecture 31"&gt;Theory of Computation: Lecture 31&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10192385" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-2565943408619297382?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2565943408619297382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/2565943408619297382'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/theory-of-computation-lecture-31.html' title='Theory of Computation: Lecture 31'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-3095878345257365641</id><published>2011-11-16T11:56:00.000-08:00</published><updated>2011-11-16T11:56:55.643-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='computability'/><category scheme='http://www.blogger.com/atom/ns#' term='primitive recursive functions'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='computable functions'/><title type='text'>Theory of Computation: Lecture 30</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Computable Functions That Are Not Primitive Recursive&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div id="__ss_10190439" style="width: 425px;"&gt;&lt;b style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/theory-of-computation-lecture-30" target="_blank" title="Theory of Computation: Lecture 30"&gt;Theory of Computation: Lecture 30&lt;/a&gt;&lt;/b&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10190439" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-3095878345257365641?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3095878345257365641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/3095878345257365641'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/theory-of-computation-lecture-30.html' title='Theory of Computation: Lecture 30'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-4438382709551787467</id><published>2011-11-04T11:08:00.000-07:00</published><updated>2011-11-06T19:22:52.969-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='min/max'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='computability'/><category scheme='http://www.blogger.com/atom/ns#' term='primitive recursive functions'/><category scheme='http://www.blogger.com/atom/ns#' term='game theory'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Theory of Computation: Lecture 29</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Primitive Recursiveness and Min/Max Games&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/TOC/CS5000_f11_lecture_29_f.pdf"&gt;&lt;span style="font-size: small;"&gt;Power Point Presentation (pdf)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-4438382709551787467?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4438382709551787467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/4438382709551787467'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/theory-of-computation-lecture-29.html' title='Theory of Computation: Lecture 29'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-6670669747969787407</id><published>2011-11-02T17:27:00.000-07:00</published><updated>2011-12-29T11:53:13.449-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='android emulator'/><category scheme='http://www.blogger.com/atom/ns#' term='android programming'/><category scheme='http://www.blogger.com/atom/ns#' term='geocoding'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><category scheme='http://www.blogger.com/atom/ns#' term='location-based services'/><category scheme='http://www.blogger.com/atom/ns#' term='KML'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='location providers'/><category scheme='http://www.blogger.com/atom/ns#' term='java programming'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Android Programming: Lecture 10</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Location-Based Services, Location Providers, Geocoding, Google Maps, KML, Configuring Android Emulator for Geocoding&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Department of Computer Science&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Utah State University&lt;/span&gt;&lt;/div&gt;&lt;hr style="height: 2px;" /&gt;&lt;div id="__ss_10490981" style="width: 425px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/VladimirKulyukin/android-programming-lecture-10" target="_blank" title="Android Programming: Lecture 10"&gt;Android Programming: Lecture 10&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10490981" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;span style="font-size: x-small;"&gt;View more presentations from &lt;a href="http://www.slideshare.net/VladimirKulyukin" target="_blank"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;hr /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source code for ListAllProviders project (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/ListAllProviders.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source code for CurrentGPSFix22 project (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/CurrentGPSFix22.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source code for WalkGPSRoute project (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/WalkGPSRoute.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source code for GoogleMapsZoom22 (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/GoogleMapsZoom22.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source code for MapGPSFix22 (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/MapGPSFix22.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;Source code for MapGPSRoute22 (&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/MapGPSRoute22.zip"&gt;zip&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/MainQuadRoute.kml"&gt;MainQuadRoute.kml&lt;/a&gt;,&amp;nbsp; &lt;a href="http://dl.dropbox.com/u/16201259/teaching/ANDROID/MainStreetRoute.kml"&gt;MainStreetRoute.xml&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/android-programming-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1760164640344466369-6670669747969787407?l=vkedco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6670669747969787407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1760164640344466369/posts/default/6670669747969787407'/><link rel='alternate' type='text/html' href='http://vkedco.blogspot.com/2011/11/android-programming-lecture-10.html' title='Android Programming: Lecture 10'/><author><name>vkedco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='1' height='1' src='http://2.bp.blogspot.com/-Q0EbQ9yRnE8/TpimqxQgyWI/AAAAAAAAADM/SxLwhivFrOw/s220/RusSlavicOrnament.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-1760164640344466369.post-5294487685975930262</id><published>2011-11-02T12:20:00.000-07:00</published><updated>2011-11-02T12:20:20.166-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='primitive recursiveness'/><category scheme='http://www.blogger.com/atom/ns#' term='min/max'/><category scheme='http://www.blogger.com/atom/ns#' term='vladimir kulyukin'/><category scheme='http://www.blogger.com/atom/ns#' term='theory of computation'/><category scheme='http://www.blogger.com/atom/ns#' term='computability'/><category scheme='http://www.blogger.com/atom/ns#' term='primitive recursive functions'/><category scheme='http://www.blogger.com/atom/ns#' term='game theory'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Theory of Computation: Lecture 28</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Array Assignment, Swap, Sort, Search are Primitive Recursive, Primitive Recursiveness and Min/Max Games&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/pub/vladimir-kulyukin/23/2a2/150"&gt;Vladimir Kulyukin&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Department of Computer Science&lt;/div&gt;&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; text-align: center;"&gt;Utah State University&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dl.dropbox.com/u/16201259/teaching/TOC/CS5000_f11_lecture_28_temp.pdf"&gt;Power Point Presentation (PDF)&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr /&gt;&lt;a href="http://www.youtube.com/v/cFznrkjtGIM?version=3"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://vkedco.blogspot.com/2011/08/theory-of-computation-home.html"&gt;Back to Class Home Page&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Copyright (C) Vladimir Kulyukin&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-foot
