Online courses directory (10)
Our lives are full of combinations. Combinatorial mathematics is just the science to deal with combinations of discrete items. As an ancient field, the history of combinatorial mathematics can be traced back over 4000 years to the age of the Great Yu in ancient China. Today, combinatorial mathematics is regarded as the basis of computer science since the algorithms in programming heavily rely on the analysis of the discrete elements.
Instead of relying on the traditional mathematical "theorem - proof" format, this course demonstrates various principles in an intuitive manner with ancient stories, the scenes of movies and even a magic show. What you’ll learn:
- The counting principles based on the basic operations “+”, “-”, “*”, “/”;
- Generating functions
- Recurrent number serials such as Fibonacci number, Catalan number, and more
- Pigeon hole principles
- Inclusion and exclusion principles
- Polya counting based on group theory
This course is based on a highly regarded on-campus Tsinghua class called Combinatorics, and is ideal for students who are interested in mathematics or computer science. Enroll today and learn the mathematical theory needed to solve the real-world problems!
I don’t speak Chinese, can I learn the course?
All the materials are in English. Though the original video was recorded in Chinese, the course team record the corresponding dubbing in English. All the audio and subtitles are processed to fit the English dubbing as much as possible, so that you can enjoy this wonderful course in English.
What are the textbook and the reference books for this course?
There is no textbook requirement for this course. The handouts distributed every week are critical. The following books are references
- Richard A. Brualdi; Introductory Combinatorics (5th edition), Pearson, 2009
- J.H.van Lint and R.M. Wilson; A course in Combinatorics, Cambridge University Press, 2001
What is the grading breakdown?
- 70% quizzes and exercises
- 30% final exam
How can I get the certificate?
If your final score is no less than 60.
Do I need to know how to program to learn this class?
Not necessary. This course is a math course which is based on fundamental theory. But to help the students to have the intuitive feel of the effects of the theory, we also provide a code lib that you can compare different implementations by running different programs.
Digital systems are at the heart of the information age in which we live, allowing us to store, communicate and manipulate information quickly and reliably. This computer science course is a bottom-up exploration of the abstractions, principles, and techniques used in the design of digital and computer systems. If you have a rudimentary knowledge of electricity and some exposure to programming, roll up your sleeves, join in and design a computer system!
This is Part 3 of a 3-part series on digital systems, providing an introduction to the hardware/software interface and is based on a course offered by the MIT Department of Electrical Engineering and Computer Science. Topics include pipelined computers, virtual memories, implementation of a simple time-sharing operating system, interrupts and real-time, and techniques for parallel processing.
Using your browser for design entry and simulation, you’ll optimize your processor design from Part 2 for size and speed, and make additions to a simple time-sharing operating system.
"Out of the many edX courses I have taken, the first two parts of 6.004x were clearly the best. I am looking forward to the third part.” -- Previous Student
Are you tired of hearing that your computer has a virus? Or that your email account has been hacked? Now, is the time for you to protect yourself by understanding the basics of cyber security.
This computer science course presents an introduction to cyber security showing different aspects of this discipline. You will learn what the main existing cyber security threats are and how to protect yourself against them. The course presents a practical approach in which all required material will be provided to allow you to better understand attacks and establish appropriate countermeasures.
Taught by instructors with years of experience in the field of computer security, this course will pave the way to the security area of IT-related professions.
Want to be the programmer hot tech companies are looking for?
Take your programming skills to the next level and prove your excellence by learning how to succeed in programming competitions.
Besides improving your knowledge of algorithms and programming languages, you’ll gain unique experience in problem solving, thinking outside the box and meeting tough deadlines – all essential for boosting your value as a programmer and securing a coveted job in Silicon Valley (should you want one).
This computer science course is an introduction to competitive programming developed by ITMO University, the leading expert in IT and the only 6-time world champion of the Association for Computing Machinery - International Collegiate Programming Contest (ACM ICPC), the world's most prestigious programming contest.
You will learn all you need to know about the variety of programming competitions that exist, as well as basic algorithms and data structures necessary to succeed in the most popular of them.
Develop a good working knowledge of Linux using both the graphical interface and command line, covering the major Linux distribution families.
Linux powers 94% of the world’s supercomputers, most of the servers powering the Internet, the majority of financial trades worldwide and a billion Android devices. In short, Linux is everywhere. It appears in many different architectures, from mainframes to server to desktop to mobile and on a staggeringly wide variety of hardware.
Moreover, 97 percent of hiring managers reported that they will prioritize hiring Linux talent relative to other skills areas in the next six months, and 44 percent of hiring managers saying they’re more likely to hire a candidate with Linux certification.
This course explores the various tools and techniques commonly used by Linux system administrators and end users to achieve their day-to-day work in a Linux environment. It is designed for experienced computer users who have limited or no previous exposure to Linux, whether they are working in an individual or Enterprise environment.
Upon completion of this training you should have a good working knowledge of Linux, from both a graphical and command line perspective, allowing you to easily navigate through any of the major Linux distributions. You will be able to continue your progress as either a user, system administrator or developer using the acquired skill set.
Join the 250,000+ students who are already enrolled in this course and start your Linux journey.
How do you design a mobile app that truly changes people's lives? How can you understand how a new service is being used, both quantitatively and qualitatively? How can you use all of the rich sensing and I/O capabilities of mobile devices to create experiences that go far beyond what's possible on a traditional computer?
Mobile devices are changing the ways that we interact with each other and information in the world. This course will take you from a domain of interest, through generative research, design, usability, implementation and field evaluation of a novel mobile experience. You'll finish the course with a working, field-tested application suitable for release in the app store as well as a deep understanding of human interaction with mobile devices and services.
Based on a popular MIT class that has been taught since 2006 by Frank Bentley of Yahoo Labs and Ed Barrett, a Senior Lecturer at MIT, this course will explore what makes mobile devices unique. A primary focus will be on studying existing behavior and using key findings for design. While writing the code for an app is a part of the class, the majority of the topics will cover designing and evaluating a unique mobile experience. Along the way, you will have opportunities to share your work with other students from around the world! Java experience (or Objective C for iOS users) and a smartphone are required.
All required readings are available within the courseware, courtesy of The MIT Press. A print version of the course textbook, Building Mobile Experiences, is also available for purchase. The MIT Press is offering enrolled students a special 30% discount on books ordered directly through the publisher’s website. To take advantage of this offer, please use promotion code BME30 at The MIT Press site.
This short course teaches students and industry professionals how to design integrated optical devices and circuits, using a hands-on approach with commercial tools. We will fabricate your designs using a state-of-the-art ($5M) silicon photonic rapid-prototyping 100 keV electron-beam lithography facility. We will measure your designs using an automated optical probe station and provide you the data. You will then analyze your experimental data.
Why take this course?
- To get hands on design experience with integrated optics
- To learn how to use advanced optical design tools
- To get your design fabricated, and obtain experimental data
The focus of this course is a design project, guided by lectures, tutorials and activities. As a first-time designer, you will design an interferometer, which is a widely used device in many applications such as communications (modulation, switching) and sensing. Specifically, it is Mach-Zehnder Interferometer, consisting of fibre grating couplers, two splitters, and optical waveguides. For advanced designers, this course is an opportunity to design many other devices, such as directional couplers, ring, racetrack and disk resonators, Bragg gratings including grating assisted contra-directional couplers, photonic crystals, multi-mode interference (MMI) couplers, polarization diversity components, mode-division multiplexing (MDM) components and circuits, novel waveguides such as sub-wavelength grating (SWG) and metamaterial waveguides, slot waveguides, etc.
Commercial software tool licenses are provided in this course (Lumerical Solutions, Mentor Graphics, and MATLAB). Open-source alternatives are provided. Mentor Graphics tools are accessed remotely via a cloud service; the others can be run on your own computer.
You will earn a professional certificate from the University of British Columbia and edX upon successful completion of this course. Certificates can be uploaded directly to your LinkedIn profile.
Have you ever wondered how software architects, requirements engineers and business analysts sketch and draw out their plans for a software system?
In this computer science course, you will gain an in-depth understanding of Unified Modeling Language (UML) class diagrams, which are used to visually represent the conceptual design of a system. You will learn about UML class diagrams and how they This course will focus on how UML class diagrams are used to map out the structure of a business domain by showing business objects, their attributes, and associations.
Taught by an instructor with decades of experience in requirements engineering and domain modelling, this course will equip you with the skill of in-depth understanding of a UML class diagram and will enable you to judge the functional fit of a UML class diagram as blueprint for the development of an enterprise information system.
The Unified Modeling Language (UML) has become an in-demand skill in software development and engineering. In fact, some of today’s top jobs, i.e. business analysts, enterprise architects, but also developers, technical consultants and solutions architects, require UML knowledge. Enroll today and gain knowledge in an in-demand skill that will help set you apart from the competition.
Vacuum technology is key to our high-tech society. It is is used for a large number of technical processes and products, including computer chips, nanostructures, microelectronic coatings and components as well as chemical and biological techniques.
In this engineering course, you will get a comprehensive overview of the construction and working principles of vacuum devices and systems to help you better design materials and processes .
This computer science course is designed to help IT professionals understand why and when to perform Windows 10 deployment tasks. You will learn about new features and security measures that were implemented in the Windows 10 Anniversary Update, the second major update to Windows 10. You will also learn how to configure shared resources and secure corporate data through encryption. This course will also focus on BitLocker and how it helps protect computers that are lost or stolen from data theft or exposure.
This course is part of the Windows 10 Features for a Mobile Workforce XSeries, which has been created to help you prepare for Microsoft certification Exam 70-697: Configuring Windows Devices.