Mary Elaine Califf
Mary Elaine Califf
  • 100
  • 486 845
Parameter Passing Mechanisms Part 2
Explanation of macro-expansion, pass by name, and pass by need, with examples.
มุมมอง: 726

วีดีโอ

Theoretical vs Actual Program Running Time
มุมมอง 454ปีที่แล้ว
A review of algorithm analysis and a demonstration of comparing actual running times to the theoretical algorithm analysis.
Parameter Passing Mechanisms 1
มุมมอง 1.1Kปีที่แล้ว
Explanation of pass by value, pass by result, pass by value-result, and pass by reference, with some small code examples. Timestamps 00:00​ - Introduction 01:08​ - Pass by Value 03:40​ - Pass by Result 04:46​ - Pass by Result Examples 06:57 - Pass by Value Result 08:43 - Pass by Reference 11:07 - Code Examples Comparing Reference and Value-Result
Does Java Ever Pass by Reference?
มุมมอง 683ปีที่แล้ว
A discussion of Java parameter passing with demonmstrations of what java is really doing with objects: passing the reference by value.
Parameter Passing Introduction
มุมมอง 1.1Kปีที่แล้ว
The beginning of a short subseries on parameter passing in my concepts of programming languages content. Intended for experienced programmers wanting to learn more about parameter passing options across various programming languages.
Creating Random Mazes Using Disjoint Sets
มุมมอง 1.5Kปีที่แล้ว
An explanation of how to use disjoint sets to create random mazes. Disjoint Set Introduction: th-cam.com/video/rO6gPEmhGRQ/w-d-xo.html Path Compression in Disjoint Sets: th-cam.com/video/iR2cf3aPVZU/w-d-xo.html
endl vs '\\n'
มุมมอง 2.3Kปีที่แล้ว
An explanation of the difference between endl and ' ' in C along with discussion of when to use each.
Representing Graphs in the Computer
มุมมอง 714ปีที่แล้ว
Introductory video on representating graphs in the computer including a bit of information on what graphs are and an introduction to both adjacency matrix and adjacency list representation.
File Reading in C++
มุมมอง 982ปีที่แล้ว
How to read files in C with a little information about general file processing in C . Corrected from previous video on this topic in the playlist.
Path Compression in Disjoint Sets
มุมมอง 2.4K2 ปีที่แล้ว
How path compression works in the disjoint set data structure
Disjoint Sets
มุมมอง 2.8K2 ปีที่แล้ว
An introduction to the disjoint set data structure, including arbitrary unions, union by size, and union by height. Generating Random Mazes - th-cam.com/video/xw4KcGsSx44/w-d-xo.html Kruskal's Algorithm for Finding Minimum Spanning Trees - th-cam.com/video/5iBeLKst5bo/w-d-xo.html Timestamps 0:00​ - What we use Disjoint Sets for 0:38 - Important Assumptions 1:01​ - Basic Idea to Implement a Disj...
Function Activation Records
มุมมอง 5K2 ปีที่แล้ว
An introduction to Function Activation Records, both static and dynamic. Correction: in 6:54-9:40, the value in the top activation record (value in main) should be 7, not 2, as it is both before and after that segment. Timestamps 0:00​ - What is an Activation Record? 0:28​ - Data We Need in a Function Activation Record 1:21​ - Static Approach 2:06​ - Advantages to the Static Approach 2:41 - Dra...
Rehashing
มุมมอง 4.4K2 ปีที่แล้ว
A brief explanation of rehashing.
Collision Handling in Hash Tables
มุมมอง 8K2 ปีที่แล้ว
An introduction to basic collision handling techniques for hashing.
Hash Table Basics
มุมมอง 1.5K2 ปีที่แล้ว
An introduction to the basic concept of hashing. Timestamps 0:00 - Cost of Searching Data 0:56 - How to Obtain Constant Time Searches 1:27 - Perfect Hashing 3:02 - Space Concerns with Hash Tables 3:55 - Using Hash Functions to manage Large Key Ranges 6:42 - Handling Collisions (Some of the ways)
Ambiguous Programming Language Grammars
มุมมอง 9K2 ปีที่แล้ว
Ambiguous Programming Language Grammars
Parse Trees
มุมมอง 30K2 ปีที่แล้ว
Parse Trees
Recursion Best Practices
มุมมอง 6482 ปีที่แล้ว
Recursion Best Practices
Recursion Basics
มุมมอง 8472 ปีที่แล้ว
Recursion Basics
For Loops, Functions, and Arrays in Java
มุมมอง 5373 ปีที่แล้ว
For Loops, Functions, and Arrays in Java
Overloading Methods in Java
มุมมอง 3533 ปีที่แล้ว
Overloading Methods in Java
Writing Classes In Java
มุมมอง 1.9K3 ปีที่แล้ว
Writing Classes In Java
Introduction to Grammars and BNF
มุมมอง 71K3 ปีที่แล้ว
Introduction to Grammars and BNF
Object Reference Variables in Java
มุมมอง 2.5K3 ปีที่แล้ว
Object Reference Variables in Java
Naming in Java
มุมมอง 3433 ปีที่แล้ว
Naming in Java
Types in Java
มุมมอง 5553 ปีที่แล้ว
Types in Java
Insertion Sort
มุมมอง 2K3 ปีที่แล้ว
Insertion Sort
Variable Declaration and Assignment in Java
มุมมอง 1.6K3 ปีที่แล้ว
Variable Declaration and Assignment in Java
Getting Started with Java in VS Code
มุมมอง 1.5K3 ปีที่แล้ว
Getting Started with Java in VS Code
Variables in Programming
มุมมอง 5K3 ปีที่แล้ว
Variables in Programming

