0% found this document useful (0 votes)
0 views16 pages

Group Assignment

The report evaluates Scratch, a visual programming language developed by MIT, highlighting its user-friendly design and suitability for beginners, particularly children. It discusses Scratch's functionality, advantages, and disadvantages, emphasizing its engaging approach to learning programming while also noting limitations such as performance issues and lack of complexity for advanced users. The document serves as a comprehensive guide for understanding Scratch's role in educational and creative contexts.

Uploaded by

seminijayathissa
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views16 pages

Group Assignment

The report evaluates Scratch, a visual programming language developed by MIT, highlighting its user-friendly design and suitability for beginners, particularly children. It discusses Scratch's functionality, advantages, and disadvantages, emphasizing its engaging approach to learning programming while also noting limitations such as performance issues and lack of complexity for advanced users. The document serves as a comprehensive guide for understanding Scratch's role in educational and creative contexts.

Uploaded by

seminijayathissa
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

SCRATCH TOOL

REPORT

UNIVERSITY OF SRI JAYEWARDENEPURA


Faculty of Technology.
1|Page
Department of Information and Communication Technology.
ITC2303 – Visual Application Programming.
Table of Contents
1. Introduction ................................................................................................................................................... 3
1.1 Purpose of the Report ............................................................................................................................... 3
1.2 Selected Visual Programming Language Tool......................................................................................... 3
1.3 Reasons for choosing the Scratch Tool for Study .................................................................................... 3
2. Functionality .................................................................................................................................................. 4
2.1 How does the Scratch Tool Work? .......................................................................................................... 4
2.2 Key features and Components of the Tool ............................................................................................... 4
2.3 Difference Between Scratch Tool and Traditional Text-based Programming Languages....................... 5
3. Pros of the Scratch Tool ................................................................................................................................ 5
3.1 Advantages of the Scratch Tool ............................................................................................................... 5
3.2 How does it Facilitate the Development Process Compared to Text-based Languages? ........................ 6
3.3 Capabilities or Benefits of Scratch Tool .................................................................................................. 6
4. Cons of the Scratch Tool ............................................................................................................................... 6
4.1 Drawbacks of Scratch Tool ...................................................................................................................... 6
4.2 Challenges Users may Encounter while Using Scratch Tool ................................................................... 8
4.3 Scratch Tool Compare to Text-based Languages in Terms of Efficiency and Complexity .................... 9
5. Diagrammatic Description .......................................................................................................................... 11
5.1 Visual Representations (Graphs, Flow charts or Diagrams) .................................................................. 11
5.2 Program Examples Created with the Scratch Tool. ............................................................................... 13
5.3 Visual Aspect of the Scratch Tool.......................................................................................................... 15
6. References..................................................................................................................................................... 16
7. Group Members ........................................................................................................................................... 16

Figure 1:Graph created by using Scratch ........................................................................................................ 11


Figure 2:Flow Chart ........................................................................................................................................... 12
Figure 3:Programmed Example ........................................................................................................................ 15

2|Page
1. Introduction
1.1 Purpose of the Report
• This report aims to investigate and evaluate Scratch's features as a popular pure visual
programming language tool. This document seeks to provide readers a thorough grasp of
Scratch, as well as some of its main characteristics, advantages, and disadvantages. Our goal is to
examine how Scratch can be beneficial for educational and artistic purposes through its unique
programming approach.

1.2 Selected Visual Programming Language Tool


• For this analysis, we have selected Scratch, a pure visual programming language developed by
the Massachusetts Institute of Technology (MIT) Media Lab to make programming simpler and
more fun. Scratch is a high-level block-based visual programming language and it is mainly used
as an educational tool for children. Users can create projects on their website using a block-like
user interface. Scratch is an excellent choice for beginners, especially young learners, because of
its popularity and strong community support.

1.3 Reasons for choosing the Scratch Tool for Study


• We chose Scratch for this study due to several reasons. Firstly, it's known for its user-friendly
design. Its user interface has made it easy for learners of all ages, especially children who are
trying to get a better understanding of visual programming. Secondly, its visual nature
simplifies programming, creating a creative and engaging learning environment. It has
reduced the complexity of text-based languages. Lastly, Scratch has a large active
community that promotes collaboration and sharing of projects. It provides more educational
resources for beginner learners.

