Introduction
The key you hold in your hand is the very door to new lives, adventures, and experiences. Taking its name from the Latin word “door,” Januam invites you and your children to discover your potential and push your limits. As Januam Mentoring, we set out to ensure that modern technologies are used safely and efficiently for children and families. Our goal is to remove the harmful effects of technology and offer positive contributions to the lives of new generations. We see technology not just as a tool but also as a door to the future; this door inspires us to develop children’s social skills and strengthen family bonds.
In our online mentoring courses, we emphasize the importance of learning and using technology. Our computer and software courses provide great opportunities for children to explore technology. Scratch mentoring helps children develop their coding skills in fun and creative ways, while robotics mentoring brings out their engineering and problem-solving talents. Additionally, we develop strategic and concentration skills with chess mentoring. Our reading mentoring reinforces children’s imagination and love of reading. Our digital drawing mentoring allows them to express their artistic talents on digital platforms. With our computer technical mentoring courses, we deepen children’s understanding of technology by enhancing their knowledge of computer hardware and software.
As Januam Mentoring, we aim to ensure that children and young people use technology consciously and effectively. We are by their side at every step of this journey and are proud to support them.
What is Software and Where is it Used?
Software is a set of instructions for computers and other devices. These instructions allow devices to perform specific tasks. Software affects many aspects of our daily lives; it is used everywhere, from smartphones and computers to cars and home appliances. Understanding what software is and where it is used is important. Software is used to control how a device works. For example, a smartphone application allows users to send messages or share photos, while car software can optimize engine performance or manage safety systems. Januam Mentoring aims to teach software in a fun way to children and young people through mentoring programs. With Scratch mentoring, children learn algorithmic thinking by creating games and interactive stories. This helps them improve their creativity and problem-solving skills. Robotics courses offer both mechanical and software training opportunities. By building their own robots, they practice their software skills and combine coding with mechanical design, gaining experience in solving real-world problems.
Januam Mentoring offers great conveniences in teaching software to children. With Scratch mentoring, children learn coding in a fun environment, practicing algorithmic thinking in the game development process. Robotics courses allow them to develop both mechanical and software skills, gaining experience in solving real-world problems.
Examples of Programming Languages
Coding is the process of creating a series of instructions for computers to perform specific tasks. These instructions are written in a specific programming language and executed by computers. Coding forms the basis of software development and enables the development of various applications, websites, games, and software systems. Through coding, complex problems can be solved, and innovative solutions that simplify daily life can be produced. Software developers use their coding skills to carry out important projects in the technology world and lead digital transformation. Coding consists of many different languages. Let’s examine some of them.
Java is a programming language with a wide range of uses. It is especially popular in large-scale software projects. It is preferred in fields such as web applications, big data systems, and game development. Java has a relatively moderate level of difficulty and provides strong type safety. For learners, it allows them to learn basic computer science concepts and offers extensive usage opportunities for professional developers in large-scale projects.
Python is known for being easy to read and learn. It is popular in fields such as data analysis, artificial intelligence, and scientific computing. Python’s flexibility and extensive library support make it ideal for rapid prototyping and developing various applications. This language is suitable for beginner programmers and allows them to easily manage complex algorithms and large data processing.
Scratch is known as a visual programming language and offers an ideal platform for children to learn coding. It is used to create games, interactive stories, and animations. Scratch offers a block-based interface, reducing complexity for beginners. While teaching basic programming concepts, it helps to develop creativity and problem-solving skills.
Each of these languages is designed to meet different needs. While Java provides reliability and performance in large-scale projects, Python is effective in fields such as rapid prototyping and data analysis. Scratch, on the other hand, teaches children the logic of programming while encouraging creative thinking.
![Scratch_transparent](https://januam.org/wp-content/uploads/2024/07/1-1024x576.png)
![python_transparent](https://januam.org/wp-content/uploads/2024/07/2-1024x576.png)
![java_transparent](https://januam.org/wp-content/uploads/2024/07/3-1024x576.png)
Coding and Algorithms with Scratch
Scratch, developed by MIT Media Lab, is a visual programming language specifically designed for children. With its block-based structure, users create programs by combining colorful blocks. Scratch is used in various fields, including education, game development, creating interactive stories, and making virtual simulations.
Scratch Code Blocks and Functions
The basic code blocks used in Scratch:
Control Structures (If, While): Enable certain operations to be performed under specific conditions.
Movement and Position Control: Control the movement of characters or objects.
Sound and Visual Effects: Used to add sound effects and drawing.
Variables and Operators: Used to store data and perform mathematical operations
These blocks help children understand programming logic and learn basic computer science concepts.
Problem Solving and Algorithms with Scratch
While using Scratch, children model real-life problems and develop algorithms to solve these problems. For example, they can create an algorithm to control the movements of a character while making a game or write a program that responds to different events while creating an interactive story. In developing algorithms, children gain step-by-step thinking skills and produce systematic solutions. It is important to follow these steps in the algorithm creation process:
- Problem Identification: First, identify what the problem is and determine the requirements to eliminate the problem.
- Data Collection: Collect and analyze the necessary information to carry out the steps needed to eliminate these deficiencies or mistakes.
- Algorithm Creation: After gathering the necessary information, plan the solution step by step and write the program with Scratch blocks.
- Implementation and Testing: Run the program and observe the results.
- Evaluation and Development: Evaluate the effectiveness of the program and make adjustments if necessary.
This process helps children develop their problem-solving skills and reinforces their logical thinking abilities. They learn to approach real-life problems with these steps, which will assist them in solving the issues they encounter in real life.
Transitioning from Scratch to Python
Scratch is a block-based visual programming language designed especially for children and beginners in programming. On this platform, users can create programs by dragging and dropping blocks of code. Switching from Scratch to Python is a natural step for those who want to learn more advanced programming languages and develop as a programmer. Here are some important points to consider when making the transition from Scratch to Python:
Transition from Image to Text
In Scratch, everything is done with visual blocks. Programs are created by dragging and dropping blocks and connecting them together. In Python, code is written in text. This can be challenging at first, but with practice writing code, this challenge can be overcome. Python’s simple and readable syntax makes this transition easier.
Similarity of Basic Concepts
The basic programming concepts learned in Scratch are also valid in Python. For example, variables, loops, conditional statements and functions are important in both languages. Structures created with “repeat” or “if” blocks in Scratch are realized with for, while loops and if statements in Python.
Understanding Code Structure
In Scratch, the flow of code is determined by the sequence of blocks. In Python, the code structure is determined by indentation. Indentation indicates where blocks of code begin and end, so care must be taken when writing Python.
Debug
In Scratch, errors are usually caused by incorrect ordering of blocks and are immediately visually noticeable. In Python, they can be syntax errors or logic errors. Python indicates where the error is by giving error messages. Learning to read and understand these messages speeds up the debugging process.
Libraries and Modules Python offers a wide range of standard libraries and third-party modules. This allows to realize complex projects that are not possible in Scratch. For example, libraries such as pandas for data analysis, Django for web development or pygame for game development can be used.
Practicing
It is important to practice a lot during the transition to Python. Recoding projects made in Scratch in Python reinforces the concepts learned. Also, online resources, training videos and communities provide great support in this process.
In conclusion, the transition from Scratch to Python can be challenging at the beginning, but with the right approach, it is possible to make it easier. Python’s flexibility and powerful features provide a great opportunity to take your programming skills to the next level.
Python is a high-level programming language focused on readability and simplicity. It owes this to its well-defined conventions.
Python typing conventions
One of the first and most important typing rules in Python is indentation. Indentation occurs when you press a tab or the space key 4 times. The reason indentation is important in Python is that, unlike other programming languages, it determines whether a block of code belongs to a condition, a loop, or a function. In many other programming languages, curly brackets and semicolons are used to indicate which code block belongs where.
The second rule is the PEP 8 Standard. This standard aims to improve the readability and consistency of the code. You can get information about PEP 8 from the link https://peps.python.org/pep-0008/.
The third rule is variable naming. Variables should be meaningful when naming them. It is very important for the readability of the code. And there are certain rules. For example, it cannot start with a number. It cannot be the same as the keywords of that programming language, etc.
Our fourth rule is about comment lines. In Python, comment lines start with a hashtag (#). Comment lines are very important to increase the comprehensibility of the code. For example, by writing what the code does in the comment line, it helps someone who reads that code to understand what it is without reading the whole code.
Our fifth rule is about function and class names. When naming a function, using a name that describes what it does greatly improves readability. Function names should be written in lower case and words should be separated by underscores. Class names should be capitalized in contrast to function names.
The sixth rule is to use spaces. Spacing between operators and variables improves readability.
The fifth and third rules, unlike the first rule, are rules set by the developers and do not have to be written that way. Variable names or function names can be written all small or meaningless. But it seriously damages the readability of the code. Therefore, it is in our best interest to take care to follow these rules. The first rule is Python’s own rule, and a mistake in that rule will directly cause the program to run differently or incorrectly. Therefore, the first rule must be strictly followed.
Now let’s write a simple calculator in Python to understand how it is written and works.
![python_1](https://januam.org/wp-content/uploads/2024/07/1.jpg)
![python_2](https://januam.org/wp-content/uploads/2024/07/2.jpg)
![Python_Output](https://januam.org/wp-content/uploads/2024/07/3.jpg)
This Python code is a simple calculator program that performs basic arithmetic operations. The program performs addition, subtraction, multiplication and division. It asks the user to select one of these operations and enter two numbers, then performs the selected operation and displays the result. Let’s see how the code works step by step.
Function Definitions
At the beginning of the program, functions that perform the four basic arithmetic operations are defined:
sum(x, y): This function adds two numbers and returns the result.
subtraction(x, y): This function subtracts the second number from the first number and returns the result.
multiply(x, y): This function multiplies two numbers and returns the result.
division(x, y): This function divides the first number by the second number and returns the result.
User Selection and Input Retrieval
The program prints a series of instructions on the screen for the user to select the operation they want to perform:
Infinite Loop and User Input
The program uses an infinite loop to get the user’s choice of operation and the numbers to use for the operation. This loop continues until the user makes a valid selection
Input Control and Counting
The selection received from the user must be 1, 2, 3 or 4. If the selection is not one of these values, the program gives an “invalid expression” message. When a valid choice is made, the user is asked to enter two numbers. These numbers are converted to float type and read. If the user enters an invalid input, the program displays an error message and the loop starts over:
Performing Operations and Showing Results
According to the user’s selection, the relevant function is called and the result is printed on the screen:
Do Another Calculation
The program asks if the user wants to perform another calculation. If the user says “no”, the loop ends and the program ends. If the user says “yes”, the loop continues and a new operation can be performed. This program allows to perform basic arithmetic operations in a user-friendly way. It takes the type of operation and numbers from the user, catches errors, displays appropriate messages and prints the results on the screen. It offers a flexible and fault-tolerant structure with infinite loop and user input control.
Java and OOP
Like Python, Java is another versatile programming language that is owned by Oracle and is commonly used in the field of software development and engineering. What makes Java special is its built-in environment called the Java Virtual Machine or JVM in short, allowing Java programs to run on most various operating systems without the need for recompilation. In other words, JVM provides platform independence. Some of the other important features of Java include multithreading, object-oriented programming and secure programming. To grasp the advantages of Java, one must have a basic understanding of the above-mentioned concepts first.
The first concept, multithreading, in Java allows a process to execute multiple parts of a program simultaneously to maximize utilization of the processor. For example, playing the sound effects and rendering graphics in the background while enabling the user to control the character in the game at the same time.
The second concept, secure programming makes sure that the code written in Java can be interpreted by the operating system correctly. This includes but is not limited to, accessing an invalid index of an array or accessing methods according to their defined scope. For example, if a student has 5 pencil cases, requesting the student to hand us the red pen in the 6th pencil case would cause problems, which is dealt with by the Java Runtime Environment in programming.
The third concept, object-oriented programming is used to provide a clear structure for the programs through defined methods and variables, which allows the developer to avoid code-repetition and shorten the development time. Object oriented programming consists of four main concepts, which are abstraction, encapsulation, inheritance and polymorphism. Exploring and identifying usage scenarios of each concept separately is the first step of becoming a better software developer.
Let us first have a look at how a calculator can be implemented in Java using a GitHub project. The calculator class has an empty constructor with four methods defined as add, subtract, multiply and divide all of which implement the operation given two integers. The app file contains a scanner that reads two numbers from the terminal and executes the desired operation with the two numbers. This fairly simple project includes how an object is created, which is the calculator, and how different methods of an object can be implemented such as “calc.subtract(a, b)”. Instead of an if clause, a switch clause is implemented for a faster output. However, illegal arguments such as dividing by zero are not prohibited, hence the application can crash if done so. You can try this introduction to object oriented programming project yourself by clicking on the “GitHub” at the beginning of this paragraph and downloading or pulling the files with git.
Object oriented programming treats a clearly defined object with various reference data types such as integers or arrays to produce results depending on the included methods. This object can be anything like a calculator, an animal with a name, age and hunger, or a human with a name, age and any other variable that you would like to store. In Java, a class is defined with the desired variables along with a constructor to initialize the object in hand. In the same class, methods can be defined such as divide, sleep or play, to be performed by the object. The applied concept has four foundational properties, which are abstraction, encapsulation, inheritance and polymorphism. From now on we will be looking at different examples of each of the concepts using the GitHub project as our source.
Abstraction
This concept allows us to define the skeleton of an object while preventing the user from creating the abstract object. This gives the creator the freedom to create an abstract class without worrying about security breaches or wrong implementation. In the project mentioned above, the OOP folder contains the abstraction directory with an abstract class named animal. The abstract class has the methods eat, sleep, pet and play. The cat class extending the abstract animal class implements these methods accordingly such as the pet method printing out “Purr” in the terminal. Therefore, abstraction provides an object structure with methods that can be implemented by a concrete class such as cat.
Encapsulation
This concept is highly related to security and access modifiers in Java. The two access modifiers in the project are private and public. Private references can neither be accessed nor be modified from outside the class. In the project, the public get balance method returns the balance field. Since the method itself is public and is in the class itself, it has access to the private fields within the class, allowing us to access the balance. Similarly, to modify a private field we would need a public set method that can be used to access the fields within the class. In the encapsulation main file an example usage of a get and set method can be seen.
Inheritance
In Java, inheritance allows methods and fields to be inherited from another class. This results in the same method producing different results due to class differences. Additionally, inheritance also allows for methods that are only defined in the superclass or the parent class to be executed by the child object as well. In the project we can see the superclass, laptop, and the subclass, Lenovo. Notice that the constructor of the child class includes the keyword “super”, which calls the constructor of the parent class as well. Due to the inheritance property, although not explicitly included in the Lenovo class, turn on and turn off methods can be implemented by a Lenovo object as it can be seen in the inheritance main method.
Polymorphism
Polymorphism is the implementation of inheritance with an extra step that allows us to implement the methods of the parent class by explicitly implementing the same method in the child class to produce a different result unlike inheritance. In the project, the polymorphism folder has a parent class named vehicle with child classes bike and car. However, the drive method in the vehicle class is implemented in each of the child classes as well, which results in the execution of the drive method of the child class rather than the parent class. Hence, the execution of the drive method produces a result in accordance with the implementation of the child class.
The four main concepts of OOP in Java reduce code duplication while not only improving the readability of the code but also results in faster compilation time. As shown in inheritance and polymorphism, methods can be inherited avoiding code duplication or inherited with a different implementation allowing more precise implementation.
Result
The importance of software education and the real-life benefits of software languages cannot be overstated. In the digital age, software skills offer a wide range of advantages, from improving problem-solving abilities to encouraging creative thinking. Especially for young people and children, these skills open the door to future career opportunities and enable them to participate effectively in the dynamic nature of the digital world.
In this context, the Robotics and Scratch Mentorships offered by Januam Mentoring are of great importance in raising the innovators and problem solvers of the future. Robotics gives students practical skills in engineering and technology, while Scratch teaches programming basics in a fun and accessible way. These courses are not limited to theoretical knowledge, but allow students to develop their own projects and use their creativity.
Januam Mentoring not only provides students with technical knowledge, but also offers them a gateway to new worlds. These training programs provide the necessary environment for young people to express themselves, develop critical thinking skills and use technology effectively. Robotics and Scratch Mentoring provides children and young people with interdisciplinary thinking skills, helping them to improve their academic achievement and find innovative solutions to the problems they face in their daily lives.
In addition, Januam Mentoring’s mentoring approach adapts to students’ individual learning styles and paces, allowing them to learn at their best. This personalized education model boosts students’ self-confidence and keeps their interest in learning alive. In this way, not only technical skills are acquired, but also a lifelong love of learning is instilled.
Januam Mentoring enables young people and children to acquire the essential skills they need to succeed in the digital world. These courses develop their problem-solving abilities, creative thinking capacity and technical knowledge, training them to become future leaders. Through these training programs, Januam Mentoring helps students discover their potential and establish a firm foothold in the world of technology. In the process, young people and children not only gain new skills, but also step into a future full of unlimited opportunities that the digital world has to offer.
References
- geeksforgeeks. (2024, June 26). Introduction to Java. Retrieved from geeksforgeeks: https://www.geeksforgeeks.org/introduction-to-java/
- w3schools. (n.d.). Java Inheritance. Retrieved from w3schools: https://www.w3schools.com/java/java_inheritance.asp
- https://scratch.mit.edu/
- https://www.scratchfoundation.org/
- https://www.python.org
- https://peps.python.org/pep-0008/
- https://www.learnpython.org
- https://www.w3schools.com/python/python_intro.asp
Author * Yunus Emre Karahalil & Ali Eren Karaca