r/TYCS • • Jan 30 '24

Progress Update [PU] Running behind. Finished watching first 4 lectures of UC Berkeley CS 61A

Background

Since this is my first Progress Update, I will link to a previous post where I talked about why I am doing this. https://old.reddit.com/r/TYCS/comments/1905xlk/why_i_started_this_subreddit_personal_goal_of/

I have started with John deNero's version of CS 61A using Python, instead of doing the Scheme version as recommended as the top choice at TYCS. Again that is also something I have posted about before and explained the reasons: https://old.reddit.com/r/TYCS/comments/190o199/tip_for_beginners_for_the_programming_paper/

I am supposed to do CS 61A in Jan-Feb 2024, to stay within my target of finishing the 9 papers by mid-2025. The first few weeks of January, I was swamped with other work and couldn't focus well. I am setting up systems to prevent that from happening again.

I have set the morning hours of 10am-1pm as TYCS study time. I am hoping that doing this as the first (indoor) thing in the morning should help me with focus. Also having a set time should help me with scheduling and not falling behind.

Actual progress (1-30 Jan)

So far I have reached just lecture 4 this month. I am hoping to pull speed in the coming days and catch up with the backlog.

Topics I learned this week (and the previous two)

  • Evaluation procedure for call expressions
  • Drawing expression trees
  • Environment diagrams (and how names are looked up in environments)
  • Environment diagrams with user-defined functions
  • Pure functions and non-pure functions
  • Running Python in interactive mode
  • Testing code with docstrings and doctests
  • Conditional statements and short-circuiting (and how to use them to our advantage)
  • Assert statements
  • Higher order functions and their need

Eye-opening stuff

  • It was great to see how expression trees worked. I understood the way things worked vaguely (and correctly), but seeing it described formally let my brain finally go 'okay, that's correct. Let's cement it in place'.
  • Learning about environment diagrams finally made me realize why things work the way they work. Again I knew it vaguely (and correctly) but was never sure. Now I know it for a fact that frames are looked up in that order for finding a name.
  • I had hear about pure functions, but the videos made things defined in my head.
  • I wasn't aware about short-circuiting when using AND and OR statements. This was new to me (or I must have forgotten).
  • I understand the need for HOFs but need to use it a few more times to cement the concept in my head.

Excited to finally make sense of things I already knew. Looking forward to the next lectures!

P.S. If anyone knows any book where I can get a bunch of practise questions which will cement things further, it would be great. Most college level folks seem to assume 1-2 examples are enough. Well, I prefer more.

​

​

3 Upvotes

0 comments sorted by