background preloader

CS 161 - Design and Analysis of Algorithms

CS 161 - Design and Analysis of Algorithms
Course Description Course Overview: Introduction to fundamental techniques for designing and analyzing algorithms, including asymptotic analysis; divide-and-conquer algorithms and recurrences; greedy algorithms; data structures; dynamic programming; graph algorithms; and randomized algorithms. Required textbook: Kleinberg and Tardos, Algorithm Design, 2005. We will be covering most of Chapters 4–6, some parts of Chapter 13, and a couple of topics not in the book. Prerequisites: Introduction to proofs, and discrete mathematics and probability (e.g., CS 103 and Stat116). If you have not taken a probability course, you should expect to do some independent reading during the course on topics including random variables, expectation, conditioning, and basic combinatorics. We apologize for the poor audio quality in this video. 5. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

Meta Stack Overflow Introduction to Algorithms - Massachusetts Institute of Technology Readings refer to chapters and/or sections of Introduction to Algorithms, 3rd Edition. See the table of contents. Syllabus for Theory of Computation Spring 1996 Tuesday-Thursday, 6:00 p.m. -- 7:15 p.m. Mendel 258 Instructor: David Matuszek, dave@vfl.paramax.com These pages are best viewed using Netscape Navigator 2.0. Mosaic has a bug that prevents links within the table from working; earlier versions of Netscape do not support subscripts and superscripts. You can download Netscape Navigator 2.0 by clicking the following button: Email is by far the best way to contact me. Textbook: An Introduction to Formal Languages and Automata Peter Linz, ISBN 0-669-17342-8 Here are some comparable courses I've found on the Web: Links to other relevant pages will be found in the appropriate lessons. Grades will be based primarily on exams. Here are the topics we will cover and the relevant chapters in the book.

Stanford CS Ed Library How to add Medibuntu repository in Ubuntu 12.04 Precise pangolin and 11.10| Via Terminal and GUI Updated 10/03/2012 Medibuntu is a packaging project dedicated to distributing software that cannot be included in Ubuntu for various reasons, related to geographical variations in legislation regarding intellectual property, security and other issues: patentability of software, algorithms, formats and other abstract creationlegal restrictions on freedom of speech or communicationrestrictions on the use of certain types of technical solution, such as cryptographylegal restrictions on imports of software technology, requiring for example specific permissionsetc. In this tutorial will show you how to add medibuntu repository to Ubuntu 9.10+ and above including the upcoming release Ubuntu 12.04 LTS Precise Pangolin 1- Install Medibuntu using command Line in Ubuntu 9.10 + ( Including Ubuntu 12.04 LTS Precise Pangolin): Open terminal and enter the folowing command : Now you may also wish to add the following packages. sudo apt-get install app-install-data-medibuntu apport-hooks-medibuntu Is done.

Recommended books and sites - strchr.com Please add links to your favorite programming books with a short description. The goal is to make a minimal reading list to become a good programmer. Feel free to discuss the listed books and propose better alternatives. Algorithms Introduction to computer programming using LOGO language (free e-book). Math algorithms and optimization Numerical Recipes in C (free e-book). Compression and encryption Everything you need to know about cryptography in 1 hour (slides in PDF format). Text processing String-Matching Algorithms (free e-book): Boyer-Moore, Knuth-Morris-Pratt, and alike. Compilers and Languages Basics of Compiler Design by Torben Æ. The Development of the C Language by Dennis M. Functional programming Can Your Programming Language Do This by Joel Spolsky (article). Operating Systems Operating Systems, Fourth Edition by William Stallings (printed book). Computer architecture Computer Systems: A Programmer's Perspective by Randal Bryant and David O'Hallaron (printed book). Usability

Master/Slave Settings vs. Cable Select when Connecting IDE Hard Drives Although I covered most of the ways to speed up Windows boot time in another article, I encountered a unique roadblock recently that made me write this article. During the last week I was asked by a customer to upgrade one of their office computers from Windows 98SE to Windows XP. Normally this is pretty standard, however because their current hard drive was only a 20GB with a gig or so remaining I wanted to upgrade their hard drive as well. I proceeded to ghost the drive to a larger hard drive and then installed an upgrade version of Windows XP on top of Windows 98 to preserve all of their settings and programs. Everything went flawlessly, until I was finished... After checking multiple settings in the BIOS, I compared the old and new hard drives. Master/Slave Settings Now for a refresher course on hard drive connections. After changing the jumpers, connect the hard drive cable from the motherboard to the hard drives. What About Cable Select? Mike's Hardware: How to Connect IDE Hard Drives

Sorting Algorithm Animations Algorithms in Java, Parts 1-4, 3rd edition by Robert Sedgewick. Addison Wesley, 2003. Quicksort is Optimal by Robert Sedgewick and Jon Bentley, Knuthfest, Stanford University, January, 2002. Dual Pivot Quicksort: Code by Discussion. Bubble-sort with Hungarian (“Csángó”) folk dance YouTube video, created at Sapientia University, Tirgu Mures (Marosvásárhely), Romania. Select-sort with Gypsy folk dance YouTube video, created at Sapientia University, Tirgu Mures (Marosvásárhely), Romania. Sorting Out Sorting, Ronald M. tcomp6.html Contents Push-Down Automata Imagine an intuitive design for a machine that will accept the language L = a n b n . Suppose that this machine has a stack with an infinite capacity. Definition: A Pushdown Automaton (PDA) is a collection of eight things: An alphabet of input symbols. Example The PDA described above that recognises a n b n has the input alphabet { a , b }, the stack alphabet {*} and the following state transition diagram: To trace the behaviour of a PDA when presented with an input string, we need to keep records of: its current state , the current position of the read head in the input string, and the current contents of the stack . For example, the behaviour of the above PDA on the string aabb is traced in the following table, where the position of the read head in the input string is shown by underlining the current character, and values of the read head position and stack contents are shown on entry to the state: The string aabb is accepted , as it should be. aaabb aabbb

Cookbook for R » Cookbook for R

Related: