Topic -01
Q. What is visual programming and describe its key branches?
Visual programming is a programming paradigm where developers create software by manipulating
graphical elements rather than writing text code. It allows users to build programs by arranging and
connecting visual blocks or symbols, making it more intuitive and accessible, especially for beginners or
for designing complex systems like simulations or user interfaces.
Here are some of the key branches of visual programming:
1. Block-Based Programming: Uses drag-and-drop blocks that snap together to define logic and
functionality. Commonly used in educational tools.
Example: Scratch, MIT App Inventor, Blockly
2. Node-Based Programming: Uses a network of interconnected nodes to define processes and logic. Often
used in graphics, AI, and automation.
Example: Unreal Engine Blueprint, Blender’s Geometry Nodes, Houdini.
3. Flow-Based Programming (FBP): Defines processes as independent components connected by data
flows. Ideal for concurrent and distributed computing.
Example: Node-RED, NoFlo, LabVIEW
4. Diagram-Based Programming: Uses structured diagrams such as UML (Unified Modeling Language) to
represent and execute logic. Frequently used in systems engineering and simulation.
Example: Simulink, Enterprise Architect, Microsoft Visio.
Form-Based Programming: Uses interactive UI elements like buttons, sliders, and forms to build
applications visually. Found in GUI-based app builders.
Example: Microsoft PowerApps, Google AppSheet, Delphi RAD Studio
Q. Give a concept of visual system programming.
Q. Define Visual computing and Visualization.
Visual computing refers to the field of computer science and technology that focuses on the acquisition,
processing, analysis, and synthesis of visual data. It involves the manipulation and understanding of images,
videos, and graphical representations using computer algorithms and techniques.
Visualization is a computational method of extracting meaningful information from complex or voluminous
datasets through the use of interactive graphics and imaging. It is a visual display of information (data), into
visual and geometric forms.
Q 4. Define visual programming language with examples.
A visual programming language (VPL) is a language that is used to develop applications using graphical
components and figures.
There are N numbers of visual programming languages and the few which are in the top list is given below
1. Scratch: This language user can create stories, games, and animations without writing any lines of
code in this we just have to create the logic and assemble the blocks.
2. Blockly: Used to create block-based programming language and editors, and also to generate
code from blocks to javascript, lua, dart, python and PHP etc.
3. mBlock language: It is used in programming robots.
4. Bubble language: It is used to create web applications.
5. Minibloq language: It is used as a graphical programming environment for Arduino.
Q 5. Application of visual programming language.
VPL can be used in multiple domains like multimedia, educational purpose, video games, automation. Let’s
see them in brief:
a. Multimedia:-VPL helps users create multimedia without worrying about the real code or other
complex features. It narrows down to specific functions and with the help of those functions,
multimedia is created.
b. Educational Purpose:-Scratch VPL is used to help students in their projects and make them familiar
with the coding.
c. Video Games:-VPL helps to create the videogames without writing lines of codes Ex- Scratch VPL
is used to make videogames.
Q 6. Advantages and disadvantages of visual programming language.
Advantages:
Easy to convert ideas into reality for example we don’t know how to code so we can start with
VPL(Visual Programming Language). and then switch to actual coding.
Visuals are easy to grasp i.e. to develop something in visual programming language requires less
efforts.
It includes a variety of built in objects that are required while creating something using VPL.
It is a beginner-friendly also anyone will be able to derive the logic without worrying about writing
lines of code.
Disadvantages:
These languages require more memory as they use graphics, as a result, their execution is also slow
and a large amount of memory is occupied by them.
They can only work in an operating system like windows, mac, or any other operating system which
supports graphics.
As the inbuilt functions are not sufficient so you have to add your custom code as a result it is
cumbersome.
Only limited functions are present in these languages.
Adding our custom code as a block requires coding knowledge or else you have to work with limited
functions which are provided with the language.
Q 7. Difference between regular programming languages and visual programming languages.
Regular programming language Visual programming language
It is a programming language that only uses It is a programming language that uses
text. graphics or blocks in place of text.
It is not beginner-friendly language It is a beginner-friendly language
Customization and flexible applications can be There are not that much customizable as the
created using regular languages blocks or graphics that contain the codes are
limited.
These are quite fast as compared to VPL as These are slow as compared to regular
they don’t have graphics. languages as it has graphics.
These require less memory as compared to This requires more memory as it has graphics
VPL so to store them more memory is used
Examples: Javascript, C, C++, Java, Python Examples: Mblock, Blockly, Scratch Etc.
Etc.
Q 8. What is Embedded System Programming.
Q 8. What is embedded System? Write its applications.
An embedded system is a computer system a combination of a computer processor, computer memory, and
input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic
system. It is embedded as part of a complete device often including electrical or electronic hardware and
mechanical parts.
Applications:
Detecting Rash Driving on Highways
Street Light Control
Traffic Signal Control System
Vehicle Tracking
Auto Intensity Control
Home Automation System
Industrial Temperature Control
War Field Spying Robot
Speed Control Unit Designed for a DC Motor
Q. 8. Components of an embedded System?
An embedded system below components –
Microcontroller or Microprocessor: The core processing unit of an embedded system is usually a
microcontroller or microprocessor. These integrated circuits provide the computational power and control
necessary to execute the system's functions.
Memory: Embedded systems include read-only memory (ROM) or flash memory for storing the firmware
or operating system, and random-access memory (RAM) for temporary data storage and execution.
Input Devices: Embedded systems interact with the environment through input devices such as sensors,
switches, buttons, keyboards, touchscreens, or any other means of receiving data or commands from the
user or the system's surroundings.
Output Devices: Embedded systems provide output through various devices such as displays, LEDs,
speakers, actuators, motors, or any other means of presenting information based on the system's operations.
Communication Interfaces: Many embedded systems require communication interfaces to exchange data
with other systems or devices. These interfaces can include serial ports, Ethernet, USB, Bluetooth, Wi-Fi
etc.
Power Supply: Embedded systems need a power supply to operate. This can range from batteries for
portable devices to direct current (DC) power sources.
Timers Counter- Some applications require a delay, like in LED display apps some delay is required so
that LED can continue to blink. For this purpose, timers are used in embedded systems.
Peripherals: Depending on the application, embedded systems may incorporate additional peripherals
such as analog-to-digital converters (ADCs), digital-to-analog converters (DACs), timers, interrupts etc.
Operating System or Firmware: Embedded systems often run on specialized operating systems or
firmware tailored to the specific requirements of the application. These lightweight operating systems or
firmware provide the necessary services and functionalities to control and manage the system's resources
and execute the intended tasks.
Q. 9. What is embedded programming?
Embedded programming refers to the process of developing software specifically designed to run on
embedded systems. Embedded systems are computer systems integrated within other devices or
machinery, serving a dedicated function or performing specific tasks. Embedded programming is also
known as embedded software development or embedded systems programming.
Q. 11. What are the essential components of an embedded system?
The embedded system involves two types of components: Hardware components and software
components. Let us discuss them below:
Hardware: Hardware is the part responsible for connecting data in an embedded system. It consists of
integrated information circuits connecting the controller, power supply, LCD screen, etc.
Software: Application software helps users to use applications operating on the Embedded system by
converting the pre-installed code in the system.
Real-time operating system (RTOS): RTOS monitors the performance of the Embedded system. The
RTOS can be viewed as the part that oversees the coordination of hardware and software, allowing the
processor to operate on a scheduling basis to track progress.
Sensor: The sensor is responsible for measuring and converting physical signals into electrical signals so
that any electronic device can understand this signal.
AD Converter: This converter is capable of converting the data from the sensor into a digital signal.
ASIC Processor: This processor evaluates data for storage in memory.
DA converter: A digital converter that transfers data from an analog data bar processor.
Actuator: This part compares the output from the DA converter with the actual output that has been stored
and approved.
Q. 12. Explain real time embedded system.
Real-time embedded system is an embedded system that is designed to respond to external events within
specific timing constraints. Unlike general-purpose computing systems, real-time embedded systems must
meet strict deadlines and provide timely responses to ensure the correct functioning of the overall system.
There are primarily two types of real time embedded systems i.e. hard and soft. An illustration to explain
this further is −
Hard Real Time Embedded System
This type of system makes sure that all critical processes are completed within the given time frame. This
means that all the delays in the system are strictly time bound. Also, there is little to no secondary memory
and data is stored in short term memory or read only memory. Hard real time systems are used in various
areas such as missiles, airplanes etc.
Soft Real Time Embedded System
These are much less constrictive than hard real time systems but the basic premise is the same i.e critical
processes need to be completed within the given time frame. However, this time frame can be a little
flexible. Soft real time systems are used in various areas such as multimedia, scientific projects etc.
Q. 13. Draw visual programming flowchart.
A flowchart is a visual representation of the sequence of steps and decisions needed to perform a process.
Each step in the sequence is noted within a diagram shape. Steps are linked by connecting lines and
directional arrows.
Q. 14. Define System, Programming and System Program.
System: A system refers to a collection of components or elements that work together to achieve a specific
objective or function. It can be composed of hardware, software, data, processes, people, or a combination of
these elements. Systems can vary in complexity, ranging from simple systems like a thermostat to complex
systems like an operating system.
Programming: Programming involves the process of creating instructions or code that can be executed by a
computer to perform specific tasks or solve problems. It is the act of writing, testing, and maintaining source
code for software applications or systems.
System Program: A system program is software that is designed to manage and control the operation of a
computer system. It typically provides essential functions and services that enable the computer system to
function efficiently and effectively. System programs include operating systems, device drivers, utility
programs, and other software that assists in managing hardware resources.
Q. 15. Give a concept of system programming.
System Programming can be defined as the act of building Systems Software using System Programming
Languages. It involves writing programs that directly manage and control the hardware and software
resources of a computer system, including the operating system, device drivers, and utility programs.
System programmers often work on tasks such as:
Developing operating systems: System programmers contribute to the design and implementation of
operating systems that provide a platform for executing software applications. They work on tasks like
process management, memory management, file systems, and device drivers.
Writing device drivers: Device drivers are software components that enable communication between the
operating system and hardware devices. System programmers write device drivers to ensure proper
interaction and efficient utilization of hardware resources.
Creating system utilities: System programmers develop utility programs that assist in system management,
performance monitoring, debugging, and other administrative tasks. These utilities provide tools and
services for system maintenance and optimization.
Optimizing performance: System programmers optimize the performance of the computer system by fine-
tuning algorithms, improving memory management techniques, and reducing overhead.
Ensuring system security: System programmers work on implementing security measures and mechanisms
to protect the computer system from unauthorized access, malware, and other threats.
Q. 17. Describe components of System Programming.
The following are the components of system programming:
1:- compiler: A program that converts instructions into a machine code or lower level from so that they can
be read and executed by a computer. The process of converting high level programming into machine
language is known as compilation.
2:- Assembler: An assembler is a type of computer program that interprets software programs written in
assembly language into machine language, code and instructions that can be executed by a computer.
3:- Linker: It is the process of combining various pieces of code and data together to form a single
executable file that can be reloaded into the memory.
4:- Loader: Loader is an operating system utility that copies the programs on hard disk to main memory
(RAM). In addition loader also replaces physical addresses with logical addresses .
5:- Macros: A macro is a rule or pattern that specifies how a certain input sequence should be mapped to a
replacement output sequence according to a defined procedure.
6:- Editors: Editors or text editors are software programs that enable the user to create and edit text files.
Editor is a program which inserts, delete, update and add the data.
7:- Debuggers: It is a program used to find and test bugs (errors) in the programs (other programs). A
debugger is also known as debugging tool.
8:- Operating System: Operating system is an interface between user and hardware.
9:- DBMS: Database Management System is software for creating and managing databases. The DBMS
provides users and programmers with a systematic way to create, retrieve, update and manage data.
.
Q. 18. What is software? Describe types of software.
Software refers to a collection of programs, data, and instructions that enable a computer system to perform
specific tasks or functions. It is the essential component of a computer system that provides the instructions
and logic for hardware to execute.
Types of Software:
System Software: System software provides essential functions and services to support the operation of a
computer system. This includes operating systems (e.g., Windows, macOS, Linux), device drivers,
firmware, and utility programs. System software manages hardware resources, facilitates communication
between software and hardware components, and provides a platform for other software applications to run
on.
Application Software: Application software refers to programs designed to perform specific tasks or
applications for end-users. These software applications can vary widely depending on their purpose, and
they include word processors, spreadsheets, web browsers, graphics editors, video players, games, and many
others. Application software is developed to fulfill specific user needs or business requirements.
Programming Software: Programming software consists of tools and applications that assist in the
development, testing, and debugging of other software programs. This category includes Integrated
Development Environments (IDEs) like Visual Studio, Eclipse, and Xcode, as well as compilers, debuggers,
code editors, and version control systems.
Middleware: Middleware software acts as a bridge between the operating system and application software,
providing additional functionalities and services. It facilitates communication and integration between
different software systems and enables interoperability. Examples include database management systems
(DBMS), web servers, and message queuing systems.
Utility Software: Utility software comprises programs designed to perform specific tasks related to system
maintenance, optimization, and security. These include antivirus software, disk cleanup utilities, backup and
recovery tools, file compression software, and system monitoring applications.
Embedded Software: Embedded software is specifically designed to run on embedded systems, which are
dedicated computing devices integrated into other products or systems. This software controls and manages
the embedded system's functionality, such as those found in consumer electronics, automobiles, medical
devices, and industrial equipment.
Q. 19. Difference between application and system software.
Application software System software
Application software is built for specific tasks. System Software maintains the system
resources and gives the path for application
software to run.
While high-level languages are used to write Low-level languages are used to write the
the application software. system software.
While it’s a specific purpose software. It is general-purpose software.
While Without application software system Without system software, the system stops and
always runs. can’t run.
While application software runs as per the System software runs when the system is
user’s request. turned on and stops when the system is turned
off.
Example: Application software is Photoshop, Example: System software is an operating
VLC player, etc. system, etc.
Q. 20. What is Operating System? Write down the evolution and function of Operating System.
Operating system (OS) is system software that manages computer hardware, software resources, and
provides common services for computer programs. It performs all the basic tasks like file management,
memory management, process management, handling input and output, and controlling peripheral devices
such as disk drives and printers.
Evolution of Operating Systems:
Batch Processing Systems: In the early days of computing, the concept of operating systems did not exist.
Users interacted directly with the hardware, manually loading programs and data. Batch processing systems
emerged to automate this process, where users would submit jobs in batches, and the operating system
would execute them one after another without user intervention.
Multiprogramming and Time-Sharing Systems: With the advent of mainframe computers,
multiprogramming systems were introduced. These systems allowed multiple programs to be loaded into the
memory simultaneously, and the CPU would switch between them to increase utilization. Time-sharing
systems took this concept further by allowing multiple users to interact with the computer simultaneously,
sharing its resources.
Multitasking and Multithreading Systems: As computers became more powerful, multitasking operating
systems emerged. These systems allowed multiple tasks or processes to run concurrently, with each process
having its own virtual address space and dedicated resources. Multithreading systems extended this concept
by enabling multiple threads within a single process, allowing for more efficient resource utilization and
parallel execution of tasks.
Client-Server and Distributed Systems: With the growth of networking technologies, operating systems
evolved to support client-server and distributed computing models. These systems enabled the sharing of
resources, data, and processing power across multiple interconnected computers, leading to the development
of network operating systems (NOS) and distributed operating systems (DOS).
Mobile and Embedded Systems: The rise of mobile devices and embedded systems brought about
operating systems specifically designed for theses platforms. Operating systems like Android and iOS were
developed to provide efficient resource management, power optimization, and support for mobile
applications. These systems revolutionized the mobile industry and enabled the widespread use of
smartphones and tablets.
Functions of Operating Systems:
Process Management: The operating system manages the execution of processes, allocating system
resources such as CPU time, memory, and I/O devices. It handles process creation, termination, scheduling,
and synchronization to ensure efficient and orderly execution of programs.
Memory Management: Operating systems are responsible for managing the computer's memory resources.
They allocate and deallocate memory for processes, handle virtual memory management, and provide
mechanisms for memory protection and sharing among processes.
File System Management: Operating systems provide file system management, organizing and controlling
the storage and retrieval of files on secondary storage devices. They handle file creation, deletion, access
permissions, and provide file-related operations such as reading, writing, and searching.
Device Management: Operating systems manage the computer's I/O devices, including handling device
drivers, input/output requests, and maintaining device queues. They provide an abstraction layer that allows
applications to interact with devices without needing to know the low-level details.
User Interface: Operating systems provide user interfaces to enable user interaction with the computer.
This can range from command-line interfaces (CLI) to graphical user interfaces (GUI) or even voice-based
interfaces. The user interface allows users to run applications, manage files, configure settings, and perform
various tasks.
Security and Protection: Operating systems enforce security measures to protect the system and its
resources. They provide authentication and access control mechanisms to ensure that only authorized users
and processes can access specific resources. Operating systems also implement various security features like
firewalls, encryption, and antivirus software to protect against malicious activities.
Networking and Communication: Operating systems facilitate networking and communication between
computers and devices.
Compiled By
Md. Masum Billah
Lecturer
Department of CSE, CBST