Online courses directory (142)
This course will provide a gentle, yet intense, introduction to programming using Python for highly motivated students with little or no prior experience in programming. The course will focus on planning and organizing programs, as well as the grammar of the Python programming language.
The course is designed to help prepare students for 6.01 Introduction to EECS I. 6.01 assumes some knowledge of Python upon entering; the course material for 6.189 has been specially designed to make sure that concepts important to 6.01 are covered.
This course is offered during the Independent Activities Period (IAP), which is a special 4-week term at MIT that runs from the first week of January until the end of the month.
There are plenty of exciting notions to see in this class, they are simply the most cutting edge techniques for the most cutting edge application on the web. Despite its appeal, this course is not an easy one. It is actually rather demanding. It will draw from both your creative side AND your analytical side. Many of the programming aspects are quite complex and to be able to turn these concepts into art can be quite a mind bender. But if you learn to master all that is viewed in this course, you will be amongst the most sought-after web specialists out there.
This course covers concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Substantial weekly programming assignments are an integral part of the subject.
There will be extensive programming assignments, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or some other "functional" language.
Other topics covered in this software engineering course include:
- How to form, organize and manage small programming teams
- Introduction to design patterns: what they are and how to recognize opportunities to apply them
- Using Rails for more advanced features like third-party authentication and elegantly expressing design patterns that arise frequently in SaaS
There will be four homework assignments: two programming assignments, an open source assignment and one assignment about operations/deployment. There will also be several short quizzes. The videos and homework assignments used in this offering of the course were revised in October 2016.
This intermediate computer programming course uncovers how to code long-lasting software using highly-productive Agile techniques to develop Software as a Service (SaaS) using Ruby on Rails. You will understand the new challenges and opportunities of SaaS versus shrink-wrapped software and learn to apply fundamental Rails programming techniques to the design, development, testing, and public cloud deployment of an Software as a Service (SaaS) application
Using best-of-breed tools that support modern development techniques including Behavior-Driven design, user stories, Test-Driven Development, velocity, and pair programming, learners will discover how modern programming language features in Ruby on Rails can improve productivity and code maintainability.
Weekly coding projects and quizzes will be part of the learning experience in this SaaS course. Those who successfully complete the assignments and earn a passing grade can get a verified certificate from BerkeleyX. The videos and homework assignments have been updated to use Ruby 2, Rails 4 and RSpec 3. The new class also includes embedded live chat with Teaching Assistants and other students and remote pair programming with other students.
Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.
Algorithms power the biggest web companies and the most promising startups. Interviews at tech companies start with questions that probe for good algorithm thinking.
In this computer science course, you will learn how to think about algorithms and create them using sorting techniques such as quick sort and merge sort, and searching algorithms, median finding, and order statistics.
The course progresses with Numerical, String, and Geometric algorithms like Polynomial Multiplication, Matrix Operations, GCD, Pattern Matching, Subsequences, Sweep, and Convex Hull. It concludes with graph algorithms like shortest path and spanning tree.
- Sorting and Searching
- Numerical Algorithms
- String Algorithms
- Geometric Algorithms
- Graph Algorithms
This course is part of the Fundamentals of Computer Science XSeries Program:
Learn how to program all the major systems of a robotic car from the leader of Google and Stanford's autonomous driving teams. This class will teach you basic methods in Artificial Intelligence, including: probabilistic inference, planning and search, localization, tracking and control, all with a focus on robotics. Extensive programming examples and assignments will apply these methods in the context of building self-driving cars. This course is offered as part of the Georgia Tech Masters in Computer Science. The updated course includes a final project, where you must chase a runaway robot that is trying to escape!
Are you interested in learning how to program (in Python) within a scientific setting? This course will cover algorithms for solving various biological problems along with a handful of programming challenges helping you implement these algorithms in Python. It offers a gentler-paced alternative to the first course in our Bioinformatics Specialization (Finding Hidden Messages in DNA).
This course teaches the design of contemporary information systems for biological and medical data. Examples are chosen from biology and medicine to illustrate complete life cycle information systems, beginning with data acquisition, following to data storage and finally to retrieval and analysis. Design of appropriate databases, client-server strategies, data interchange protocols, and computational modeling architectures. Students are expected to have some familiarity with scientific application software and a basic understanding of at least one contemporary programming language (e.g. C, C++, Java, Lisp, Perl, Python). A major term project is required of all students. This subject is open to motivated seniors having a strong interest in biomedical engineering and information system design with the ability to carry out a significant independent project.
This course was offered as part of the Singapore-MIT Alliance (SMA) program as course number SMA 5304.
This course will serve as a two-week aggressively gentle introduction to programming for those students who lack background in the field. Specifically targeted at students with little or no programming experience, the course seeks to reach students who intend to take 6.001 and feel they would struggle because they lack the necessary background. The main focus of the subject will be acquiring programming experience: instruction in programming fundamentals coupled with lots of practice problems. Lots of programming required, but lots of support provided.
If you have studied the Introduction to Programming in C course available on ALISON it is now time to further enhance your C programming skills by studying numbers, variables and arrays and the functionality they have in computer programming. In this free online C programming course you will gain a much greater knowledge and understanding of numbers, variables and arrays. You will learn more about the basics of numeric overflow and how numbers are encoded as characters in ASCII. You will learn more about variables and the connection between function return values and variables. You will also review the use of arrays and pointers, how to create a pointer in C, and assign a value to a pointer. This free online C programming course will be of great interest to IT professionals who want to enhance their knowledge and understanding of the C programming language and its functionality, and to those learners who want to follow on from the Introduction to Programming in C course.<br />
In computer science control flow is a very important concept to understand for the development of effective and efficient software programs. Control flow is the order in which individual statements, instructions, or function calls are executed within a piece of software. In this free online computer programming course you will learn more about the use of statements and logic in C programming. You will be introduced to conditional flow statements, the mechanisms for controlling flow statements, and how to implement simple statements in C. Logical operators such as OR, GOTO and the While loop are also discussed in detail. This free online computer programming course will be of great interest to all IT professionals who would like to learn more about the use of control flow when developing software using the C programming language, and to all learners who want to learn more about the procedures used to write effective software programs.<br />
C is a powerful system programming language and is commonly used to programme operating systems such as Unix. One of the main advantages of programming in C is that it allows the programmer to write directly to memory. This means that key constructs such as pointers, constants and strings can be used within the memory in an efficient and machine-independent fashion. This free online computer programming course covers topics such as using pointers for direct memory access and manipulation in C, changing the memory address contained within a pointer and introduces constants and string literals. You will learn why pointers contain memory addresses of multi-byte variables, and how to visualise RAM in a new way. This free online computer programming course will be of great interest to IT and software professionals who would like to learn more about this powerful and efficient programming language, and to all learners who would like to learn more about the kind of programming language that is used to develop operating systems.<br />