GitHub - jwasham/coding interview university. Learn X in Y Minutes: Scenic Programming Language Tours. VisuAlgo - visualising data structures and algorithms through animation. Vamonos: Dynamic algorithm visualization in the browser. Vamonos is a library for generating browser-based visualizations of algorithms & data structures.
The Vamonos project team: Networking for Web Developers. Software Testing Methodologies. Software Testing How to Make Software Fail Intermediate Approx. 1 month Assumes 6hr/wk (work at your own pace)
Algorithms in practical use, Part I. What algorithms and data structures are covered?
Part I focuses on elementary data structures, sorting, and searching. Algorithms in practical use, Part II. What algorithms and data structures are covered?
Part I focuses on elementary data structures, sorting, and searching. Topics include union-find, binary search, stacks, queues, bags, insertion sort, selection sort, shellsort, quicksort, 3-way quicksort, mergesort, heapsort, binary heaps, binary search trees, red-black trees, separate chaining and linear probing hash tables, Graham scan, and kd-trees.Part II focuses on graph and string-processing algorithms.
Topics include depth-first search, breadth-first search, topological sort, Kosaraju-Sharir, Kruskal, Prim, Dijkistra, Bellman-Ford, Ford-Fulkerson, LSD radix sort, MSD radix sort, 3-way radix quicksort, multiway tries, ternary search tries, Knuth-Morris-Pratt, Boyer-Moore, Rabin-Karp, regular expression matching, run-length coding, Huffman coding, LZW compression, and the Burrows-Wheeler transform.Are there any associated resources available on the web? Yes. It depends on your background. I am/was not a computer science major. Introduction to FP with Haskell.
Broadly speaking, functional programming is a style of programming in which the primary method of computation is the application of functions to arguments.
Among other features, functional languages offer a compact notation for writing programs, powerful abstraction methods for structuring programs, and a simple mathematical basis that supports reasoning about programs. Functional languages represent the leading edge of programming language design, and the primary setting in which new programming concepts are introduced and studied. Functional Programming Principles in Scala. About this course: Functional programming is becoming increasingly widespread in industry.
You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Several parts of this course deal with the question how functional programming interacts with mutable state. We will explore the consequences of combining functions and state. Parallel programming with Scala. About this course: With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread.
In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library. Good Program Design. When does the course begin?
This class is self paced. You can begin whenever you like and then follow your own pace. It’s a good idea to set goals for yourself to make sure you stick with the course. How long will the course be available? This class will always be available! How do I know if this course is for me? Take a look at the “Class Summary,” “What Should I Know,” and “What Will I Learn” sections above. Programming Languages: Building A Web Browser. When does the course begin?
This class is self paced. You can begin whenever you like and then follow your own pace. It’s a good idea to set goals for yourself to make sure you stick with the course. How long will the course be available? This class will always be available! Intro to Theoretical CS (Algo Complexity) When does the course begin? This class is self paced. You can begin whenever you like and then follow your own pace. It’s a good idea to set goals for yourself to make sure you stick with the course. How long will the course be available? This class will always be available! How do I know if this course is for me?
Take a look at the “Class Summary,” “What Should I Know,” and “What Will I Learn” sections above. Can I skip individual videos? Yes! How much does this cost? It’s completely free! What are the rules on collaboration? Collaboration is a great way to learn. Why are there so many questions? Udacity classes are a little different from traditional courses. What should I do while I’m watching the videos? Learn actively! Software Development Process. Software Engineering: Concepts and Practice Course Creator and Instructor Course Developer and Teaching Assistant Sarah SpikesCourse Developer, Lead Teaching Assistant Overview This course provides an in-depth study of the process of developing software systems, including the use of software processes in actual product development, techniques used to ensure quality of the software products and maintenance tasks performed as software evolves.
Prerequisites Students should be familiar with at least one programming language (Java strongly preferred) and with basic software engineering concepts. If you answer "no" to any of the following questions, it may be beneficial to refresh your knowledge of this material prior to taking CS 6300: 1. To gain an understanding of a typical CS 6300 project, please read the description of our Mobile Android App for Managing TODO Lists assignment. Grading You will receive grades through T-Square. You will submit your projects directly through the Udacity site. Software Architecture and Design. Course Creators and Instructors Overview Software Architecture and Design will provide students with the principles and concepts involved in the analysis and design of large software systems.
The learning objectives for the course are the following: Understand and apply object-oriented design techniquesDevelop and evaluate software architecturesSelect and use appropriate architectural stylesSelect and use appropriate software design patternsExpress the specifications and design of an application using UMLSpecify parts of the design using a formal design language (OCL) View the CS 6310 - Software Architecture and Design course syllabus for more detail.