GitHub | LinkedIn | Twitter | Codewars | Sololearn
Hello, I'm Sergei. I'm a Data Scientist with a broad professional background, master degrees in Physics and Economics and a professional certificate in accountancy from ACCA. For a number of years I was developing management reporting and controlling systems in corporations (including at C-level), have experience in team leading and project management and continue professional development in Data Science and Machine Learning with ambition to build AI systems that could change the way we do business.
I've created this web page to keep a detailed log of my progress in gaining a solid knowledge in CS and DS initially guided by the OSSU CS Curriculum, but subsequently expanded to other extra curriculum activities. It may serve as example for other people looking for an online equvalent of a degree in CS and DS.
The OSSU describes its Curriculum as:
... a complete education in computer science using online materials. It's for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines. It is designed according to the degree requirements of undergraduate computer science majors, minus general education (non-CS) requirements, as it is assumed most of the people following this curriculum are already educated outside the field of CS. The courses themselves are among the very best in the world, often coming from Harvard, Princeton, MIT, etc.
The OSSU CS Curriculum is designed into the following sections (with a quick ref link to each of them):
Intro CS - for students to try out CS and see if it's right for them
Core CS - corresponds roughly to the first three years of a computer science curriculum, taking classes that all majors would be required to take
Advanced CS - corresponds roughly to the final year of a computer science curriculum, taking electives according to the student's interests
Projects - to validate, consolidate, and display the knowledge
With my progress in CS, I've got a particular interest in Data Science and Machine Learning and complemented the original CS Curriculum with some of the best available online and offline DS courses. Therefore, I've added the whole new section on Data Science and Machine Learning, which comes the first below.
Topics covered:
imperative programming
procedural programming
C
manual memory management
basic data structures and algorithms
Python
SQL
basic HTML, CSS, JavaScript
and more
ID# | Course | Completed | Proof |
---|---|---|---|
001 | CS50's Introduction to Computer Science by Harvard on edX | Oct 2018 | Certificate |
002 | 6.00.1x Introduction to Computer Science and Programming using Python by MIT on edX | Mar 2018 | Certificate |
CS | How to think like a computer scientist: Learning with Python 3 (a classic open-source book with exercises recommended by python.org) | Mar 2018 | Repository |
CS | SQL Fundamentals by Sololearn | May 2018 | Certificate |
CS | HTML Fundamentals by Sololearn | Sep 2018 | Certificate |
CS | CSS Fundamentals by Sololearn | In Progress | - |
CS | JavaScript Tutorial by Sololearn | Sep 2018 | Certificate |
CS | Python 3 Tutorial by Sololearn | Nov 2018 | Certificate |
Corresponds roughly to the first 3 years of a computer science curriculum, taking classes that all majors would be required to take
Topics covered:
functional programming
design for testing
program requirements
common design patterns
unit testing
object-oriented design
Java
static typing
dynamic typing
ML-family languages (via Standard ML)
Lisp-family languages (via Racket)
Ruby
and more
Note: I stick to Python and its ecosystem so far in my current projects. In CS50, I also learned basics of C and Web stack (HTML/CSS/JS/jQuery+Python/Flask/Jinja+SQLite). Courses in this section teach programming concepts with such languages as Lisp-family, Java, ML, Ruby, Haskell, Prolog. I prioritize them as 'nice to have', but after I've covered other topics of the Curriculum.
Topics covered:
linear transformations
matrices
vectors
mathematical proofs
number theory
differential calculus
integral calculus
sequences and series
discrete mathematics
basic statistics
O-notation
graph theory
vector calculus
discrete probability
and more
Note: I decided to opt out from courses 012-014 on Culculus and Linear Algebra with credits from my Master degree in Physics. MIT's materials from 015 "Math for CS" I use for reference purposes. I also added refresher courses in Statistics - the more Statistics, the better :). E.g. an excellent 'Statistical Reasoning' course by Stanford Online from the OSSU Data Science Curriculum.
ID# | Course | Completed | Proof |
---|---|---|---|
015 | Mathematics for CS by MIT Open Courseware | For reference | - |
extra | Statistical Reasoning by Stanford on Lagunita | Jan 2019 | Progress records |
extra | Statistics by Bioinformatics Institute on Stepik (Rus) | Jul 2019 | Certificate |
extra | Statistics 2 by Bioinformatics Institute on Stepik (Rus) | Aug 2019 | Certificate |
Topics covered:
boolean algebra
gate logic
memory
computer architecture
assembly
machine language
virtual machines
high-level languages
compilers
operating systems
network protocols
and more
ID# | Course | Completed | Proof |
---|---|---|---|
016 | Build a Modern Computer from First Principles: From Nand to Tetris by HUJ on Coursera | Mar 2018 | Certificate |
017 | Build a Modern Computer from First Principles: Nand to Tetris Part II by HUJ on Coursera | In progress | - |
018 | Introduction to Computer Networking by Stanford on Lagunita | Nov 2018 | Certificate |
019 | ops-class.org - Hack the Kernel | - | - |
Topics covered:
divide and conquer
sorting and searching
randomized algorithms
graph search
shortest paths
data structures
greedy algorithms
minimum spanning trees
dynamic programming
NP-completeness
and more
ID# | Course | Completed | Proof |
---|---|---|---|
020 | Algorithms: Design and Analysis, Part I by Standord on Lagunita | Dec 2018 | Certificate |
022 | Algorithms: Design and Analysis, Part II by Stanford on Lagunita | In Progress | - |
Note: (4 Algorithms courses by Stanford on Coursera == 2 Algorithms courses by Stanford on Lagunita)
Topics covered:
Agile methodology
REST
software specifications
refactoring
relational databases
transaction processing
data modeling
neural networks
supervised learning
unsupervised learning
OpenGL
raytracing
block ciphers
authentication
public key encryption
and more
ID# | Course | Completed | Proof |
---|---|---|---|
024 | Databases by Stanford on Lagunita | - | Certificate for each sub-course |
DB4 | > Relational Algebra | May 2018 | Certificate |
DB5 | > SQL | May 2018 | Certificate |
DB2 | > XML Data | Jun 2018 | Certificate |
DB3 | > JSON Data | Jun 2018 | Certificate |
DB10 | > Indexes and Transactions | Feb 2020 | Certificate |
025 | Machine Learning by Stanford on Coursera | Jun 2018 | Certificate |
026 | Computer Graphics by UCSD on edX | - | - |
027 | Cryptography I by Stanford on Coursera | In Progress | - |
028 | Software Engineering: Introduction by UBC on edX | - | - |
029 | Software Development Capstone Project by UBC on edX | - | - |
Corresponds roughly to the final year of a computer science curriculum, taking electives according to the student's interests
Include both curriculum and extra-curriculum projects to validate, consolidate, and display my knowledge
ID# | Project | Completed | Proof |
---|---|---|---|
DS | Content based recommendation system for Ozon.ru - 1st place on Private leaderboard | Jun 2019 | Github repo |
DS | CF recommendation system with implicit feedback | Jun 2019 | Github repo |
DS | Recommendation system for movies with Spark ALS | Jun 2019 | Github repo |
DS | Predict gender and age from web logs - 2nd place on Private leaderboard | May 2019 | Github repo |
DS | Word2Vec for movie reviews - LSTM | Apr 2019 | Github repo |
DS | Bank customers churn | Apr 2019 | Github repo |
DS | Classification of Time Series with LSTM RNN | Jan 2019 | Kaggle kernel |
DS | Online Learning of Time Series with LSTM RNN | Jan 2019 | Kaggle kernel |
DS | Fast LeNet-5 CNN in Keras | Nov 2018 | Kaggle kernel |
001 | CS50's Final Project: An interactive web app 'Digit Recognizer' with machine learning | Sep 2018 | Github repo + YouTube |
DS | Under the Hood: A Dense Neural Network w/MNIST dataset - digit recognition | Sep 2018 | Kaggle kernel |
DS | Under the Hood: A Dense Neural Network w/Titanic dataset - binary classification | Aug 2018 | Kaggle kernel |
DS | Titanic: Quick model first, then data manipulation - binary classification | Jul 2018 | Kaggle kernel |
016 | Nand2Tetris Final Project: Assembler in Python for the Hack Computer | Mar 2018 | Github repo |