3|Page
SCRATCH TOOL REPORT
2. Functionality
2.1 How does the Scratch Tool Work?
• Users build scripts in Scratch by dragging and linking colorful blocks that represent various
coding instructions. Scratch uses a block-based programming paradigm. It's like fitting together
puzzle pieces. By using this method learners can eliminate the need for traditional text-based
coding. By stacking these blocks, users can easily program interactive stories, games and
animations. It's a fun and engaging way to learn programming for beginners.

2.2 Key features and Components of the Tool


• Scratch has a group of basic components which make up its core functions, serving as the
building blocks for its features and capabilities.
1. Stage: This is the background of all scratch projects. Users can set the stage with
different backgrounds and apply various visual effects to enhance the appearance of their
projects. This has a 2D coordinate system which has a horizontal location as X and a
vertical location as Y.
2. Sprite: This is the component which is able to perform an action on the stage. Each sprite
has its own set of instructions and behaviors. There are plenty of sprites in the sprite
library of scratch. Users can also create a new sprite and customize it with different
costumes and sounds to enhance creativity.
3. Script: These are made up of connected blocks and are used to program a sprite to
perform an action. Users can control the sprite’s movements by changing these scripts.
Users can assemble blocks by dragging and dropping to create a script.
4. Block: Blocks can be assembled by users to create a sequence of actions for the sprites.
Scratch offers a vast library of blocks that represent various commands and
functionalities like motions, looks, sounds, controls, and more.

4|Page
SCRATCH TOOL REPORT
2.3 Difference Between Scratch Tool and Traditional Text-based Programming Languages
• There are huge differences between traditional text-based languages and scratch. Users can drag
and drop visual blocks without typing lines of code to create a program. It has made
programming more understandable and enjoyable, especially for beginner learners.
• The visual nature of Scratch eliminates syntax errors which can be a huge problem in text-based
programming languages. So, it allows beginner learners to focus more on logical thinking and
problem-solving skills.
• Scratch's graphical user interface encourages creativity and storytelling. So, it is an excellent tool
for beginner learners who have difficulties in code understanding. So, Scratch has made a
creative and attractive approach to programming which cannot be seen in most text-based
languages.

3. Pros of the Scratch Tool


3.1 Advantages of the Scratch Tool
• Ease of Learning: Scratch's visual drag-and-drop interface simplifies coding concepts, making
it ideal for beginners, especially young learners. The graphical representation of code reduces the
intimidation factor often associated with text-based languages.
• Engaging Creativity: Scratch encourages creativity through visual storytelling, game design,
and animations. Users can focus on expressing their ideas and logic without being bogged down
by syntax intricacies.
• Quick Prototyping: The intuitive nature of Scratch allows for rapid prototyping of ideas. This is
especially useful for experimenting with concepts, trying out variations, and iterating designs.
• Interactive Learning: Scratch promotes hands-on learning by enabling users to see immediate
results as they manipulate visual blocks. This real-time feedback aids in understanding
programming concepts.
• Community and Sharing: Scratch's online platform facilitates a supportive community where
users can share projects, collaborate, and provide feedback. This fosters a sense of belonging and
helps learners grow.
• Cross-Disciplinary Skills: While learning programming, users also develop problem-solving,
logical thinking, and storytelling skills, enhancing their overall cognitive abilities.

5|Page
SCRATCH TOOL REPORT
3.2 How does it Facilitate the Development Process Compared to Text-based Languages?
• Visual Abstraction: Scratch abstracts complex code into visual blocks, reducing syntax errors
and allowing users to focus on high-level logic and creativity.
• Error Minimization: The drag-and-drop nature of Scratch reduces syntax-related errors,
enabling learners to concentrate on core programming concepts.
• Immediate Feedback: Users can test and debug their programs in real-time, identifying and
rectifying issues more effectively than in text-based languages.
• Lower Learning Barrier: Scratch's user-friendly interface lowers the entry barrier for
beginners, making programming accessible to a wider audience.

3.3 Capabilities or Benefits of Scratch Tool


