mostafa.saad.fci's blog

By mostafa.saad.fci, 3 years ago, In English

Hey,

I previously shared several posts about my training sheets. There are a lot of trainees used these sheets to improve their performance. The juniors sheet is a great road-map to avoid solving huge number of duplicate or uninteresting ideas.

1- Juniors sheet problems. English Video explaining it. CF post

2- Seniors/ICPC/IOI Releasing sheet. CF post. Finish above sheet first (even for IOIers)

3- Discord channel

4- Important Video to address Psychological Concerns in CP


I recently have started a Udemy series named Mastering Critical Skills. The goal of the series is to smoothly teach Programming, OOP, Algorithms and Data Structures. The core of the series is to provide intensive practice and projects to establish descent skills in short time in an organized manner. I claim that these courses will teach beginners a lot and sharpen their skills in short time.

Coupons/Discounts are always available from here

The available courses at the moment:

1- Mastering 4 critical SKILLS using C++ 17

2- Mastering critical SKILLS in Data Structures using C++

3- Mastering critical SKILLS in Algorithms using C++

4- Mastering critical SKILLS for Coding Interviews

5- Mastering 4 critical SKILLS using Python

6- Mastering critical SKILLS in Data Structures using Python

Full text and comments »

  • Vote: I like it
  • +30
  • Vote: I do not like it

By mostafa.saad.fci, 3 years ago, In English

Dears,

I recently started a new series of courses at Udemy [Mastering critical SKILLS] series. The core value of this series is focusing on gaining skills through extensive practice NOT just knowledge like most of the free materials. So far I have finished C++17 and Python courses.

The new course is a C++ Data Structures course covering basic to advanced topics. [Coupons].

About Udemy:

  • Don't get cheated by the default $150+ price. Udemy is usually on sale on weekly basis for $10-15. My coupons are active anyway
  • Within 30 days you can ask for refund for whatever reason (read policy). Feel free to try.

Why paying if there are a lot of free materials?

  • My explanations are short and to the point in a practical way
  • Extensive practice from easy to hard. You can find hundreds of (redundant) problems on the internet. The course again saves your time by being very selective.
  • After the course, one should have smooth entry to the Algorithms course.

Full text and comments »

  • Vote: I like it
  • +9
  • Vote: I do not like it

By mostafa.saad.fci, 4 years ago, In English

Dears,

I frequently get a request to create some channel for trainees' discussions about the juniors sheet problems..

Here is a discord channel. Please read the rules carefully.

Full text and comments »

  • Vote: I like it
  • +26
  • Vote: I do not like it

By mostafa.saad.fci, 4 years ago, In English

Recently, I have recorded a Python programming course [Coupons] that focuses a lot on extensive practice, homework, and projects.

Edit: Seems many guys are not aware that Udemy sales are fake. Almost any course is 10-13 USD dollars. Stay on any page for a few hours and the price will drop. It is ugly, but Udemy understands the psychology & behavior of people when they see the word discount.

The course helps you master the 4 most important skills for a programmer

  • Programming skills

  • Problem-solving skills

  • Project building skills

  • OO Design skills

The relevant part here is the problem-solving part.

  • Fundamental topics such as loops and arrays are administrated with several ad-hoc algorithmic challenges.

  • After the course, one should have smooth entry to Data structures and Algorithms courses.

  • Solving in Div2-A (and maybe Div2-B) should be an easier experience.

Note: this is not an algorithms course.

  • It is a programming course that emphasizes the importance of easy-to-hard challenges.

  • Kindly read the homepage well to build proper expectations.

  • Share it with newcomers to our community.

Full text and comments »

  • Vote: I like it
  • +39
  • Vote: I do not like it

By mostafa.saad.fci, 4 years ago, In English

Recently, I have recorded a C++ programming course [Coupons] that focuses a lot on extensive practice, homework, and projects..

The course helps you master the 4 most important skills for a programmer

  • Programming skills

  • Problem-solving skills

  • Project building skills

  • OO Design skills

The relevant part here is the problem-solving part.

  • Fundamental topics such as loops and arrays are administrated with several ad-hoc algorithmic challenges.

  • After the course, one should have smooth entry to Data structures and Algorithms courses.

  • Solving in Div2-A (and maybe Div2-B) should be an easier experience.