ความคิดเห็น

  • @minhtanchu240
    @minhtanchu240 9 วันที่ผ่านมา

    Thank you so much professor Califf

    • @maryelainecaliff
      @maryelainecaliff 8 วันที่ผ่านมา

      You are very welcome. Glad you found it helpful.

  • @azadsinghdinkar3951
    @azadsinghdinkar3951 11 วันที่ผ่านมา

    thank you so much for this playlist

    • @maryelainecaliff
      @maryelainecaliff 10 วันที่ผ่านมา

      I'm glad you found the videos helpful

  • @هند-س4ز
    @هند-س4ز 11 วันที่ผ่านมา

    i am very thankful for you , i was losing my mind! until i watched your video❤

    • @maryelainecaliff
      @maryelainecaliff 10 วันที่ผ่านมา

      I'm happy you found it useful!

  • @hurdyga
    @hurdyga 12 วันที่ผ่านมา

    Thanks so much for a video. Clear explanation. Love it

    • @maryelainecaliff
      @maryelainecaliff 10 วันที่ผ่านมา

      I'm glad you found it helpful!

  • @yola1444
    @yola1444 13 วันที่ผ่านมา

    thanks professor my professor was lowk trolling with this one!

  • @pockigit7668
    @pockigit7668 17 วันที่ผ่านมา

    This helped me so much, you explained it really well. Thank you

  • @Salamanca-joro
    @Salamanca-joro 22 วันที่ผ่านมา

    thank you so much for this video

    • @maryelainecaliff
      @maryelainecaliff 22 วันที่ผ่านมา

      I'm glad you found it helpful

  • @bambozi
    @bambozi 29 วันที่ผ่านมา

    Very clear! I love the way you explain it.

  • @mhmmd4286
    @mhmmd4286 หลายเดือนก่อน

    ABSOUELTLY THANK YOU

    • @maryelainecaliff
      @maryelainecaliff หลายเดือนก่อน

      Glad you found it helpful.

  • @NgabiranoMarvinArthur
    @NgabiranoMarvinArthur หลายเดือนก่อน

    I need to know when do we include "term" and "factor" in the parse tree and how are they used.

    • @maryelainecaliff
      @maryelainecaliff หลายเดือนก่อน

      That is purely a matter of looking at the grammar. Each parent and its children must match one of the rules for that nonterminal. And reading across the leaves of the tree from left to right, you must have the "sentence" that you're trying to parse. If both of those things are true, you have a correct parse tree.

  • @NaomyLimatukei
    @NaomyLimatukei หลายเดือนก่อน

    Thanks for the video i love this

  • @lucnguyen4544
    @lucnguyen4544 หลายเดือนก่อน

    Thank you

  • @fikernewberhanu9201
    @fikernewberhanu9201 หลายเดือนก่อน

    This was great explanation. Thanks for the video. Subscribed right after!

    • @maryelainecaliff
      @maryelainecaliff หลายเดือนก่อน

      I'm glad you found it helpful, and hope some of the other videos are as well. I also hope to give you some new content eventually.

  • @abdom.abdellatif4807
    @abdom.abdellatif4807 หลายเดือนก่อน

    very smooth explanation. thanks, Dr.

  • @rhysespieces_
    @rhysespieces_ หลายเดือนก่อน

    You just turned my prof's entire two hour lecture into a fifteen minute video. Thank you so much

    • @maryelainecaliff
      @maryelainecaliff หลายเดือนก่อน

      I'm glad you found it helpful.

  • @AlirezaBagheri-j6g
    @AlirezaBagheri-j6g หลายเดือนก่อน

    I hate BNF.

    • @maryelainecaliff
      @maryelainecaliff หลายเดือนก่อน

      I'm sorry to hear that. It's a useful formalism.

  • @JohnSmith-yv5bn
    @JohnSmith-yv5bn หลายเดือนก่อน

    At 18:25 we expected the difference between memory addresses in neighboring indexes to be 8 bytes, but looks like the difference between index 1 and 2 is only 2 bytes?

    • @maryelainecaliff
      @maryelainecaliff หลายเดือนก่อน

      This is a hexadecimal number (base 16), not a decimal number, so the difference is, in fact, 8 bytes.

  • @smarikabehera9358
    @smarikabehera9358 2 หลายเดือนก่อน

    i have my oops exam tmrw, thankyu for this

    • @maryelainecaliff
      @maryelainecaliff 2 หลายเดือนก่อน

      Glad you found it helpful.

  • @AsmaaDiis
    @AsmaaDiis 2 หลายเดือนก่อน

    I found this video not knowing anything about parse three and guezz what im thrilled getting 2 examples done

  • @juliusgummersbach6391
    @juliusgummersbach6391 2 หลายเดือนก่อน

    This was a great class to refresh my c++ knowledge for my new job. Straight to the point. The timestamps were very helpful to focus on the things I forgot. Thanks a lot!

    • @maryelainecaliff
      @maryelainecaliff 2 หลายเดือนก่อน

      I'm glad you found it helpful, and I have to credit one of my former students for adding the timestamps, which I agree are very useful.

  • @hszr5852
    @hszr5852 3 หลายเดือนก่อน

    It is very similar to Context-Free Grammar!

    • @maryelainecaliff
      @maryelainecaliff 2 หลายเดือนก่อน

      BNF grammars can represent regular, context free, or context sensitive grammars. It's just a different syntax for the grammar that we typically use in theory contexts.

  • @Oglser
    @Oglser 3 หลายเดือนก่อน

    Thanks. The only video that actually made sense after 12 hours of studying gibberish

    • @maryelainecaliff
      @maryelainecaliff 3 หลายเดือนก่อน

      I'm glad you found it helpful.

  • @hossainratul6344
    @hossainratul6344 3 หลายเดือนก่อน

    thank you

  • @coroutinedispatcher
    @coroutinedispatcher 3 หลายเดือนก่อน

    ahhhh feels like university again

    • @maryelainecaliff
      @maryelainecaliff 3 หลายเดือนก่อน

      Definitely who it was created for. ;-)

  • @AlexN2022
    @AlexN2022 3 หลายเดือนก่อน

    still uncreal why this algorithm is O(N). We have O(N) non-leafs to visit, and each may have to go all the way down to the leaf, which means each may need O(logN) swaps. What's stopping ths from being O(N*logN)?

    • @maryelainecaliff
      @maryelainecaliff 3 หลายเดือนก่อน

      The basic idea here is that we know that most of our operations are not operating on the whole tree. We have at most N/2 percolate down operations to do. But half of those are constant time operations, guaranteed to require just one comparison, because they are performed on a node whose children are leaves. And half of the remaining are no more than 2 and so on. We can take advantage of that knowledge to work out the math and see that the number of comparisons for the whole process is actually O(n).

    • @AlexN2022
      @AlexN2022 3 หลายเดือนก่อน

      @@maryelainecaliff so, N/2 total nodes, comprised of: N/4*1 + N/8*2 + N/16*4.. So all parts of the N/2 set may require up to N/4 operations each. Doesn't look like O(N)

    • @maryelainecaliff
      @maryelainecaliff 3 หลายเดือนก่อน

      @@AlexN2022 I recommend 2 things. For intuitive understanding, see what happens with worst case situations (form a max heap from an array sorted in a ascending of moderate size and count). For the math, dig up one of the actual formal proofs from a textbook or website. I am not going to repeat that work here.

  • @kanelupis
    @kanelupis 3 หลายเดือนก่อน

    Underrated series

  • @tejashiremath3458
    @tejashiremath3458 3 หลายเดือนก่อน

    Really Well Explained!

  • @wrrsean_alt
    @wrrsean_alt 3 หลายเดือนก่อน

    Very clear. Thanks!

  • @HenrysCSGO
    @HenrysCSGO 4 หลายเดือนก่อน

    thank you!!

  • @maddiem00032
    @maddiem00032 4 หลายเดือนก่อน

    this is so helpful thank you! finally understand what flushing the buffer actually means

  • @timi_t_codes
    @timi_t_codes 4 หลายเดือนก่อน

    Excellent video/tutorial! Thanks a lot Dr Califf

    • @maryelainecaliff
      @maryelainecaliff 4 หลายเดือนก่อน

      Glad you found it helpful.

  • @kotazkozla253
    @kotazkozla253 5 หลายเดือนก่อน

    słabe niestety eh duzo szczekania malo robienia

  • @bishoywesa6685
    @bishoywesa6685 5 หลายเดือนก่อน

    hello dear ms mary can i contact you privately - iam a begginner want to find ahelp to be a professional progamer and need a hand of help from you if you dont mind. thanks in advance

  • @guilhermecampos8313
    @guilhermecampos8313 5 หลายเดือนก่อน

    Finally someone who doesn't simply say that std::endl flushes the buffer, but explains it in more detail! Thank you very much.

  • @dmytroboiko1
    @dmytroboiko1 5 หลายเดือนก่อน

    thanks a lot! the applications section is very useful!

    • @maryelainecaliff
      @maryelainecaliff 5 หลายเดือนก่อน

      I'm glad you found it helpful.

  • @dmytroboiko1
    @dmytroboiko1 5 หลายเดือนก่อน

    This is great explanation! Thank you very much! 🙏

    • @maryelainecaliff
      @maryelainecaliff 5 หลายเดือนก่อน

      I'm glad you found it helpful.

  • @ferael0013
    @ferael0013 5 หลายเดือนก่อน

    You are an amazing teacher, thank you for this

    • @maryelainecaliff
      @maryelainecaliff 5 หลายเดือนก่อน

      I'm glad you found it helpful.

  • @Fuckyourfeelings-x8x
    @Fuckyourfeelings-x8x 5 หลายเดือนก่อน

    very helpful. thank you

  • @hsoftdev17
    @hsoftdev17 5 หลายเดือนก่อน

    I've coded in C++ but it was ages ago and I've been coding in Java and C# for the last 25 and 15 years respectively. I love this series for all the same reasons as everyone else has said, definitely don't need beginner stuff, just need to understand better how to mentally translate to C++ and to understand the differences. This video says that dynamically allocated arrays are initialized and I'm not sure if it's just different now because of C++20 or something I did wrong, but it doesn't appear to be the case for me. I get some garbage numbers at the beginning of the dynamic and then a pile of zeros instead of it being all zeros like when you showed it. I realize I'm late to this party since all these videos were from a few years ago, but if you are looking for ideas on how to extend this series (or perhaps make a separate series?) I would be very excited to see a series of videos with topics that fit the category of "these are java.util things, and this is how you use C++ STL things that are similar."

    • @maryelainecaliff
      @maryelainecaliff 5 หลายเดือนก่อน

      Dynamic arrays are not generally initialized by default, but they can be initialized with syntax like this: int * myDynIntArray = new int[20]{0}; If I said they were, that was definitely mis-speaking. I'm glad you have found the series useful.

  • @siyabongampongwana990
    @siyabongampongwana990 6 หลายเดือนก่อน

    Thank you for the video, really appreciate it.

  • @pseudolimao
    @pseudolimao 6 หลายเดือนก่อน

    This is it. If you don't understand dijkstra's with heaps, this demystifies it. I just looked at the code implementation and couldn't comprehend it, but this decomposition helped tremendously. The key takeaway is how the priority queue pushes down costly jumps to a node X, so when we get to that item in the queue, that node X will already be "marked" by a shorter path, meaning we can discard that item from the queue, essentially skipping steps. Moreover, since we push "up" the uncostly jumps, our "marks" essentially give us the shortest path to each node, meaning we can stop the algorithm as soon as we have marks equal to the number of nodes. If you imagine a big graph, you're going to "push down" into the queue a bunch of costly items, you're going to "mark" the nodes rather quickly, finding the shortest path as soon as you mark them all, and discarding a considerable amount of items in the process. Notice too, that if you have a huge number of edges, compared to vertices, you're doing a lot of work sorting edges in the queue, that you could spend doing lookups, so intuitively you can start being suspicious that this solution might be equal or worse than the naive approach. I am really pleased with what i unlocked watching this video, thank you Mary. You've also shown me i should, ideally, grab a pen and paper and just go through problems to understand them.

    • @maryelainecaliff
      @maryelainecaliff 6 หลายเดือนก่อน

      I'm glad you found the video helpful. I think you're right that the key to understanding is with the ideas and diagrams, because we don't get bogged down in the specifics of code. Then once we really understand what's going on, it becomes much easier to translate into code (in any language).

    • @pseudolimao
      @pseudolimao 6 หลายเดือนก่อน

      @@maryelainecaliff the code is just that, code for a set of ideas. and some key ideas, especially for these fundamental algorithms' optimized implementations, are very obfuscated within the code. From the array implementation to the priority queue one, the key takeaway is that sorting the queue by edge weight gives us the optimal edge as the first edge we process between those nodes (if one edge is always smaller than two, aka no negative weights), which is almost impossible to decipher this without brute forcing examples in your head/paper or having someone explain it to you, but it's really beautiful once you actually grasp the intention.

  • @anerdindisguise
    @anerdindisguise 6 หลายเดือนก่อน

    Only thing I would recommend is looking at cmake instead of make files. They are closer to the maven/gradle workflows, java/spring developers are use to.

  • @A57278
    @A57278 7 หลายเดือนก่อน

    Dr, why you stopped 😢

    • @maryelainecaliff
      @maryelainecaliff 6 หลายเดือนก่อน

      I've been very busy. I'm hoping to get a few new videos out this summer.

  • @JordanCagle-k9x
    @JordanCagle-k9x 7 หลายเดือนก่อน

    live roger reaction

  • @niranjanm5942
    @niranjanm5942 7 หลายเดือนก่อน

    Explained in a way that's very easy to understand and thanks for not giving the code. Now I can try it on my own and test my understanding

    • @maryelainecaliff
      @maryelainecaliff 7 หลายเดือนก่อน

      That's my goal. I'm glad you found it helpful.

  • @nahombiniam7281
    @nahombiniam7281 7 หลายเดือนก่อน

    I wish I found you 10 years ago

  • @davedition2077
    @davedition2077 7 หลายเดือนก่อน

    Looking for this playlist. Finally found..

    • @maryelainecaliff
      @maryelainecaliff 7 หลายเดือนก่อน

      I hope you find it helpful

  • @mehedihasanshameem5347
    @mehedihasanshameem5347 7 หลายเดือนก่อน

    take love from Bangladesh

  • @syedatifshah8020
    @syedatifshah8020 7 หลายเดือนก่อน

    v.nice you earned a subscriber, your video content is incredible, but I was searching for "attribute grammar" in the context of theory of programming language but I did not find

    • @maryelainecaliff
      @maryelainecaliff 7 หลายเดือนก่อน

      I'm glad you like the content, but attribute grammars are beyond the scope of the classes I currently teach, and I'm still primarily focused on making videos for my current students, though I'm delighted that others find them helpful.

  • @DanielHenriquePeresServejeira
    @DanielHenriquePeresServejeira 7 หลายเดือนก่อน

    By seeing the example of the <if-statement>, I just remembered I've already seen the problem of that way of doing it, that tuns ambiguous using the parse trees, but how we do an unambiguous BNF of <if-statement>? I've already seen the explanation of this problem, using the concepts of matched and unmatched sentences, but I did not understand it very well.