# Think Like a Computer Science Professor

See how to think like a computer science professor. You will observe Radu’s thought process as he codes a project for the first time. Many tutorials demonstrate how to build something that the instructor has already fully planned out beforehand. But in this video you learn what really goes into building a project from scratch. And he does it all without even referencing the Internet. Radu Mariescu-Istodor has a PhD in computer science. He teaches computer science at a university as well as on his YouTube channel. 🔗 Radu's channel: https://www.youtube.com/c/RaduMariescuIstodor
⌨️ (00:00:00) Intro / showcase ⌨️ (00:01:32) Quick planning
⌨️ (00:03:25) Canvas project setup
⌨️ (00:09:21) Trying to remember how drawImage works :-))
⌨️ (00:18:58) Figured out I need to let it load first
⌨️ (00:20:29) Helper code for getting coordinates
⌨️ (00:22:27) Beginning procedural drawing
⌨️ (00:29:16) Normalizing the space for symmetrical drawing
⌨️ (00:48:32) Control point for head rotation
⌨️ (00:56:48) Slider for head x rotation
⌨️ (01:13:44) Rotating the head on X
⌨️ (01:17:27) Rotating the head on Y
⌨️ (01:28:14) Adding more control points
⌨️ (01:59:31) Drawing eyes
⌨️ (02:26:59) Styling the eyes
⌨️ (02:42:42) Drawing the beard
⌨️ (03:22:51) Drawing the nose
⌨️ (03:27:25) Spoiler (I never get the nose to look better)
⌨️ (03:31:35) Drawing hair
⌨️ (03:51:48) Skin, Neck & Body ⌨️ (04:07:43) Drawing the clothes
⌨️ (04:24:15) Some fine-tuning
⌨️ (04:43:00) Drawing the ears
⌨️ (04:53:50) Polishing and commenting code
⌨️ (05:17:41) Camera setup
⌨️ (05:34:27) Image processing: Isolating blue pixels
⌨️ (05:49:36) Moving avatar with camera
⌨️ (05:55:59) Plan for day 2 (Important)
⌨️ (06:02:32) Code refactoring with OOP
⌨️ (06:15:43) Ditching the idea* above and sticking to point A
⌨️ (06:43:07) Linear algebra
⌨️ (06:52:20) Particle system
⌨️ (07:08:57) Constraints (segments)
⌨️ (08:00:50) Dynamic front hair skeleton ⌨️ (08:17:30) Dynamic back hair skeleton
⌨️ (08:31:43) Sliders to control the mouth
⌨️ (08:45:09) Real-time face tracking ⌨️ (09:42:58) Recognizing facial markers
⌨️ (10:03:58) Solving the 'fidgiting' problem by averaging
⌨️ (10:09:14) On averaging points
⌨️ (10:10:14) Side-points of mouth
⌨️ (10:11:56) Quick demo and quick planning
⌨️ (10:13:41) Working with pre-recorded video
⌨️ (10:24:03) Multi-input support in interface
⌨️ (10:57:40) Styling front hair
⌨️ (11:18:13) Styling back hair
⌨️ (11:40:56) Debugging option
⌨️ (11:50:40) Shirt strings ⌨️ (12:00:21) Extensive testing
⌨️ (12:01:34) Final touches
⌨️ (12:09:50) Trying to fix nose, then gave up (too tired & found some bug)
⌨️ (12:30:46) Final testing, writing instructions and last thoughts — Learn to code for free and get a developer job: https://www.freecodecamp.org Read hundreds of articles on programming: https://freecodecamp.org/news

Think Like a Computer Science Professor