background preloader

Programming Languages: Building A Web Browser

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. 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! Related:  computer Science

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. Prerequisites To undertake this course you should either have successfully taken an undergraduate software engineering course or CS 6300. 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 6310: 1. Grading Required Course Readings Minimum Technical Requirements

Electrical Engineering and Computer Science | 6.00 Introduction to Computer Science and Programming, Fall 2008 | Video Lectures Phasing out certificates of free courseware completion Since its inception, Udacity has issued many tens of thousands of certificates. To get such a certificate, a student had to sign up and make it through the online courseware. Identity checking was never part of our certification. Neither were mentor-supervised projects, which we now offer for an increasing number of courses.We have now heard from many students and employers alike that they would like to see more rigor in certifying actual accomplishments. We owe it to you, our hard working students, that we do whatever we can to ensure your certificate is as valuable as possible. So effective May 16, we will stop offering free non-identity-verified certificates. We recognize that you have worked hard and learned a lot, so these certificates of free courseware completion will remain available for you in your profile.We keep working hard to bring you the best learning experience. Update on certificates of free courseware completion:

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 Testing Methodologies Software Testing How to Make Software Fail Intermediate Approx. 1 month Assumes 6hr/wk (work at your own pace) Join 67,785 Students View Trailer Course Summary When writing software, destruction can be just as valuable as creation. Why Take This Course? This course will teach you how to think like a software tester, how to find bugs in code earlier, and write better code. Prerequisites and Requirements Programming experience is required. See the Technology Requirements for using Udacity. What Will I Learn? Syllabus Lesson 1: Domains, Ranges, Oracles, and Kinds of Testing How to think about the different elements of software testing Lesson 2: Code Coverage How to find parts of a program that need more testing Lesson 3: Random Testing How to automatically generate test cases that break code in unexpected ways Lesson 4: Advanced Random Testing How to engineer a sophisticated random test case generator Lesson 5: Consequences Lesson 6: Conclusion Enroll in Course Access Course Materials Free What you get Stuck? Udacity

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!

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. 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!

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. All contemporary programming languages such as Hack/PHP, C#, Visual Basic, F#, C++, JavaScript, Python, Ruby, Java, Scala, Clojure, Groovy, Racket, … support higher-order programming via the concept of closures or lambda expressions. This course will use Haskell as the medium for understanding the basic principles of functional programming.

Vamonos: Dynamic algorithm visualization in the browser Vamonos is a library for generating browser-based visualizations of algorithms & data structures. Here are some reasons why we think Vamonos is great: No installation barrier. Visualizations run on any modern browser using standard Javascript. No plugins or extensions are needed. Here is a Vamonos visualization of the selection sort algorithm. We have developed pre-made visualizations of many common algorithms. The latest version of Vamonos is v2.1.0. Past releases, source code, and everything else is available on our github project page. Educators wishing to write their own visualizations in Vamonos should start with our User’s Guide: More detailed information can be found in our API reference: API Reference Vamonos is developed in the EECS department of Oregon State University. The name “Vamonos” doesn’t really have to be an acronym, but if it were, its expansion would be Visualizing Algorithms from Montana and Oregon State. Vamonos is developed with support from NSF award #1149647.

VisuAlgo - visualising data structures and algorithms through animation Functional Programming Principles in Scala About this course: Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and Javascript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as Twitter, Tumblr and also Coursera. Functional Program Design in Scala About this course: In this course you will learn how to apply the functional programming style in the design of larger applications. 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.

Related: