<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>oop Archives - Francesco Lelli %</title> <atom:link href="https://francescolelli.info/tag/oop/feed/" rel="self" type="application/rss+xml" /><link>https://francescolelli.info/tag/oop/</link> <description>Information Management, Computer Science,  Economics, Finance and more</description> <lastBuildDate>Sat, 19 Aug 2023 14:59:51 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod> hourly </sy:updatePeriod> <sy:updateFrequency> 1 </sy:updateFrequency> <generator>https://wordpress.org/?v=6.8.5</generator><image> <url>https://francescolelli.info/wp-content/uploads/2018/11/cropped-InstrumentElement-32x32.jpg</url><title>oop Archives - Francesco Lelli %</title><link>https://francescolelli.info/tag/oop/</link> <width>32</width> <height>32</height> </image> <site
xmlns="com-wordpress:feed-additions:1">156264324</site> <item><title>Integrated Development Environment (IDE): why you need one</title><link>https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/</link> <comments>https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/#respond</comments> <dc:creator><![CDATA[Francesco Lelli]]></dc:creator> <pubDate>Sat, 03 Aug 2019 09:24:24 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[Anaconda]]></category> <category><![CDATA[IDE]]></category> <category><![CDATA[Integrated Development Environment]]></category> <category><![CDATA[Object Oriented Programming]]></category> <category><![CDATA[oop]]></category> <guid
isPermaLink="false">https://francescolelli.info/?p=1562</guid><description><![CDATA[<p>Let&#8217;s talk about Integrated Development Environment and why you need one for your studies. I realized that many non engineering oriented studies teach some coding oriented classes and promote some programming activities among students. However, most of the activities tend to be very basic and the code required for delivering the foreseen assignment(s) is relatively [&#8230;]</p><p>The post <a
href="https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/">Integrated Development Environment (IDE): why you need one</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></description> <content:encoded><![CDATA[<p>Let&#8217;s talk about Integrated Development Environment and why you need one for your studies. I realized that many non engineering oriented studies teach some coding oriented classes and promote some programming activities among students. However, most of the activities tend to be very basic and the code required for delivering the foreseen assignment(s) is relatively small. This approach tend to promote the believe that &#8220;programming is easy&#8221; and that can be done with your text editor and a couple of command lines for compiling your code.</p><p>This maybe be sufficient for deliver one or two assignments but is far from been what is used in &#8220;real life&#8221; for delivering successful projects. Imagine that the project that need to be delivered to your client is about 100.000 lines of code organized in 5.000 files and you are working at it with 5 colleagues that have all different experiences and background. Do you think that a text editor will be sufficient for handling this complexity?</p><div
class="wp-block-image"><figure
class="alignright"><img
fetchpriority="high" decoding="async" width="385" height="258" data-attachment-id="1578" data-permalink="https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/attachment/eclipse-desktop-ide-screenshot/" data-orig-file="https://francescolelli.info/wp-content/uploads/2019/08/Eclipse-desktop-ide-screenshot.jpg" data-orig-size="385,258" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Eclipse-desktop-ide-screenshot" data-image-description="&lt;p&gt;Eclipse: Integrated Development Environment (IDE)&lt;/p&gt;
" data-image-caption="&lt;p&gt;Eclipse: Integrated Development Environment (IDE)&lt;/p&gt;
" data-medium-file="https://francescolelli.info/wp-content/uploads/2019/08/Eclipse-desktop-ide-screenshot-300x201.jpg" data-large-file="https://francescolelli.info/wp-content/uploads/2019/08/Eclipse-desktop-ide-screenshot.jpg" src="https://francescolelli.info/wp-content/uploads/2019/08/Eclipse-desktop-ide-screenshot.jpg?8011c3&amp;8011c3" alt="Eclipse: Integrated Development Environment (IDE)" class="wp-image-1578" srcset="https://francescolelli.info/wp-content/uploads/2019/08/Eclipse-desktop-ide-screenshot.jpg 385w, https://francescolelli.info/wp-content/uploads/2019/08/Eclipse-desktop-ide-screenshot-300x201.jpg 300w" sizes="(max-width: 385px) 100vw, 385px" /><figcaption>Eclipse: Integrated Development Environment (IDE)</figcaption></figure></div><p>The answer is: it is simply impossible. This is the reason why disciplines like software engineering exist and offer some of the most payed jobs to its practitioners. You probably start learning to program writing procedures, or sequence of actions that the computer should perform for you. However, &#8220;real life projects&#8221; use <a
href="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/">Object Oriented Programming (OOP)</a> as basic framework for ensuring that the code can be read and maintained by large groups of developers.</p><p>You may be not interested in learning the intricate details of software development. However, some of the tools that a software engineer use may simplify your life and facilitate the development of the &#8220;few lines of code&#8221; that you have do deliver. This is the case of what is called Integrated Development Environment or IDE in short. You can consider this as a collection of tools that are used for facilitating the development of code.</p><p>Normally each language has his own IDE. For example, if you are a JAVA developer you will probably use Eclipse. If you are a Python developer interest in data science related project you will probably consider Anaconda.</p><p>Your university may not actively promote the use of an IDE for several reasons. Some of the includes:</p><ul
class="wp-block-list"><li>The automation fostered by this approach will bring you &#8220;far from the metal&#8221; and will not let you appreciate how things works.</li><li>The learning curve is too slow. In other words, you will spend more time learning the details of an IDE instead of learning the topics of the course.</li><li>Text based programming will help you developing a good set of habits.</li></ul><div
class="wp-block-image"><figure
class="alignright is-resized"><img
decoding="async" data-attachment-id="1579" data-permalink="https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/attachment/anaconda-ide-getting-started_spyder/" data-orig-file="https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder.png" data-orig-size="1718,1040" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Anaconda-IDE-getting-started_Spyder" data-image-description="&lt;p&gt;Anaconda: Integrated Development Environment (IDE)&lt;/p&gt;
" data-image-caption="&lt;p&gt;Anaconda: Integrated Development Environment (IDE)&lt;/p&gt;
" data-medium-file="https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder-300x182.png" data-large-file="https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder-1024x620.png" src="https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder-1024x620.png?8011c3&amp;8011c3" alt="Anaconda: Integrated Development Environment (IDE)" class="wp-image-1579" width="423" height="255" srcset="https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder-1024x620.png 1024w, https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder-300x182.png 300w, https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder-768x465.png 768w, https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder-600x363.png 600w, https://francescolelli.info/wp-content/uploads/2019/08/Anaconda-IDE-getting-started_Spyder.png 1718w" sizes="(max-width: 423px) 100vw, 423px" /><figcaption>Anaconda: Integrated Development Environment (IDE)</figcaption></figure></div><p>However, independently of the reasons for not using an IDE my suggestion is to try to familiarize with one. If not for your classes, you may want to consider using it for your thesis. You can consider the initial time that you will spend learning the tool(s) as an investment that will pay off during your thesis.</p><p>If you like this idea you can find in these articles you can find a few tips and suggestions on how to set up your IDE for particular projects:</p><ul
class="wp-block-list"><li><a
href="https://francescolelli.info/python/install-anaconda-and-import-libraries-into-the-ide/">IDE for Python in data science related projects </a></li><li>IDE of JAVA for Distributed Applications and Service Oriented Architecture</li></ul><p>In case you are not familiar with OOP, you may find this article useful for familiarize with the concepts:</p><ul
class="wp-block-list"><li><a
href="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/">The basic of Object Oriented Programming </a></li></ul><hr
/><p><em> The use of a proper Integrated Development Environment ( #IDE ) will help you in becoming a #programmer that is familiar with Object Oriented #programming </em><br
/><a
href='https://twitter.com/intent/tweet?url=https%3A%2F%2Ffrancescolelli.info%2Fpython%2Fintegrated-development-environment-ide-why-you-need-one%2F&#038;text=%20The%20use%20of%20a%20proper%20Integrated%20Development%20Environment%20%28%20%23IDE%20%29%20will%20help%20you%20in%20becoming%20a%20%23programmer%20that%20is%20familiar%20with%20Object%20Oriented%20%23programming%20%20&#038;related' target='_blank' rel="noopener noreferrer" >Share on X</a><br
/><hr
/><p>The post <a
href="https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/">Integrated Development Environment (IDE): why you need one</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></content:encoded> <wfw:commentRss>https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id
xmlns="com-wordpress:feed-additions:1">1562</post-id> </item> <item><title>Object Oriented Programming: A curated set of resources</title><link>https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/</link> <comments>https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/#respond</comments> <dc:creator><![CDATA[Francesco Lelli]]></dc:creator> <pubDate>Fri, 02 Aug 2019 11:36:03 +0000</pubDate> <category><![CDATA[Java]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[Abstraction]]></category> <category><![CDATA[code best practices]]></category> <category><![CDATA[Encapsulation]]></category> <category><![CDATA[naming convention]]></category> <category><![CDATA[oop]]></category> <guid
isPermaLink="false">https://francescolelli.info/?p=1573</guid><description><![CDATA[<p>Object Oriented Programming or OOP organizes code around the concept of objects, encapsulating data and functions within cohesive units. Object-Oriented Programming has permeated almost every facet of modern software development. Its principles and concepts are applied in diverse domains, from software architecture and frameworks to user interfaces, game development, real-time systems, and beyond. OOP&#8217;s ability [&#8230;]</p><p>The post <a
href="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/">Object Oriented Programming: A curated set of resources</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></description> <content:encoded><![CDATA[<p>Object Oriented Programming or OOP organizes code around the concept of objects, encapsulating data and functions within cohesive units.</p><p>Object-Oriented Programming has permeated almost every facet of modern software development. Its principles and concepts are applied in diverse domains, from software architecture and frameworks to user interfaces, game development, real-time systems, and beyond. OOP&#8217;s ability to enhance code organization, reusability, and maintainability has solidified its role as a foundational approach in the creation of complex and reliable software systems.</p><p>OOP leverage the concept of <em>Classes</em> and <em>Objects</em> and the following 4 paradigms:</p><figure
class="wp-block-image alignright is-resized"><img
decoding="async" data-attachment-id="1574" data-permalink="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/attachment/java-oops/" data-orig-file="https://francescolelli.info/wp-content/uploads/2019/08/java-oops.png" data-orig-size="557,429" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="java-oops" data-image-description="&lt;p&gt;Object Oriented Programming &lt;/p&gt;
" data-image-caption="&lt;p&gt;Object Oriented Programming &lt;/p&gt;
" data-medium-file="https://francescolelli.info/wp-content/uploads/2019/08/java-oops-300x231.png" data-large-file="https://francescolelli.info/wp-content/uploads/2019/08/java-oops.png" src="https://francescolelli.info/wp-content/uploads/2019/08/java-oops.png?8011c3&amp;8011c3" alt="Object oriented Programming" class="wp-image-1574" width="279" height="215" srcset="https://francescolelli.info/wp-content/uploads/2019/08/java-oops.png 557w, https://francescolelli.info/wp-content/uploads/2019/08/java-oops-300x231.png 300w" sizes="(max-width: 279px) 100vw, 279px" /><figcaption>Object Oriented Programming</figcaption></figure><ul
class="wp-block-list"><li><strong>Abstraction: </strong>a process where you show only “relevant” data and “hide” unnecessary details of an object from the user.</li><li><strong>Encapsulation</strong>: a practice that bind the data with the code that manipulates it and keeps the data and the code safe from external interference</li><li> <strong>Inheritance</strong>: the mechanism by which an object acquires the some (or all) properties of another object.</li><li> <strong>Polymorphism:</strong> a way to process objects differently based on their data type. In other words objects can have the same name for a method but the implementation may differ.</li></ul><p>If you are not familiar with these concepts I would recommend you to watch the following video that explains what is object oriented programming in a few minutes.</p><figure
class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="Object-Oriented Programming, Simplified" width="800" height="450" src="https://www.youtube.com/embed/pTB0EiLXUC8?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div></figure><p>If you are familiar with Python and you want to see how these things work in practice I would recommend to follow the instructions in this video that explains how to create Python Classes using the Spyder IDE:</p><figure
class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="How to Create Python Classes Using the Spyder IDE from Firebox Training" width="800" height="600" src="https://www.youtube.com/embed/Jss3u2s_jKs?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div><figcaption> how to create Python Classes using the Spyder </figcaption></figure><p>In the case you do not know what is an Integrated Developing Environment (IDE) this article will give you the basic and explains <a
href="https://francescolelli.info/python/integrated-development-environment-ide-why-you-need-one/">why you need an IDE</a>.</p><p>If you put attention to the way the author of the video is writing the code you would probably notice that is following a certain naming convention. Some of these conventions are imposed by the compiler and there is no work around that. Other are best practices that will improve the readability of your code. As the majority of the example that you can find in internet follow these conventions I would recommend you to get familiar with the basic as you will save a lot of time in the long run.</p><p>This video introduce the basic (and most popularly accepted) conventions in JAVA. Python follow something similar as well:</p><figure
class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="Java Naming Conventions in Java. Java tutorial for beginners #14" width="800" height="450" src="https://www.youtube.com/embed/RHshkaJxsAc?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div><figcaption>Notes on Naming Conventions</figcaption></figure><p>More resources on naming conventions include:</p><ul
class="wp-block-list"><li><a
href="https://en.wikipedia.org/wiki/Camel_case">Camel Case in Wikipedia</a></li><li><a
href="https://en.wikipedia.org/wiki/Naming_convention_(programming)">Naming Convention on Programming </a></li></ul><p>Clearly this is just the tip of the iceberg of Object Oriented Programming. If you want to know more you could follow this class of MIT OpenCourseWare that should set a more concrete foundation if you are not familiar with the concept at all.</p><figure
class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div
class="wp-block-embed__wrapper"> <iframe
title="8. Object Oriented Programming" width="800" height="450" src="https://www.youtube.com/embed/-DP1i2ZU9gk?feature=oembed&#038;enablejsapi=1&#038;origin=https://francescolelli.info" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div><figcaption>Object Oriented Programming in Python </figcaption></figure><hr
/><p><em> Get the basic of Object Oriented #programming and build better #Software . Practical examples in #Java and #python . #softwaredevelopment #SoftwareEngineer </em><br
/><a
href='https://twitter.com/intent/tweet?url=https%3A%2F%2Ffrancescolelli.info%2Ftutorial%2Fobject-oriented-programming-a-curated-set-of-resources%2F&#038;text=%20Get%20the%20basic%20of%20Object%20Oriented%20%23programming%20and%20build%20better%20%23Software%20.%20Practical%20examples%20in%20%23Java%20and%20%23python%20.%20%23softwaredevelopment%20%23SoftwareEngineer%20&#038;related' target='_blank' rel="noopener noreferrer" >Share on X</a><br
/><hr
/><p>A few more resources that can help you grasping the context surround OOP include the following:</p><ul
class="wp-block-list"><li><a
href="https://en.wikipedia.org/wiki/Object-oriented_programming">Object Oriented Programming in Wikipedia</a></li><li><a
href="https://en.wikipedia.org/wiki/Software_engineering">Software Engineering in Wikipedia</a></li></ul><p>The post <a
href="https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/">Object Oriented Programming: A curated set of resources</a> appeared first on <a
href="https://francescolelli.info">Francesco Lelli</a>.</p> ]]></content:encoded> <wfw:commentRss>https://francescolelli.info/tutorial/object-oriented-programming-a-curated-set-of-resources/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <post-id
xmlns="com-wordpress:feed-additions:1">1573</post-id> </item> </channel> </rss>