• Multimedia Integration: Scratch seamlessly integrates graphics, sound, and animation,
enabling users to create interactive multimedia projects.
• Educational Focus: Scratch was designed with education in mind, aligning with pedagogical
goals to teach programming concepts in an engaging manner.
• Cross-Platform: Scratch is web-based, eliminating the need for installation. Projects can be
accessed and developed from various devices with an internet connection
• Custom Block Creation: Users can define custom blocks, allowing them to encapsulate
complex behaviors and promote modular programming.
• Offline Mode: Scratch can also be used offline, providing flexibility in learning environments
with limited internet access.

4. Cons of the Scratch Tool


4.1 Drawbacks of Scratch Tool
• By utilizing a visual coding language, users of the Scratch programming environment can produce
interactive stories, games, and animations. Although Scratch has numerous benefits, it also has
several restrictions and drawbacks:
1. Limited Complexity: Scratch is ideal for beginners, especially kids, because it is made to be
straightforward and approachable. However, because of its simplicity, it might not be
appropriate for tasks requiring more complicated or advanced programming. The drawbacks
of the visual coding method could be increasingly obvious as projects get more complicated.
2. Performance: Performance problems may arise when Scratch programmes are run on a web
browser, especially when the projects are too complicated. This might result in lengthy

6|Page
SCRATCH TOOL REPORT
execution times and sporadic lag, especially in projects with numerous simultaneous actions
or intricate animations.
3. Not a Real Coding Language: Scratch doesn't teach a conventional text-based programming
language, but it does assist users in understanding programming fundamentals. If users later
want to switch to more popular programming languages used in commercial software
development, this can be a limitation.
4. Limited for Advanced Users: Programmers with more experience might find Scratch to be
overly restrictive. Within the limitations of Scratch's visual blocks, it is challenging to
integrate advanced programming principles and techniques.
5. Limited to Scratch Platform: Scratch projects are kept on the Scratch website and may only
be accessed and edited online. This can be a drawback if users want to collaborate on
projects outside of the Scratch platform or work offline.
6. Limited Control Over User Interface: For each project, Scratch offers a pre-built user
interface (UI). While this makes UI design simpler for new users, it limits users who desire
more distinctive and customized UI designs.
7. No Direct Integration with External Libraries: Users who want to integrate additional
capabilities or link their projects with external services may find Scratch's lack of direct
interaction with external libraries or APIs to be a restriction.
8. Limited Flexibility in Graphics and Assets: Although Scratch comes with a multitude of
built-in graphics and sound components, users who want to use their own visuals or who
require a greater selection of assets may find Scratch to be restricting.
9. Dependency on Scratch Servers: Projects created with Scratch are kept on Scratch's
servers. The ability of a user to work on or access their projects may be impacted by
downtime or other issues with the Scratch website.
10. Mobile Constraints: While there is a Scratch app for mobile devices, the full Scratch
experience is best suited for desktop or laptop computers. The mobile app has some
limitations and might not offer the same level of functionality as the desktop version.

7|Page
SCRATCH TOOL REPORT
4.2 Challenges Users may Encounter while Using Scratch Tool
• When using the Scratch tool, users—especially beginners—might run into a number of difficulties.
Depending on the user's level of experience and the complexity of the projects they're working on,
these difficulties may change. Typical difficulties include:
1. Understanding Programming Concepts: Variables, loops, and conditionals are basic
programming concepts that beginners may find difficult to understand. It can be difficult
to initially comprehend these notions due to their abstract character.
2. Logic and Problem Solving: Coding logical and functional sequences can be
challenging for beginners. Problem-solving abilities are necessary to understand how
different code blocks interact and lead to desired results.
3. Debugging and Troubleshooting: Identifying and fixing errors in code, commonly
referred to as debugging, is an essential skill. Beginners might encounter syntax errors,
logical errors, or unexpected behaviors that they need to troubleshoot.
4. Complex Projects: Users may find it challenging to control the growing quantity of code
blocks, interactions, and animations as they take on increasingly challenging projects. To
keep the code clear and manageable, it becomes essential to organize and structure it.
5. Project Scope and Planning: It can be difficult to decide what the project should
achieve and how to divide it up into smaller segments. Users could experience
overwhelm and be unsure of where to begin without prior planning.
6. User Interface Design: Within the limitations of Scratch's built-in tools, creating a user
interface (UI) that is both aesthetically pleasing and useful can be challenging. UI design
concepts must be understood as well as creativity while arranging sprites, backgrounds,
and buttons.
7. Implementing Advanced Features: Users may find Scratch's visual blocks restricting
when trying to integrate more complex features like custom algorithms, physics
simulations, or intricate game dynamics.
8. Optimization and Performance: As projects get more complex, users could experience
performance concerns. It takes optimization expertise to guarantee lag-free animations
and interactions.
9. Translating Ideas into Code: It can be difficult to turn a creative notion into a useful
programme. Users could have trouble locating the appropriate code blocks to accurately
realize their concept.

