Hi, Codeforces!
This is not an ordinary post from me. This is not an announcement of new features or a championship, but I'm no less enthusiastic.
I am glad to inform you that from January 29 to February 16, 2018 I will be giving the course "Advanced Algorithms and Data Structures" in Harbour.Space University (Barcelona, Spain). The course will be in English. The students of this course will not only be students of Harbour.Space, but is open to all! Who wants to join?
This course isn't just for Harbour.Space students, it is also open to Codeforces participants, who will be offered a special price, 1000 EUR. The cost does not include travel or accommodation.
In my plans there is a detailed story about some algorithms and data structures, a lot of practical exercises and emphasis not only on the correctness, but also the beauty and structure of the code. My goal is to make useful and interesting classes for both those who want to understand the fundamental CS, and for those interested in programming competitions. And of course, we will have the opportunity to meet and talk. I'm happy to share stories about the history of Codeforces and development plans.
The course will consist of three weeks of training, 5 training days in each week. The program includes daily lectures and practical exercises. It will not be boring for sure!
Here is the expected course outline:
Week | Day | Topics |
---|---|---|
1 | 1 | Heap data structure, heap properties and operations. HeapSort. Priority queue. Other heap applications. Mergeable heaps: binomial heap, pairing heap, randomised meldable heap. |
1 | 2 | Fenwick tree. Description and motivation. Implementation of Fenwick tree. Generalisation for higher dimensions. Skip list data structure. Implementation details. Indexable skiplist. |
1 | 3 | Segment trees. Top-down implementation. Bottom-up implementation. Segment trees applications. Persistent data structures. Persistent stack, persistent array. Persistent Fenwick and segment trees. |
1 | 4 | Cartesian trees, treap data structure. Merge and split operations. Treap implementation in detail. Treap applications. |
1 | 5 | Treaps with implicit keys. Ropes. Segment reverse operation. Examples of problems. |
2 | 6 | Introduction to strings. String searching (matching) problem. Pattern pre processings. Z-function, prefix-function. Their applications. Knuth–Morris–Pratt algorithm. Matching finite state machine. |
2 | 7 | Multiple pattern matching. Trie data structure. Aho-Corasick algorithm. Implementation details. Dynamic programming on a trie. |
2 | 8 | String hashing. Rabin-Karp algorithm. Fast substrings comparison with hashes. Suffix array. LCP array. Efficient construction algorithm. Applications. |
2 | 9 | Suffix tree. Ukkonen's algorithm. Suffix tree construction from LCP array. Suffix tree applications. |
2 | 10 | Suffix automaton. Size bounds. Linear Algorithm. Using suffix automata as an index for approximate string searches. |
3 | 11 | Introduction to automata theory. Formal languages. Context-free languages. Formal grammars. Context-free grammars. NFA, DFA, convert NFA to DFA. Build automaton by regular expression. |
3 | 12 | LL(1) parser. Arithmetic expressions parsing. Shunting-yard algorithm. Simplified Pascal language parsing and interpretation. |
3 | 13 | Algorithms for traversing a graph. DFS. Properties. DFS search tree. Edges classification. Linear bridge-finding algorithm. Linear articulation points finding algorithm. Strongly connected components. Tarjan's strongly connected components algorithm. |
3 | 14 | Tree problems. Bottom-up approach. LCA problem. LCA algorithms. |
3 | 15 | Bipartite graphs. König’s criterion. Problems: maximum matching, minimum edge cover, maximum independent vertex set, minimum vertex cover. Connection of the problems. Berge's lemma. Kuhn algorithm. Kuhn algorithm properties. Minimal vertex cover by maximum matching. Cover DAG by minimal number of paths. |
Harbor.Space University is located in Barcelona (Spain). For users of Codeforces, Harbour.Space is known for active participation in the life of the community of sports programming (partnership with Codeforces in the framework of Educational Rounds). The main activity of the university is teaching (there are bachelor's and master's programs) in the following areas:
- Maths as a Second Language
- Computer Science
- Data Science
- Cyber Security
- Interaction Design
- Digital Marketing
- High Tech Entrepreneurship
- FinTech
- BioTech
- Aerospace Engineering
- SuperCities UrbanTech
Register for my upcoming course here.
Mike Mirzayanov
Can't be there an online option be available ?
Hello ghazanfar_iiuc ! The course will only be onsite, in the future we are hoping to begin online courses in parallel with our visiting lecturers.
Looking forward for those days, in near future.
And how many of those 1000 euros per participant go to you?
I'm up for paying, recording the lectures and reselling them at 50 euros per whole course. I'd pay off my costs and send the profits to you directly. (jk ofc)
By the same argument, I can buy one of yours and resell it for 1 euro. So I think that the recordings should be free.
Whoever wants it for free will find a way to get it for free. My way makes the course affordable and rewards author of the course with sth like donations from people who want to pay for it (don't tell me there wouldn't be anyone, CF has plenty of supporters) instead of helping moneylenders.
I don't know their business model, but I was expecting something like coursera/edx (pay only if you want the certificate). The goal of universities is the creation and distribution of knowledge, so I don't find any reason to not let the recordings for free, for example, in Brazil there is an annual international training camp and all the material (lectures/contest problems) are available for free.
can you tell me where this material you are talking about is available ?
http://maratona.ic.unicamp.br/MaratonaVerao2016/index.html
Damn I wish I could go but I don't think my manager would send me abroad for 3 weeks :( longest I've had is single weeks in the UK
manager?
We need online course
Hello attiw! All of our courses are only available onsite, in the future we are hoping to begin online courses in parallel with our visiting lecturers.
Am I the only one who thinks that this course is ridiculously expensive? I know that the course will be professionally prepared, but really? 1000€?! If you add travel, accomodation and food (for 3 weeks) that's pretty expensive. I know that some people and/or universities can afford this, but on the other hand, I am organizing camps in Poland that cost at most 100€/week with accomodation, travel (within the country), food and several lecturers.
I assume you don't pay much money for teachers (preparing the lectures also takes time) and the university gives classrooms for free?
Still, I also think 1000€ is expensive for this course. In my university in Finland, a visiting lecturer gets about 100€/h and a classroom costs about 50€/h. So organizing this course would cost about 150*3*15=6750€. So you would only need seven participants to cover all costs.
We organize camps either in the university classrooms (and we don't pay for them, or in hotels with conference rooms (we pay for them).
And yes, we don't pay 100€/hour to lecturers and tutors, but we have really healthy environment here in Poland. Most of our participants later help organize those camps and they are really pationate about it. We are organizing such events not to earn money, but to help others.
We are still paying them for their time.
Yeah, we also have a "healthy environment" in Finland — because we don't have money to pay appropriate salary for competitive programming training. 100€/h is what a lecturer would get in an "official" university course, this doesn't apply to our random training camps.
Why not recording the lectures and making it available for all?
Do you want to work for me for free? If no, why?
I see your point. But I believe that science should never be exclusive the privileged. Many great institutions offer their recorded courses for free, MIT open courseware for example. I have watched lots of recorded complete courses taught in universities everywhere.
Joker: "If you're good at something, never do it for free."
Bill Gates, net worth ~90 B dollars
Mark Zuckerberg, net worth ~71 B dollars
Linus Torvalds, net worth ~150 M dollars
To give you a perspective to their net worth difference:
90,000,000,000$
71,000,000,000$
.....150,000,000$
You see the difference? No matter how good is your product, if you don't make a value to the customer, you will earn no shit. Harder part is to make people to buy your product, than to make it.
Mike wants to share some knowledge with you, why would he share it for free? The other thing is wheter his strategy to earn something from it (with this approach and price) is good or not.
I'd hardly call being worth 150m dollars "earning no shit". Besides I really don't see the point in making as much money as possible at all times. To be frank I don't really understand why someone would want to earn much more than the cost of living, but people can do whatever they want.
Anyway I hardly doubt any of this is Mike being greedy. I suspect most of the "extra" money is snatched by Harbour.space & co. I doubt Mike has any real control over the pricing of these things.
As you said, different people have different view of how much is enough money.
"Mike is being greedy" is your opinion, because for you and many other people (including me) 1000$ for something like this is a lot. But there are other people who would think it's a fair enough. Different value of product for different people. Everything has some value, it is just how you make it to the public.
Come again?
"Mike is being greedy"
Persistent Fenwick tree ??????
Why not? Not much different from persistent array.
I would like to know how well the lectures are prepared. Would you make some of them available for free? Also, this is a popular marketing strategy. I'm not going to register even if they are worth the 1000 EUR (because I don't have the money lol). However, I guess, there will be other people who would :3
Your handle is on point
oh, wow, that looks like the course that would fill in all the gaps for me! content at a reasonable price that doesn't offend. the next thing i'll do is go directly to my manager and tell him all about going away for three weeks, and i'm sure he won't care.
You might see me there in Barcelona!
I see people saying "my manager". What do u mean? I live in Bosnia, I cant understand you. You have your own manager for competitive programming or what? That would be so weird wtf haha
Your boss at work
I wish I had a competitive programming manager though :3 maybe I'd be more focused then
Me too lol..It would be such a good motivation
I can be your manager. 1000 eur/hour