\[ \begin{align}\begin{aligned}\newcommand\blank{~\underline{\hspace{1.2cm}}~}\\% Bold symbols (vectors)
\newcommand\bs[1]{\mathbf{#1}}\\% Poor man's siunitx
\newcommand\unit[1]{\mathrm{#1}}
\newcommand\num[1]{#1}
\newcommand\qty[2]{#1~\unit{#2}}\\\newcommand\per{/}
\newcommand\squared{{}^2}
\newcommand\cubed{{}^3}
%
% Scale
\newcommand\milli{\unit{m}}
\newcommand\centi{\unit{c}}
\newcommand\kilo{\unit{k}}
\newcommand\mega{\unit{M}}
%
% Percent
\newcommand\percent{\unit{\%}}
%
% Angle
\newcommand\radian{\unit{rad}}
\newcommand\degree{\unit{{}^\circ}}
%
% Time
\newcommand\second{\unit{s}}
\newcommand\s{\second}
\newcommand\minute{\unit{min}}
\newcommand\hour{\unit{h}}
%
% Distance
\newcommand\meter{\unit{m}}
\newcommand\m{\meter}
\newcommand\inch{\unit{in}}
\newcommand\foot{\unit{ft}}
%
% Force
\newcommand\newton{\unit{N}}
\newcommand\kip{\unit{kip}} % kilopound in "freedom" units - edit made by Sri
%
% Mass
\newcommand\gram{\unit{g}}
\newcommand\g{\gram}
\newcommand\kilogram{\unit{kg}}
\newcommand\kg{\kilogram}
\newcommand\grain{\unit{grain}}
\newcommand\ounce{\unit{oz}}
%
% Temperature
\newcommand\kelvin{\unit{K}}
\newcommand\K{\kelvin}
\newcommand\celsius{\unit{{}^\circ C}}
\newcommand\C{\celsius}
\newcommand\fahrenheit{\unit{{}^\circ F}}
\newcommand\F{\fahrenheit}
%
% Area
\newcommand\sqft{\unit{sq\,\foot}} % square foot
%
% Volume
\newcommand\liter{\unit{L}}
\newcommand\gallon{\unit{gal}}
%
% Frequency
\newcommand\hertz{\unit{Hz}}
\newcommand\rpm{\unit{rpm}}
%
% Voltage
\newcommand\volt{\unit{V}}
\newcommand\V{\volt}
\newcommand\millivolt{\milli\volt}
\newcommand\mV{\milli\volt}
\newcommand\kilovolt{\kilo\volt}
\newcommand\kV{\kilo\volt}
%
% Current
\newcommand\ampere{\unit{A}}
\newcommand\A{\ampere}
\newcommand\milliampereA{\milli\ampere}
\newcommand\mA{\milli\ampere}
\newcommand\kiloampereA{\kilo\ampere}
\newcommand\kA{\kilo\ampere}
%
% Resistance
\newcommand\ohm{\Omega}
\newcommand\milliohm{\milli\ohm}
\newcommand\kiloohm{\kilo\ohm} % correct SI spelling
\newcommand\kilohm{\kilo\ohm} % "American" spelling used in siunitx
\newcommand\megaohm{\mega\ohm} % correct SI spelling
\newcommand\megohm{\mega\ohm} % "American" spelling used in siunitx
%
% Inductance
\newcommand\henry{\unit{H}}
\newcommand\H{\henry}
\newcommand\millihenry{\milli\henry}
\newcommand\mH{\milli\henry}
%
% Power
\newcommand\watt{\unit{W}}
\newcommand\W{\watt}
\newcommand\milliwatt{\milli\watt}
\newcommand\mW{\milli\watt}
\newcommand\kilowatt{\kilo\watt}
\newcommand\kW{\kilo\watt}
%
% Energy
\newcommand\joule{\unit{J}}
\newcommand\J{\joule}
%
% Composite units
%
% Torque
\newcommand\ozin{\unit{\ounce}\,\unit{in}}
\newcommand\newtonmeter{\unit{\newton\,\meter}}
%
% Pressure
\newcommand\psf{\unit{psf}} % pounds per square foot
\newcommand\pcf{\unit{pcf}} % pounds per cubic foot
\newcommand\pascal{\unit{Pa}}
\newcommand\Pa{\pascal}
\newcommand\ksi{\unit{ksi}} % kilopound per square inch
\newcommand\bar{\unit{bar}}
\end{aligned}\end{align} \]
Dec 03, 2024 | 327 words | 3 min read
11. Demo
In this module, you will demonstrate the skills and techniques developed in Checkpoints 1 and 2,
showcasing both the processes of encryption and encoding, as well as decryption and decoding.
You will manipulate and process images, handle different image formats, and implement data encoding/decoding techniques.
Topics Covered
Image Processing with Python
Handling Different Image Formats (RGB, Grayscale, RGBA)
Least Significant Bit (LSB) Technique for Data Extraction
Encoding and decoding messages within images using the Least Significant Bit (LSB) technique in Python
Implementing encryption and decryption techniques: Caesar cipher, XOR cipher, Vigenère cipher
Converting between plaintext messages and binary data
Error Handling in Python
Learning Objectives and Course Outcomes
At the end of this module, you will be able to:
Load and validate images in various formats (RGB, Grayscale, RGBA)
Compare two images to identify and highlight pixel-level differences
Implement and apply encryption and decryption using techniques such as the Caesar cipher, XOR cipher, and Vigenère cipher using Python
Convert plaintext messages into binary strings for encoding
Demonstrate encode and decode messages within images using the least significant bit (LSB) technique
These learning objectives are directly connected to the following Course Outcomes:
- CO 1.1:
Visually represent data and derive meaningful information from
data.
- CO 1.3:
Use evidence to develop and optimize solutions. Evaluate
solutions, test and optimize chosen solution based on evidence.
- CO 2.1:
Contribute to team products and discussions.
- CO 2.2:
Reflect on both personal and team’s problem solving/design
approach and process for the purpose of continuous improvement.
- CO 3.1:
Communicate engineering concepts, ideas and decisions effectively
and professionally in diverse ways such as written, visual and oral.
- CO 3.2:
Seek, find, use, and document appropriate and trustworthy
information.
- CO 4.1:
Develop code solutions that address engineering questions and
follow professional programming standards.
- CO 4.2:
Understand and implement basic and intermediate programming
structures: sequential structures, selection structures, repetition
structures, and nested structures.
- CO 4.3:
Create adaptable, reusable programming routines.
- CO 4.4:
Apply design ideas to programming solutions.
- CO 4.5:
Read and apply flowcharts as a visual representation of a
process.