8|Page
SCRATCH TOOL REPORT
10. Sharing and Collaboration: Due to varying coding approaches and communication
breakdowns, sharing and collaborating on projects with others can be difficult.
Integrating suggestions from collaborators can be challenging at first.
11. Version Control: Because Scratch doesn't provide sophisticated version control, it's
difficult to trace changes, go back in time, or work well in larger teams.
12. Learning Curve for New Features: Over time, scratch is updated with additional
functions and enhancements. The user interface may have changed or new functionalities
may be difficult for users to adjust to.
13. Limited Textual Coding Exposure: Users of Scratch may not be familiar with text-
based programming languages, which are more common in commercial software
development, despite the fact that Scratch uses visual blocks for coding.
14. Balancing Creativity and Functionality: It can be challenging to strike a balance
between imaginative storytelling or design and useful programming, particularly when
users want their projects to be both aesthetically pleasing and engaging.

4.3 Scratch Tool Compare to Text-based Languages in Terms of Efficiency and Complexity
• Of course, let's compare Scratch and text-based programming languages in-depth in terms of
effectiveness and complexity:
1. Efficiency:
▪ Scratch:
• Scratch is appropriate for novices, especially kids, as it was created with an
emphasis on use and instruction.
• Users may construct programmes using the drag-and-drop visual interface
without having to type in code, which makes it less error-prone for
newcomers.
• But because Scratch programmes are interpreted rather than compiled, they
may run more slowly.
• The visual blocks' abstraction layer may lead to less efficient code execution.
▪ Text-based Languages:
• Python, Java, and C++ are examples of text-based programming languages
that provide greater direct control over the code and frequently produce more
efficient execution.
• These languages perform better than Scratch's interpreted method because
they are either compiled or translated into machine code.
9|Page
SCRATCH TOOL REPORT
• Memory management and optimization are more in the hands of developers,
which can improve the efficiency of resource-intensive programmes.
2. Complexity:
▪ Scratch:
• Scratch's graphic building blocks offer a user-friendly setting for new
programmers to grasp concepts like loops, conditionals, and events.
• It's a fantastic tool for teaching newbies, especially kids, the logic and
concepts of programming.
• However, as projects become more complicated, Scratch's visual nature may
limit their level of sophistication. Visual representation of sophisticated
algorithms and intricate data structures could be difficult.
▪ Text-based Languages:
• Users of text-based languages must comprehend and employ syntax, which at
first may seem frightening but eventually gives more freedom and power.
• They offer a framework for creating sophisticated and complex software,
including elaborate algorithms, cutting-edge data structures, and massive
projects.
• Text-based languages offer a wider range of programming possibilities, but
with a steeper learning curve.

10 | P a g e
SCRATCH TOOL REPORT
5. Diagrammatic Description
5.1 Visual Representations (Graphs, Flow charts or Diagrams)
➢ Graph drawn by using Scratch

Figure 1:Graph created by using Scratch

11 | P a g e
SCRATCH TOOL REPORT
➢ Flow chart

Figure 2:Flow Chart

• A Scratch program for calculate the perimeter of a rectangle:


1. Create Sprite: Add a sprite to your project. This could represent the rectangle.
2. Coding Steps: Click on the "Code" tab to start coding the sprite.
3. Define Variables: Define two variables: "Length" and "Width." These variables will
store the side lengths of the rectangle.
4. Input Blocks: Use the "ask" block to prompt the user to enter the length and width of the
rectangle.
5. Set Variables: Use the "set" block to assign the input values to the "Length" and "Width"
variables.
6. Calculate Perimeter: Use the "calculate" block to calculate the perimeter of the
rectangle: 2 * (Length + Width).
7. Display Result: Use the "say" block to display the calculated perimeter on the screen.
8. Repeat or End: You can choose to make the program repeat or end based on your
preference.

