V. Anton Spraul
V. Anton Spraul
  • 37
  • 1 547 363
The First Video Game War (3/3) [Tech Wars]
The first video game war pitted the Atari 2600 against the Fairchild Channel F and Magnavox Odyssey 2. In this episode, we'll see how decisions made by Atari, both good and bad, resulted in a resounding victory, and what happened in the aftermath.
If you are coming in late, here's part 1: czcams.com/video/ohbXUbW0wFc/video.html
Part 2: czcams.com/video/K53MaHNIlds/video.html
This is the first story in a new series called TECH WARS, all about the technology battles that shaped recent history. These stories are adapted from a new book I'm writing.
Connect with me:
My site: vantonspraul.com
Twitter: VAntonSpraul
Facebook: ThinkLikeAProg/
zhlédnutí: 1 182

Video

Finding the Best Path (Dijkstra's Algorithm)
zhlédnutí 14KPřed 6 lety
How does a program find the optimal route between two points? This problem comes up in map apps, networking, and lots of other situations. One way to solve it is known as Dijkstra's algorithm. I put all the code at the end of the video, so if you're a non-programmer you can watch up to then to get the general idea. This is another viewer-suggested topic feel free to suggest others. If you like ...
The First Video Game War (2/3) [Tech Wars]
zhlédnutí 584Před 6 lety
The first video game war pitted the Atari 2600 against the Fairchild Channel F and Magnavox Odyssey 2. In this episode, we'll see the different techniques these early consoles used to get graphics on the screen, and how that changed the look and feel of the games. Finally, in episode 3, we'll see how the war was won, and what happened in the aftermath: czcams.com/video/AEjuPnEWVEc/video.html If...
The First Video Game War (1/3) [Tech Wars]
zhlédnutí 1,5KPřed 6 lety
The first video game war pitted the Atari 2600 against the Fairchild Channel F and Magnavox Odyssey 2. In this first episode, we'll discover we led three different companies to develop their own versions of a cartridge-based game console, and meet key players like Ralph Baer and Nolan Bushnell. In episode 2, we'll see the different techniques these early consoles used to get graphics on the scr...
Backtracking (Think Like a Programmer)
zhlédnutí 319KPřed 6 lety
Backtracking is used when you need to find the correct series of choices that will solve a problem. The example I use here is finding one's way through a maze. You can use the basic idea with or without recursion; if you haven't seen my other videos on recursion, start with the first one at czcams.com/video/oKndim5-G94/video.html This topic was a viewer suggestion your suggestions for future vi...
How Mergesort Works -- a fast way to put things in order
zhlédnutí 2,5KPřed 6 lety
Here's another video for both programmers and non-programmers. This one explains a fast way to put things in order called mergesort. If you haven't seen the video on the more common, but slower, ways to sort things, check it out here: czcams.com/video/PY82qqyWJJs/video.html If you like this video and you want to learn more about how computers do what they do without learning programming, check ...
What Is an Algorithm?
zhlédnutí 22KPřed 6 lety
Heading into a series of videos of algorithms, I thought I would make a video that explains to anyone, programmer or not, what an algorithm is. The basics of algorithms are actually pretty simple, as I hope this video makes clear. If you like this video and you want to learn more about how computers do what they do without learning programming, check out my How Software Works book: vantonspraul...
Bottom-Up Programming Solutions (Think Like a Programmer)
zhlédnutí 16KPřed 6 lety
Bottom-up programming is method for solving certain types of programming problems in which the code starts with the smallest pieces of the problem and builds intermediate results up to a full solution. The bottom-up technique is often seen with dynamic programming but can be used in other ways as well. Source code is available through my site: vantonspraul.com/node/97 This video is related to s...
Make Your Own Fun in MMOs (Thinking About Games)
zhlédnutí 994Před 6 lety
What's your favorite way to make your own fun in an MMO? Here are five ways I've enjoyed games outside of what the game intended. Part of my Thinking About Games series.
Dynamic Programming (Think Like a Programmer)
zhlédnutí 68KPřed 6 lety
This video is about a cool technique which can dramatically improve the efficiency of certain kinds of recursive solutions. It's called "dynamic programming." The name isn't very helpful, but as you'll see, it's easy to implement once you understand the basic idea. Your comments and suggestions for future videos are welcome. "Think Like a Programmer" is a book I've written to help programmers w...
The Peg Puzzle Solved (Think Like a Programmer)
zhlédnutí 9KPřed 6 lety
There's a puzzle with 15 holes and 14 pegs that I hadn't solved, and I thought, why am I solving this when I could write a program to solve it for me? You'll see the thoughts behind the program, the mistakes I made along the way, and some discussion of how we should choose approaches that match our programming strengths and weaknesses. Your comments and suggestions for future videos are welcome...
How Software Draws a Line (How Software Works)
zhlédnutí 3,1KPřed 6 lety
This video is about what software has to do to draw a line...an ordinary straight line. Sounds simple, doesn't it? Well, there's a lot more going on than you might think. This video explains the basics behind pixels and gets into what anti-aliasing is and how it works. How Software Works is a book and video series explaining the magic behind software encryption, CGI, video game graphics, and a ...
RUA Programmer? (Think Like a Programmer)
zhlédnutí 2,7KPřed 6 lety
This video is for anyone who is considering learning how to program, and is asking the questions: how do I know if programming is for me? And: how should I get started learning programming? I also talk a little about the new Python Edition of the Think Like a Programmer book, which is more suited for beginners. If you want to read more advice on learning how to program, I have a whole series of...
Practical Big-O Notation (Think Like a Programmer)
zhlédnutí 5KPřed 6 lety
Big-O notation is how the efficiency of algorithms is typically described. Figuring out the O-notation of an algorithm can look tricky, but as this video shows, for the majority of situations, it's pretty straightforward. Your comments and suggestions for future videos are welcome. "Think Like a Programmer" is a book I've written to help programmers with problem solving. If you've found that yo...
World of Warships Aiming Method -- Ghost Ship Targeting
zhlédnutí 33KPřed 6 lety
World of Warships Aiming Method Ghost Ship Targeting
Performance & Efficiency (Think Like a Programmer)
zhlédnutí 6KPřed 6 lety
Performance & Efficiency (Think Like a Programmer)
The Discord App Review
zhlédnutí 15KPřed 7 lety
The Discord App Review
Running With Rifles Co-Op Review
zhlédnutí 667Před 7 lety
Running With Rifles Co-Op Review
Divide & Conquer (Think Like a Programmer)
zhlédnutí 32KPřed 7 lety
Divide & Conquer (Think Like a Programmer)
Shadowrun Chronicles: Boston Lockdown Review for Co-Optimus
zhlédnutí 422Před 8 lety
Shadowrun Chronicles: Boston Lockdown Review for Co-Optimus
Spawning (Thinking About Games)
zhlédnutí 1,7KPřed 8 lety
Spawning (Thinking About Games)
Tom Brady & Linda
zhlédnutí 1,1KPřed 8 lety
Tom Brady & Linda
Tackling a Real-World Problem, Part 2 of 2 (Think Like a Programmer)
zhlédnutí 9KPřed 8 lety
Tackling a Real-World Problem, Part 2 of 2 (Think Like a Programmer)
V-Sync (How Software Works)
zhlédnutí 3,7KPřed 8 lety
V-Sync (How Software Works)
How Software Works: Overview
zhlédnutí 13KPřed 8 lety
How Software Works: Overview
Random Numbers (How Software Works)
zhlédnutí 93KPřed 9 lety
Random Numbers (How Software Works)
Tackling a Real-World Problem, Part 1 of 2 (Think Like a Programmer)
zhlédnutí 20KPřed 9 lety
Tackling a Real-World Problem, Part 1 of 2 (Think Like a Programmer)
Planning Your Problem Solving (Think Like a Programmer)
zhlédnutí 19KPřed 9 lety
Planning Your Problem Solving (Think Like a Programmer)
Think Like a Programmer: What It's All About
zhlédnutí 20KPřed 10 lety
Think Like a Programmer: What It's All About
Different Approaches (Think Like a Programmer)
zhlédnutí 19KPřed 10 lety
Different Approaches (Think Like a Programmer)

Komentáře

  • @priceyt6839
    @priceyt6839 Před 6 dny

    i was able to solve both problems nearly immediately but i still struggle with problem solving in general, and i already apply these concepts 😔

  • @tg8iq954
    @tg8iq954 Před 27 dny

    I have been stuck on the topic of recursion for several days, and now it has finally clicked.

  • @johnnosek731
    @johnnosek731 Před 2 měsíci

    dude - this was the video that actually unlocked the concept of backtracking for me, in a way that I can now start to understand problems going forward. Huge props. I will have to check out your library of videos and i'm not sure if you're still making them but if so I'd love to hear you explain some more concepts. Thanks for making the effort, its much appreciated

  • @kishorpustake6682
    @kishorpustake6682 Před 3 měsíci

    6:10

  • @mdmusaddique_cse7458
    @mdmusaddique_cse7458 Před 3 měsíci

    Splendid explanation!

  • @user-fy7iw5nz8b
    @user-fy7iw5nz8b Před 4 měsíci

    one of the best books i've ever read

  • @nuiben7579
    @nuiben7579 Před 5 měsíci

    Dear CZcams Algorithm, please give me more of these practical SWE videos and less tech influencer garbage

    • @vantonspraul
      @vantonspraul Před 5 měsíci

      Oh, if only we could talk directly to the algorithm...anyway, glad you found it helpful.

  • @hisrafi
    @hisrafi Před 5 měsíci

    okay iam now in my 40s! Getting my popcorn!

    • @vantonspraul
      @vantonspraul Před 5 měsíci

      Never too late to learn something new!

  • @yohanesliong4818
    @yohanesliong4818 Před 6 měsíci

    Thanks for making this informative review.

  • @tanhnguyen2025
    @tanhnguyen2025 Před 7 měsíci

    i have a question. how could u make the while loop with conditions iter and foundoutlet terminates because i didn't see anything to trigger its termination here?

  • @sodakk17
    @sodakk17 Před 7 měsíci

    I can't believe you're making this available for free. Dude, thank you very, very much.

    • @vantonspraul
      @vantonspraul Před 7 měsíci

      Hey, you're welcome. Glad it is helpful content.

  • @sharan9993
    @sharan9993 Před 8 měsíci

    Isnt using a map or dictionary or hash data structure to store better than using an array?

  • @drewwilson8756
    @drewwilson8756 Před 8 měsíci

    Something about the aesthetics of that robot remind me of the ISpy books. Thanks for the fun video. It puts the fun in functional.

  • @Tyler-jd3ex
    @Tyler-jd3ex Před 9 měsíci

    I haven't finished the video but right now, I keep thinking about all of the different paths that you can go down, keep thinking about the recursion... and then once you return you go up the path until you can make another decision based off of where you end up but it's just very... complex when you think about it... I mean the base cases do make a lot of sense but the way I'm thinking about it right now is too hard to grasp, it's almost mind bending.

  • @christineberkemeier47
    @christineberkemeier47 Před 10 měsíci

    Thank you for explaining everything a lot more into detail you made it a lot more easier to understand how to line it up I was trying to explain to my 13 year old son and he could not get it I showed him your video and now he understands the game and he love the game so much now thank you so much!!!!

  • @heteroerectus
    @heteroerectus Před 11 měsíci

    An even better approach is just to make all the right decisions the first time around. Then you never have to backtrack.

    • @vantonspraul
      @vantonspraul Před 11 měsíci

      Ha! For that you'll need a non-deterministic computer. You still don't make only right decisions, but because you make all possible decisions simultaneously, you can pick the one that ends up at the exit.

  • @jamalparker4487
    @jamalparker4487 Před 11 měsíci

    Could you show how the list<int> sample_maze is being generated and called in main? When I called the backtrack function sample_maze[9] is empty.

  • @onemanenclave
    @onemanenclave Před 11 měsíci

    this is great but i wish you could explain the same thing on python :(

    • @onemanenclave
      @onemanenclave Před 11 měsíci

      would be nice if you used a dark or black background too

  • @ArthurCousseau
    @ArthurCousseau Před 11 měsíci

    Really great video, thanks for giving a non-recursive solution, it helps putting things back in perspective. I'm wondering if this can apply to problems that search for a min/max value? For example, the classic "bag" problem which is traditionally solved using more "combinatory-oriented" approaches. (bag can carry at most N kilos and you have many items worth different values and weights, and you want to find the combination of a minimum items that are worth the maximum amount of gold)

    • @vantonspraul
      @vantonspraul Před 11 měsíci

      Thanks! Yes, you could use recursion to solve that problem, which I know as the knapsack problem. The function could have two parameters: a maximum weight (maxWeight), and a list or other structure with all the items (AllItems), each with a weight and value. Also suppose there is an easy way to make a copy of that list without its first item (AllButFirst). The logic would then be, which of these has greater value? A. the recursive call with (maxWeight, AllButFirst) B. the recursive call with (maxWeight - weight of first item in AllItems, AllButFirst) + value of the first item in AllItems The recursion would stop when AllItems has zero items. Something like that.

  • @pradpradprad1
    @pradpradprad1 Před rokem

    I was looking for videos on backtracking.. i did not want to waste my time.. so i scrolled many times before i found a video title that talked about "thinking" about backtracking.. well done sir!!

  • @peterfarrell66
    @peterfarrell66 Před rokem

    Was sent here by Sweigart's recursion book!

  • @fmaylinch
    @fmaylinch Před rokem

    I think that for problem solving it's also very important to know what actions you can do. For example, in the water problem you can pour from one container to the other. In programming you also need to know what instructions you can do, what commands are available, what APIs you can call, and in general what components/pieces/actions are involved/possible in the problem.

    • @vantonspraul
      @vantonspraul Před rokem

      Yes! In the book, I use the example of the fox, goose, and corn puzzle, which has the same issue. If you define your available actions as, "the boat can take the farmer and one item from the west side of the river to the east side," the problem isn't solvable. If you define the actions as, "I have a boat that can travel from one side of the river to the other, and at either end I can embark or disembark so long as I am only carrying one item at a time," the problem is solvable.

  • @okereaforkelvin
    @okereaforkelvin Před rokem

    Still didn't get it...😒

  • @bsal5347
    @bsal5347 Před rokem

    I need some serious help. I can understand how this works but I cant come up with a code by myself.

  • @CreativeSam-cw9sh
    @CreativeSam-cw9sh Před rokem

    New programmers? Sir, I've been writing code for over 20 years. I flunked this module at college. I even had the book at the time, but I was preoccupied with partying. I always struggled to take what was in my head and put it into a plan. I'd always jump straight in and write a bunch of tests and work from there. It worked sometimes.

    • @doublesushi5990
      @doublesushi5990 Před 6 měsíci

      so it is true.. if c0llege loans get forgiven, the g0v is basically just forgiving so more students can party it up.

  • @vishnuks6252
    @vishnuks6252 Před rokem

    Sir,Do you have any online courses?So that anyone can learn in person from you

  • @Jerret17
    @Jerret17 Před rokem

    widce

  • @bobth6095
    @bobth6095 Před rokem

    Goofy ah Mersenne Twister

  • @vidpulse4267
    @vidpulse4267 Před rokem

    this is one of the best explanations I've ever seen. I wish you to keep going on to brush up more information

  • @caiquemoa
    @caiquemoa Před rokem

    its normal to be more depressed after watching this playlist?

    • @vantonspraul
      @vantonspraul Před rokem

      I certainly hope my videos do not induce depression.

    • @caiquemoa
      @caiquemoa Před rokem

      @@vantonspraul your videos are not the peoblem i'm just to dumb to understand then

    • @vantonspraul
      @vantonspraul Před rokem

      @@caiquemoa Oh, come on. If any of the concepts seem too advanced, just find a simpler place to start. If there's anything in particular that you have questions on, let me know.

  • @viveksuman9600
    @viveksuman9600 Před rokem

    I will just write empty iterative functions and assume it solves the problem for my own satisfaction because I still can't trust recursion. lol. This video helped alot. Thanks!

  • @sparklinglate9214
    @sparklinglate9214 Před rokem

    great to know that there is no little gnome throw the dice in my pc btw what is the game name at 1:14

    • @vantonspraul
      @vantonspraul Před rokem

      That is The Secret World, a horror MMO that I was really into at the time. It has since been reborn as the free-to-play Secret World Legends. I don't like the progression system in the new version as much, but honestly the storytelling is the reason to play it anyway.

    • @sparklinglate9214
      @sparklinglate9214 Před rokem

      @@vantonspraul haiya thanks for answer

  • @alexandrenarolles7994

    very instructive! I do really benefit from it!

  • @NadidLinchestein
    @NadidLinchestein Před rokem

    Keep up the videos!

  • @NadidLinchestein
    @NadidLinchestein Před rokem

    It's been 4 years since you last uploaded..

  • @masanaxx
    @masanaxx Před rokem

    Lifesaver! Thanks for this.

  • @zhichanglin3390
    @zhichanglin3390 Před rokem

    Good idea!

  • @risaverc1217
    @risaverc1217 Před rokem

    I have no experience with Programming whatsoever so I have no idea how this would be executed however I thought for the Dept problem the police number would always be 2,4 or 6 for each of these the sum of the other two has to be either 10, 8 or 6 I wonder if a loop could be coded only for numbers to add to those quantities and be different from one another

  • @asifsenecatoronto5428

    Fire #3 , Police #4, Sanitation #5

  • @e4e585
    @e4e585 Před rokem

    Your voice sounds like sheldon 😆

  • @maingoc1632
    @maingoc1632 Před rokem

    Hay quá

  • @davidjohnston4240
    @davidjohnston4240 Před rokem

    This is plain wrong. Software can produce nondeterministic random numbers when the instruction set of the computer has nondeterministic instructions. Every current X86 CPU includes two nondeterministic instructions - RdRand and RdSeed. Software is just an assemblage of CPU instruction and if some the the instructions are nondeterministic then so can the software be nondeterministic.

    • @vantonspraul
      @vantonspraul Před rokem

      What exactly is "plain wrong"? I don't mean to be snarky, but: did you watch the entire video before posting this comment? Starting around 5:20 I talk about how some processors have instructions to produce truly random numbers for use by software; this was still a fairly new feature at the time when I made the video.

    • @DavidJohnston_deadhat
      @DavidJohnston_deadhat Před rokem

      @@vantonspraul I mean it is plain wrong to say software cannot be nondeterministic. Obviously it can be if the underlying instructions include nondeterminstic instructions. Your explanations of the relationship between deterministic software and hardware that grants it access to nondeterministic data is correct, but the characterization of software being always deterministic is not right.

  • @joshingaboutwithjosh

    This helps a tonne thankyou V. Anton

  • @originalhindmost2999

    So far I've been lost with all the practice problems because they involve math, but I've been picking up the concepts.

  • @GenerallyGoodMusic
    @GenerallyGoodMusic Před rokem

    Really well explained, thank you!

  • @fatimahatef7175
    @fatimahatef7175 Před rokem

    This video is very helpful and in the same time exciting 👍🏻

  • @thejesse247
    @thejesse247 Před rokem

    Just found your channel. Thank you for putting amazing teaching content online for free, I would have killed for teachers like you in college.

  • @elij.9801
    @elij.9801 Před rokem

    where can we get the source code?

  • @pzdf8v
    @pzdf8v Před rokem

    Python 3.6 released the "secrets" module. It's a secure non-deterministic RNG that is real easy to use. It's just a easy as the "random" module.

    • @vantonspraul
      @vantonspraul Před rokem

      AFAIK, the secrets module repackages calls to something like os.urandom, which itself is a repackaged call to the underlying operating system to get the random number. So if the OS and hardware supports non-deterministic random numbers, that's what you will get, and if not, you will get a (hopefully well-implemented) software-regenerated pseudorandom number. Point is, the secrets module is not producing the random number itself, and it didn't any new functionality, it just made the ability to call the OS for random numbers more visible, to get programmers to use that feature when strong RNG was needed. You probably already know all this, and I am probably going on too long, I just didn't want someone to read your comment and think that Python had created a non-deterministic RNG in software.

  • @beverlyHillsAgent
    @beverlyHillsAgent Před rokem

    The maze problem is basically solved by depth-first search.