background preloader

Courses

Facebook Twitter

Coursera. About the Course In this 5-week course we’ll introduce the fundamentals of programming.

Coursera

This is the first part of a class which has been taught for seventeen years at Stony Brook University, and is an accessible introduction to combining arts and computing. The other two portions are Introduction to Computational Arts: Image Manipulation and Introduction to Computational Arts: Sound Art. Coursera. About the Course When presented with a problem from a scientific domain, a Computer Scientist goes through a set of steps in order to provide a solution for the problem.

Coursera

These steps include: (1) understanding the problem; (2) formulating the problem mathematically; (3) designing an algorithm; (4) implementing the algorithm; and (5) solving the original scientific problem. This course will train students in how to employ algorithmic thinking by following these five steps to solve real-world problems. Understanding the problem entails holding conversations with domain experts to understand the parameters of the problem, what data they can provide to the computer program, what answers they expect, etc.

Formulating the problem mathematically is basically the step of turning the problem from an English description to a mathematical description that is amenable to further computational analyses. Coursera. About the Course Analysis of Algorithms aims to enable precise quantitative predictions of the properties of large combinatorial structures.

Coursera

The theory has emerged over recent decades as essential both for the scientific analysis of algorithms in computer science and for the study of scientific models in many other disciplines, including probability theory, statistical physics, computational biology and information theory. Coursera. About the Course Information is everywhere: in our words and our world, our thoughts and our theories, our devices and our databases.

Coursera

Logic is the study of that information: the features it has, how it’s represented, and how we can manipulate it. Learning logic helps you formulate and answer many different questions about information: Does this hypothesis clash with the evidence we have or is it consistent with the evidence? Is this argument watertight, or do we need to add more to make the conclusion to really follow from the premises? This subject follows from Logic: Language and Information 1, to cover core techniques in first order predicate logic: the idea of formal languages with quantifiers, which gives us a way to talk about more logical structure than in propositional logic; and we will cover the central logical concepts such as consistency and validity; models; and proofs in predicate logic.

Course Syllabus Week 1. Week 2. Week 4. Weeks 5–8. Recommended Background Course Format. Coursera. About the Course Information is everywhere: in our words and our world, our thoughts and our theories, our devices and our databases.

Coursera

Logic is the study of that information: the features it has, how it’s represented, and how we can manipulate it. Learning logic helps you formulate and answer many different questions about information: Coursera. About the Course I am pleased to be able to offer free over the Internet a course on Automata Theory, based on the material I have taught periodically at Stanford in the course CS154.

Coursera

Participants have access to screencast lecture videos, are given quiz questions, assignments and exams, receive regular feedback on progress, and can participate in a discussion forum. Those who successfully complete the course will receive a statement of accomplishment. You will need a decent Internet connection for accessing course materials, but should be able to watch the videos on your smartphone. The course covers four broad areas: (1) Finite automata and regular expressions, (2) Context-free grammars, (3) Turing machines and decidability, and (4) the theory of intractability, or NP-complete problems.Why Study Automata Theory? This subject is not just for those planning to enter the field of complexity theory, although it is a good place to start if that is your goal. Course Syllabus Suggested Readings.

Coursera. Coursera. Coursera. About the Course In this course you will learn several fundamental principles of algorithm design.

Coursera

Coursera. What algorithms and data structures are covered?

Coursera

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. Coursera. About the Course OpenGL is the standard application programming interface (API) to graphics systems for both education and industry.

Coursera

Recent advances in hardware and software have focussed application development on the Web and for mobile devices such as smart phones. Over the past year there has been enormous interest in WebGL, the version of OpenGL that runs within Web browsers and even on newer smart phones. Consequently, for the first time both students and practitioners can develop exciting three-dimensional interactive applications that are independent of the particular platform and can be accessed like any other Web application. Coursera. About the Course.

Coursera

Coursera. About the Course Phones, diesel engines, animated newspapers, medical devices, games, political campaigns, medical research, mining, transportation systems, ... and so on, and on, and on... every day more of the world around us is at least partly run by computer programs. This means that being able to design programs - or at least be able to work with people who design programs - is becoming a more and more valuable skill. To build your own programs you need to know two things: how to use the specific programming language and libraries needed, and the more general skill of how to design a program. This course presents a design method that will enable you to approach the design of complex programs systematically. The method will work for programs in this course as well as hard to design programs you develop in the future.

In the first course -- Part 1 -- we use a simple teaching language to cover the core of the design method. Course Syllabus Week Two: Representing information as data. Coursera. Coursera. About the Course A computer program is a set of instructions for a computer to follow, just as a recipe is a set of instructions for a chef. Laptops, kitchen appliances, MP3 players, and many other electronic devices all run computer programs. Programs have been written to manipulate sound and video, write poetry, run banking systems, predict the weather, and analyze athletic performance.

This course is intended for people who have never seen a computer program. It will give you a better understanding of how computer applications work and teach you how to write your own applications. Coursera. About the Course This MOOC describes by example how to connect Android mobile devices to clouds via the use of object-oriented design techniques, Java programming language features, Jetty middleware, Java Servlets, the Java Spring Framework, and cloud computing platforms, such as Google App Engine.

Although there will be 10 weeks of lecture material, the required core of the course is six weeks long and can be completed flexibly within the ten week schedule to provide flexibility for students during the summer. An extended case study project will be used throughout the required core of the MOOC to showcase architectures for communicating with the cloud using HTTP, server-side processing of mobile data using servlets and the Java Spring Framework, and scalable storage of data using no-SQL databases and other platforms.

Note: This course is part of a trans-institution sequence of MOOCs entitled Mobile Cloud Computing with Android. Coursera. This course will discuss the major ideas used today in the implementation of programming language compilers, including lexical analysis, parsing, syntax-directed translation, abstract syntax trees, types and type checking, intermediate languages, dataflow analysis, program optimization, code generation, and runtime systems. As a result, you will learn how a program written in a high-level language designed for humans is systematically translated into a program written in low-level assembly more suited to machines. Along the way we will also touch on how programming languages are designed, programming language semantics, and why there are so many different kinds of programming languages.

The course lectures will be presented in short videos. To help you master the material, there will be in-lecture questions to answer, quizzes, and two exams: a midterm and a final. An optional course project is to write a complete compiler for COOL, the Classroom Object Oriented Language. Coursera. About the Course Most programs are used for years and are worked on by many people. Having programs that are easy to understand is essential, in the same way that a well-organized essay is far easier to follow than a disorganized one. We’ll show you an approach that helps to break down problems into smaller tasks that are easier to both solve and read. This design approach also makes it more straightforward to find and fix flaws. You'll be introduced to the tools that professional programmers use; they're called "testing" and "debugging". For most complex problems, there are many programs that solve them. Recommended Background This course assumes “Learn To Program: The Fundamentals”, or similar background.

Suggested Readings Click to purchase We are writing a textbook that matches the course material closely, and includes different examples and exercises than the ones you'll encounter in this course. This title is currently available in Beta. Coursera. Coursera. About the Course This is a follow-on for the Coursera class “Principles of Functional Programming in Scala”, which so far had more than 100’000 inscriptions over two iterations of the course, with some of the highest completion rates of any massive open online course worldwide. Coursera. Coursera.