12 | P a g e
SCRATCH TOOL REPORT
This is a textual representation of the Scratch blocks you might use:

when green flag clicked

ask "Enter length:" and wait

set Length to answer

ask "Enter width:" and wait

set Width to answer

set Perimeter to (2 * (Length + Width))

say "Perimeter:" & Perimeter

5.2 Program Examples Created with the Scratch Tool.


• Let's make a simple Scratch programme to demonstrate how a sprite can move when a key is
pressed: of Learning: Scratch is the perfect tool for novices, especially young learners, as its
visual drag-and-drop interface makes coding ideas simple. Code is represented graphically,
which lessens the intimidation impact that text-based languages frequently have.
1. Open Scratch Editor:
Go to the Scratch website ([Link] and open the Scratch editor.

2. Add a Sprite:
Click on the "Choose a Sprite from Library" button or create a new sprite using the "Paint"
option. For this example, let's use the default sprite named "Sprite1."

3. Coding:
Click on the "Code" tab to open the coding interface for the sprite.

4. Adding Event and Motion Blocks:


Drag and drop the following blocks from the block’s palette to the scripting area:

13 | P a g e
SCRATCH TOOL REPORT
- when green flag clicked
- forever
- if (from the Control category)
- key space pressed? (from the Sensing category)
- change x by (from the Motion category)
- change y by (from the Motion category)

Arrange the blocks like this:

when green flag clicked


forever
if <key space pressed?>
then
change x by (10)
change y by (0)
end
end

5. Running the Program:


Click the green flag at the top of the screen to start the program. Now, whenever you press
the space key, the sprite will move to the right by 10 steps.

6. Adjusting the Program:


You can experiment by changing the amount the sprite moves or adding more conditions to
the program.

14 | P a g e
SCRATCH TOOL REPORT
Figure 3:Programmed Example

5.3 Visual Aspect of the Scratch Tool


➢ Abstraction: Users of Scratch can manipulate blocks with visual representations of programming
concepts (such loops, conditions, variables, and functions) using a block-based programming
interface. This abstraction enables students to concentrate on their programs' high-level logic without
becoming bogged down in minute syntactic specifics.
➢ Immediate Feedback: Users may watch the visual representation of their code changing in real time
as they arrange blocks on the workspace. This quick response aids in a deeper comprehension of
programming principles by enabling students to understand the cause-and-effect link between
various programming parts.
➢ Error Identification: Code errors and defects, including misaligned blocks or faulty connections,
are frequently visible. This promotes a deeper knowledge of the logical structure of their programs
by making it easier for learners to identify and correct faults.
➢ Intuitive Control Flow: Users in Scratch link blocks to regulate the progression of their projects. It
is simple to comprehend how orders are carried out in sequence, within loops, or under certain
conditions thanks to these visible links.
➢ Tangible Representation: Because the visual building components resemble actual building blocks,
programming concepts seem more real and are simpler to work with. Younger students who might
find standard text-based programming languages overwhelming would especially benefit from this.

15 | P a g e
SCRATCH TOOL REPORT
➢ Creativity and Experimentation: The graphical user interface promotes experimentation. Users
can quickly experiment with various block combinations to observe how they interact and produce
various results. This encourages programming inventiveness and playfulness.
➢ Visualization of Data: Users of Scratch can construct and modify variables, which are represented
visually as blocks. This aids students in grasping the idea of manipulating and storing data.
➢ Multimedia Integration: Scratch supports a variety of media components, including animations,
sounds, and graphics. Students can investigate how programming can be utilized to manage and
change multimedia information thanks to the visual aspect of these elements.
➢ Accessibility: Scratch is more accessible to a wider range of learners, including those with learning
difficulties or language barriers, due to its visual nature.
➢ Community Learning: The Scratch community distributes projects and instructions, frequently
with illustrations. Using shared visual examples, this collaborative environment aids learners in
understanding programming principles.

6. References
• About Scratch
o [Link]
• YouTube tutorials for Scratch
o [Link]

7. Group Members

1. ICT/21/941 - [Link]
2. ICT/21/844 - [Link]
3. ICT/21/921 – [Link]
4. ICT/21/922 – [Link]
5. ICT/21/923 – [Link]

****************************************

16 | P a g e
SCRATCH TOOL REPORT

You might also like