Note: this is not an algorithms course.

  • It is a programming course that emphasizes the importance of easy-to-hard challenges.

  • Kindly read the homepage well to build proper expectations.

  • Share it with newcomers to our community.

Full text and comments »

  • Vote: I like it
  • +19
  • Vote: I do not like it

By mostafa.saad.fci, 4 years ago, In English

Updating from time to time to reach more guys..

........

Since 2019 and I receive very positive feedback about the quality of my problem selections in my international supervision. I intended to make my problem lists public one day to help trainees to train in a more efficient and effective way.

This program started in 2016 and has been changed and improved a lot based on the received feedback from my trainees. I ended up with 2 big lists of problems: one for guys training toward IOI and another for ICPC/OnlineContest styles. Specifically 4 critical features:

  • Problem difficulty level [1-10] per problem is a manual weighted average of the assigned levels from my trainees’ sheets. A common complaint about 'online tools/ways for ranking problems by difficulty' is that they are not accurate. The issue is more severe for OI problems.

  • Problem importance level: ~ 5 levels (important, very interesting, interesting, good, normal/boring/repeated). Trainees solve a lot of problems that many of them are repeated or boring ideas. To maximize the training outcomes, one should train on unique/interesting ideas much more. Something that most of us can’t figure out easily.

  • Editorials. Many interesting problems may not have editorials (or have hard to understand editorials). I used to ask trainees to write some summary of how they solved a problem. Circulating these editorials between my trainees made it easy for them to get problems solved.

  • Submissions info: In Trainees Submissions page, ~25k submissions of my trainees. Per problem info (status, submissions count, times for reading/thinking/coding/debugging, category, subjective level, and a comment. You may use it to know some details about how others performed with the solved problem.

Links:

  • The problems lists link.
  • A Google Doc that outlines the evolution of this initiative since 2016. A lot of useful insights, especially for coaches.

Full text and comments »

  • Vote: I like it
  • +470
  • Vote: I do not like it

By mostafa.saad.fci, history, 5 years ago, In English

Dears,

I could find POI codes/editorials till 2016 here https://www.oi.edu.pl/l/40/

Any official/unofficial links for after 2016?

Full text and comments »

  • Vote: I like it
  • +48
  • Vote: I do not like it

By mostafa.saad.fci, 5 years ago, In English

In this video, I focus on Psychological Concerns in Competitive Programming. Slides

The video has tips for both individuals and the communities.

It is in Arabic, but with English subtitles. Some of the volunteers for the subtitles: _Noor and tj-black.

Compete and have fun but take care of your mental health :)

...

Full text and comments »

  • Vote: I like it
  • +67
  • Vote: I do not like it

By mostafa.saad.fci, history, 5 years ago, In English

We talk a lot about training and problem solving, but much less about Psychological Concerns in Competitive Programming that we face. Meanwhile, these Psychological Concerns slow the progress of many trainees.

I will record soon a video (in my Arabic Competitive Programming Channel). I would like to share with you the slides of this video. It might not be so clear (as they are just slides), but still could be useful.

Feel free to comment with whatever suggestions/corrections. I will record the video in Arabic as usual. If some volunteers provided sub-titles for it, I will share the video link.

Have fun but take care of your mental health :)

Full text and comments »

  • Vote: I like it
  • +256
  • Vote: I do not like it

By mostafa.saad.fci, 5 years ago, In English

For TC SRM Editorials:

  • Starting from SRM 710, they are reachable from here

  • For SRMS <= 433, reachable from here

  • I used to use this link to get ones > 433, but seems the link stopped working very recently.

Any tips? Am I missing something? Tagging for some TC guys is appreciated

Full text and comments »

  • Vote: I like it
  • +61
  • Vote: I do not like it

By mostafa.saad.fci, history, 6 years ago, In English

I used to encourage newcomers in our community to train using this sheet to avoid random training. By the end of the sheet, one will be very good up to Div2-D. It has been refined several times based on the received feedback

Sheet link https://goo.gl/unDETI

