Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. OOP and the scope of a class, am I wrong?

OOP and the scope of a class, am I wrong?

Scheduled Pinned Locked Moved The Lounge
designcomgraphicsiotquestion
79 Posts 45 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R raddevus

    honey the codewitch wrote:

    But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be.

    This could be the beginning of a in-depth discussion on Communication. I have to parse the beginning of your sentence very closely and pull out "I'm hearing..." part. You are hearing that from a beginning student, I believe. Now, we can't be sure 1.if the Professors are actually teaching this (that a class is one action / functionality) 2. if it is the way the student is understanding it Let's say it is the latter ( choice 2 above). Now, that may simply mean that the Professor is teaching a concept poorly -- actually doesn't believe that a class is just one action but has somehow inadvertently used words that create a students understanding to be that. From what I remember about Professors and coding, it seems likely that the Professor is actually teaching OOP wrong. Few colleges have Professors which actually program or have been on large teams which have implemented large systems using OOP. However, I could also see that the student learning about OOP sees a simple example (because all University examples are far too simple (because anything large requires too much work on the Professor's part) and assumes that because there is only one functionality in the class along with a phrase the student has heard (Single Responsibility Principle) leads the student to believe that a class must have only one action. So, here we are back at the beginning. We don't know if: 1. The professor is wrong 2. the professor is confusing and the learning lands improperly 3. The student misunderstands on her own. We're down at the bottom, writhing in the Communication pain. :rolleyes: The best thing to do is: Redirect!! And that seems to be what you are doing. Tell the student the proper use of Classes and why they can have more actions. Good luck with Communication. I'm sure that I too have added some form of communication problem while writing this up. :laugh:

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #19

    Maybe the student is wresting with "code blocks" or "delegates": methods as "objects" (of "anonymous" classes). Or at least it would be fun to drop that on them. I was over the moon when I first discovered Clipper "code blocks" (DI before DI).

    "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

    1 Reply Last reply
    0
    • D dandy72

      I used to work with a guy who did so much refactoring that most of his functions came down to one-liners, and all of his classes were focused to an extreme, to the point of being responsible for a single action. Looking at individual classes/functions one-by-one, his code became trivial to read, but the problem this introduced is that there were so many tiny single-purpose classes, the whole thing grew to have the opposite effect and became an unmanageable mess. He understood it very well. But the rest of the team spent way too much time jumping through endless class definitions, trying to find where the real work was being done. I'm hoping those professors aren't following that model.

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #20

      In that case, if you make them all static, put them in related "class libraries", it becomes manageable; like "System.Math".

      "Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I

      1 Reply Last reply
      0
      • R raddevus

        honey the codewitch wrote:

        But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be.

        This could be the beginning of a in-depth discussion on Communication. I have to parse the beginning of your sentence very closely and pull out "I'm hearing..." part. You are hearing that from a beginning student, I believe. Now, we can't be sure 1.if the Professors are actually teaching this (that a class is one action / functionality) 2. if it is the way the student is understanding it Let's say it is the latter ( choice 2 above). Now, that may simply mean that the Professor is teaching a concept poorly -- actually doesn't believe that a class is just one action but has somehow inadvertently used words that create a students understanding to be that. From what I remember about Professors and coding, it seems likely that the Professor is actually teaching OOP wrong. Few colleges have Professors which actually program or have been on large teams which have implemented large systems using OOP. However, I could also see that the student learning about OOP sees a simple example (because all University examples are far too simple (because anything large requires too much work on the Professor's part) and assumes that because there is only one functionality in the class along with a phrase the student has heard (Single Responsibility Principle) leads the student to believe that a class must have only one action. So, here we are back at the beginning. We don't know if: 1. The professor is wrong 2. the professor is confusing and the learning lands improperly 3. The student misunderstands on her own. We're down at the bottom, writhing in the Communication pain. :rolleyes: The best thing to do is: Redirect!! And that seems to be what you are doing. Tell the student the proper use of Classes and why they can have more actions. Good luck with Communication. I'm sure that I too have added some form of communication problem while writing this up. :laugh:

        H Offline
        H Offline
        honey the codewitch
        wrote on last edited by
        #21

        It was an assignment, I think photocopied out of a book but I didn't ask.

        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

        R 1 Reply Last reply
        0
        • 0 0x01AA

          Holy ... Dear Richard, you know me now for a longer time as an English non native. Can you please describe 'ablative gerund' in _very simple words_ for me? Thank you very much in advance ;)

          Greg UtasG Offline
          Greg UtasG Offline
          Greg Utas
          wrote on last edited by
          #22

          English has gerunds (a verb ending in -ing that also functions as a noun) but no ablative case[^].

          Robust Services Core | Software Techniques for Lemmings | Articles
          The fox knows many things, but the hedgehog knows one big thing.

          <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
          <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

          0 1 Reply Last reply
          0
          • J jschell

            lol Apparently it does mean something. I googled it just to be sure. But I still didn't understand what it means.

            0 Offline
            0 Offline
            0x01AA
            wrote on last edited by
            #23

            => Conclusion: You are not native English, at least not british native ;P :laugh:

            1 Reply Last reply
            0
            • Greg UtasG Greg Utas

              English has gerunds (a verb ending in -ing that also functions as a noun) but no ablative case[^].

              Robust Services Core | Software Techniques for Lemmings | Articles
              The fox knows many things, but the hedgehog knows one big thing.

              0 Offline
              0 Offline
              0x01AA
              wrote on last edited by
              #24

              Thank you Sir. But is this also available in easy words ;)

              J 1 Reply Last reply
              0
              • J jschell

                honey the codewitch wrote:

                But I'm hearing that professors are teaching that classes are effectively a single action

                Plural? So someone claims that multiple different teachers are teaching that? And what professors? Community college? Some night school community education classes? High school?

                honey the codewitch wrote:

                Am I wrong here?

                You are correct. But there could be more to it. For example the curriculum could be forced. Especially true for high school type education. They screw around all sorts of ways with teaching reading/math like that using experimental methods which never work. Or just an incompetent teacher. Either not trying or just one that does not have the knowledge.

                H Offline
                H Offline
                honey the codewitch
                wrote on last edited by
                #25

                Yeah plural, as I've seen before in other assignments in the past. CS coursework, last one at a uni in south africa.

                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                J 1 Reply Last reply
                0
                • H honey the codewitch

                  My take: A class should group related data and actions that center around a single concept. A car class might contain 4 Tire class instances as data members, an Engine instance, and a Gearbox instance. Each one has actions relevant to its operation like Engine.Start(), and Wheel.Rotate() But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be. Am I wrong here?

                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                  A Offline
                  A Offline
                  Amarnath S
                  wrote on last edited by
                  #26

                  More than thirty years ago, when OO concepts made were first thought of, everyone jumped onto this, and started talking about OO, without really understanding it; much like [The Emperor's New Clothes - Wikipedia](https://en.wikipedia.org/wiki/The\_Emperor's\_New\_Clothes) Everyone could see the 'clothes' the Emperor was wearing, and talk about their grandeur, but the reality was different. History is said to repeat itself, perhaps in the form of these OO professors of today.

                  1 Reply Last reply
                  0
                  • H honey the codewitch

                    My take: A class should group related data and actions that center around a single concept. A car class might contain 4 Tire class instances as data members, an Engine instance, and a Gearbox instance. Each one has actions relevant to its operation like Engine.Start(), and Wheel.Rotate() But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be. Am I wrong here?

                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                    D Offline
                    D Offline
                    Dave Kreskowiak
                    wrote on last edited by
                    #27

                    OOP? Hell, I'm pissed they never taught anything about debugging techniques or using a debugger! It would make teaching the languages and code much easier if they could see exactly what's changing while the code is running.

                    Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles. Dave Kreskowiak

                    P 1 Reply Last reply
                    0
                    • D Dave Kreskowiak

                      OOP? Hell, I'm pissed they never taught anything about debugging techniques or using a debugger! It would make teaching the languages and code much easier if they could see exactly what's changing while the code is running.

                      Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles. Dave Kreskowiak

                      P Offline
                      P Offline
                      PIEBALDconsult
                      wrote on last edited by
                      #28

                      They also didn't teach building/making complex software systems. We learned on OpenVMS and the debugger is nigh on unusable so it's no surprise they didn't teach it. Learning how to debug without a debugger is much more important anyway.

                      D 1 Reply Last reply
                      0
                      • H honey the codewitch

                        My take: A class should group related data and actions that center around a single concept. A car class might contain 4 Tire class instances as data members, an Engine instance, and a Gearbox instance. Each one has actions relevant to its operation like Engine.Start(), and Wheel.Rotate() But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be. Am I wrong here?

                        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                        E Offline
                        E Offline
                        englebart
                        wrote on last edited by
                        #29

                        The prof is teaching “microServices” I remember seeing a text book purporting to teach OO with C++. I seriously think that a professor took an Introduction to Programming with classic BASIC and converted it paragraph by paragraph to C++. It was horrendous!

                        1 Reply Last reply
                        0
                        • H honey the codewitch

                          My take: A class should group related data and actions that center around a single concept. A car class might contain 4 Tire class instances as data members, an Engine instance, and a Gearbox instance. Each one has actions relevant to its operation like Engine.Start(), and Wheel.Rotate() But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be. Am I wrong here?

                          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                          P Offline
                          P Offline
                          PIEBALDconsult
                          wrote on last edited by
                          #30

                          Use the right paradigm for the right job. And I'll refer to this again for any who haven't read it: Stevey's Blog Rants: Execution in the Kingdom of Nouns[^]

                          1 Reply Last reply
                          0
                          • P PIEBALDconsult

                            They also didn't teach building/making complex software systems. We learned on OpenVMS and the debugger is nigh on unusable so it's no surprise they didn't teach it. Learning how to debug without a debugger is much more important anyway.

                            D Offline
                            D Offline
                            Dave Kreskowiak
                            wrote on last edited by
                            #31

                            I wish they would have taught just the basic technique of outputting suspect variables to the console, but when I was going, they didn't teach even that.

                            Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles. Dave Kreskowiak

                            1 Reply Last reply
                            0
                            • H honey the codewitch

                              My take: A class should group related data and actions that center around a single concept. A car class might contain 4 Tire class instances as data members, an Engine instance, and a Gearbox instance. Each one has actions relevant to its operation like Engine.Start(), and Wheel.Rotate() But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be. Am I wrong here?

                              Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                              C Offline
                              C Offline
                              Christian Graus
                              wrote on last edited by
                              #32

                              When I was learning C++, most college professors knew a bit of C and taught C as C++. I see things have not improved

                              1 Reply Last reply
                              0
                              • 0 0x01AA

                                Thank you Sir. But is this also available in easy words ;)

                                J Offline
                                J Offline
                                Jorgen Andersson
                                wrote on last edited by
                                #33

                                I believe ablative gerund belongs to latin grammar, and there is no such thing as easy latin. But I'm probably wrong though, as I never learned latin.

                                Wrong is evil and must be defeated. - Jeff Ello

                                D 1 Reply Last reply
                                0
                                • H honey the codewitch

                                  My take: A class should group related data and actions that center around a single concept. A car class might contain 4 Tire class instances as data members, an Engine instance, and a Gearbox instance. Each one has actions relevant to its operation like Engine.Start(), and Wheel.Rotate() But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be. Am I wrong here?

                                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                                  G Offline
                                  G Offline
                                  giulicard
                                  wrote on last edited by
                                  #34

                                  honey the codewitch wrote:

                                  Am I wrong here?

                                  No, not at all. A class, in the various languages that contemplate it as a construct, is one of several possible forms of implementing an ADT (Abstract Data Type). Generally data + code, plus some other "automation" to implement inheritance and, consequently, dynamic polymorphism, at least in languages like C++. An ADT is also an opaque structure (like FILE in the C library) in addition to the free functions that operate on it: it does not matter what the "guts/bowels" (hidden part) of a class or structure look like, what matters is the interface with which it allows you to operate, i.e., the functions that accept an explicit or implicit "this".

                                  1 Reply Last reply
                                  0
                                  • H honey the codewitch

                                    My take: A class should group related data and actions that center around a single concept. A car class might contain 4 Tire class instances as data members, an Engine instance, and a Gearbox instance. Each one has actions relevant to its operation like Engine.Start(), and Wheel.Rotate() But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be. Am I wrong here?

                                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                                    Kornfeld Eliyahu PeterK Offline
                                    Kornfeld Eliyahu PeterK Offline
                                    Kornfeld Eliyahu Peter
                                    wrote on last edited by
                                    #35

                                    Your description is very accurate IMHO... Can you - secretly - share the name of the places those professors teaching? I want to ensure my kids don't go near there... :-D

                                    "If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization." ― Gerald Weinberg

                                    "It never ceases to amaze me that a spacecraft launched in 1977 can be fixed remotely from Earth." ― Brian Cox

                                    H 1 Reply Last reply
                                    0
                                    • J Jorgen Andersson

                                      I believe ablative gerund belongs to latin grammar, and there is no such thing as easy latin. But I'm probably wrong though, as I never learned latin.

                                      Wrong is evil and must be defeated. - Jeff Ello

                                      D Offline
                                      D Offline
                                      Derek Hunter
                                      wrote on last edited by
                                      #36

                                      Awesome rabbit-hole :)

                                      1 Reply Last reply
                                      0
                                      • 0 0x01AA

                                        Holy ... Dear Richard, you know me now for a longer time as an English non native. Can you please describe 'ablative gerund' in _very simple words_ for me? Thank you very much in advance ;)

                                        L Offline
                                        L Offline
                                        Lost User
                                        wrote on last edited by
                                        #37

                                        Ha ha! I remember "ablative" and "gerund" from my Latin classes back in the 1950s. So I just put the two words together as a joke. But the joke, it appears, is on me, as there realy is such a thing. But I am not sure exactly what that thing is.

                                        D J 2 Replies Last reply
                                        0
                                        • H honey the codewitch

                                          My take: A class should group related data and actions that center around a single concept. A car class might contain 4 Tire class instances as data members, an Engine instance, and a Gearbox instance. Each one has actions relevant to its operation like Engine.Start(), and Wheel.Rotate() But I'm hearing that professors are teaching that classes are effectively a single action like ReadTextFile and it makes me a lot more irritated than I probably should be. Am I wrong here?

                                          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                                          Richard DeemingR Offline
                                          Richard DeemingR Offline
                                          Richard Deeming
                                          wrote on last edited by
                                          #38

                                          honey the codewitch wrote:

                                          A car class might contain 4 Tire class instances ... Am I wrong here?

                                          Yes - you misspelled "tyre". ;P


                                          "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                                          "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups