Enhance programming skills to boost your career and win prizes led by ITMO University, the only 6-time winner of the world’s top coding cup. 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.
What you'll learn:
- The benefits of participating in programming competitions
- The algorithms and approaches you need to master the world of competitions
- Ways of self-training for further progress
Week 1: Welcome to competitive programming
Exploring different kinds of programming competitions and benefits of participating, as well as typical rules and challenges. An overview of algorithmic programming competitions. An introduction to community resources and online contests.
Week 2: Computational complexity and linear data structures
An overview of computational complexity (Big O notation). Exploring linear data structures (array, list, stack, queue): operations, complexity, implementation and examples.
Week 3: Sorting and search algorithms
Binary search (implementation and examples). An overview of sorting algorithms (bubble sort, insertion sort, quick sort, merge sort), including theoretical analysis and examples of use.
Week 4: Graph theory
Definition of graphs and examples of graph problems. Various ways of storing graphs in memory. DFS and related topics: connected components, detecting cycles, detecting bipartite graphs. Shortest paths: BFS, Dijkstra algorithm.
Week 5: Final Exam
Solving a set of problems in limited time just like in a real programming competition.
Thanks to a growing number of software programs, it seems as if anyone can make a webpage. But what if you actually want to understand how the page was created? There are great textbooks and online resources for learning web design, but most of those resources require some background knowledge. This course is designed to help the novice who wants to gain confidence and knowledge. We will explore the theory (what actually happens when you click on a link on a webpage?), the practical (what do I need to know to make my own page?), and the overlooked (I have a page, what do I do now?).
It used to be the case that everyone viewed webpages on about the same size screen. But with the explosion of the use of smartphones to access the Internet, the landscape of design has completely changed. People viewing your site will now expect that it will perform regardless of the platform (smartphone, tablet, laptop, or desktop computer). This ability to respond to any platform is called responsive design.
The web today is almost unrecognizable from the early days of white pages with lists of blue links. Now, sites are designed with complex layouts, unique fonts, and customized color schemes. This course will show you the basics of Cascading Style Sheets (CSS3). The emphasis will be on learning how to write CSS rules, how to test code, and how to establish good programming habits.
Do you realize that the only functionality of a web application that the user directly interacts with is through the web page? Implement it poorly and, to the user, the server-side becomes irrelevant! Today’s user expects a lot out of the web page: it has to load fast, expose the desired service, and be comfortable to view on all devices: from a desktop computers to tablets and mobile phones. In this course, we will learn the basic tools that every web page coder needs to know. We will start from the ground up by learning how to implement modern web pages with HTML and CSS.
This course will teach you how to create mobile apps for Android, iOS and Windows Phone. No prerequisite in coding knowledge is required. In progressive steps, we will first learn how to create a simple and useful app: your own curriculum vitae. We will discover how to test the app on phones, and how to distribute it on the Play Store, Apple's App Store and the Windows Store.
Have you ever wished you knew how to program, but had no idea where to start from? This course will teach you how to program in Scratch, an easy to use visual programming language. More importantly, it will introduce you to the fundamental principles of computing and it will help you think like a software engineer.
Learn systematic program design - how to write programs that tell a clear story about what they do, are well-tested, and easy to improve. This programming course takes a unique approach, as it focuses on learning a systematic programming method rather than a programming language. This practical approach will help you channel your creativity so that you can program well in any language.
Les lycéennes et lycéens de toutes sections commencent à apprendre de l'informatique pour ne plus être de simples consommateurs mais devenir créateur du numérique : c’est l’enseignement de l'option "Informatique et Création Numérique, I.C.N.", de la seconde à la terminale pour toutes les sections.
MOOCs – Massive Open Online Courses – enable students around the world to take university courses online. This guide, by the instructors of edX’s most successful MOOC in 2013-2014, Principles of Written English (based on both enrollments and rate of completion), advises current and future students how to get the most out of their online study, covering areas such as what types of courses are offered and who offers them, what resources students need, how to register, how to work effectively with other students, how to interact with professors and staff, and how to handle assignments. This second edition offers a new chapter on how to stay motivated. This book is suitable for both native and non-native speakers of English, and is applicable to MOOC classes on any subject (and indeed, for just about any type of online study).