Please, check out the sheet before reading. The sheet is

  • Complete and consistent roadmap for newcomers: What to solve & algorithms to learn in order

  • In the bottom row, there are different sheet pages such as Faq, Topics, CF-C2

  • CF-C1, C2 are (Codeforces Div2 C problems (or similar level from other OJs), but from easy to hard). Same for CF-D1, D2, D3

  • Covering most of the topics needed up to Codeforces Div2-D

  • Problems increase in difficulty per topic with intermediate easy/medium problems + ad-hoc problems

  • Speed problems to maintain speed goals


One can train in one of the following ways:

A) Blind-Order training style

  • Problems are distributed in sheets CF-A, CF-B, CF-C1, ....CF-D3

  • It targets learning the knowledge/skills in a consistent and balanced way

  • Every sheet page is on average harder than the previous sheet page

  • This is my recommended way, though most camps/training-approaches don't use this style

B) Topics-Based training style

  • See the sheet page (Topics1). It has the same sheet problems (CF-A to CF-D3) ordered by category and level, around 950 problems. Also checkout Topics2 page

  • Ideas Quality column: P5 (important), P4(very interesting), P3(interesting), P2(good), P1(ok), Empty (normal)

  • You can train using Blind-Order, and use Topics page as a guide to skip some problems

  • Advantage: Mastering the algorithm till solving some hard problems in a short time

  • Disadvantage: Discovering the algorithm behind the problem is an important skill. Given that you know the topic, you lose a good space to improve this skill

  • Disadvantage: Being in the mode of specific algorithm lets you solve many of it easier. However, when solving in real contests, your mind is not so active on the specific topic

Full text and comments »

By mostafa.saad.fci, 6 years ago, In English
  • This repository is mainly used as part of my online free coaching. However, it will be beneficial for others.
  • The repository contains mini-editorials/notes written by my trainees for some problems in several OJs (UVA, SPOJ, LiveArchive, Timus, etc).
  • The same also for the IOI and OI problems (CEOI, Baltic, Balkan, APIO, etc).
  • I searched and organized many of web official editorials/solutions for IOI/OI to make it easier for my trainees.
  • The content will grow up more by time.

For more details, read and explore the repository

Have fun :)

Full text and comments »

  • Vote: I like it
  • +97
  • Vote: I do not like it

By mostafa.saad.fci, 7 years ago, In English

Last update: August 2020

Registration is opened as long as it is still opened in the form (I receive emails whenever someone applies).

Update: the private problem lists of this program are now made public. I encourage trainees to be more independent...

====================

Hello guys,

I am a Coach in the ACM ACPC (Arabian) Region. For more about my competitive background.

This is an announcement for Online Free Coaching (Actually, a supervision not coaching).

Supervision Includes

  • Understanding the trainee level in the different algorithmic categories and his\her weak points.
  • Selecting customized problems to solve according to the trainee level/status
  • Following up on what is missing and what is needed to be done
  • Giving attention to several qualitative and quantitative factors.
  • A training sheet that helps you record your progress and discover your training issues. Also, a mind logging technique to understand behavior.
  • Communication: Emails and Chatting (to communicate with me) — Discord (to communicate with other trainees)

Supervision doesn’t include

  • Helping with problems, coding/debugging together
  • Teaching Algorithms: I will tell you what to learn and when

The audience

  • Trainees CF Rating: 2400 — 2900
  • Interest in ICPC — IOI — Online Contests — Improving specific skills or category
  • See some of my trainees opinions about it (replies on xuanquang1999)

Time Dedication

  • Background: I tried several styles in the last years for 'time dedication' and was more disappointed when allowed flexible training availability.
  • I will expect at least 5-10 hours per week in study terms and 20-30 hours per week in summer vacations. Exams are the exception (or good justification). I will cancel the training once this is violated. Don't apply unless planning serious training.

Have interest?

  • Apply.
  • If you are accepted in the supervision, you will receive an email within a week.

Other notes

  • I have designed a sheet for newcomers to make them good up to Codeforces Div2-D level.
  • I have a GitHub repo for IOI/OI official resources / Mini-Editorials for other OJ problems.

Full text and comments »

  • Vote: I like it
  • +66
  • Vote: I do not like it