0% found this document useful (0 votes)
199 views440 pages

Programming Puzzles For Everyone

For Jen: my wonderful wife of more than 25 years, and her consistent encouragement and support, without which I know I would not have been successful

Uploaded by

allianztrading
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)
199 views440 pages

Programming Puzzles For Everyone

For Jen: my wonderful wife of more than 25 years, and her consistent encouragement and support, without which I know I would not have been successful

Uploaded by

allianztrading
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

Programming Puzzles Big Book

400+ pages of fun for ages 7 to 99!

Jason Turner

This book is available at


https://leanpub.com/programming_puzzles_for_everyone

This version was published on 2025-08-03

© 2025 Jason Turner


For Jen: my wonderful wife of more than 25 years, and her consistent
encouragement and support, without which I know I would not have been
successful.
Contents

Introduction and Puzzles . . . . . . . . . . . . . . . . . . . . . . . . 1

Base Conversion Solutions . . . . . . . . . . . . . . . . . . . . . . . 417

Regular Expression Solutions . . . . . . . . . . . . . . . . . . . . . . 425

Truth Table Solutions . . . . . . . . . . . . . . . . . . . . . . . . . 429

Lisp Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

Python Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

Assembly Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

Math Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

ASCII Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434

Supporters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Introduction and Puzzles
Welcome to the Programming Puzzles Big Book! This book is designed for anyone
who enjoys logic puzzles, math, or has any interest in computer science. My
goal is that anyone from any age group and any language background can learn
these concepts and practice and play with no introduction to them at all.

Each type of puzzle will introduce itself with simple examples, slowly
building and overlapping as concepts cross over between puzzle types.

Of course you can skip around if you like, but I do recommend you do them
at least mostly in order and appreciate the flow I designed :D
Introduction and Puzzles 2

Conversion Examples
-------------------
0b0001 = 1 0b0100 = 4 0b0101 = 5
0b0010 = 2 0b1000 = 8 0b1100 = 12

Conversion Puzzles
------------------
0: 0b0000 = __ ? 5: 0b1001 = __ ?
1: 0b0011 = __ ? 6: 0b1010 = __ ?
2: 0b0111 = __ ? 7: 0b1111 = __ ?
3: 0b0110 = __ ? 8: 0b1110 = __ ?
4: 0b1011 = __ ?

Conversion Examples
-------------------
0x01 = 1 0x04 = 4 0x05 = 5
0x02 = 2 0x08 = 8 0x0C = 12

Conversion Puzzles
------------------
9: 0x09 = __ ? 14: 0x00 = __ ?
10: 0x0B = __ ? 15: 0x06 = __ ?
11: 0x03 = __ ? 16: 0x0A = __ ?
12: 0x0E = __ ? 17: 0x07 = __ ?
13: 0x0F = __ ?
Introduction and Puzzles 3

18: WordSearch 'Algorithmic Techniques'

Y A K S P A L K F Q P D A A E Z R N G S Q I U G
Q S U S D I S T R I B U T E D A L G O R I T H M
S T R A S S E N H E U R I S T I C S E A R C H V
V A K T Q D I V I D E A N D C O N Q U E R J L B
H R E G E N E T I C A L G O R I T H M A R T A S
T D I J K S T R A L P H A B E T A P R U N I N G
L I N E A R P R O G R A M M I N G M I N I M A X
H Z S I M U L A T E D A N N E A L I N G F C L C
M I N I M U M S P A N N I N G T R E E Z M O I M
P I B F V B I N T E G E R P R O G R A M M I N G
N R N B R E A D T H F I R S T S E A R C H A J U
A D I C R A N D O M I Z E D A L G O R I T H M T
I R P M U K D Y N A M I C P R O G R A M M I N G
Z L D E P T H F I R S T S E A R C H M T N C U I
X P R O B A B I L I S T I C A L G O R I T H M I
K O T U G M N R H M K K M Z A X J J Z F A V R C

ALPHABETAPRUNING ASTAR BREADTHFIRSTSEARCH


DEPTHFIRSTSEARCH DIJKSTRA DISTRIBUTEDALGORITHM
DIVIDEANDCONQUER DYNAMICPROGRAMMING
GENETICALGORITHM HEURISTICSEARCH
INTEGERPROGRAMMING LINEARPROGRAMMING MINCUT
MINIMAX MINIMUMSPANNINGTREE PRIM
PROBABILISTICALGORITHM PRUNING
RANDOMIZEDALGORITHM SIMULATEDANNEALING STRASSEN
Introduction and Puzzles 4

Regex Examples
--------------
>>> /a.c/ ~= ['abc', 'adc', 'bac', 'abcd']
Matches: (2) ['abc', 'adc']

Regex Puzzles
-------------
>>> /.ab./ ~= ['aabc', 'badc', 'cabb', 'abzd',
'zabd', 'abcd', 'cabd', 'dbac', 'aabb', 'aab']
19: (5) [__________________________
___________________________________] ?

>>> /..aa../ ~= ['aaaaaa', 'bbaabb', 'aaaaa',


'ababab', 'aaaaaaa']
20: (2) [__________________________
___________________________________] ?

>>> /file.txt/ ~= ['file.txt', 'filetxt',


'fileatxt', 'file']
21: (2) [__________________________
___________________________________] ?

Computing History: 3000 BCE: Abacus developed in


Mesopotamia for arithmetic calculations

https://en.wikipedia.org/wiki/Abacus
Introduction and Puzzles 5

Truth Table Examples


--------------------
a b | (a & b) a b c | (a & b & c)
------------- -------------------
F F | F F F F | F
F T | F F F T | F
T F | F F T F | F
T T | T F T T | F
T F F | F
T F T | F
T T F | F
T T T | T

Truth Table Puzzles


-------------------
Truth Table 22:
a b c d | (a & b & c & d)
-------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___
Introduction and Puzzles 6

Lisp Examples
-------------
>>> (print 42) >>> (print (- 3 1))
42 2

>>> (print (+ 40 2))


42

Lisp Puzzles
------------
>>> (print (+ 1 2 3)) >>> (print (- 12 3 1))
23: __________ ? 24: __________ ?

Computing History: 2700 BCE: Chinese abacus


(suanpan) emerges for mathematical computations

https://en.wikipedia.org/wiki/Suanpan
Introduction and Puzzles 7

Python Examples
---------------
>>> print(42) >>> x = 1 >>> x = 1
42 >>> print(x) >>> x += 4
1 >>> print(x)
5

Python Puzzles
--------------
>>> x = 1 >>> x = 3
>>> y = 4 >>> y = x + 5
>>> print(x + y) >>> print(x + y)
25: __________ ? 26: __________ ?

Computing History: 150 BCE: Antikythera


mechanism built - ancient Greek analog computer

https://en.wikipedia.org/wiki/Antikythera_mechanism
Introduction and Puzzles 8

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outp r0 >>> outp r1
3 4

Assembly Puzzles
----------------
Assembly 27: Assembly 28:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outp r2 >>> outp r2
________________ ? >>> outp r1
>>> outp r0
________________ ?

Computing History: 87 BCE: Roman abacus with


bronze counters used for calculations

https://en.wikipedia.org/wiki/Roman_abacus
Introduction and Puzzles 9

Math Examples
-------------
0b0000 0b0001 0b0010 0b0011
+ 0b0001 + 0b0001 + 0b0001 + 0b0001
-------- -------- -------- --------
0b0001 0b0010 0b0011 0b0100

Math Puzzles
------------
Puzzle 29: Puzzle 31: Puzzle 33:
0b0101 0b0111 0b0100
+ 0b0001 + 0b0001 + 0b0011
-------- -------- --------
0b____ 0b____ 0b____

Puzzle 30: Puzzle 32: Puzzle 34:


0b0110 0b0011 0b0010
+ 0b0001 + 0b0010 + 0b0011
-------- -------- --------
0b____ 0b____ 0b____

Computing History: 190: Counting rods used in


China for mathematical calculations

https://en.wikipedia.org/wiki/Counting_rods
Introduction and Puzzles 10

Python Puzzles
--------------
>>> a = 7
>>> b = 2
>>> c = a + b
>>> print(c)
35: __________ ?

>>> x = 1
>>> y = 2
>>> z = 3
>>> result = x + y + z
>>> print(result)
36: __________ ?

>>> num1 = 10
>>> num2 = 5
>>> sum_result = num1 + num2
>>> print(sum_result)
37: __________ ?

>>> p = 3
>>> q = 4
>>> r = p + q
>>> s = r + 1
>>> print(s)
38: __________ ?

>>> val1 = 8
>>> val2 = 6
>>> val3 = val1 + val2
>>> val4 = val3 + 2
>>> print(val4)
39: __________ ?
Introduction and Puzzles 11

Regex Puzzles
-------------
>>> /c.t/ ~= ['ct', 'cot', 'car', 'cat',
'coat', 'cut', 'cow', 'cart', 'curt', 'cast']
40: (3) [__________________________
___________________________________] ?

>>> /b..k/ ~= ['beak', 'bark', 'bask', 'book',


'bulk', 'bank', 'buck', 'back', 'bunk',
'balk']
41: (10) [__________________________
___________________________________] ?

>>> /...ing/ ~= ['sing', 'typing', 'walking',


'ring', 'going', 'running', 'king', 'playing',
'coming', 'working']
42: (2) [__________________________
___________________________________] ?

>>> /t..n/ ~= ['tan', 'torn', 'ten', 'turn',


'thin', 'tin', 'town', 'twin', 'teen', 'tune']
43: (6) [__________________________
___________________________________] ?

>>> /..x/ ~= ['ax', 'fix', 'tax', 'max',


'box', 'ox', 'wax', 'six', 'fox', 'mix']
44: (8) [__________________________
___________________________________] ?
Introduction and Puzzles 12

Truth Table Examples


--------------------
a b | (a | b) a b c | (a | b | c)
------------- -------------------
F F | F F F F | F
F T | T F F T | T
T F | T F T F | T
T T | T F T T | T
T F F | T
T F T | T
T T F | T
T T T | T

Truth Table Puzzles


-------------------
Truth Table 45:
a b c d | (a | b | c | d)
-------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___
Introduction and Puzzles 13

ASCII
-----

ASCII 46:
65 71 73 76 69
__ __ __ __ __

ASCII 47:
83 80 82 73 78 84
__ __ __ __ __ __

ASCII 48:
82 69 84 82 79 83 80 69 67 84 73 86 69
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 49:
77 69 69 84 73 78 71
__ __ __ __ __ __ __

Computing History: 830: Persian mathematician


Al-Khwarizmi develops algebra

https://en.wikipedia.org/wiki/Muhammad_ibn_Musa_al-Khwarizmi
Introduction and Puzzles 14

Assembly Puzzles
----------------
Assembly 50: Assembly 52:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 10 r0: 7 0: 20 r0: 17
1: 11 r1: 8 1: 21 r1: 18
2: 12 r2: 9 2: 22 r2: 19
>>> outp r0 >>> outp r1
>>> outp r1 >>> outp r2
________________ ? >>> outp r0
________________ ?

Assembly 51: Assembly 53:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 15 r0: 12 0: 25 r0: 22
1: 16 r1: 13 1: 26 r1: 23
2: 17 r2: 14 2: 27 r2: 24
>>> outp r2 >>> outp r0
>>> outp r0 >>> outp r2
________________ ? >>> outp r1
>>> outp r0
________________ ?
Introduction and Puzzles 15

Conversion Puzzles
------------------
54: 7 = 0b____ ? 62: 0b1110 = __ ?
55: 0b1101 = __ ? 63: 12 = 0b____ ?
56: 5 = 0b____ ? 64: 1 = 0b____ ?
57: 0b1010 = __ ? 65: 2 = 0b____ ?
58: 0b0110 = __ ? 66: 0b0000 = __ ?
59: 0b1111 = __ ? 67: 0b0011 = __ ?
60: 0b0100 = __ ? 68: 0b1011 = __ ?
61: 8 = 0b____ ? 69: 0b1001 = __ ?

Conversion Puzzles
------------------
70: 13 = 0x__ ? 78: 7 = 0x__ ?
71: 10 = 0x__ ? 79: 0x05 = __ ?
72: 0x0B = __ ? 80: 3 = 0x__ ?
73: 0x09 = __ ? 81: 0x0F = __ ?
74: 8 = 0x__ ? 82: 0 = 0x__ ?
75: 12 = 0x__ ? 83: 1 = 0x__ ?
76: 14 = 0x__ ? 84: 6 = 0x__ ?
77: 4 = 0x__ ? 85: 0x02 = __ ?

Computing History: 1100: Chinese mechanical


clock with escapement mechanism

https://en.wikipedia.org/wiki/Mechanical_clock
Introduction and Puzzles 16

Lisp Puzzles
------------
>>> (print (+ 5 7)) >>> (print (+ 3 4 5))
86: __________ ? 88: __________ ?

>>> (print (- 20 8)) >>> (print (- 15 2 3))


87: __________ ? 89: __________ ?

Computing History: 1206: Al-Jazari creates


programmable automata and mechanical devices

https://en.wikipedia.org/wiki/Al-Jazari
Introduction and Puzzles 17

Python Puzzles
--------------
>>> x = 4
>>> y = 6
>>> z = x + y
>>> w = z + 1
>>> print(w)
90: __________ ?

>>> base = 5
>>> increment = 3
>>> total = base + increment
>>> final = total + 2
>>> print(final)
91: __________ ?

>>> a = 9
>>> b = 3
>>> c = a + b
>>> d = c + 4
>>> e = d + 1
>>> print(e)
92: __________ ?

>>> first = 2
>>> second = 7
>>> third = first + second
>>> fourth = third + 3
>>> result = fourth + 1
>>> print(result)
93: __________ ?
Introduction and Puzzles 18

94: WordSearch 'Open Source'

K H I V M F C W Q W W L G M C G W H B K E M R U
E F R E E S O F T W A R E I S C O M M U N I T Y
F E D O R A C M O P E N C O M M U N I T Y H V I
E O S P G C O M M I T D S O U R C E F O R G E E
G P O E E D N M I T R A N S P A R E N C Y B R S
F E U N E X T E N S I O N P U L L R E Q U E S T
X N R S K E R N E L K A B U G T R A C K E R I D
I S C O N T I N U O U S D E P L O Y M E N T O S
N T E U P S B B R A N C H F R A M E W O R K N S
S A C R W V U F L I C E N S E R E A D M E V C F
W N O C O N T I N U O U S I N T E G R A T I O N
S D D E T F I P U R E P O S I T O R Y P D S N M
X A E U O C O L L A B O R A T I O N G C S R T W
N R H R C O N T R I B U T O R G P L U G I N R T
X D K P A C K A G E R D O C U M E N T A T I O N
S S C O D N Y R R M P G S E K B D V W T Q A L P

BRANCH BSD BUGTRACKER CICD COLLABORATION COMMIT


COMMUNITY CONTINUOUSDEPLOYMENT
CONTINUOUSINTEGRATION CONTRIBUTION CONTRIBUTOR
DOCUMENTATION EXTENSION FEDORA FORK FOSS
FRAMEWORK FREESOFTWARE GPL KERNEL LICENSE MERGE
MIT OPENCOMMUNITY OPENSOURCE OPENSTANDARDS
PACKAGE PLUGIN PULLREQUEST README REPOSITORY
SOURCECODE SOURCEFORGE SVN TRANSPARENCY UBUNTU
VERSIONCONTROL
Introduction and Puzzles 19

Regex Puzzles
-------------
>>> /....le/ ~= ['simple', 'little', 'apple',
'handle', 'middle', 'table', 'bottle',
'purple', 'candle', 'circle']
95: (8) [__________________________
___________________________________] ?

>>> /st..e/ ~= ['stove', 'state', 'style',


'stripe', 'stone', 'stale', 'store', 'strike',
'stage', 'stake']
96: (8) [__________________________
___________________________________] ?

>>> /..o../ ~= ['short', 'photo', 'front',


'story', 'movie', 'phone', 'floor', 'about',
'close', 'color']
97: (8) [__________________________
___________________________________] ?

>>> /p...t/ ~= ['party', 'pilot', 'paint',


'patch', 'point', 'peace', 'plant', 'proxy',
'pound', 'print']
98: (5) [__________________________
___________________________________] ?

>>> /....er/ ~= ['sister', 'farmer', 'player',


'mother', 'worker', 'driver', 'father',
'writer', 'brother', 'teacher']
99: (8) [__________________________
___________________________________] ?
Introduction and Puzzles 20

Truth Table Puzzles


-------------------
Truth Table 100: Truth Table 102:
a b c | (a & b) & c a b c | (a | b) | c
------------------- -------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___

Truth Table 101: Truth Table 103:


a b c | a & (b & c) a b c | a | (b | c)
------------------- -------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___
Introduction and Puzzles 21

ASCII
-----

ASCII 104: ASCII 106:


83 79 85 82 67 69 86 69 82 83 73 79 78
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 105: ASCII 107:


67 79 68 69 67 79 78 84 82 79 76
__ __ __ __ __ __ __ __ __ __ __

Computing History: 1470: Johann Müller creates


mechanical astronomical calculator

https://en.wikipedia.org/wiki/Regiomontanus
Introduction and Puzzles 22

Python Examples
---------------
>>> x = 42
>>> print(f"x = {x}")
x = 42

>>> x = 41
>>> print(f"x + 1 = {x + 1}")
x + 1 = 42

Python Puzzles
--------------
>>> x = 41
>>> print(f"{x * 2}, {x + 2}")
108: __________ ?

>>> x = 3
>>> y = x
>>> x *= 3
>>> y += 3
>>> print(f"{x}, {y}")
109: __________ ?

>>> x = 3
>>> y = x * x
>>> z = y * y
>>> print(f"{x}, {y}, {z}")
110: __________ ?
Introduction and Puzzles 23

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outp 0 >>> outp 1
6 7

Assembly Puzzles
----------------
Assembly 111: Assembly 112:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outp 2 >>> outp 2
________________ ? >>> outp 1
>>> outp 0
________________ ?

Computing History: 1614: John Napier publishes


logarithm tables revolutionizing calculation

https://en.wikipedia.org/wiki/John_Napier
Introduction and Puzzles 24

Math Examples
-------------
0b1000 0b1010 0b1100
+ 0b0001 + 0b0101 + 0b0011
-------- -------- --------
0b1001 0b1111 0b1111

Math Puzzles
------------
Puzzle 113: Puzzle 115:
0b1001 0b1101
+ 0b0110 + 0b0010
-------- --------
0b____ 0b____

Puzzle 114: Puzzle 116:


0b1011 0b1110
+ 0b0100 + 0b0001
-------- --------
0b____ 0b____

Computing History: 1617: John Napier invents


logarithmic calculation rods (Napier's bones)

https://en.wikipedia.org/wiki/Napier%27s_bones
Introduction and Puzzles 25

Conversion Puzzles
------------------
117: 0b0100 = __ ? 123: 0b0101 = __ ?
118: 0b1100 = __ ? 124: 2 = 0b____ ?
119: 9 = 0b____ ? 125: 0b1110 = __ ?
120: 0b0000 = __ ? 126: 0b1111 = __ ?
121: 0b0110 = __ ? 127: 11 = 0b____ ?
122: 0b1000 = __ ? 128: 13 = 0b____ ?

Conversion Puzzles
------------------
129: 10 = 0x__ ? 135: 15 = 0x__ ?
130: 0x0D = __ ? 136: 9 = 0x__ ?
131: 3 = 0x__ ? 137: 0x05 = __ ?
132: 0x01 = __ ? 138: 4 = 0x__ ?
133: 0 = 0x__ ? 139: 0x0C = __ ?
134: 0x08 = __ ? 140: 7 = 0x__ ?

Computing History: 1622: William Oughtred


invents the slide rule

https://en.wikipedia.org/wiki/Slide_rule
Introduction and Puzzles 26

Regex Examples
--------------
>>> /a.*c/ ~= ['ac', 'adc', 'abd', 'abdc']
Matches: (3) ['ac', 'adc', 'abdc']

Regex Puzzles
-------------
>>> /ab.*/ ~= ['aabc', 'badc', 'cabb', 'abzd',
'zabd', 'abcd', 'cabd', 'dbac', 'aabb', 'aab']
141: (2) [__________________________
___________________________________] ?

>>> /..aa.*./ ~= ['aaaaaa', 'bbaabb', 'aaaaa',


'ababab', 'aaaaaaa']
142: (4) [__________________________
___________________________________] ?

>>> /file.*/ ~= ['file.txt', 'filetxt',


'filoatxt', 'file']
143: (3) [__________________________
___________________________________] ?

Computing History: 1642: Blaise Pascal builds


the Pascaline mechanical calculator

https://en.wikipedia.org/wiki/Pascal%27s_calculator
Introduction and Puzzles 27

Truth Table Puzzles


-------------------
Truth Table 144:
a b c d | (a & b) | (c & d)
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1673: Gottfried Leibniz


creates the stepped reckoner calculator

https://en.wikipedia.org/wiki/Stepped_reckoner
Introduction and Puzzles 28

Lisp Puzzles
------------
>>> (print (+ 6 9 2)) >>> (print (- 30 5 8 2))
145: __________ ? 148: __________ ?

>>> (print (- 25 7 4)) >>> (print (+ 11 14))


146: __________ ? 149: __________ ?

>>> (print (+ 1 2 3 4)) >>> (print (- 18 6))


147: __________ ? 150: __________ ?

Computing History: 1703: Leibniz describes


binary number system in "Explication de
l'Arithmétique Binaire"

https://en.wikipedia.org/wiki/Binary_number
Introduction and Puzzles 29

ASCII
-----

ASCII 151:
68 73 71 73 84 65 76
__ __ __ __ __ __ __

ASCII 152:
70 79 82 69 78 83 73 67 83
__ __ __ __ __ __ __ __ __

ASCII 153:
73 78 67 73 68 69 78 84
__ __ __ __ __ __ __ __

ASCII 154:
82 69 83 80 79 78 83 69
__ __ __ __ __ __ __ __

Computing History: 1801: Joseph Marie Jacquard


invents the programmable loom with punch cards

https://en.wikipedia.org/wiki/Jacquard_machine
Introduction and Puzzles 30

Python Puzzles
--------------
>>> x = 8
>>> y = 3
>>> z = x + y
>>> print(f"Result: {z + 2}")
155: __________ ?

>>> a = 12
>>> b = 5
>>> print(f"Calculation: {a + b + 3}")
156: __________ ?

>>> num1 = 15
>>> num2 = 7
>>> total = num1 + num2
>>> print(f"Total plus 5: {total + 5}")
157: __________ ?

>>> base = 20
>>> increment = 8
>>> result = base + increment
>>> extra = result + 10
>>> print(f"Final: {extra}")
158: __________ ?

>>> p = 6
>>> q = 9
>>> r = p + q
>>> s = r + 4
>>> print(f"Chain: {p} -> {q} -> {r} -> {s}")
159: __________ ?
Introduction and Puzzles 31

160: WordSearch 'Programming Paradigms'

R V F O L D P N E P L D M I B A I C U F B M L Y
R U L E B A S E D O M A I N S P E C I F I C T Y
R E F L E C T I V E P R O G R A M M I N G L U I
T F U N C T I O N A L P R O G R A M M I N G G T
P A R A L L E L O G I C P R O G R A M M I N G W
R S S Y M B O L I C C O M P U T A T I O N O N N
E Y M E S S A G E O R I E N T E D A T A F L O W
I N B F S T G E N E R I C P R O G R A M M I N G
V C S E R V I C E O R I E N T E D V I S U A L U
U R M L G E N E T I C P R O G R A M M I N G P I
D S T R E A M P R O C E S S I N G M O D U L A R
P I P E L I N E C O N S T R A I N T B A S E D M
M E T A P R O G R A M M I N G S T R E A M I N G
I F L L F U N C T I O N A L R E A C T I V E M I
O R V I S U A L P R O G R A M M I N G N S Y A C
L A Y V D R M E C L C F U A I W T P F N G O G D

ASYNC CONSTRAINTBASED DATAFLOW DOMAINSPECIFIC


FUNCTIONALPROGRAMMING FUNCTIONALREACTIVE
GENERICPROGRAMMING GENETICPROGRAMMING
LOGICPROGRAMMING MESSAGEORIENTED
METAPROGRAMMING MODULAR PARALLEL PIPELINE
REACTIVE REFLECTIVEPROGRAMMING RULEBASED
SERVICEORIENTED STREAMING STREAMPROCESSING
SYMBOLIC SYMBOLICCOMPUTATION VISUAL
VISUALPROGRAMMING
Introduction and Puzzles 32

Regex Puzzles
-------------
>>> /s..t.*/ ~= ['seats', 'soft', 'spots',
'sit', 'start', 'split', 'sat', 'short',
'shut', 'slot']
161: (5) [__________________________
___________________________________] ?

>>> /.*a.e/ ~= ['cake', 'made', 'face', 'bad',


'are', 'able', 'eat', 'same', 'and', 'fade']
162: (6) [__________________________
___________________________________] ?

>>> /b.*k/ ~= ['book', 'bark', 'ball', 'bank',


'black', 'back', 'block', 'break', 'brick',
'blue']
163: (8) [__________________________
___________________________________] ?

>>> /.o.*e/ ~= ['home', 'dome', 'come',


'done', 'rope', 'hop', 'vote', 'bone', 'dog',
'zone']
164: (8) [__________________________
___________________________________] ?

>>> /.*i.g/ ~= ['ring', 'king', 'big', 'sing',


'run', 'wig', 'wing', 'red', 'thing', 'dig']
165: (5) [__________________________
___________________________________] ?
Introduction and Puzzles 33

Truth Table Puzzles


-------------------
Truth Table 166:
a b c d | (a | b) & (c | d)
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1820: Thomas de Colmar


creates the Arithmometer

https://en.wikipedia.org/wiki/Arithmometer
Introduction and Puzzles 34

Assembly Puzzles
----------------
Assembly 167: Assembly 169:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 30 r0: 25 0: 40 r0: 31
1: 31 r1: 26 1: 41 r1: 32
2: 32 r2: 27 2: 42 r2: 33
>>> outp 0 >>> outp 1
>>> outp 1 >>> outp 2
________________ ? >>> outp 0
________________ ?

Assembly 168: Assembly 170:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 35 r0: 28 0: 45 r0: 34
1: 36 r1: 29 1: 46 r1: 35
2: 37 r2: 30 2: 47 r2: 36
>>> outp 2 >>> outp 0
>>> outp 0 >>> outp 2
________________ ? >>> outp 1
>>> outp 0
________________ ?
Introduction and Puzzles 35

ASCII
-----

ASCII 171:
68 73 71 73 84 65 76
__ __ __ __ __ __ __

ASCII 172:
83 73 71 78 65 76
__ __ __ __ __ __

ASCII 173:
80 82 79 67 69 83 83 73 78 71
__ __ __ __ __ __ __ __ __ __

ASCII 174:
85 78 73 84
__ __ __ __

Computing History: 1822: Charles Babbage designs


the Difference Engine

https://en.wikipedia.org/wiki/Difference_engine
Introduction and Puzzles 36

Conversion Examples
-------------------
0x01 = 0b0001 0x04 = 0b0100 0x05 = 0b0101
0x02 = 0b0010 0x08 = 0b1000 0x0C = 0b1100

Conversion Puzzles
------------------
175: 0x0A = 0b____ ? 180: 0x07 = 0b____ ?
176: 0x06 = 0b____ ? 181: 0x09 = 0b____ ?
177: 0x0B = 0b____ ? 182: 0x0E = 0b____ ?
178: 0x00 = 0b____ ? 183: 0x0F = 0b____ ?
179: 0x03 = 0b____ ?

Conversion Puzzles
------------------
184: 0b0101 = 0x__ ? 188: 0x04 = 0b____ ?
185: 0x01 = 0b____ ? 189: 0b0000 = 0x__ ?
186: 0x07 = 0b____ ? 190: 0b1100 = 0x__ ?
187: 0x09 = 0b____ ? 191: 0x02 = 0b____ ?

Computing History: 1837: Babbage conceives the


Analytical Engine

https://en.wikipedia.org/wiki/Analytical_Engine
Introduction and Puzzles 37

Lisp Examples
-------------
>>> (print (- 3 (+ 1 1)))
1

>>> (print (+ 40 (- 4 2)))


42

>>> (print (- (+ 1 2) 3))


0

Lisp Puzzles
------------
>>> (print (+ 1 (- 3 3)))
192: __________ ?

>>> (print (- 12 (+ 3 1)))


193: __________ ?

Computing History: 1843: Ada Lovelace writes the


first computer program for the Analytical Engine

https://en.wikipedia.org/wiki/Ada_Lovelace
Introduction and Puzzles 38

Python Puzzles
--------------
>>> x = 7
>>> y = 4
>>> z = 2
>>> print(f"{x + y + z + 1}")
194: __________ ?

>>> a = 10
>>> b = 6
>>> c = a + b
>>> d = c + 3
>>> print(f"{a} + {b} = {c}, then + 3 = {d}")
195: __________ ?

>>> start = 5
>>> mid = start + 8
>>> end = mid + 6
>>> final = end + 2
>>> print(f"{start}->{mid}->{end}->{final}")
196: __________ ?

>>> w = 11
>>> x = w + 4
>>> y = x + 3
>>> z = y + 2
>>> print(f"{w}, {x}, {y}, {z}")
197: __________ ?
Introduction and Puzzles 39

Regex Puzzles
-------------
>>> /c.*t./ ~= ['cats', 'city', 'cute',
'costs', 'car', 'cite', 'cloth', 'cut',
'catch', 'can']
198: (6) [__________________________
___________________________________] ?

>>> /.a.*n/ ~= ['man', 'can', 'rain', 'barn',


'fan', 'far', 'taken', 'pain', 'map', 'bacon']
199: (8) [__________________________
___________________________________] ?

>>> /.*e.d/ ~= ['read', 'head', 'send', 'red',


'dead', 'need', 'end', 'lead', 'bend', 'eat']
200: (8) [__________________________
___________________________________] ?

>>> /t..*e/ ~= ['time', 'tree', 'take', 'the',


'trade', 'table', 'to', 'three', 'tie',
'tribe']
201: (9) [__________________________
___________________________________] ?

>>> /.*o.k.*/ ~= ['books', 'looks', 'cook',


'work', 'old', 'took', 'hooks', 'one',
'rocks', 'oak']
202: (8) [__________________________
___________________________________] ?
Introduction and Puzzles 40

Truth Table Puzzles


-------------------
Truth Table 203:
a b c d | a & (b | c) & d
-------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1847: George Boole develops


Boolean algebra for logical operations

https://en.wikipedia.org/wiki/Boolean_algebra
Introduction and Puzzles 41

ASCII
-----

ASCII 204:
67 69 78 84 82 65 76
__ __ __ __ __ __ __

ASCII 205:
80 82 79 67 69 83 83 73 78 71
__ __ __ __ __ __ __ __ __ __

ASCII 206:
85 78 73 84
__ __ __ __

ASCII 207:
86 73 82 84 85 65 76
__ __ __ __ __ __ __

ASCII 208:
77 65 67 72 73 78 69
__ __ __ __ __ __ __
Introduction and Puzzles 42

Python Examples
---------------
>>> print(5 > 3) >>> x = 10
>>> print(2 > 7) >>> y = 5
>>> print(4 == 4) >>> print(x > y)
>>> print(6 != 6) >>> print(x < y)
True >>> print(x == y)
False True
True False
False False

Python Puzzles
--------------
>>> a = 8
>>> b = 3
>>> print(a > b)
>>> print(a < b)
209: __________ ?

>>> num1 = 15
>>> num2 = 15
>>> print(num1 == num2)
>>> print(num1 != num2)
210: __________ ?
Introduction and Puzzles 43

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outp #0 >>> outp #1
0 1

Assembly Puzzles
----------------
Assembly 211: Assembly 212:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outp #2 >>> outp #2
________________ ? >>> outp #1
>>> outp #0
________________ ?

Computing History: 1890: Herman Hollerith uses


punch cards for US Census tabulation

https://en.wikipedia.org/wiki/Hollerith_machine
Introduction and Puzzles 44

213: WordSearch 'Open Source Licenses'

E S N E C I L L A R E N E G U N G L P U E M L C
S L O E S U A L C E E R H T D S B I L G P L P I
N U E P L E S N E C I L C I T S I T R A L P M L
E I S C C R E A T I V E C O M M O N S Z E R O B
C D N S N O M M O C E V I T A E R C L D D C V U
I A E L C F O P E N P U B L I C L I C E N S E P
L P C P S A T T R I B U T I O N L I C E N S E A
S P I P A C R E A T I V E C O M M O N S B Y L L
E L L L O P E N S O U R C E L I C E N S E O F L
R I C C N S N O M M O C E V I T A E R C U A P I
G C C P P L L E S N E C I L L S S N E P O F R Z
T E C L I P S E D I S T R I B U T I O N T N P O
S N F R E E D O M S O F T W A R E S S W C T I M
O S A N C S I C R E A T I V E C O M M O N S S A
P E O F L P G A E E R H T N O I S R E V L P G O
E S N E C I L E E R F E S N E C I L C I L B U P

AGPL APPLICENSE ARTISTICLICENSE


ATTRIBUTIONLICENSE BSDTHREECLAUSE CCLICENSE
CDDL CNRI CREATIVECOMMONSBY CREATIVECOMMONSNC
CREATIVECOMMONSND CREATIVECOMMONSSA
CREATIVECOMMONSZERO ECLIPSEDISTRIBUTION EPL
EUPL FREEDOMSOFTWARE FREELICENSE
GNUGENERALLICENSE GPLVERSIONTHREE ISC LGPL LPPL
MIT MOZILLAPUBLIC MPL NCSA OFL
OPENPUBLICLICENSE OPENSOURCELICENSE
OPENSSLLICENSE OSL POSTGRESLICENSE
PUBLICLICENSE WTFPL
Introduction and Puzzles 45

Math Examples
-------------
0b0111 0b1111
+ 0b1000 + 0b0001
-------- ------------
0b1111 0b00010000

Math Puzzles
------------
Puzzle 214: Puzzle 216: Puzzle 218:
0b1010 0b1001 0b1101
+ 0b1010 + 0b1001 + 0b1101
------------ ------------ ------------
0b________ 0b________ 0b________

Puzzle 215: Puzzle 217: Puzzle 219:


0b1100 0b1011 0b1110
+ 0b1100 + 0b1011 + 0b1110
------------ ------------ ------------
0b________ 0b________ 0b________

Computing History: 1924: IBM founded from


Hollerith's Tabulating Machine Company

https://en.wikipedia.org/wiki/IBM
Introduction and Puzzles 46

Conversion Examples
-------------------
0b00010000 = 16 0b01000100 = 68
0b00100000 = 32 0b00010111 = 23
0b01000000 = 64

Conversion Puzzles
------------------
220: 0b11000100 = ___ ?223: 0b10000000 = ___ ?
221: 0b11111111 = ___ ?224: 0b00101010 = __ ?
222: 0b01111111 = ___ ?

Conversion Examples
-------------------
0x10 = 16 0x11 = 17 0x17 = 23
0x20 = 32 0x22 = 34

Conversion Puzzles
------------------
225: 0x2A = __ ? 228: 0x7F = ___ ?
226: 0xC4 = ___ ? 229: 0xFF = ___ ?
227: 0x80 = ___ ?

Computing History: 1930: Vannevar Bush builds


the differential analyzer mechanical computer

https://en.wikipedia.org/wiki/Differential_analyzer
Introduction and Puzzles 47

Regex Examples
--------------
>>> /a*c/ ~= ['c', 'ac', 'aac', 'abac']
Matches: (3) ['c', 'ac', 'aac']

Regex Puzzles
-------------
>>> /a*b*/ ~= ['aabc', 'badc', 'cabb', 'abzd',
'zabd', 'abcd', 'cabd', 'dbac', 'aabb', 'aab']
230: (2) [__________________________
___________________________________] ?

>>> /a*.*./ ~= ['aaaaaa', 'bbaabb', 'aaaaa',


'ababab', 'aaaaaaa']
231: (5) [__________________________
___________________________________] ?

>>> /file*.*/ ~= ['file.txt', 'fietxt',


'filatxt', 'file']
232: (3) [__________________________
___________________________________] ?

Computing History: 1936: Turing publishes "On


Computable Numbers" - introduces Turing machines

https://en.wikipedia.org/wiki/On_Computable_Numbers,_with_an_Application_t
o_the_Entscheidungsproblem
Introduction and Puzzles 48

Truth Table Puzzles


-------------------
Truth Table 233:
a b c d | ((a & b) | c) & d
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1937: Claude Shannon applies


Boolean algebra to electrical circuits

https://en.wikipedia.org/wiki/Claude_Shannon
Introduction and Puzzles 49

Lisp Puzzles
------------
>>> (print (+ (- 10 5) 3))
234: __________ ?

>>> (print (- 20 (+ 4 4)))


235: __________ ?

>>> (print (+ (+ 2 3) (- 8 3)))


236: __________ ?

>>> (print (- (+ 15 5) (- 10 2)))


237: __________ ?

>>> (print (+ (- 12 6) (+ 4 2)))


238: __________ ?

>>> (print (- (+ 9 7) (- 8 3)))


239: __________ ?

>>> (print (+ (+ 1 2) (+ 3 4)))


240: __________ ?

>>> (print (- (- 18 5) (+ 2 4)))


241: __________ ?
Introduction and Puzzles 50

ASCII
-----

ASCII 242:
80 82 79 71 82 65 77 77 73 78 71
__ __ __ __ __ __ __ __ __ __ __

ASCII 243:
76 65 78 71 85 65 71 69
__ __ __ __ __ __ __ __

ASCII 244:
83 89 78 84 65 88
__ __ __ __ __ __

ASCII 245:
83 69 77 65 78 84 73 67 83
__ __ __ __ __ __ __ __ __

Computing History: 1939: Hewlett-Packard founded


in a garage, starts with audio oscillator

https://en.wikipedia.org/wiki/Hewlett-Packard
Introduction and Puzzles 51

Python Puzzles
--------------
>>> x = 12
>>> y = 7
>>> print(x >= y)
>>> print(y <= x)
246: __________ ?

>>> value1 = 9
>>> value2 = 9
>>> value3 = 4
>>> print(value1 == value2)
>>> print(value1 != value3)
247: __________ ?

>>> p = 20
>>> q = 15
>>> r = 25
>>> print(p > q)
>>> print(q < r)
>>> print(p < r)
248: __________ ?

>>> num = 6
>>> print(num > 5)
>>> print(num < 10)
>>> print(num == 6)
249: __________ ?
Introduction and Puzzles 52

Assembly Puzzles
----------------
Assembly 250: Assembly 252:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 50 r0: 37 0: 60 r0: 43
1: 51 r1: 38 1: 61 r1: 44
2: 52 r2: 39 2: 62 r2: 45
>>> outp #0 >>> outp #1
>>> outp #1 >>> outp #2
________________ ? >>> outp #0
________________ ?

Assembly 251: Assembly 253:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 55 r0: 40 0: 65 r0: 46
1: 56 r1: 41 1: 66 r1: 47
2: 57 r2: 42 2: 67 r2: 48
>>> outp #2 >>> outp #0
>>> outp #0 >>> outp #2
________________ ? >>> outp #1
>>> outp #0
________________ ?
Introduction and Puzzles 53

Regex Puzzles
-------------
>>> /ap*le/ ~= ['ale', 'aple', 'apple',
'apppple', 'able', 'ample', 'apply', 'ale',
'apples', 'appple']
254: (6) [__________________________
___________________________________] ?

>>> /col*or/ ~= ['color', 'colour', 'cor',


'collar', 'colors', 'coolor', 'colllor',
'cooler', 'coor', 'colorado']
255: (3) [__________________________
___________________________________] ?

>>> /b*ook/ ~= ['ook', 'book', 'bbook',


'bbbook', 'books', 'bok', 'boook', 'brook',
'boot', 'look']
256: (4) [__________________________
___________________________________] ?

>>> /hel*o/ ~= ['heo', 'helo', 'hello',


'helllo', 'help', 'hero', 'heel', 'hellllo',
'hela', 'heo']
257: (6) [__________________________
___________________________________] ?

>>> /gre*n/ ~= ['grn', 'gren', 'green',


'greeen', 'grain', 'gran', 'grin', 'greens',
'greeeen', 'grown']
258: (5) [__________________________
___________________________________] ?
Introduction and Puzzles 54

Truth Table Puzzles


-------------------
Truth Table 259:
a b c d | a & ((b | c) & d)
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1940: First remote computer


access demonstrated over telephone lines

https://en.wikipedia.org/wiki/George_Stibitz
Introduction and Puzzles 55

Conversion Examples
-------------------
0x10 = 0b00010000 0x22 = 0b00100010
0x20 = 0b00100000 0x17 = 0b00010111
0x11 = 0b00010001

Conversion Puzzles
------------------
260: 0x2A = 0b________ ?
261: 0xFF = 0b________ ?
262: 0x7F = 0b________ ?
263: 0x80 = 0b________ ?
264: 0xC4 = 0b________ ?

Computing History: 1941: Zuse completes Z3 -


first programmable digital computer

https://en.wikipedia.org/wiki/Z3_(computer)
Introduction and Puzzles 56

Python Examples
---------------
>>> result = 5 > 3
>>> print(result)
True

>>> is_equal = 10 == 10
>>> is_greater = 7 > 12
>>> print(f"Equal: {is_equal}")
>>> print(f"Greater: {is_greater}")
Equal: True
Greater: False

Python Puzzles
--------------
>>> x = 6
>>> y = 9
>>> comparison = x < y
>>> print(comparison)
265: __________ ?

>>> a = 4
>>> b = 4
>>> same = a == b
>>> different = a != b
>>> print(f"{same}, {different}")
266: __________ ?
Introduction and Puzzles 57

ASCII
-----

ASCII 267:
87 73 82 69 76 69 83 83
__ __ __ __ __ __ __ __

ASCII 268:
67 79 77 77 85 78 73 67 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 269:
66 76 85 69 84 79 79 84 72
__ __ __ __ __ __ __ __ __

ASCII 270:
87 73 70 73
__ __ __ __

Computing History: 1942: Atanasoff-Berry


Computer completed - first electronic digital
computer

https://en.wikipedia.org/wiki/Atanasoff%E2%80%93Berry_computer
Introduction and Puzzles 58

271: WordSearch 'Operating System Concepts'

L B M E T S Y S E L I F Y C N E R R U C N O C C
R M M E M O R Y M A N A G E M E N T N N T I U R
E V U V N S R O S I V R E P Y H V B O O S F L O
V C L L I E P R E E M P T I O N I I I I P E L T
I O T S T R T A K E R N E L R C R O T T T U A C
R N I K E I T W G O O K H A E O T S A A I U C E
D T T A E G P U O E Y C C N S N U B Z C M S M V
R E H E S R M R A R T T A G O T A O I O E E E T
E X R L R E N E O L K A C I U A L O N L S R T P
L T E Y O R M E N C M S B S R I I T O L H S S U
U S A R T A U A L T E E T L C N Z L R A A P Y R
D W D O I M Z P P S A S M A E E A O H K R A S R
E I I M N D R G T H P T S O C R T A C C I C P E
H T N E O R E M I T O A I I R K I D N A N E A T
C C G M M T E K C O S R C O N Y O E Y T G E E N
S H G N I L U D E H C S E E N G N R S S H B H I

ALLOCATION BIOS BOOTLOADER CACHE CONCURRENCY


CONTAINER CONTEXT CONTEXTSWITCH DMA DRIVER
FILESYSTEM HEAP HYPERVISOR INTERRUPT
INTERRUPTVECTOR KERNEL KERNELSPACE MEMORYLEAK
MEMORYMANAGEMENT MONITOR MULTIPROCESSING
MULTITHREADING NETWORKSTACK PAGETABLE
PREEMPTION PROCESS RESOURCE SCHEDULER
SCHEDULING SEGMENTATION SEMAPHORE SIGNAL SOCKET
STACK SYNCHRONIZATION SYSTEMCALL THREAD TIMER
TIMESHARING UEFI USERSPACE VIRTUALIZATION
VIRTUALMEMORY
Introduction and Puzzles 59

Lisp Examples
-------------
>>> (print (* 6 7))
42

>>> (print (max 4 5 1))


5

>>> (print (min 4 5 1))


1

Lisp Puzzles
------------
>>> (print (* 100 (- 4 1)))
272: __________ ?

>>> (print (max 5 10 3))


273: __________ ?

>>> (print (min 8 (* 2 5) 6))


274: __________ ?

Computing History: 1943: Colossus computer helps


break German codes at Bletchley Park

https://en.wikipedia.org/wiki/Colossus_computer
Introduction and Puzzles 60

Regex Puzzles
-------------
>>> /s*m.le/ ~= ['smile', 'male', 'small',
'sample', 'simple', 'mile', 'mole', 'smale',
'ssmile', 'sssmile']
275: (7) [__________________________
___________________________________] ?

>>> /tr*e./ ~= ['tea', 'tree', 'tee', 'trek',


'treat', 'trees', 'ten', 'teen', 'trrees',
'tread']
276: (5) [__________________________
___________________________________] ?

>>> /.a*st/ ~= ['last', 'fast', 'past',


'cast', 'mast', 'best', 'vast', 'east',
'haste', 'taste']
277: (7) [__________________________
___________________________________] ?

>>> /f*i.e/ ~= ['fire', 'five', 'fil', 'fine',


'ice', 'ffie', 'fffire', 'fife', 'ire', 'ide']
278: (8) [__________________________
___________________________________] ?

>>> /p*.nt/ ~= ['pant', 'paint', 'plant',


'print', 'punt', 'ant', 'pont', 'ppant',
'pppaint', 'int']
279: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 61

Truth Table Puzzles


-------------------
Truth Table 280:
a b c d | (a | b) & (c | d)
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1944: Harvard Mark I


electromechanical computer completed

https://en.wikipedia.org/wiki/Harvard_Mark_I
Introduction and Puzzles 62

Python Examples
---------------
>>> print(True and True)
>>> print(True and False)
>>> print(False or True)
>>> print(not True)
True
False
True
False

>>> x = 5
>>> y = 3
>>> print(x > y and x < 10)
>>> print(x < y or x == 5)
True
True

Python Puzzles
--------------
>>> a = 7
>>> b = 4
>>> print(a > b and b > 0)
>>> print(a < b or a == 7)
281: __________ ?

>>> value = 12
>>> print(value > 10 and value < 20)
>>> print(value < 5 or value > 15)
282: __________ ?
Introduction and Puzzles 63

Assembly Puzzles
----------------
Assembly 283: Assembly 285:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 10 r0: 5 0: 30 r0: 11
1: 11 r1: 6 1: 31 r1: 12
2: 12 r2: 7 2: 32 r2: 13
>>> outp r0 >>> outp r2
>>> outp 0 >>> outp 2
>>> outp #0 >>> outp #2
________________ ? ________________ ?

Assembly 284: Assembly 286:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 20 r0: 8 0: 40 r0: 15
1: 21 r1: 9 1: 41 r1: 16
2: 22 r2: 10 2: 42 r2: 17
>>> outp r1 >>> outp #5
>>> outp 1 >>> outp 1
>>> outp #1 >>> outp r0
________________ ? ________________ ?

Computing History: 1945: Von Neumann describes


stored-program architecture

https://en.wikipedia.org/wiki/Von_Neumann_architecture
Introduction and Puzzles 64

ASCII
-----

ASCII 287:
73 78 84 69 82 78 69 84
__ __ __ __ __ __ __ __

ASCII 288:
80 82 79 84 79 67 79 76
__ __ __ __ __ __ __ __

ASCII 289:
65 68 68 82 69 83 83
__ __ __ __ __ __ __

ASCII 290:
82 79 85 84 73 78 71
__ __ __ __ __ __ __

Computing History: 1946: ENIAC completed - first


general-purpose electronic computer

https://en.wikipedia.org/wiki/ENIAC
Introduction and Puzzles 65

Math Examples
-------------
0b10000000 0b01010101 0b11110000
+ 0b0001 + 0b10101010 + 0b1111
------------ ------------ ------------
0b10000001 0b11111111 0b11111111

Math Puzzles
------------
Puzzle 291: Puzzle 293:
0b10011001 0b10101010
+ 0b01100110 + 0b01010101
------------ ------------
0b________ 0b________

Puzzle 292: Puzzle 294:


0b11001100 0b11111000
+ 0b00110011 + 0b0111
------------ ------------
0b________ 0b________

Computing History: 1947: First computer bug


found - actual moth in Harvard Mark II relay

https://en.wikipedia.org/wiki/Software_bug#Etymology
Introduction and Puzzles 66

Conversion Puzzles
------------------
295: 0b00110111 = __ ? 310: 62 = 0b________ ?
296: 220 = 0b________ ?311: 35 = 0b________ ?
297: 0b11010101 = ___ ?312: 0b01010111 = __ ?
298: 97 = 0b________ ? 313: 158 = 0b________ ?
299: 104 = 0b________ ?314: 0b01111001 = ___ ?
300: 16 = 0b________ ? 315: 228 = 0b________ ?
301: 0b00010001 = __ ? 316: 0b01010101 = __ ?
302: 0b01100100 = ___ ?317: 0b00010011 = __ ?
303: 57 = 0b________ ? 318: 0b00111111 = __ ?
304: 123 = 0b________ ?319: 182 = 0b________ ?
305: 202 = 0b________ ?320: 0b11011011 = ___ ?
306: 0b11101000 = ___ ?321: 0b01110100 = ___ ?
307: 92 = 0b________ ? 322: 0b11101011 = ___ ?
308: 59 = 0b________ ? 323: 162 = 0b________ ?
309: 252 = 0b________ ?324: 0b11100011 = ___ ?

Computing History: 1948: Shannon publishes


information theory foundation

https://en.wikipedia.org/wiki/A_Mathematical_Theory_of_Communication
Introduction and Puzzles 67

Regex Examples
--------------
>>> /ab+/ ~= ['a', 'ab', 'abb', 'abbc', 'abbb']
Matches: (3) ['ab', 'abb', 'abbb']

Regex Puzzles
-------------
>>> /a+b/ ~= ['aab', 'b', 'bc', 'aaab', 'aabc']
325: (2) [__________________________
___________________________________] ?

>>> /a*b+/ ~= ['b', 'bbb', 'ab', 'a', 'aabb']


326: (4) [__________________________
___________________________________] ?

>>> /a+.*b+/ ~= ['ab', 'aab', 'aaabcdb', 'aac']


327: (3) [__________________________
___________________________________] ?

Computing History: 1949: EDVAC becomes first


stored-program computer

https://en.wikipedia.org/wiki/EDVAC
Introduction and Puzzles 68

Truth Table Examples


--------------------
a | ~a a b | (~a & b)
------ --------------
F | T F F | F
T | F F T | T
T F | F
T T | F

Truth Table Puzzles


-------------------
Truth Table 328:
a b c | (~a & b & ~c)
---------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Computing History: 1949: First assembly language


developed for EDSAC computer

https://en.wikipedia.org/wiki/Assembly_language
Introduction and Puzzles 69

Lisp Puzzles
------------
>>> (print >>> (print
>>> (max (* 3 4) >>> (+ (max 2 5)
>>> (+ 5 5))) >>> (* (min 4 3)
329: __________ ? >>> 3)))
331: __________ ?

>>> (print >>> (print


>>> (min (- 20 5) >>> (* (max (- 10 7)
>>> (* 2 6) >>> (+ 1 1))
>>> (+ 8 9))) >>> (min (* 3 3)
330: __________ ? >>> (+ 4 6))))
332: __________ ?

Computing History: 1950: Turing proposes the


Turing Test for machine intelligence

https://en.wikipedia.org/wiki/Turing_test
Introduction and Puzzles 70

Python Puzzles
--------------
>>> p = 8
>>> q = 3
>>> r = 10
>>> print(p > q and q < r)
>>> print(p == r or q == 3)
333: __________ ?

>>> flag1 = True


>>> flag2 = False
>>> print(flag1 and flag2)
>>> print(flag1 or flag2)
>>> print(not flag1)
334: __________ ?

>>> x = 15
>>> y = 10
>>> result1 = x > y
>>> result2 = y == 10
>>> print(result1 and result2)
>>> print(not result1 or result2)
335: __________ ?

>>> num1 = 6
>>> num2 = 9
>>> num3 = 6
>>> print(num1 == num3 and num2 > num1)
>>> print(num1 != num2 or num2 < num3)
336: __________ ?
Introduction and Puzzles 71

337: WordSearch 'Data Structures'

J T D A R E F F U B R A L U C R I C R O T C E V
E S E O V E E R T H C R A E S Y R A N I B A B G
E I E C U L E U E U Q Y T I R O I R P P N C E Y
R L E T S B U F I B O N A C C I H E A P P D E A
T D U R E R L P A T R I C I A T R E E A V I R R
L E E E G E R Y E L B A T H S A H Q M E E S T R
A K U E M E E S L K D T R E E L B H E E E J K A
V N Q E E R T S C I T S I T A T S R E D R O C X
R I R R N T L Q H C N G U I E A T R P E T I A I
E L A T T K I U P W A K M S H X T E A E Y N L F
T Y L N T C F A A B Q O E D I E W I E R A T B F
N L U O R I M D R S N E E D L W C R H T L S D U
I G C I E W O T G I R K A K L V A T N B P E E S
U N R S E N O R B T N R R T S I L P I K S T R G
F I I U Y E L E R I T E S P A R S E M A T R I X
W S C F O F B E L Y M P A M E E R T X I F F U S

ARRAY AVL BAG BINARYSEARCHTREE BINOMIALHEAP


BLOOMFILTER BTREE CIRCULARBUFFER CIRCULARQUEUE
DISJOINTSET DOUBLYLINKEDLIST FENWICKTREE
FIBONACCIHEAP FUSIONTREE GRAPH HASHMAP
HASHTABLE INTERVALTREE KDTREE LINKEDHASHMAP
MERKLETREE MINHEAP OCTREE ORDERSTATISTICSTREE
PATRICIATREE PRIORITYQUEUE QUADTREE QUEUE
RADIXTREE REDBLACKTREE SEGMENTTREE SET
SINGLYLINKEDLIST SKIPLIST SPARSEMATRIX
SPLAYTREE SUFFIXARRAY SUFFIXTREE TREEMAP
TREESET TRIE VECTOR
Introduction and Puzzles 72

ASCII
-----

ASCII 338:
79 80 69 78
__ __ __ __

ASCII 339:
83 79 85 82 67 69
__ __ __ __ __ __

ASCII 340:
83 79 70 84 87 65 82 69
__ __ __ __ __ __ __ __

ASCII 341:
67 79 77 77 85 78 73 84 89
__ __ __ __ __ __ __ __ __

Computing History: 1951: UNIVAC I predicts


Eisenhower election victory

https://en.wikipedia.org/wiki/UNIVAC_I
Introduction and Puzzles 73

Assembly Puzzles
----------------
Assembly 342: Assembly 344:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 50 r0: 18 0: 70 r0: 24
1: 51 r1: 19 1: 71 r1: 25
2: 52 r2: 20 2: 72 r2: 26
>>> outp r1 >>> outp #9
>>> outp #3 >>> outp r2
>>> outp 0 >>> outp 0
>>> outp r2 >>> outp #4
________________ ? ________________ ?

Assembly 343: Assembly 345:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 60 r0: 21 0: 80 r0: 27
1: 61 r1: 22 1: 81 r1: 28
2: 62 r2: 23 2: 82 r2: 29
>>> outp 2 >>> outp 1
>>> outp r0 >>> outp #2
>>> outp #7 >>> outp r1
>>> outp 1 >>> outp 0
________________ ? ________________ ?
Introduction and Puzzles 74

Regex Puzzles
-------------
>>> /s+.me/ ~= ['some', 'same', 'ssome',
'ssame', 'ssssome', 'sme', 'shame', 'slime',
'home', 'game']
346: (5) [__________________________
___________________________________] ?

>>> /.+end/ ~= ['end', 'bend', 'send',


'friend', 'tend', 'ended', 'nd', 'wend',
'blend', 'pending']
347: (6) [__________________________
___________________________________] ?

>>> /gr.+n/ ~= ['green', 'grain', 'grown',


'grin', 'grn', 'gran', 'griffin', 'groan',
'gun', 'gone']
348: (7) [__________________________
___________________________________] ?

>>> /b+o.*k/ ~= ['book', 'bbook', 'bbbook',


'bok', 'boook', 'brook', 'ook', 'bark',
'books', 'booook']
349: (6) [__________________________
___________________________________] ?

>>> /.*e+d/ ~= ['red', 'bed', 'feed', 'need',


'ed', 'speed', 'reed', 'read', 'end', 'led']
350: (8) [__________________________
___________________________________] ?
Introduction and Puzzles 75

Python Examples
---------------
>>> if True: >>> condition = False
>>> print("Jambo") >>>
>>> else: >>> if condition:
>>> print("Hola") >>> print("Jambo")
Jambo >>>
>>> print("World")
>>> print(not condition)
World
True

Python Puzzles
--------------
>>> condition = False
>>> if not condition:
>>> print("Jambo")
351: __________ ?

>>> condition = False


>>> condition = not condition
>>>
>>> if not condition:
>>> print("Jambo")
>>> else:
>>> print("World")
352: __________ ?
Introduction and Puzzles 76

Truth Table Puzzles


-------------------
Truth Table 353: Truth Table 355:
a b | (~a | b) a | (~a | ~a)
-------------- -------------
F F | ___ F | ___
F T | ___ T | ___
T F | ___
T T | ___

Truth Table 354: Truth Table 356:


a b | (~a | ~b) a | (~a & ~a)
--------------- -------------
F F | ___ F | ___
F T | ___ T | ___
T F | ___
T T | ___

Computing History: 1951: Whirlwind I introduces


real-time computing at MIT

https://en.wikipedia.org/wiki/Whirlwind_I
Introduction and Puzzles 77

Conversion Puzzles
------------------
357: 0x97 = ___ ? 372: 0xB0 = ___ ?
358: 0xB7 = ___ ? 373: 0x8B = ___ ?
359: 0xF1 = ___ ? 374: 0xE1 = ___ ?
360: 0xAE = ___ ? 375: 148 = 0x__ ?
361: 0x8A = ___ ? 376: 142 = 0x__ ?
362: 0x07 = __ ? 377: 237 = 0x__ ?
363: 0x16 = __ ? 378: 116 = 0x__ ?
364: 0x1B = __ ? 379: 146 = 0x__ ?
365: 110 = 0x__ ? 380: 39 = 0x__ ?
366: 90 = 0x__ ? 381: 126 = 0x__ ?
367: 21 = 0x__ ? 382: 0x46 = __ ?
368: 223 = 0x__ ? 383: 112 = 0x__ ?
369: 0x72 = ___ ? 384: 64 = 0x__ ?
370: 0x76 = ___ ? 385: 37 = 0x__ ?
371: 158 = 0x__ ? 386: 0xAF = ___ ?

Computing History: 1952: Grace Hopper develops


first compiler (A-0)

https://en.wikipedia.org/wiki/Grace_Hopper
Introduction and Puzzles 78

ASCII
-----

ASCII 387:
77 65 67 72 73 78 69
__ __ __ __ __ __ __

ASCII 388:
76 69 65 82 78 73 78 71
__ __ __ __ __ __ __ __

ASCII 389:
78 69 85 82 65 76
__ __ __ __ __ __

ASCII 390:
78 69 84 87 79 82 75 83
__ __ __ __ __ __ __ __

Computing History: 1956: "Artificial


Intelligence" term coined at Dartmouth
Conference

https://en.wikipedia.org/wiki/Dartmouth_workshop
Introduction and Puzzles 79

Lisp Puzzles
------------
>>> (print (max (* 2 3) (+ 4 1)))
391: __________ ?

>>> (print (min (- 12 5) (* 2 4)))


392: __________ ?

>>> (print (+ (max 6 8) (min 3 7)))


393: __________ ?

>>> (print (* (min 5 4) (max 2 9)))


394: __________ ?

>>> (print
>>> (max (+ 3 3)
>>> (- 15 8)
>>> (* 2 2)))
395: __________ ?

>>> (print
>>> (min (* 3 5)
>>> (+ 10 2)
>>> (- 20 3)))
396: __________ ?
Introduction and Puzzles 80

Regex Puzzles
-------------
>>> /c.+t.*/ ~= ['coat', 'cart', 'cut', 'ct',
'coats', 'cotton', 'crafts', 'cat', 'cute',
'cast']
397: (9) [__________________________
___________________________________] ?

>>> /.*o+l/ ~= ['cool', 'pool', 'ol', 'fool',


'tool', 'goal', 'oil', 'roll', 'all', 'coal']
398: (5) [__________________________
___________________________________] ?

>>> /h.+p+/ ~= ['happy', 'help', 'hopp',


'hip', 'hp', 'happ', 'heapp', 'hop', 'heap',
'hoop']
399: (8) [__________________________
___________________________________] ?

>>> /m.*n+/ ~= ['man', 'men', 'moon', 'mean',


'mn', 'mann', 'mnn', 'main', 'mine', 'min']
400: (9) [__________________________
___________________________________] ?

>>> /.+ar+.*/ ~= ['car', 'far', 'star', 'ar',


'barr', 'carry', 'cart', 'arr', 'a', 'start']
401: (7) [__________________________
___________________________________] ?
Introduction and Puzzles 81

Python Examples
---------------
>>> value = True
>>> other = not value
>>>
>>> print(f"{value}, {other}")
True, False

>>> if True:
>>> print("True")
>>> else:
>>> print("False")
True

>>> if False:
>>> print("True")
>>> else:
>>> print("False")
False

Python Puzzles
--------------
>>> value = True
>>> value = not value
>>> value = not value
>>>
>>> if value:
>>> print("1")
>>> else:
>>> print("2")
>>> print("3")
402: __________ ?
Introduction and Puzzles 82

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outp r1 >>> outp r1
>>> add r1, #1 >>> add r1, r1
>>> outp r1 >>> outp r1
4, 5 4, 8

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 5 1: 7 r1: 8
2: 8 r2: 5 2: 8 r2: 5

Assembly Puzzles
----------------
Assembly 403: Assembly 404:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outp r1 >>> outp r1
>>> add r1, 1 >>> add r2, r1
>>> outp r1 >>> outp r1
________________ ? ________________ ?
Introduction and Puzzles 83

Truth Table Puzzles


-------------------
Truth Table 405: Truth Table 407:
a b | ~(a & b) a b | ~(a | b)
-------------- --------------
F F | ___ F F | ___
F T | ___ F T | ___
T F | ___ T F | ___
T T | ___ T T | ___

Truth Table 406: Truth Table 408:


a b | (~a | ~b) a b | (~a & ~b)
--------------- ---------------
F F | ___ F F | ___
F T | ___ F T | ___
T F | ___ T F | ___
T T | ___ T T | ___

Computing History: 1957: IBM 704 computer


enables scientific batch processing

https://en.wikipedia.org/wiki/IBM_704
Introduction and Puzzles 84

409: WordSearch 'C++ Keywords'

G G S T C U N C P R B N E S L A F T F B E D F P
D N T H H N C L U O C T N S O E X P R X O C R E
I O R I A O A A B T F E D E P Y T E P U O K O C
E L U S R I S S L A E H C A R S A L B N N A W A
P E C E W N E S I R X S R A M K I L T H O E O P
Y T T I M D E T C E T O R P P C E I E C R B R A
T A F N T A F T A P E R D S I S N D S T P R H E
L V R L O O N N L O R T O T F U E E L I X E T M
A I I I R W U E G U N R A A E L L M E W E T E S
V R E N F L F A P O A T L L E E U T A S T U D N
E P N E L L W F I Y T F R T P N S R B N S R C P
T S D P O L E F E X T O E O E M O T T O N N E I
S T T A C O N S T I N I T D H T E G A E O D T E
N R T H N O I N U F R T N I U S E T U T C L O D
O Y O D I S I Z E O F N D A S I G N E D I T R Y
C D N N G I S E U R T M D E N G I S N U K C P T

AUTO BOOL BREAK CASE CHAR CLASS CONSTEVAL


CONSTEXPR CONSTINIT CONTINUE DEFAULT DELETE DO
DOUBLE ELSE ENUM EXPLICIT EXTERN FALSE FLOAT
FOR FRIEND GOTO IF INLINE INT LONG NAMESPACE
NEW NULLPTR OPERATOR PRIVATE PROTECTED PUBLIC
RETURN SHORT SIGNED SIZEOF STATIC STRUCT SWITCH
TEMPLATE THIS THROW TRUE TRY TYPEDEF TYPEID
TYPENAME UNION UNSIGNED
Introduction and Puzzles 85

Math Examples
-------------
0b11000011 0b10110100
+ 0b00111100 + 0b01001011
------------ ------------
0b11111111 0b11111111

Math Puzzles
------------
Puzzle 410: Puzzle 412: Puzzle 414:
0b11100001 0b11010010 0b11101100
+ 0b00011110 + 0b00101101 + 0b00010011
------------ ------------ ------------
0b________ 0b________ 0b________

Puzzle 411: Puzzle 413: Puzzle 415:


0b10010110 0b10111000 0b10001111
+ 0b01101001 + 0b01000111 + 0b01110000
------------ ------------ ------------
0b________ 0b________ 0b________

Computing History: 1957: IBM releases FORTRAN -


first high-level programming language

https://en.wikipedia.org/wiki/Fortran
Introduction and Puzzles 86

Conversion Puzzles
------------------
416: 0b11101101 = 0x__ ?
417: 0xE7 = 0b________ ?
418: 0b01110000 = 0x__ ?
419: 0x76 = 0b________ ?
420: 0xD8 = 0b________ ?
421: 0x9D = 0b________ ?
422: 0x2B = 0b________ ?
423: 0b10011111 = 0x__ ?
424: 0xA5 = 0b________ ?
425: 0b00100001 = 0x__ ?
426: 0xE5 = 0b________ ?
427: 0b00011001 = 0x__ ?
428: 0b10000111 = 0x__ ?
429: 0b00111000 = 0x__ ?
430: 0x17 = 0b________ ?
431: 0xDE = 0b________ ?
432: 0b11010010 = 0x__ ?
433: 0x2A = 0b________ ?
434: 0xEE = 0b________ ?
435: 0b01110101 = 0x__ ?
436: 0x58 = 0b________ ?
437: 0b11010001 = 0x__ ?
438: 0b11000011 = 0x__ ?
439: 0b00110001 = 0x__ ?
440: 0xD5 = 0b________ ?
441: 0b10110001 = 0x__ ?
442: 0x8E = 0b________ ?
443: 0x8B = 0b________ ?
444: 0xBD = 0b________ ?
445: 0x4D = 0b________ ?
Introduction and Puzzles 87

ASCII
-----

ASCII 446:
68 65 84 65
__ __ __ __

ASCII 447:
77 73 78 73 78 71
__ __ __ __ __ __

ASCII 448:
66 73 71
__ __ __

ASCII 449:
68 65 84 65
__ __ __ __

ASCII 450:
65 78 65 76 89 84 73 67 83
__ __ __ __ __ __ __ __ __
Introduction and Puzzles 88

Regex Examples
--------------
>>> /ab\+./ ~= ['a', 'ab', 'abb', 'ab+c',
'ab+d', 'ab+cc']
Matches: (2) ['ab+c', 'ab+d']

Regex Puzzles
-------------
>>> /a\+.b/ ~= ['a+.b', 'aabb', 'abc']
451: (1) [__________________________
___________________________________] ?

>>> /file\..+/ ~= ['fileatxt', 'file.pdf',


'file.txt', 'file.xls', 'file.']
452: (3) [__________________________
___________________________________] ?

>>> /.+\.+\+*/ ~= ['..+', '..', '.++',


'..++.', '++', '+.', 'a..+b', 'b..+']
453: (5) [__________________________
___________________________________] ?

Computing History: 1958: Lisp programming


language designed by John McCarthy at MIT

https://en.wikipedia.org/wiki/Lisp_(programming_language)
Introduction and Puzzles 89

Python Puzzles
--------------
>>> x = 8
>>> y = 5
>>> condition = True
>>> if condition:
>>> print(f"{x + y}")
>>> else:
>>> print(f"{x}")
>>> print(f"Always: {x + 2}")
454: __________ ?

>>> num1 = 6
>>> num2 = 9
>>> active = True
>>> total = num1 + num2
>>> if active:
>>> print(f"{total + 3}")
>>> else:
>>> print(f"{total}")
>>> print(f"Final: {total + 1}")
455: __________ ?

>>> p = 10
>>> q = 4
>>> enabled = False
>>> result = p + q
>>> if not enabled:
>>> print(f"{result}")
>>> else:
>>> print(f"{result + 2}")
>>> print(f"Done: {result}")
456: __________ ?
Introduction and Puzzles 90

Truth Table Puzzles


-------------------
Truth Table 457: Truth Table 458:
a b c | ~(a & b & c) a b c | (~a | ~b | ~c)
-------------------- ----------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___

Computing History: 1958: Integrated circuit


invented at Texas Instruments

https://en.wikipedia.org/wiki/Integrated_circuit
Introduction and Puzzles 91

Lisp Examples
-------------
>>> (print (list 1 2 3))
(1 2 3)

>>> (print (cdr (list 1 2 3)))


(2 3)

>>> (print (cdr (cdr (list 1 2 3))))


(3)

>>> (print (car (list 1 2 3)))


1

Lisp Puzzles
------------
>>> (print (cdr (cdr (cdr (list 4 1 2 3)))))
459: __________ ?

>>> (print (car (cdr (list 4 1 2 3))))


460: __________ ?

>>> (print (list (+ 1 1) (+ 2 2) (+ 3 3)))


461: __________ ?
Introduction and Puzzles 92

Assembly Puzzles
----------------
Assembly 462: Assembly 464:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> add r1, r1 >>> add r1, 0
>>> add r1, 1 >>> add r1, 1
>>> add r1, #1 >>> add r1, 2
>>> outp r1 >>> outp r1
________________ ? ________________ ?

Assembly 463: Assembly 465:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> add r1, #1 >>> add r1, r0
>>> add r1, 1 >>> add r2, r1
>>> add r1, r1 >>> add r1, r2
>>> outp r1 >>> outp r1
________________ ? ________________ ?
Introduction and Puzzles 93

ASCII
-----

ASCII 466:
80 82 79 71 82 65 77 77 73 78 71
__ __ __ __ __ __ __ __ __ __ __

ASCII 467:
67 79 78 84 69 83 84
__ __ __ __ __ __ __

ASCII 468:
65 76 71 79 82 73 84 72 77 73 67
__ __ __ __ __ __ __ __ __ __ __

ASCII 469:
67 72 65 76 76 69 78 71 69 83
__ __ __ __ __ __ __ __ __ __

Computing History: 1959: COBOL programming


language developed for business applications

https://en.wikipedia.org/wiki/COBOL
Introduction and Puzzles 94

Python Puzzles
--------------
>>> x = 7
>>> y = 3
>>> flag = True
>>> flag = not flag
>>> if flag:
>>> print(f"True: {x + y}")
>>> else:
>>> print(f"False: {x + y + 1}")
>>> print(f"End: {x}")
470: __________ ?

>>> start = 5
>>> add_val = 6
>>> active = True
>>> if not active:
>>> print(f"{start + add_val}")
>>> print(f"{start + add_val + 3}")
471: __________ ?

>>> val1 = 13
>>> val2 = 4
>>> enabled = False
>>> sum_result = val1 + val2
>>> print(f"Base: {val1}")
>>> if not enabled:
>>> print(f"{sum_result + 1}")
>>> else:
>>> print(f"{sum_result}")
>>> print(f"Complete: {sum_result + 3}")
472: __________ ?
Introduction and Puzzles 95

Regex Puzzles
-------------
>>> /a\.b+/ ~= ['a.b', 'a.bb', 'a.bbb', 'ab',
'aab', 'a.b+', 'a..b', 'a+b', 'abb', 'a.bbbb']
473: (4) [__________________________
___________________________________] ?

>>> /.+\+.+/ ~= ['a+b', '++', '+', 'x+y',


'123+456', '+++', 'a++b', '+a', 'b+', 'xy']
474: (5) [__________________________
___________________________________] ?

>>> /\..+\./ ~= ['.a.', '.test.', '...', '..',


'a.b', '.x', 'y.', '.abc.', '.+.', '.123.']
475: (6) [__________________________
___________________________________] ?

>>> /\++.*\+/ ~= ['+a+', '++', '+test+', '+',


'+++', '+123+', 'a+b', '+x', 'y+', '++++']
476: (6) [__________________________
___________________________________] ?

>>> /.\+.\+/ ~= ['a+b+', '1+2+', '++++',


'x+y+', '+++', 'a+b', '+x+', 'ab+', '++',
'm+n+']
477: (5) [__________________________
___________________________________] ?
Introduction and Puzzles 96

478: WordSearch 'Data Science Terms'

N O I T C U D E R G N I P P A R T S T O O B L E
I M P U T A T I O N O I T A C I F I S S A L C E
G R I D S E A R C H S U P P O R T V E C T O R R
M I N I N G R E G U L A R I Z A T I O N Y X H T
C K S F A C T O R A N A L Y S I S C A L I N G N
M O D E K R O W T E N L A R U E N R E I L T U O
K G N I R E E N I G N E E R U T A E F M E D O I
H Y P O T H E S I S T E S T I N G N I L P M A S
M O D E L S E L E C T I O N A I V E B A Y E S I
M E D I A N L A V R E T N I E C N E D I F N O C
S T A T I S T I C A L S I G N I F I C A N C E E
T L E M A E N O I T A I V E D D R A D N A T S D
N A G Y T I L A N O I S N E M I D T O L P X O B
A S D S T N E N O P M O C L A P I C N I R P H X
E S I I N G S I S Y L A N A R E T S U L C M G D
M O R M S N O I T A D I L A V S S O R C I G W K

ANALYSIS BOOTSTRAPPING BOXPLOT CLASSIFICATION


CLUSTERANALYSIS CONFIDENCEINTERVAL
CROSSVALIDATION DECISIONTREE DIMENSIONALITY
FACTORANALYSIS FEATUREENGINEERING GRIDSEARCH
HYPOTHESIS HYPOTHESISTESTING IMPUTATION LASSO
MEAN MEDIAN MINING MODE MODELSELECTION
NAIVEBAYES NEURALNETWORK OUTLIER
PRINCIPALCOMPONENTS REDUCTION REGULARIZATION
RIDGE SAMPLING SCALING STANDARDDEVIATION
STATISTICALSIGNIFICANCE SUPPORTVECTOR
Introduction and Puzzles 97

Conversion Examples
-------------------
0o001 = 1 0o004 = 4 0o005 = 5
0o002 = 2 0o010 = 8 0o014 = 12

Conversion Puzzles
------------------
479: 0o013 = __ ? 484: 0o012 = __ ?
480: 0o000 = __ ? 485: 0o016 = __ ?
481: 0o003 = __ ? 486: 0o006 = __ ?
482: 0o007 = __ ? 487: 0o011 = __ ?
483: 0o017 = __ ?

Conversion Examples
-------------------
0o001 = 0b0001 0o004 = 0b0100 0o005 = 0b0101
0o002 = 0b0010 0o010 = 0b1000 0o014 = 0b1100

Conversion Puzzles
------------------
488: 0o017 = 0b____ ? 493: 0o012 = 0b____ ?
489: 0o006 = 0b____ ? 494: 0o016 = 0b____ ?
490: 0o007 = 0b____ ? 495: 0o003 = 0b____ ?
491: 0o013 = 0b____ ? 496: 0o011 = 0b____ ?
492: 0o000 = 0b____ ?
Introduction and Puzzles 98

Truth Table Puzzles


-------------------
Truth Table 497: Truth Table 498:
a b c | ~(a | b | c) a b c | (~a & ~b & ~c)
-------------------- ----------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___

Computing History: 1960: DEC PDP-1 computer


released - influential minicomputer

https://en.wikipedia.org/wiki/PDP-1
Introduction and Puzzles 99

Lisp Puzzles
------------
>>> (print (car (list (* 4 3) 7 9)))
499: __________ ?

>>> (print (+ (car (list 8 2))


>>> (car (cdr (list 1 4)))))
500: __________ ?

>>> (print
>>> (max (car (list 5 10))
>>> (car (cdr (list 3 7)))))
501: __________ ?

>>> (print
>>> (list (min 9 6)
>>> (- 15 8)
>>> (* 2 (car (list 4)))))
502: __________ ?

Computing History: 1961: Compatible Time-Sharing


System (CTSS) enables interactive computing at
MIT

https://en.wikipedia.org/wiki/Compatible_Time-Sharing_System
Introduction and Puzzles 100

Python Examples
---------------
>>> for x in range(5):
>>> print(f"{x}")
0
1
2
3
4

>>> for x in range(2, 5):


>>> print(f"{x}")
2
3
4

Python Puzzles
--------------
>>> for _ in range(5):
>>> print("*")
503: __________ ?

>>> count = 0
>>> for _ in range(5):
>>> for _ in range(5):
>>> for _ in range(5):
>>> count += 1
>>> print(count)
504: __________ ?
Introduction and Puzzles 101

ASCII
-----

ASCII 505:
69 68 71 69
__ __ __ __

ASCII 506:
67 79 77 80 85 84 73 78 71
__ __ __ __ __ __ __ __ __

ASCII 507:
73 78 84 69 82 78 69 84
__ __ __ __ __ __ __ __

ASCII 508:
68 69 86 73 67 69 83
__ __ __ __ __ __ __

Computing History: 1962: Spacewar! created at


MIT - first computer video game

https://en.wikipedia.org/wiki/Spacewar!
Introduction and Puzzles 102

Assembly Puzzles
----------------
Assembly 509: Assembly 511:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 10 r0: 3 0: 20 r0: 9
1: 11 r1: 4 1: 21 r1: 10
2: 12 r2: 5 2: 22 r2: 11
>>> add r1, r1 >>> add r2, #3
>>> add r1, #2 >>> add r1, r2
>>> outp r1 >>> outp r1
________________ ? ________________ ?

Assembly 510: Assembly 512:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 15 r0: 6 0: 25 r0: 12
1: 16 r1: 7 1: 26 r1: 13
2: 17 r2: 8 2: 27 r2: 14
>>> add r0, 1 >>> add r0, r1
>>> add r0, r2 >>> add r0, 2
>>> outp r0 >>> add r0, #1
________________ ? >>> outp r0
________________ ?
Introduction and Puzzles 103

Regex Puzzles
-------------
>>> /.*\.\+.*/ ~= ['.+', 'a.+b', 'test.+',
'.+test', '++', '..', 'a+b', '..++', 'x.+y',
'ab']
513: (6) [__________________________
___________________________________] ?

>>> /\+.+\++/ ~= ['+a+', '+a++', '+test+++',


'+x++++', '++', '+a', 'a++', '++++', '+b+b+',
'+']
514: (6) [__________________________
___________________________________] ?

>>> /.\..\./ ~= ['a.b.', '1.2.', '...',


'x.y.', 'a..b', '.ab.', 'ab..', '....',
'.a.b', 'abc.']
515: (4) [__________________________
___________________________________] ?

>>> /\++\.+/ ~= ['+.', '++.', '+++.', '+..',


'++..', '.+', '..+', '+', '..', '+++..']
516: (6) [__________________________
___________________________________] ?

>>> /.+\+\+.+/ ~= ['a++b', 'x++y', '1++2',


'+++', '++', 'a+b', 'ab++cd', '++z', 'w++',
'test++end']
517: (5) [__________________________
___________________________________] ?
Introduction and Puzzles 104

Truth Table Puzzles


-------------------
Truth Table 518: Truth Table 519:
a b c | ~(a & (b | c)) a b c | (~a | (~b & ~c))
---------------------- ------------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___

Computing History: 1963: ASCII character


encoding standard established

https://en.wikipedia.org/wiki/ASCII
Introduction and Puzzles 105

Math Examples
-------------
0b11111111 0b01111111
+ 0b0001 + 0b10000000
---------------- ------------
0b000100000000 0b11111111

Math Puzzles
------------
Puzzle 520: Puzzle 522: Puzzle 524:
0b11110110 0b11001010 0b11101001
+ 0b1001 + 0b00110101 + 0b00010110
------------ ------------ ------------
0b________ 0b________ 0b________

Puzzle 521: Puzzle 523: Puzzle 525:


0b10101111 0b10110011 0b10011101
+ 0b01010000 + 0b01001100 + 0b01100010
------------ ------------ ------------
0b________ 0b________ 0b________

Computing History: 1964: Computer mouse invented


at Stanford Research Institute

https://en.wikipedia.org/wiki/Computer_mouse
Introduction and Puzzles 106

Conversion Examples
-------------------
0o001 = 0x01 0o004 = 0x04 0o005 = 0x05
0o002 = 0x02 0o010 = 0x08 0o014 = 0x0C

Conversion Puzzles
------------------
526: 0o000 = 0x__ ? 531: 0o007 = 0x__ ?
527: 0o006 = 0x__ ? 532: 0o012 = 0x__ ?
528: 0o016 = 0x__ ? 533: 0o013 = 0x__ ?
529: 0o011 = 0x__ ? 534: 0o003 = 0x__ ?
530: 0o017 = 0x__ ?

Conversion Puzzles
------------------
535: 0x00 = 0b____ ? 540: 0b1101 = 0x__ ?
536: 0b1010 = 0x__ ? 541: 0x0F = 0b____ ?
537: 0b0110 = 0x__ ? 542: 0b1100 = 0x__ ?
538: 0b0101 = 0x__ ? 543: 0x02 = 0b____ ?
539: 0x08 = 0b____ ? 544: 0b1001 = 0x__ ?

Conversion Puzzles
------------------
545: 0o002 = 0x__ ? 550: 0o015 = 0x__ ?
546: 0x09 = 0o___ ? 551: 0x08 = 0o___ ?
547: 0x03 = 0o___ ? 552: 0o007 = 0x__ ?
548: 0x0E = 0o___ ? 553: 0o006 = 0x__ ?
549: 0o001 = 0x__ ? 554: 0x00 = 0o___ ?
Introduction and Puzzles 107

Python Examples
---------------
>>> start = 2
>>> end = 6
>>> flag = True
>>> for num in range(start, end):
>>> if flag:
>>> print(f"{num + 1}")
>>> else:
>>> print(f"{num}")
>>> flag = not flag
3
3
5
5

Python Puzzles
--------------
>>> count = 0
>>> for i in range(4):
>>> count += i
>>> print(f"Count: {count}")
>>> print(f"Final: {count + 5}")
555: __________ ?

>>> end = 3
>>> base = 10
>>> for x in range(0, end):
>>> result = base + x
>>> if x > 1:
>>> print(f"High: {result}")
>>> print(f"Value: {result}")
556: __________ ?
Introduction and Puzzles 108

ASCII
-----

ASCII 557:
83 79 70 84 87 65 82 69
__ __ __ __ __ __ __ __

ASCII 558:
68 69 86 69 76 79 80 77 69 78 84
__ __ __ __ __ __ __ __ __ __ __

ASCII 559:
65 71 73 76 69
__ __ __ __ __

ASCII 560:
77 69 84 72 79 68 79 76 79 71 89
__ __ __ __ __ __ __ __ __ __ __

Computing History: 1964: IBM System/360


introduces computer architecture families

https://en.wikipedia.org/wiki/IBM_System/360
Introduction and Puzzles 109

561: WordSearch 'Java Keywords'

O T S S A L C E N I D T L D L B U O E R E U P S
T R S H O T T A C O C E E A T V I R P V L N O G
G A I L N L E A S A U T E L I T A L O V I S U O
O N H I U L T U R N C S T R Y T H R O W W T V M
R S T A O C P T I E G Y B R E A K T R O O I A V
O I F O H E S T T T A N G T I M O P R T D H Y N
F E B R R B N O A W K C I N R G P H S S N S R U
D N I S A O R O L S E H B N O O T F T H T E T Z
S T N F C P L I C H A R P T S L P A T N O Y W P
D T T I F F H N T I P O V R G T T M E C L R A C
N R E N O E C O N S T N O E I I A M I L I C T P
E I R A R E T U R N W I I S C V E N A T K R U I
T C F L E L I H W E R Z D S E L A N C A S B T E
X S A T H R W O T U O E I A P L I T G E L O W S
E F C A H R S Y E M H D I M Z F S E E I O I N A
O P E S E L B U O D S C I L B P U E C R F F E C

ABSTRACT ASSERT BOOLEAN BREAK BYTE CASE CATCH


CHAR CLASS CONST CONTINUE DEFAULT DO DOUBLE
ELSE ENUM EXTENDS FINAL FINALLY FLOAT FOR GOTO
IF IMPLEMENTS IMPORT INSTANCEOF INT INTERFACE
LONG NATIVE NEW PACKAGE PRIVATE PROTECTED
PUBLIC RETURN SHORT STATIC STRICTFP SUPER
SWITCH SYNCHRONIZED THIS THROW THROWS TRANSIENT
TRY VOID VOLATILE WHILE
Introduction and Puzzles 110

Regex Examples
--------------
>>> /[ab]/ ~= ['a', 'b', 'ab', 'ba', 'bc',
'cb', 'd']
Matches: (2) ['a', 'b']

Regex Puzzles
-------------
>>> /[abc]/ ~= ['a', 'b', 'c', 'd']
562: (3) [__________________________
___________________________________] ?

>>> /[abc]+/ ~= ['a', 'b', 'c', 'abc', 'cba',


'abcd', 'acbcabbca', 'abracad']
563: (6) [__________________________
___________________________________] ?

>>> /a[bdefg]*c/ ~= ['ac', 'abc', 'aec',


'abdc', 'agd', 'aabbcc']
564: (4) [__________________________
___________________________________] ?

Computing History: 1965: MULTICS operating


system project begins - influences Unix design

https://en.wikipedia.org/wiki/Multics
Introduction and Puzzles 111

Truth Table Puzzles


-------------------
Truth Table 565: Truth Table 566:
a b c | ~((a | b) & c) a b c | (~a & ~b) | ~c
---------------------- ----------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___

Computing History: 1965: Moore's Law formulated


- predicts exponential computing growth

https://en.wikipedia.org/wiki/Moore%27s_law
Introduction and Puzzles 112

Assembly Puzzles
----------------
Assembly 567: Assembly 569:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 35 r0: 15 0: 55 r0: 21
1: 36 r1: 16 1: 56 r1: 22
2: 37 r2: 17 2: 57 r2: 23
>>> add r1, 0 >>> add r2, r2
>>> add r2, r1 >>> add r0, r2
>>> add r2, #4 >>> add r0, 2
>>> outp r2 >>> add r0, #1
________________ ? >>> outp r0
________________ ?

Assembly 568: Assembly 570:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 45 r0: 18 0: 65 r0: 24
1: 46 r1: 19 1: 66 r1: 25
2: 47 r2: 20 2: 67 r2: 26
>>> add r0, #2 >>> add r1, r0
>>> add r1, r0 >>> add r2, #3
>>> add r1, 1 >>> add r1, r2
>>> outp r1 >>> add r1, 1
________________ ? >>> outp r1
________________ ?
Introduction and Puzzles 113

Lisp Examples
-------------
>>> (print (append (list 1 2) (list 3 4)))
(1 2 3 4)

>>> (print (cdr (list 1 2 3)))


(2 3)

>>> (print (length (list 1 2 3 4)))


4

Lisp Puzzles
------------
>>> (print (length (cdr (list 1 2 3 4))))
571: __________ ?

>>> (print (length (append (list 1)


>>> (list 3 4))))
572: __________ ?

Computing History: 1966: Dynamic programming


optimization method formalized

https://en.wikipedia.org/wiki/Dynamic_programming
Introduction and Puzzles 114

Python Puzzles
--------------
>>> sum_val = 0
>>> threshold = 3
>>> for i in range(5):
>>> sum_val += i
>>> if i < threshold:
>>> print(f"Below: {sum_val}")
>>> else:
>>> print(f"Above: {sum_val + 1}")
573: __________ ?

>>> counter = 0
>>> enabled = True
>>> for x in range(2, 7):
>>> counter += x
>>> if enabled:
>>> print(f"Enabled: {counter}")
>>> if x > 4:
>>> enabled = False
>>> print(f"Total: {counter}")
574: __________ ?

>>> accumulator = 0
>>> toggle = True
>>> for num in range(1, 5):
>>> accumulator += num
>>> if toggle:
>>> print(f"On: {accumulator}")
>>> else:
>>> print(f"Off: {accumulator + 2}")
>>> toggle = not toggle
575: __________ ?
Introduction and Puzzles 115

Regex Puzzles
-------------
>>> /[xyz]at/ ~= ['xat', 'yat', 'zat', 'cat',
'bat', 'mat', 'hat', 'rat', 'pat', 'wat']
576: (3) [__________________________
___________________________________] ?

>>> /b[aeiou]t/ ~= ['bat', 'bet', 'byt',


'bot', 'but', 'bit', 'bxt', 'bct', 'brt',
'bdt']
577: (5) [__________________________
___________________________________] ?

>>> /[123].[456]/ ~= ['1.4', '2.5', '3.6',


'4.5', '1.1', '5.6', '2.7', '3.3', '1x4',
'2+5']
578: (5) [__________________________
___________________________________] ?

>>> /[abc][xyz]/ ~= ['ax', 'by', 'cz', 'ay',


'bx', 'cx', 'dx', 'az', 'xy', 'ab']
579: (7) [__________________________
___________________________________] ?

>>> /.[mn][pq]./ ~= ['xmps', 'ynqt', 'ampx',


'mnpq', 'xnpy', 'zmqr', 'abcd', 'xmpq',
'ynpr', 'zmps']
580: (9) [__________________________
___________________________________] ?
Introduction and Puzzles 116

ASCII
-----

ASCII 581:
73 78 84 69 82 78 69 84
__ __ __ __ __ __ __ __

ASCII 582:
67 69 78 83 79 82 83 72 73 80
__ __ __ __ __ __ __ __ __ __

ASCII 583:
67 73 82 67 85 77 86 69 78 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 584:
84 79 79 76 83
__ __ __ __ __

Computing History: 1967: OLE-SIMULA introduces


object-oriented programming concepts

https://en.wikipedia.org/wiki/Simula
Introduction and Puzzles 117

Conversion Puzzles
------------------
585: 0b1000 = 0o___ ? 593: 0o016 = 0b____ ?
586: 0b0101 = 0o___ ? 594: 0b0110 = 0o___ ?
587: 0b0011 = 0o___ ? 595: 0o013 = 0b____ ?
588: 0b0010 = 0o___ ? 596: 0b0100 = 0o___ ?
589: 0o011 = 0b____ ? 597: 0b1010 = 0o___ ?
590: 0b1101 = 0o___ ? 598: 0b1111 = 0o___ ?
591: 0o000 = 0b____ ? 599: 0b0111 = 0o___ ?
592: 0o014 = 0b____ ? 600: 0o001 = 0b____ ?

Conversion Puzzles
------------------
601: 0o012 = 0x__ ? 609: 0o003 = 0x__ ?
602: 0o016 = 0x__ ? 610: 0x0B = 0o___ ?
603: 0x0D = 0o___ ? 611: 0o007 = 0x__ ?
604: 0x00 = 0o___ ? 612: 0x01 = 0o___ ?
605: 0x09 = 0o___ ? 613: 0o006 = 0x__ ?
606: 0o004 = 0x__ ? 614: 0x05 = 0o___ ?
607: 0x0C = 0o___ ? 615: 0x08 = 0o___ ?
608: 0o017 = 0x__ ? 616: 0x02 = 0o___ ?

Computing History: 1968: NATO Software


Engineering Conference coins "software crisis"

https://en.wikipedia.org/wiki/Software_crisis
Introduction and Puzzles 118

Truth Table Puzzles


-------------------
Truth Table 617:
a b c d | ~((a & b) | (c & d))
------------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1969: ARPANET sends first


message between UCLA and Stanford

https://en.wikipedia.org/wiki/ARPANET
Introduction and Puzzles 119

Python Examples
---------------
>>> for x in range(5, 2, -1):
>>> print(f"{x}")
5
4
3

>>> for x in range(6):


>>> if x < 2:
>>> print(f"Hello {x}")
>>> elif x < 4:
>>> print(f"Jambo {x}")
>>> else:
>>> print(f"Hola {x}")
Hello 0
Hello 1
Jambo 2
Jambo 3
Hola 4
Hola 5

Python Puzzles
--------------
>>> for x in range(6, 0, -2):
>>> if x > 4:
>>> print(f"Hello {x}")
>>> if x > 2:
>>> print(f"Jambo {x}")
>>> elif x > 1:
>>> print(f"Hola {x}")
618: __________ ?
Introduction and Puzzles 120

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 5 0: 6 r0: 3
1: 7 r1: 3 1: 7 r1: 4
2: 8 r2: 2 2: 8 r2: 4
>>> outp r0 >>> outp r2
>>> mul r0, r1 >>> mul r2, #2
>>> outp r0 >>> outp r2
5, 15 4, 8

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 15 0: 6 r0: 3
1: 7 r1: 3 1: 7 r1: 4
2: 8 r2: 2 2: 8 r2: 8

Assembly Puzzles
----------------
Assembly 619: Assembly 620:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 2 r0: 3 0: 6 r0: 3
1: 7 r1: 6 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 4
>>> mul r1, 0 >>> mul r0, r2
>>> outp r1 >>> outp r0
________________ ? ________________ ?
Introduction and Puzzles 121

621: WordSearch 'Database Technologies'

D M B K A L K R V I E G C T L S C I T Y L A N A
L A A D E A E W N E N T D Y R E U Q G I B Y Y F
E I T M A D T M E I R A V I B P H O E N I X Q D
R P E A S I E A N I T T E S A B Y S L B L B S T
A R S H B M R O D A N O I T C A S N A R T D P R
D K I C O A I A W A M F V C N X C O C S E E A A
P F D R Y T S A M Y R V L O A S O W S R S L R M
T O Y Y I L R E S A C E S U H E U F R A U A K A
L D S T N E L Q C A E Q T A X O C L E L O C S T
B Q R T H A L A S L L R R N T D H A P T H S Q A
H A S O G Q M S D S U D T S E I B K Y I K E L D
P B U M U R A O E B I S E S I O A E H B C M I H
H S A E E N E R D N G R T V A D S K Q A I I T I
E I R S D M V S G B P B F E H T E Q R S L T E M
Q Y V R E E I N D E X I N G R I A R L E C E T L
G C A E R N O I T A C I L P E R B D T N E I R O

ALTIBASE ANALYTICS BI BIGQUERY CASSANDRA


CLICKHOUSE COUCHBASE DATABASECLUSTER DATAMART
DATASTREAM DATAWAREHOUSE DREMEL DYNAMODB ETL
HBASE HIVE HYPERSCALE INDEXING INFLUXDB
INMEMORYDB MARIADB MEMSQL MYSQL NEOSQL NOSQL
ORIENTDB PARTITIONING PHOENIX POSTGRES PRESTO
REDIS REDSHIFT REPLICATION RIAK SCYLLADB
SHARDING SNOWFLAKE SPARKSQL SQLITE SQLQUERY
SQLSERVER SYBASE TERADATA TIMESCALEDB
TRANSACTION VERTICA
Introduction and Puzzles 122

Lisp Puzzles
------------
>>> (print (* (length (list 2 4 6)) 4))
622: __________ ?

>>> (print (car (append (list 9)


>>> (list 5 3))))
623: __________ ?

>>> (print
>>> (min (length (append (list 1 2)
>>> (list 3 4 5)))
>>> (* 2 3)))
624: __________ ?

>>> (print
>>> (+ (length (cdr (list 10 20 30)))
>>> (max (car (list 4 8))
>>> (- 12 7))))
625: __________ ?

Computing History: 1969: Unix operating system


development begins at Bell Labs

https://en.wikipedia.org/wiki/Unix
Introduction and Puzzles 123

Regex Puzzles
-------------
>>> /[Hh].llo/ ~= ['Hello', 'hello', 'Hallo',
'hillo', 'jello', 'mello', 'Hollo', 'hullo',
'Hxllo', 'hyllo']
626: (8) [__________________________
___________________________________] ?

>>> /..[aeiou][bcdfg]/ ~= ['grab', 'pleb',


'stud', 'xyz', 'aedf', 'club', 'slab', 'trip',
'clef', 'flub']
627: (7) [__________________________
___________________________________] ?

>>> /[pqr]...[xyz]/ ~= ['party', 'quick',


'runny', 'penny', 'sunny', 'proxy', 'rally',
'pansy', 'query', 'funny']
628: (7) [__________________________
___________________________________] ?

>>> /[123]\+[456]/ ~= ['1+4', '2+5', '3+6',


'1+1', '4+5', '2+7', '3+3', '1x4', '2-5',
'3*6']
629: (3) [__________________________
___________________________________] ?

>>> /[abc]\.[xyz]/ ~= ['a.x', 'b.y', 'c.z',


'a.b', 'x.y', 'c.y', 'd.x', 'a+x', 'b-y',
'c*z']
630: (4) [__________________________
___________________________________] ?
Introduction and Puzzles 124

ASCII
-----

ASCII 631:
78 69 84 87 79 82 75
__ __ __ __ __ __ __

ASCII 632:
80 82 79 84 79 67 79 76 83
__ __ __ __ __ __ __ __ __

ASCII 633:
80 65 67 75 69 84
__ __ __ __ __ __

ASCII 634:
83 87 73 84 67 72 73 78 71
__ __ __ __ __ __ __ __ __

Computing History: 1970: Pascal programming


language developed by Niklaus Wirth

https://en.wikipedia.org/wiki/Pascal_(programming_language)
Introduction and Puzzles 125

Math Examples
-------------
0x01 0x03 0x05 0x07
+ 0x02 + 0x04 + 0x06 + 0x08
------ ------ ------ ------
0x03 0x07 0x0B 0x0F

Math Puzzles
------------
Puzzle 635: Puzzle 637: Puzzle 639:
0x09 0x0D 0x06
+ 0x0A + 0x0E + 0x09
------ ------ ------
0x__ 0x__ 0x__

Puzzle 636: Puzzle 638: Puzzle 640:


0x0B 0x0F 0x08
+ 0x0C + 0x01 + 0x07
------ ------ ------
0x__ 0x__ 0x__

Computing History: 1970: Codd publishes


relational database theory

https://en.wikipedia.org/wiki/Relational_model
Introduction and Puzzles 126

Truth Table Puzzles


-------------------
Truth Table 641:
a b c d | (~a | ~b) & (~c | ~d)
-------------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1971: Intel 4004 released -


first commercial microprocessor

https://en.wikipedia.org/wiki/Intel_4004
Introduction and Puzzles 127

Python Puzzles
--------------
>>> total = 0
>>> flag = True
>>> for i in range(3, 7):
>>> total += i
>>> if flag:
>>> print(total)
>>> flag = not flag
>>> print(f"Final: {total}")
642: __________ ?

>>> count = 0
>>> active = False
>>> for x in range(1, 5):
>>> count += x
>>> if active:
>>> print(count)
>>> active = not active
643: __________ ?

Computing History: 1971: Email invented by Ray


Tomlinson using @ symbol

https://en.wikipedia.org/wiki/Email
Introduction and Puzzles 128

Conversion Puzzles
------------------
644: 0o011 = __ ? 652: 0o003 = __ ?
645: 0b0010 = 0o___ ? 653: 0b0000 = 0o___ ?
646: 4 = 0o___ ? 654: 0o007 = __ ?
647: 0o014 = __ ? 655: 0b0001 = 0o___ ?
648: 0o010 = 0b____ ? 656: 0o006 = 0b____ ?
649: 0b0101 = __ ? 657: 0o017 = 0b____ ?
650: 14 = 0o___ ? 658: 10 = 0o___ ?
651: 0b1101 = 0o___ ? 659: 0b1011 = 0o___ ?

Conversion Puzzles
------------------
660: 15 = 0o___ ? 668: 0o015 = __ ?
661: 0o013 = 0x__ ? 669: 0o006 = __ ?
662: 0o003 = 0x__ ? 670: 9 = 0o___ ?
663: 0x0C = 0o___ ? 671: 8 = 0x__ ?
664: 0 = 0o___ ? 672: 1 = 0o___ ?
665: 0x04 = __ ? 673: 0o005 = __ ?
666: 0x02 = __ ? 674: 0o012 = __ ?
667: 14 = 0o___ ? 675: 7 = 0x__ ?

Computing History: 1971: Mutation testing


originally proposed by Richard Lipton

https://en.wikipedia.org/wiki/Mutation_testing
Introduction and Puzzles 129

Regex Examples
--------------
>>> /ab?/ ~= ['a', 'ab', 'abb', 'abc']
Matches: (2) ['a', 'ab']

Regex Puzzles
-------------
>>> /colou?r/ ~= ['color', 'colour', 'colors',
'colours', 'col', 'colouuur', 'colouur',
'colr', 'colored', 'coloured']
676: (2) [__________________________
___________________________________] ?

>>> /files?/ ~= ['file', 'files', 'filed',


'filesystem', 'filing', 'filess', 'filer',
'files', 'fil', 'filesss']
677: (3) [__________________________
___________________________________] ?

>>> /https?/ ~= ['http', 'https', 'httpsss',


'ftp', 'htt', 'httpss', 'ssh', 'httpps',
'httpp', 'http://']
678: (2) [__________________________
___________________________________] ?

>>> /Mr\.? Smith/ ~= ['Mr Smith', 'Mr. Smith',


'Mr.. Smith', 'MrSmith', 'Mrs Smith', 'Smith',
'Mr Smith.', 'Mr.Smith', 'Mr Smith',
'MR Smith']
679: (2) [__________________________
___________________________________] ?
Introduction and Puzzles 130

Assembly Puzzles
----------------
Assembly 680: Assembly 682:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 5 0: 6 r0: 2
1: 7 r1: 3 1: 7 r1: 3
2: 8 r2: 2 2: 8 r2: 5
>>> add r0, r1 >>> mul r0, 1
>>> mul r0, r2 >>> add r0, #1
>>> outp r0 >>> outp r0
________________ ? ________________ ?

Assembly 681: Assembly 683:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> mul r1, #3 >>> add r1, r2
>>> add r1, r2 >>> mul r1, r1
>>> outp r1 >>> outp r1
________________ ? ________________ ?

Computing History: 1972: C programming language


created at Bell Labs

https://en.wikipedia.org/wiki/C_(programming_language)
Introduction and Puzzles 131

ASCII
-----

ASCII 684:
69 82 82 79 82
__ __ __ __ __

ASCII 685:
72 65 78 68 76 73 78 71
__ __ __ __ __ __ __ __

ASCII 686:
69 88 67 69 80 84 73 79 78
__ __ __ __ __ __ __ __ __

ASCII 687:
67 65 84 67 72 73 78 71
__ __ __ __ __ __ __ __

Computing History: 1973: Xerox Alto workstation


introduces desktop metaphor and GUI

https://en.wikipedia.org/wiki/Xerox_Alto
Introduction and Puzzles 132

Truth Table Puzzles


-------------------
Truth Table 688:
a b c d | ~((a | b) & (c | d))
------------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1973: Ethernet invented at


Xerox PARC

https://en.wikipedia.org/wiki/Ethernet
Introduction and Puzzles 133

Lisp Puzzles
------------
>>> (print (car (append (list 7 8)
>>> (list 1 2))))
689: __________ ?

>>> (print (length (append (list 1)


>>> (list 2 3 4))))
690: __________ ?

>>> (print (+ (length (list 5 6))


>>> (car (list 10 11))))
691: __________ ?

>>> (print (cdr (append (list 9)


>>> (list 3 4 5))))
692: __________ ?

>>> (print
>>> (car (cdr (append (list 1 2)
>>> (list 3 4)))))
693: __________ ?

>>> (print
>>> (* (length (list 2 4 6 8))
>>> (car (cdr (list 1 3 5)))))
694: __________ ?
Introduction and Puzzles 134

Python Puzzles
--------------
>>> counter = 0
>>> state = False
>>> for i in range(1, 5):
>>> counter += i
>>> if state:
>>> print(counter)
>>> state = not state
>>> print(f"Final: {counter}")
695: __________ ?

>>> total = 0
>>> flag1 = True
>>> flag2 = False
>>> for x in range(2, 5):
>>> total += x
>>> if flag1:
>>> print(total)
>>> if flag2:
>>> print(total + 1)
>>> flag1 = not flag1
>>> flag2 = not flag2
696: __________ ?
Introduction and Puzzles 135

697: WordSearch 'Python Keywords and Concepts'

R Y A G D O H T E M N E G N A E L O O B N O S J
M O T R E S S A P D O P N D T H R E A D I N G R
U T F R S N O L E F I O E C E X C E P T S I L O
N A N S E I E C I C T L E S A C E T S S A N D T
E O A A C P O R K C P Y A T T P U T A I O C E A
E L N N M R O L I T E M S R U P S L N I A O L R
C F Y L A E E R R C C O Y U L B C U S O X R U E
N S N T O N S O P R X R N E Y A I N L E C O D N
A E O F R C P P E P E P C R T H E R G A Y U O E
T R U U D M A G A A A H T A C H G E T I T T M G
I U R N I L E L S C D I D T E N R I S T R I N G
R S E C I T E C K K E S A R I L A M B D A N O E
E O T T N T O I A A F M P P W W M A N A G E R N
H L U I S P N E Y G J M Y I A I T E R A T O R O
N C R O E G R O F E O T A N N O T A T I O N J N
I D N N T B F I C C Y L L A N I F H L A B O L G

AND ANNOTATION AS ASSERT ASYNC ASYNCIO


ATTRIBUTE AWAIT BOOLEAN BREAK CASE CLASS
CLOSURE COMPREHENSION CONTEXT CONTINUE
COROUTINE DATACLASS DECORATOR DEF DEL
ENCAPSULATION ENUM EXCEPT EXCEPTION FINALLY
FLOAT FOR FUNCTION GENERATOR GENERIC GLOBAL IF
IMPORT IN INHERITANCE INTEGER IS ITERATOR JSON
LAMBDA LIST MANAGER MATCH METHOD MODULE
NAMESPACE NONE NONLOCAL NOT OR PACKAGE PASS
PICKLE POLYMORPHISM PROPERTY RAISE REGEX RETURN
SCOPE SET SLICE STRING THREADING TRUE TRY TUPLE
TYPING UNPACKING WITH YIELD
Introduction and Puzzles 136

Regex Puzzles
-------------
>>> /a?b+/ ~= ['b', 'ab', 'abb', 'aab',
'abbb', 'bb', 'a', 'aabb', 'aaab', 'abab']
698: (5) [__________________________
___________________________________] ?

>>> /a*b?/ ~= ['', 'a', 'b', 'ab', 'aaa',


'aaab', 'bb', 'aab', 'abb', 'ba']
699: (7) [__________________________
___________________________________] ?

>>> /ca?t.*/ ~= ['cat', 'ct', 'catch', 'cats',


'ca', 'cart', 'crate', 'caat', 'caterpillar',
'cut']
700: (5) [__________________________
___________________________________] ?

>>> /test?s/ ~= ['tests', 'tess', 'test',


'tessts', 'tes', 'testing', 'testt', 'testss',
'tester', 'tets']
701: (2) [__________________________
___________________________________] ?

>>> /pre?fix/ ~= ['prefix', 'pfix', 'preempt',


'prefix', 'prefixx', 'preefix', 'prfix',
'prefox', 'pre', 'fix']
702: (3) [__________________________
___________________________________] ?
Introduction and Puzzles 137

Conversion Examples
-------------------
0b00010000 = 0o020 0b01000100 = 0o104
0b00100000 = 0o040 0b00010111 = 0o027
0b01000000 = 0o100

Conversion Puzzles
------------------
703: 0b10000000 = 0o___ ?
704: 0b00101010 = 0o___ ?
705: 0b11111111 = 0o___ ?
706: 0b11000100 = 0o___ ?
707: 0b01111111 = 0o___ ?

Conversion Examples
-------------------
16 = 0o020 17 = 0o021 23 = 0o027
32 = 0o040 34 = 0o042

Conversion Puzzles
------------------
708: 196 = 0o___ ? 711: 255 = 0o___ ?
709: 127 = 0o___ ? 712: 128 = 0o___ ?
710: 42 = 0o___ ?
Introduction and Puzzles 138

ASCII
-----

ASCII 713:
81 85 65 78 84 85 77
__ __ __ __ __ __ __

ASCII 714:
67 79 77 80 85 84 73 78 71
__ __ __ __ __ __ __ __ __

ASCII 715:
81 85 66 73 84
__ __ __ __ __

ASCII 716:
69 78 84 65 78 71 76 69 77 69 78 84
__ __ __ __ __ __ __ __ __ __ __ __

Computing History: 1974: Intel 8080


microprocessor released

https://en.wikipedia.org/wiki/Intel_8080
Introduction and Puzzles 139

Truth Table Puzzles


-------------------
Truth Table 717:
a b c d | (~a & ~b) | (~c & ~d)
-------------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1975: MOS Technology 6502


microprocessor released

https://en.wikipedia.org/wiki/MOS_Technology_6502
Introduction and Puzzles 140

Python Examples
---------------
>>> i = 10
>>> j = 5
>>>
>>> print(f"{i}, {j}")
>>>
>>> i, j = j, i
>>>
>>> print(f"{i}, {j}")
10, 5
5, 10

Python Puzzles
--------------
>>> i, j, k = 1, 2, 3
>>> print(f"{k}, {j}, {i}")
718: __________ ?

>>> i, j, k = 1, 2, 3
>>> i, j, k = j, k, 4
>>> j, k, i = k, i, j
>>>
>>> print(f"{k}, {j}, {i}")
719: __________ ?
Introduction and Puzzles 141

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 5 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 3 2: 8 r2: 5
>>> outp r0 >>> outp #12
>>> outpb r0 >>> outpb #12
5, 0b0101 12, 0b1100

Assembly Puzzles
----------------
Assembly 720: Assembly 721:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 5 0: 6 r0: 3
1: 7 r1: 7 1: 7 r1: 4
2: 8 r2: 3 2: 8 r2: 5
>>> outp r1 >>> outp #15
>>> outpb r1 >>> outpb #15
________________ ? ________________ ?

Computing History: 1975: Altair 8800 - first


successful personal computer kit

https://en.wikipedia.org/wiki/Altair_8800
Introduction and Puzzles 142

Regex Puzzles
-------------
>>> /may?be/ ~= ['maybe', 'mabe', 'maybe',
'maybee', 'mayybe', 'ma', 'be', 'maybe',
'mabye', 'mayb']
722: (4) [__________________________
___________________________________] ?

>>> /w?ork/ ~= ['work', 'ork', 'wwork',


'word', 'wok', 'working', 'workshop',
'worker', 'world', 'fork']
723: (2) [__________________________
___________________________________] ?

>>> /h?ello/ ~= ['hello', 'ello', 'helo',


'helllo', 'hhello', 'hallo', 'yellow', 'hell',
'help', 'hero']
724: (2) [__________________________
___________________________________] ?

>>> /t?ime/ ~= ['time', 'ime', 'tim', 'timer',


'times', 'ttime', 'rhyme', 'lime', 'dime',
'mime']
725: (2) [__________________________
___________________________________] ?

>>> /n?ame/ ~= ['name', 'ame', 'names', 'nam',


'nname', 'same', 'came', 'fame', 'game',
'dame']
726: (2) [__________________________
___________________________________] ?
Introduction and Puzzles 143

Lisp Examples
-------------
>>> (print (cons 1 (list 2 3)))
(1 2 3)

>>> (print (cons 5 (list)))


(5)

Lisp Puzzles
------------
>>> (print (cons (+ 2 3) (list 6 7)))
727: __________ ?

>>> (print (cons (* 4 2) (cdr (list 1 9 5))))


728: __________ ?

>>> (print (car (cons 15 (list 7 8))))


729: __________ ?

>>> (print (cdr (cons 20 (list 10 30))))


730: __________ ?

Computing History: 1975: Microsoft founded by


Bill Gates and Paul Allen

https://en.wikipedia.org/wiki/Microsoft
Introduction and Puzzles 144

Math Examples
-------------
0x0A 0x0C
+ 0x05 + 0x03
------ ------
0x0F 0x0F

Math Puzzles
------------
Puzzle 731: Puzzle 733: Puzzle 735:
0x0E 0x04 0x07
+ 0x01 + 0x0B + 0x09
------ ------ ------
0x__ 0x__ 0x__

Puzzle 732: Puzzle 734: Puzzle 736:


0x02 0x05 0x08
+ 0x0D + 0x0A + 0x08
------ ------ ------
0x__ 0x__ 0x__

Computing History: 1976: Software testing


methodology formalized by Glenford Myers

https://en.wikipedia.org/wiki/Software_testing
Introduction and Puzzles 145

Python Puzzles
--------------
>>> x, y, z = 2, 5, 1
>>> total = 0
>>> for num in range(x, y):
>>> total += num
>>> x, y = y, x
>>> print(f"{x}, {y}, {total}")
737: __________ ?

>>> p, q, r = 3, 1, 6
>>> result = 0
>>> for i in range(p, r):
>>> result += i + q
>>> print(f"{result}")
738: __________ ?

>>> a, b = 4, 2
>>> sum_val = 0
>>> for val in range(a, a + b):
>>> sum_val += val
>>> a, b = b, a
>>> print(f"{a}, {b}, {sum_val}")
739: __________ ?
Introduction and Puzzles 146

Truth Table Puzzles


-------------------
Truth Table 740: Truth Table 742:
a b | (a | b) a b | (a & b)
------------- -------------
F F | ___ F F | ___
F T | ___ F T | ___
T F | ___ T F | ___
T T | ___ T T | ___

Truth Table 741: Truth Table 743:


a b | ~(~a & ~b) a b | ~(~a | ~b)
---------------- ----------------
F F | ___ F F | ___
F T | ___ F T | ___
T F | ___ T F | ___
T T | ___ T T | ___

Computing History: 1976: Apple I uses 6502


processor, founded by Jobs and Wozniak

https://en.wikipedia.org/wiki/Apple_I
Introduction and Puzzles 147

ASCII
-----

ASCII 744:
68 65 84 65
__ __ __ __

ASCII 745:
83 84 82 85 67 84 85 82 69 83
__ __ __ __ __ __ __ __ __ __

ASCII 746:
65 76 71 79 82 73 84 72 77 83
__ __ __ __ __ __ __ __ __ __

ASCII 747:
69 70 70 73 67 73 69 78 67 89
__ __ __ __ __ __ __ __ __ __

Computing History: 1976: Zilog Z80


microprocessor released as enhanced 8080
successor

https://en.wikipedia.org/wiki/Zilog_Z80
Introduction and Puzzles 148

Conversion Examples
-------------------
0x10 = 0o020 0x11 = 0o021 0x17 = 0o027
0x20 = 0o040 0x22 = 0o042

Conversion Puzzles
------------------
748: 0xC4 = 0o___ ? 751: 0x7F = 0o___ ?
749: 0x80 = 0o___ ? 752: 0xFF = 0o___ ?
750: 0x2A = 0o___ ?

Conversion Puzzles
------------------
753: 0xEA = 0b________ ?
754: 0xB6 = 0b________ ?
755: 0x54 = 0b________ ?
756: 0xFC = 0b________ ?
757: 0b10010010 = 0x__ ?
758: 0b11100110 = 0x__ ?
759: 0b00111010 = 0x__ ?
760: 0x74 = 0b________ ?
761: 0b11111011 = 0x__ ?
762: 0xF0 = 0b________ ?

Conversion Puzzles
------------------
763: 0o031 = 0x__ ? 768: 0o257 = 0x__ ?
764: 0x52 = 0o___ ? 769: 0xEC = 0o___ ?
765: 0x3B = 0o___ ? 770: 0o041 = 0x__ ?
766: 0o320 = 0x__ ? 771: 0o302 = 0x__ ?
767: 0x33 = 0o___ ? 772: 0o242 = 0x__ ?
Introduction and Puzzles 149

773: WordSearch 'Programming Concepts'

X X L A R U D E C O R P C N O I S R U C E R M H
T D A K V E R S I O N C O N T R O L H A H S N T
E R N M E M O R Y M E N C A P S U L A T I O N E
R C O M P I L E X U T R O S K C I U Q H I E R E
P D I R Y B U B B L E S O R T I G S P T R E H R
R I T G R A N O I T C A R T S B A R C R T A F T
E C I M P E R A T I V E G M C H O N U N S D U Y
T T D E C L A R A T I V E V C M U C I H E E N R
N I N C O S E T A H V R A N Y F N O X C U B C A
I O O A N S H P A R G R A L L O P O N R Q U T N
D N C F S D E T N E I R O T C E J B O A E G I I
O A O R T Y A B S A B P E C N E R E F E R G O B
H R M E A R P O B D U S E M A N T I C S L I N P
T Y M T N T R L L I N K E D L I S T R Y L N A O
E C I N T T E Q I N H E R I T A N C E R U G L O
M H T I R O G L A G G N O I T P E C X E P K O L

ABSTRACTION ALGORITHM ARRAY BINARYTREE BRANCH


BUBBLESORT COMMIT COMPILE CONCURRENT
CONDITIONAL CONSTANT DEBUG DEBUGGING
DECLARATIVE DICTIONARY ENCAPSULATION ERROR
EXCEPTION FUNCTION FUNCTIONAL GIT GRAPH HASH
HEAP IMPERATIVE INHERITANCE INTERFACE INTERPRET
LINKEDLIST LOOP MEMORY MERGE MERGESORT METHOD
MULTITHREADING OBJECT OBJECTORIENTED POINTER
POLYMORPHISM PROCEDURAL PULLREQUEST QUICKSORT
RECURSION REFERENCE SEARCH SEMANTICS SET SORT
THREAD TRY VARIABLE VERSIONCONTROL
Introduction and Puzzles 150

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r1
>>> lsl r1, #1 >>> lsl r1, #2
>>> outpb r1 >>> outpb r1
0b0100, 0b1000 0b0100, 0b00010000

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 8 1: 7 r1: 16
2: 8 r2: 5 2: 8 r2: 5

Assembly Puzzles
----------------
Assembly 774: Assembly 775:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r2
>>> lsl r1, #3 >>> lsl r2, r2
>>> outpb r1 >>> outpb r2
________________ ? ________________ ?
Introduction and Puzzles 151

Regex Examples
--------------
>>> /(ab|cd)/ ~= ['a', 'b', 'ab', 'bc', 'cd',
'abcd']
Matches: (2) ['ab', 'cd']

Regex Puzzles
-------------
>>> /(ab|bc)+/ ~= ['abc', 'ab', 'bc', 'BC',
'abbc', 'bcab', 'aabc']
776: (4) [__________________________
___________________________________] ?

>>> /Jason (is|was) here./ ~=


['Was Jason here?', 'Jason is here?',
'Jason was here!', 'jason is here.']
777: (2) [__________________________
___________________________________] ?

Computing History: 1976: vi text editor created


by Bill Joy for BSD Unix

https://en.wikipedia.org/wiki/Vi
Introduction and Puzzles 152

Python Puzzles
--------------
>>> a, b, c = 1, 3, 2
>>> d, e = 4, 1
>>> total = 0
>>> flag1 = True
>>> flag2 = False
>>> for i in range(a, b + c):
>>> if flag1:
>>> total += d
>>> if flag2:
>>> total += e
>>> flag1, flag2 = flag2, flag1
>>> print(f"{total}")
778: __________ ?

>>> p, q, r, s = 2, 7, 1, 3
>>> result = 0
>>> for i in range(p, q):
>>> result += i + r
>>> p, q, r, s = s, p, q, r
>>> print(f"{p}, {result}")
779: __________ ?

>>> m, n, o = 8, 3, 5
>>> accumulator = 0
>>> for val in range(m, o, -n):
>>> accumulator += val
>>> m, n, o = o + n, m - n, n
>>> print(f"{m}, {accumulator}")
780: __________ ?
Introduction and Puzzles 153

Truth Table Puzzles


-------------------
Truth Table 781: Truth Table 782:
a b c | (a & b) | c a b c | a & (b | c)
------------------- -------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___

Computing History: 1977: Apple II computer


launched with 6502 processor

https://en.wikipedia.org/wiki/Apple_II
Introduction and Puzzles 154

ASCII
-----

ASCII 783:
69 77 66 69 68 68 69 68
__ __ __ __ __ __ __ __

ASCII 784:
70 73 82 77 87 65 82 69
__ __ __ __ __ __ __ __

ASCII 785:
82 69 65 76
__ __ __ __

ASCII 786:
84 73 77 69
__ __ __ __

Computing History: 1977: TRS-80 computer uses


Z80 processor

https://en.wikipedia.org/wiki/TRS-80
Introduction and Puzzles 155

Lisp Examples
-------------
>>> (print (nth 0 (list 10 20 30)))
10

>>> (print (nth 2 (list 4 5 6 7)))


6

Lisp Puzzles
------------
>>> (print (nth 1 (list 8 12 16)))
787: __________ ?

>>> (print (nth 0 (cdr (list 3 6 9))))


788: __________ ?

>>> (print (+ (nth 0 (list 2 4))


>>> (nth 1 (list 2 4))))
789: __________ ?

>>> (print (nth 2 (list 1 (* 3 2) 7 8)))


790: __________ ?

Computing History: 1977: Commodore PET computer


released with 6502 processor

https://en.wikipedia.org/wiki/Commodore_PET
Introduction and Puzzles 156

Conversion Puzzles
------------------
791: 0o010 = 0b____ ?
792: 0o024 = 0b________ ?
793: 0o071 = 0b________ ?
794: 0o022 = 0b________ ?
795: 0o133 = 0b________ ?
796: 0o051 = 0b________ ?
797: 0b11000111 = 0o___ ?
798: 0b01001001 = 0o___ ?
799: 0b01110011 = 0o___ ?
800: 0b00110101 = 0o___ ?
801: 0b11100100 = 0o___ ?
802: 0b00100001 = 0o___ ?
803: 0b01111000 = 0o___ ?
804: 0o230 = 0b________ ?
805: 0b10001101 = 0o___ ?
806: 0o140 = 0b________ ?
807: 0o015 = 0b____ ?
808: 0b0100 = 0o___ ?
809: 0o034 = 0b________ ?
810: 0o313 = 0b________ ?
811: 0b01000001 = 0o___ ?
812: 0o327 = 0b________ ?
813: 0b0111 = 0o___ ?
814: 0b11011101 = 0o___ ?
815: 0b10010001 = 0o___ ?
816: 0o105 = 0b________ ?
817: 0b10010011 = 0o___ ?
818: 0o125 = 0b________ ?
819: 0b11101001 = 0o___ ?
820: 0b10010111 = 0o___ ?
821: 0b01100110 = 0o___ ?
822: 0b11110010 = 0o___ ?
Introduction and Puzzles 157

Regex Puzzles
-------------
>>> /(cat|dog)+/ ~= ['cat', 'dog', 'catdog',
'dogcat', 'bird', 'catcatdog', 'dogdogcat',
'catdogcat', 'fish', 'cats']
823: (7) [__________________________
___________________________________] ?

>>> /(ab|cd)*/ ~= ['', 'ab', 'cd', 'abcd',


'cdab', 'ac', 'abab', 'cdcdcd', 'abcdab',
'bd']
824: (8) [__________________________
___________________________________] ?

>>> /(yes|no)+/ ~= ['yes', 'no', 'yesno',


'noyes', 'maybe', 'yesyesno', 'nonono',
'yesnono', 'y', 'yesyes']
825: (8) [__________________________
___________________________________] ?

>>> /(red|blue).*/ ~= ['red', 'blue',


'redcar', 'bluehouse', 'green', 'red123',
'blue!', 'redblue', 'color', 'redhot']
826: (8) [__________________________
___________________________________] ?

>>> /.*(up|down)/ ~= ['up', 'down', 'lookup',


'breakdown', 'side', 'getup', 'putdown',
'updown', 'out', 'backup']
827: (8) [__________________________
___________________________________] ?
Introduction and Puzzles 158

Python Examples
---------------
>>> def greet():
>>> print("hello!")
>>>
>>> greet()
hello!

Python Puzzles
--------------
>>> def add(x, y):
>>> return x + y
>>>
>>> print(f"{add(2,3)}")
828: __________ ?

>>> def get_value():


>>> return 40;
>>>
>>> print(f"{get_value() + 2}")
829: __________ ?

Computing History: 1978: Intel 8086 processor


released - x86 architecture begins

https://en.wikipedia.org/wiki/Intel_8086
Introduction and Puzzles 159

Assembly Puzzles
----------------
Assembly 830: Assembly 832:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 6 0: 6 r0: 2
1: 7 r1: 4 1: 7 r1: 5
2: 8 r2: 5 2: 8 r2: 4
>>> outpb r0 >>> outpb r1
>>> lsl r0, #1 >>> lsl r1, r0
>>> outpb r0 >>> outpb r1
________________ ? ________________ ?

Assembly 831: Assembly 833:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 4
1: 7 r1: 4 1: 7 r1: 3
2: 8 r2: 3 2: 8 r2: 2
>>> outpb r2 >>> lsl r0, #2
>>> lsl r2, #4 >>> lsl r0, #1
>>> outpb r2 >>> outpb r0
________________ ? ________________ ?

Computing History: 1979: Atari 400 and 800


computers use 6502 processor

https://en.wikipedia.org/wiki/Atari_8-bit_family
Introduction and Puzzles 160

Truth Table Examples


--------------------
a b | (a ^ b) a b c | ((a ^ b) ^ c)
------------- ---------------------
F F | F F F F | F
F T | T F F T | T
T F | T F T F | T
T T | F F T T | F
T F F | T
T F T | F
T T F | F
T T T | T

Truth Table Puzzles


-------------------
Truth Table 834: Truth Table 835:
a b c | (a ^ b) | c a b c | a & (b ^ c)
------------------- -------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___
Introduction and Puzzles 161

ASCII
-----

ASCII 836:
65 82 84 73 70 73 67 73 65 76
__ __ __ __ __ __ __ __ __ __

ASCII 837:
78 69 85 82 65 76
__ __ __ __ __ __

ASCII 838:
78 69 84 87 79 82 75
__ __ __ __ __ __ __

ASCII 839:
83 73 77 85 76 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __

Computing History: 1979: VisiCalc released -


first spreadsheet program

https://en.wikipedia.org/wiki/VisiCalc
Introduction and Puzzles 162

840: WordSearch 'Embedded Systems Tools'

E U T W S U B N I L S O T R E E R F E E B G Z I
R T H R D B U G M R J T A G S O F T W A R E A P
A R R A E L A R R T E Y M C E H A R D W A R E S
W A E S B U R D O R J L X F N P B R D C M J T P
M C A P U E T I F S O U L N S F Y I D M A E W O
R T D B G T A Y T I N T E O O O F T B U N M S R
I U T E G O A G A I R E A Z R R L E O R I C E O
F A I R E O D P L W W O S L F T D D E T I N F T
P T U R R T C D P E E I R K U C N H E L O Z O A
M O C Y A H E H T S B T F C S M T O L R I R M L
O R R P C D C L O C K O A I I E E A C G I O P U
R O I I D I C H I P C B N G O M T T B O D N R M
P T C E I R M I C R O S D E N O C E O B R T G I
E S B F L A S H M E M O R Y R O E I U O O C P S
E M W C A D R I V E C I R C U I T S P S B X I D
E E B O R P E C A F R E T N I S U B N A C U S M

ACTUATOR ADC ARDUINO ARMMBED BEAGLEBONE


BLUETOOTH CANBUS CIRCUIT CLOCK DAC DEBUGGER
DRIVECIRCUIT EEPROM EMBEDDEDLINUX EMULATOR
ETHERNET FIRMWARE FLASHMEMORY FREERTOS GATEWAY
HARDWARE INTERFACE IOT IOTPLATFORM JTAG LINBUS
MICROCONTROLLER MICROSD MODBUS NFC OSCILLATOR
PCB PICMICRO PROBE PROTOTYPE PWM RASPBERRYPI
RFID RTOS SENSOR SENSORFUSION SIMULATOR
SOFTWARE SOLDERING SPI THREAD UART UBOOT WIFI
ZIGBEE
Introduction and Puzzles 163

Math Examples
-------------
0x10 0x2A 0x3F
+ 0x01 + 0x15 + 0x20
------ ------ ------
0x11 0x3F 0x5F

Math Puzzles
------------
Puzzle 841: Puzzle 843:
0x45 0x78
+ 0x1B + 0x39
------ ------
0x__ 0x__

Puzzle 842: Puzzle 844:


0x6C 0x8D
+ 0x23 + 0x42
------ ------
0x__ 0x__

Computing History: 1980: Sinclair ZX80 home


computer uses Z80 processor

https://en.wikipedia.org/wiki/Sinclair_ZX80
Introduction and Puzzles 164

Regex Puzzles
-------------
>>> /(ba)*na+/ ~= ['na', 'bana', 'banana',
'babana', 'nana', 'ana', 'bananas', 'baba',
'naaa', 'ban']
845: (4) [__________________________
___________________________________] ?

>>> /(la)+(di)+(da)*/ ~= ['ladi', 'ladida',


'laladi', 'laladida', 'la', 'dida',
'ladidada', 'lalaladi', 'lady',
'laladidadada']
846: (7) [__________________________
___________________________________] ?

>>> /(go|stop)+ ahead/ ~= ['go ahead',


'stop ahead', 'gogo ahead', 'stopstop ahead',
'ahead', 'gostop ahead', 'run ahead', 'go',
'stopgo ahead', 'gogogo ahead']
847: (7) [__________________________
___________________________________] ?

>>> /start (and|or)+ end/ ~= ['start and end',


'start or end', 'start andor end',
'start end', 'start and or end',
'start orand end', 'and end',
'start andandor end', 'start oror end',
'beginning and end']
848: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 165

Lisp Puzzles
------------
>>> (print (nth 0 (cons 12 (list 3 6))))
849: __________ ?

>>> (print (nth 1 (cons 5


>>> (cons 8 (list 11)))))
850: __________ ?

>>> (print (cons (nth 1 (list 4 7)) (list 9)))


851: __________ ?

>>> (print (length (cons 4 (list 1 2 3))))


852: __________ ?

Computing History: 1981: Sinclair ZX81 computer


with Z80 processor

https://en.wikipedia.org/wiki/Sinclair_ZX81
Introduction and Puzzles 166

Python Puzzles
--------------
>>> def calculate(x, y):
>>> return x + y + 3
>>>
>>> a, b = 5, 2
>>> result = calculate(a, b)
>>> print(f"Result: {result}")
853: __________ ?

>>> def process(num):


>>> return num * 2 + 1
>>>
>>> value = 7
>>> print(f"{process(value) + 5}")
854: __________ ?

Computing History: 1981: IBM PC released, sets


personal computer standard

https://en.wikipedia.org/wiki/IBM_Personal_Computer
Introduction and Puzzles 167

Truth Table Puzzles


-------------------
Truth Table 855:
a b | (a ^ ~b) | b
------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 856:


a b | (a & ~b) | (~a & b)
-------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 857:


a b | ~(a & b)
--------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 858:


a b | ~(a | b)
--------------
F F | ___
F T | ___
T F | ___
T T | ___
Introduction and Puzzles 168

Conversion Puzzles
------------------
859: 0o033 = __ ? 875: 48 = 0o___ ?
860: 189 = 0o___ ? 876: 175 = 0o___ ?
861: 236 = 0o___ ? 877: 0o303 = ___ ?
862: 13 = 0o___ ? 878: 168 = 0o___ ?
863: 99 = 0o___ ? 879: 204 = 0o___ ?
864: 242 = 0o___ ? 880: 0o343 = ___ ?
865: 31 = 0o___ ? 881: 0o177 = ___ ?
866: 0o065 = __ ? 882: 126 = 0o___ ?
867: 206 = 0o___ ? 883: 70 = 0o___ ?
868: 3 = 0o___ ? 884: 160 = 0o___ ?
869: 19 = 0o___ ? 885: 0o227 = ___ ?
870: 0o372 = ___ ? 886: 196 = 0o___ ?
871: 0o247 = ___ ? 887: 129 = 0o___ ?
872: 86 = 0o___ ? 888: 0o031 = __ ?
873: 133 = 0o___ ? 889: 0o262 = ___ ?
874: 0o367 = ___ ? 890: 0o161 = ___ ?

Computing History: 1981: MS-DOS operating system


released with IBM PC

https://en.wikipedia.org/wiki/MS-DOS
Introduction and Puzzles 169

ASCII
-----

ASCII 891:
82 69 71 85 76 65 82
__ __ __ __ __ __ __

ASCII 892:
69 88 80 82 69 83 83 73 79 78 83
__ __ __ __ __ __ __ __ __ __ __

ASCII 893:
67 79 68 69 82
__ __ __ __ __

ASCII 894:
68 69 67 79 68 69 82
__ __ __ __ __ __ __

Computing History: 1982: Sinclair ZX Spectrum


uses Z80 processor

https://en.wikipedia.org/wiki/ZX_Spectrum
Introduction and Puzzles 170

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r1
>>> lsr r1, #1 >>> lsr r1, #2
>>> outpb r1 >>> outpb r1
0b0100, 0b0010 0b0100, 0b0001

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 2 1: 7 r1: 1
2: 8 r2: 5 2: 8 r2: 5

Assembly Puzzles
----------------
Assembly 895: Assembly 896:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r2
>>> lsr r1, #3 >>> lsr r2, r2
>>> outpb r1 >>> outpb r2
________________ ? ________________ ?
Introduction and Puzzles 171

Regex Puzzles
-------------
>>> /(Mr|Mrs|Ms)\.? Smith/ ~= ['Mr Smith',
'Mrs. Smith', 'Ms Smith', 'Mr. Smith',
'Dr Smith', 'Mrs Smith', 'Ms. Smith',
'MrSmith', 'Mrs.Smith', 'Miss Smith']
897: (6) [__________________________
___________________________________] ?

>>> /(http|https):\/\/.*/ ~=
['http://site.com', 'https://secure.org',
'ftp://files.net', 'https://', 'mailto://',
'http://test', 'https://example']
898: (5) [__________________________
___________________________________] ?

>>> /(color|colour)s?/ ~= ['color', 'colour',


'colors', 'colours', 'colored', 'coloured',
'coloring', 'colouring', 'col', 'colorss']
899: (4) [__________________________
___________________________________] ?

>>> /(alumin|alumin)ium/ ~= ['aluminum',


'aluminium', 'aluminiums', 'aluminums',
'alumin', 'aluminim', 'aluminate', 'alumnus',
'alum', 'alumina']
900: (1) [__________________________
___________________________________] ?

>>> /(gray|grey)?/ ~= ['gray', 'grey',


'grayscale', 'greyscale', 'grayish',
'greyish', 'gra', 'gre', '', 'grays']
901: (3) [__________________________
___________________________________] ?
Introduction and Puzzles 172

Python Examples
---------------
>>> def test_func(n):
>>> print("called")
>>> return n > 5
>>>
>>> print(False and test_func(10))
False

>>> def test_func(n):


>>> print("called")
>>> return n > 5
>>>
>>> print(True and test_func(10))
called
True

Python Puzzles
--------------
>>> def check(x):
>>> print("checking")
>>> return x == 0
>>>
>>> print(False and check(5))
>>> print(True and check(5))
902: __________ ?

>>> def validate(n):


>>> print("validating")
>>> return n < 10
>>>
>>> print(True or validate(15))
>>> print(False or validate(15))
903: __________ ?
Introduction and Puzzles 173

904: WordSearch 'JavaScript Keywords'

M U N E E C A F N E T R I E S S A L C P P R M E
D E T E L E X T E N D S R N T U R E V A R B O S
N O U T C N I F R F O E P Y T E L F A C I F L F
E P U B L I C M O O D X B A L E L L R K T A L A
T X C C E R S U P E R W Y U C E R E N A A L U L
L S P H O U A S I T C E L N G G S F D G V S N F
U X E O R N N H I F R N L E X G A A A E E E I O
A H H A R A S I C H Y O A Y R T E K C C N V D N
F C C B C T M T T B T E N T H W O R E V E O E C
E T T S L P V W Y N L A I B S E T H R O W I T E
D I A T O B I T R B O E F N K N R U T E R D C A
E W C R O L E Y U Y E C T S C T I W H A F B E T
S S T A B E T O I L I E T A V I R P A W V R T S
L R O C E U D E I O N O I T C N U F A A O E O N
E L D T A O L H B O O L E A N S T A T I C A R I
H T I W N D W P W S T N E M E L P M I T R K P F

ABSTRACT AWAIT BOOLEAN BREAK BYTE CASE CATCH


CHAR CLASS CONST CONTINUE DEBUGGER DEFAULT
DELETE DO DOUBLE ELSE ENUM EXPORT EXTENDS FALSE
FINALLY FOR FUNCTION IF IMPLEMENTS IMPORT
INSTANCEOF INTERFACE LET NEW NULL PACKAGE
PRIVATE PROTECTED PUBLIC RETURN STATIC SUPER
SWITCH THIS THROW TRY TYPEOF VAR VOID WHILE
WITH YIELD
Introduction and Puzzles 174

Truth Table Puzzles


-------------------
Truth Table 905: Truth Table 907:
a b c | (a ^ b) & c a b c | (a | b) ^ c
------------------- -------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___

Truth Table 906: Truth Table 908:


a b c | a ^ (b & c) a b c | a | (b ^ c)
------------------- -------------------
F F F | ___ F F F | ___
F F T | ___ F F T | ___
F T F | ___ F T F | ___
F T T | ___ F T T | ___
T F F | ___ T F F | ___
T F T | ___ T F T | ___
T T F | ___ T T F | ___
T T T | ___ T T T | ___
Introduction and Puzzles 175

Lisp Examples
-------------
>>> (define x 42)
>>> (print x)
42

Lisp Puzzles
------------
>>> (define x 4)
>>> (define y 10)
>>> (define z 2)
>>> (print
>>> (+ z
>>> (* x y)
>>> )
>>> )
909: __________ ?

Computing History: 1982: Coleco Adam computer


with Z80 processor

https://en.wikipedia.org/wiki/Coleco_Adam
Introduction and Puzzles 176

ASCII
-----

ASCII 910:
66 73 71
__ __ __

ASCII 911:
68 65 84 65
__ __ __ __

ASCII 912:
68 73 83 84 82 73 66 85 84 69 68
__ __ __ __ __ __ __ __ __ __ __

ASCII 913:
83 84 79 82 65 71 69
__ __ __ __ __ __ __

Computing History: 1982: Commodore 64 released


with 6502 processor - best-selling computer

https://en.wikipedia.org/wiki/Commodore_64
Introduction and Puzzles 177

Conversion Puzzles
------------------
914: 0o142 = 0x__ ? 930: 0x67 = 0o___ ?
915: 0o327 = 0x__ ? 931: 0o026 = 0x__ ?
916: 0xED = 0o___ ? 932: 0x1E = 0o___ ?
917: 0x59 = 0o___ ? 933: 0xB8 = 0o___ ?
918: 0o070 = 0x__ ? 934: 0o150 = 0x__ ?
919: 0x18 = 0o___ ? 935: 0o334 = 0x__ ?
920: 0xC6 = 0o___ ? 936: 0o320 = 0x__ ?
921: 0o135 = 0x__ ? 937: 0o375 = 0x__ ?
922: 0x60 = 0o___ ? 938: 0o130 = 0x__ ?
923: 0o027 = 0x__ ? 939: 0o247 = 0x__ ?
924: 0x64 = 0o___ ? 940: 0x5A = 0o___ ?
925: 0x91 = 0o___ ? 941: 0xB4 = 0o___ ?
926: 0x3D = 0o___ ? 942: 0o110 = 0x__ ?
927: 0x02 = 0o___ ? 943: 0xD1 = 0o___ ?
928: 0o157 = 0x__ ? 944: 0o056 = 0x__ ?
929: 0o373 = 0x__ ? 945: 0xF9 = 0o___ ?

Computing History: 1983: Compaq Portable


released - IBM PC compatible clone

https://en.wikipedia.org/wiki/Compaq_Portable
Introduction and Puzzles 178

Python Puzzles
--------------
>>> def add_range(start, end):
>>> total = 0
>>> for i in range(start, end):
>>> total += i
>>> return total
>>>
>>> a, b = 2, 5
>>> result = add_range(a, b)
>>> print(f"{result}")
946: __________ ?

>>> def multiply_sum(x, y):


>>> return (x + y) * 2
>>>
>>> p, q = 3, 7
>>> value = multiply_sum(p, q)
>>> enabled = False
>>> for i in range(3):
>>> if enabled:
>>> value += 5
>>> enabled = not enabled
>>> print(f"{value}")
947: __________ ?
Introduction and Puzzles 179

Regex Puzzles
-------------
>>> /(www\.)?example\.com/ ~= ['example.com',
'www.example.com', 'example.org',
'www.example.org', 'example', 'www.example',
'ftp.example.com', 'mail.example.com',
'wwwexample.com', 'www..example.com']
948: (2) [__________________________
___________________________________] ?

>>> /(Dr|Prof)\.? (Smith|Jones)/ ~=


['Dr Smith', 'Prof. Jones', 'Dr. Smith',
'Prof Jones', 'Mr Smith', 'Dr Brown',
'Prof. Smith', 'Dr Jones', 'Professor Smith',
'Doctor Jones']
949: (6) [__________________________
___________________________________] ?

>>> /call (me )?(maybe|later)/ ~=


['call maybe', 'call me maybe', 'call later',
'call me later', 'call me', 'call',
'call me tomorrow', 'call me soon', 'maybe',
'call me please']
950: (4) [__________________________
___________________________________] ?

>>> /(re)?start(ing)?/ ~= ['start', 'restart',


'starting', 'restarting', 'started',
'restarted', 'starts', 'restarts',
'startings', 'restartings']
951: (4) [__________________________
___________________________________] ?
Introduction and Puzzles 180

Assembly Puzzles
----------------
Assembly 952: Assembly 954:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 12 0: 6 r0: 2
1: 7 r1: 4 1: 7 r1: 20
2: 8 r2: 5 2: 8 r2: 4
>>> outpb r0 >>> outpb r1
>>> lsr r0, #1 >>> lsr r1, r0
>>> outpb r0 >>> outpb r1
________________ ? ________________ ?

Assembly 953: Assembly 955:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 32
1: 7 r1: 4 1: 7 r1: 3
2: 8 r2: 48 2: 8 r2: 2
>>> outpb r2 >>> lsr r0, #2
>>> lsr r2, #4 >>> lsr r0, #1
>>> outpb r2 >>> outpb r0
________________ ? ________________ ?

Computing History: 1983: Nintendo Famicom uses


6502 processor (NES in North America)

https://en.wikipedia.org/wiki/Nintendo_Entertainment_System
Introduction and Puzzles 181

Truth Table Puzzles


-------------------
Truth Table 956:
a b c d | (a & b) ^ (c & d)
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1983: MSX standard computers


use Z80 processor

https://en.wikipedia.org/wiki/MSX
Introduction and Puzzles 182

ASCII
-----

ASCII 957:
86 73 82 84 85 65 76
__ __ __ __ __ __ __

ASCII 958:
82 69 65 76 73 84 89
__ __ __ __ __ __ __

ASCII 959:
65 85 71 77 69 78 84 69 68
__ __ __ __ __ __ __ __ __

ASCII 960:
69 88 80 69 82 73 69 78 67 69
__ __ __ __ __ __ __ __ __ __

Computing History: 1983: Turbo Pascal released


by Borland

https://en.wikipedia.org/wiki/Turbo_Pascal
Introduction and Puzzles 183

Math Examples
-------------
0x9E 0xAF
+ 0x51 + 0x60
------ --------
0xEF 0x010F

Math Puzzles
------------
Puzzle 961: Puzzle 963: Puzzle 965:
0xB7 0xDA 0xFC
+ 0x48 + 0x25 + 0x03
------ ------ ------
0x__ 0x__ 0x__

Puzzle 962: Puzzle 964: Puzzle 966:


0xC9 0xEB 0x55
+ 0x36 + 0x14 + 0xAA
------ ------ ------
0x__ 0x__ 0x__

Computing History: 1983: Unit testing concept


introduced with Smalltalk-80

https://en.wikipedia.org/wiki/Unit_testing
Introduction and Puzzles 184

Python Puzzles
--------------
>>> def double_add(x):
>>> return x * 2 + 1
>>>
>>> def triple_add(y):
>>> return y * 3 + 2
>>>
>>> a = 4
>>> result1 = double_add(a)
>>> result2 = triple_add(a)
>>> print(f"{result1 + result2}")
967: __________ ?

>>> def process_num(val):


>>> return val + 5
>>>
>>> def compute_result(num):
>>> return num * 2
>>>
>>> x = 3
>>> temp = process_num(x)
>>> final = compute_result(temp)
>>> print(f"{final}")
968: __________ ?
Introduction and Puzzles 185

Regex Examples
--------------
>>> /a{2,4}/ ~= ['a', 'aa', 'aaa', 'aaaa',
'aaaaa']
Matches: (3) ['aa', 'aaa', 'aaaa']

Regex Puzzles
-------------
>>> /a{1,3}b{0,2}/ ~= ['a', 'ab', 'aab',
'aabb', 'aaabb', 'aaabbb', 'aaaabbb',
'aaaabbbb']
969: (5) [__________________________
___________________________________] ?

>>> /(a{1,3}|b{2,4})/ ~= ['a', 'aa', 'aaa',


'aaaa', 'aaaaa', 'b', 'bb', 'bbb', 'bbbb',
'bbbbb', 'aabb']
970: (6) [__________________________
___________________________________] ?

Computing History: 1983: Internet adopts TCP/IP


protocol

https://en.wikipedia.org/wiki/Internet_protocol_suite
Introduction and Puzzles 186

Lisp Puzzles
------------
>>> (define nums (list 3 6 9))
>>> (print (* (car nums) (length nums)))
971: __________ ?

>>> (define a 5)
>>> (define b (+ a 3))
>>> (print (min (* a 3) b))
972: __________ ?

>>> (define lst1 (list 4 5))


>>> (define lst2 (append lst1 (list 6)))
>>> (print (car (cdr (cdr lst2))))
973: __________ ?

>>> (define x (max 7 4))


>>> (define y (- 20 x))
>>> (define result (list x y))
>>> (print (+ (car result)
>>> (car (cdr result))))
974: __________ ?

Computing History: 1983: IBM PC XT released with


hard disk drive

https://en.wikipedia.org/wiki/IBM_Personal_Computer_XT
Introduction and Puzzles 187

975: WordSearch 'Programming Languages'

A L T S U R H T R O F R P X O O Q R I X I L E G
A C C S U L P S U L P C S L Q B A B B N O M M N
L N I T P C I S A B L A U S I V E A A G F A T A
A I O T L H O F O X P R O P A S S R L S P O A L
C L T B A M P T E K C A R J P H P A O L I C R R
S T T P J M A S W I F T P S C H E M E N T C D M
K O P L I E E C O F F E E S C R I P T I H Q P Z
W K S I L R C H O D R F G R O O V Y O Z E O R P
A G M H R E C T T L R L E P C T L N S R S N V R
I O A A T C K S I A I O Y L R S S C L T M A E A
L L L X U J S S E V M B W A C C L A S C N R R H
U O L E S A A D A P E O D R R O N C I H O T I S
J R T H R U B Y G H Y C A I J G R I M A H R L F
T P A L A B V I E W O T P U H I J B U P T O O K
D R L U G O L A N G C T R S P V H D L E Y F G Z
P Y K A S U M I L H I E Z T E K C R A L P L Q S

ACTIONSCRIPT ADA ALGOL AWK BASH CHAPEL CLOJURE


COBOL COFFEESCRIPT CPLUSPLUS DART EIFFEL ELIXIR
ERLANG FORTH FORTRAN FOXPRO FSHARP GDSCRIPT
GOLANG GROOVY HASKELL HAXE INFORM JAVA JSHARP
JULIA KOTLIN LABVIEW LISP LUA MAPLE MATHEMATICA
OBERON OBJECTIVEC OCAML PERL PHP POSTSCRIPT
PROLOG PYTHON QBASIC RACKET RLANG RUBY RUST
SCALA SCHEME SCRATCH SIMULA SMALLTALK SQL SWIFT
TCL TYPESCRIPT VERILOG VHDL VISUALBASIC ZSH
Introduction and Puzzles 188

Conversion Puzzles
------------------
976: 0x5C = 0o___ ? 992: 24 = 0o___ ?
977: 0o063 = __ ? 993: 241 = 0x__ ?
978: 0o342 = ___ ? 994: 0x13 = 0o___ ?
979: 0xB0 = 0o___ ? 995: 0o103 = 0x__ ?
980: 0x54 = 0o___ ? 996: 0xDF = ___ ?
981: 0xD0 = ___ ? 997: 126 = 0o___ ?
982: 0o102 = 0x__ ? 998: 0o055 = 0x__ ?
983: 0o213 = ___ ? 999: 59 = 0o___ ?
984: 80 = 0x__ ? 1000: 0o057 = __ ?
985: 169 = 0o___ ? 1001: 114 = 0x__ ?
986: 68 = 0x__ ? 1002: 0x47 = 0o___ ?
987: 0o156 = ___ ? 1003: 26 = 0x__ ?
988: 0x16 = __ ? 1004: 205 = 0x__ ?
989: 218 = 0x__ ? 1005: 0o160 = 0x__ ?
990: 0x0B = 0o___ ? 1006: 0o070 = __ ?
991: 0o172 = ___ ? 1007: 0o017 = 0x__ ?

Computing History: 1984: Apple Macintosh


introduces commercial GUI

https://en.wikipedia.org/wiki/Macintosh_128K
Introduction and Puzzles 189

Truth Table Puzzles


-------------------
Truth Table 1008:
a b c d | (a ^ c) & (b ^ d)
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1984: GNU Emacs released by


Richard Stallman

https://en.wikipedia.org/wiki/GNU_Emacs
Introduction and Puzzles 190

Assembly Puzzles
----------------
Assembly 1009: Assembly 1011:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 5 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 3 2: 8 r2: 6
>>> outpb r0 >>> lsl r2, #3
>>> lsl r0, #1 >>> lsr r2, #2
>>> lsr r0, #1 >>> outpb r2
>>> outpb r0 ________________ ?
________________ ?

Assembly 1010: Assembly 1012:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 16
1: 7 r1: 24 1: 7 r1: 2
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> lsr r0, r1
>>> lsr r1, #2 >>> lsl r0, r1
>>> lsl r1, #1 >>> outpb r0
>>> outpb r1 ________________ ?
________________ ?
Introduction and Puzzles 191

Python Puzzles
--------------
>>> def add_three(a, b, c):
>>> return a + b + c
>>>
>>> def multiply(x, y):
>>> return x * y
>>>
>>> product = multiply(add_three(2, 3, 1), 2)
>>> print(f"{product}")
1013: __________ ?

>>> def increment(num):


>>> return num + 1
>>>
>>> def double(val):
>>> return val * 2
>>>
>>> res = double(increment(5))
>>> print(f"{res}")
1014: __________ ?

>>> def combine(a, b):


>>> return a + b, a * b
>>>
>>> def transform(a, b):
>>> return a * 3, b * 2
>>>
>>> m, n = 4, 6
>>> n, m = combine(m, n)
>>> m, n = transform(m, n)
>>>
>>> print(f"{m}, {n}")
1015: __________ ?
Introduction and Puzzles 192

ASCII
-----

ASCII 1016:
77 79 68 69 82 78
__ __ __ __ __ __

ASCII 1017:
73 78 84 69 71 82 65 84 69 68
__ __ __ __ __ __ __ __ __ __

ASCII 1018:
68 69 86 69 76 79 80 77 69 78 84
__ __ __ __ __ __ __ __ __ __ __

ASCII 1019:
69 78 86 73 82 79 78 77 69 78 84
__ __ __ __ __ __ __ __ __ __ __

Computing History: 1984: IBM PC AT released with


80286 processor

https://en.wikipedia.org/wiki/IBM_Personal_Computer/AT
Introduction and Puzzles 193

Regex Puzzles
-------------
>>> /[abc]{2,3}/ ~= ['ab', 'abc', 'ca',
'abcd', 'a', 'bcba', 'aa', 'ccc', 'abab', 'b']
1020: (5) [__________________________
___________________________________] ?

>>> /[123]{1,2}\./ ~= ['1.', '12.', '21',


'123.', '3.', '21.', '.', '111.', '2.', '13.',
'4.']
1021: (6) [__________________________
___________________________________] ?

>>> /.{3,5}end/ ~= ['end', '123end', 'abcend',


'xyzend', '12345end', '1234567end', 'abend',
'testend', '12end', 'abcdefend']
1022: (5) [__________________________
___________________________________] ?

>>> /[xyz]+.{0,2}/ ~= ['x', 'xyz', 'x12', 'y',


'xyz123', 'z1', 'abc', 'xyza', 'xyzabc', 'a']
1023: (6) [__________________________
___________________________________] ?

>>> /\+{2,4}[abc]*/ ~= ['++', '+++', '++++',


'+', '++abc', '+++a', '++++bcac', '+++++',
'+++xyz', '++++cab']
1024: (7) [__________________________
___________________________________] ?
Introduction and Puzzles 194

Truth Table Puzzles


-------------------
Truth Table 1025:
a b | ~(a ^ b)
--------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1026:


a b | (a & ~b) | (~a & b)
-------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Computing History: 1985: C++ programming


language first commercial release

https://en.wikipedia.org/wiki/C%2B%2B
Introduction and Puzzles 195

Lisp Examples
-------------
>>> (begin
>>> (print "first")
>>> (print "second"))
first
second

>>> (define x (begin


>>> (print "calculating")
>>> (+ 3 4)))
>>> (print x)
calculating
7

Lisp Puzzles
------------
>>> (begin
>>> (print "hello")
>>> (print "world")
>>> (print "done"))
1027: __________ ?

>>> (define result (begin


>>> (print "working")
>>> (* 5 6)))
>>> (print result)
1028: __________ ?
Introduction and Puzzles 196

Python Examples
---------------
>>> items = [1,2,3,4]
>>>
>>> for item in items:
>>> print(f"{item}")
1
2
3
4

>>> items = [1,2,3,4]


>>> print(f"{items}")
>>> print(len(items))
[1, 2, 3, 4]
4

>>> items = [1,2,3,4]


>>> print(f"{items[1:]}")
[2, 3, 4]

Python Puzzles
--------------
>>> items = [1,2,3,4,5]
>>> print(f"{items[2:]}")
>>> print(len(items))
1029: __________ ?
Introduction and Puzzles 197

Conversion Puzzles
------------------
1030: 0o030 = __ ?
1031: 0x8B = 0b________ ?
1032: 0o153 = 0b________ ?
1033: 0x2D = 0b________ ?
1034: 0xAD = ___ ?
1035: 0b0001 = __ ?
1036: 0o073 = 0x__ ?
1037: 0b00100100 = 0o___ ?
1038: 0o265 = 0x__ ?
1039: 110 = 0x__ ?
1040: 245 = 0x__ ?
1041: 0xE7 = 0o___ ?
1042: 0b11100010 = 0x__ ?
1043: 156 = 0o___ ?
1044: 0x0F = 0o___ ?
1045: 186 = 0x__ ?
1046: 0b00111000 = 0x__ ?
1047: 26 = 0x__ ?
1048: 0o053 = 0b________ ?
1049: 18 = 0x__ ?
1050: 0x87 = ___ ?
1051: 0b11100011 = 0x__ ?
1052: 0o317 = ___ ?
1053: 0xDC = 0b________ ?
1054: 0b01011001 = 0x__ ?
1055: 0o060 = 0x__ ?
1056: 0o163 = ___ ?
1057: 147 = 0x__ ?
1058: 250 = 0x__ ?
1059: 0xD2 = ___ ?
1060: 146 = 0b________ ?
1061: 0o262 = 0b________ ?
Introduction and Puzzles 198

ASCII
-----

ASCII 1062:
83 79 70 84 87 65 82 69
__ __ __ __ __ __ __ __

ASCII 1063:
76 73 67 69 78 83 73 78 71
__ __ __ __ __ __ __ __ __

ASCII 1064:
79 80 69 78
__ __ __ __

ASCII 1065:
67 79 77 80 76 73 65 78 67 69
__ __ __ __ __ __ __ __ __ __

Computing History: 1985: Amstrad CPC computers


use Z80 processor

https://en.wikipedia.org/wiki/Amstrad_CPC
Introduction and Puzzles 199

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 13 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 15
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r0 >>> outpb r1
>>> lsr r0, #1 >>> lsr r1, #2
>>> outpb r0 >>> outpb r1
>>> lsl r0, #1 >>> lsl r1, #2
>>> outpb r0 >>> outpb r1
0b1101, 0b0110, 0b1100 0b1111, 0b0011, 0b1100

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 12 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 12
2: 8 r2: 5 2: 8 r2: 5

Assembly Puzzles
----------------
Assembly 1066: Assembly 1067:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 15 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 13
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r0 >>> outpb r1
>>> lsr r0, #1 >>> lsr r1, #2
>>> lsl r0, #1 >>> lsl r1, #2
>>> outpb r0 >>> outpb r1
________________ ? ________________ ?
Introduction and Puzzles 200

Regex Puzzles
-------------
>>> /[pqr]{2}.*[xyz]{1,3}/ ~= ['ppx', 'qqyz',
'rrabc xyz', 'pr123x', 'pxyz', 'pqxyz',
'rryyy', 'ppqxy', 'qrz', 'ppp']
1068: (8) [__________________________
___________________________________] ?

>>> /start.{0,3}end/ ~= ['startend',


'start end', 'startabcend', 'start123end',
'startabcdend', 'startnd', 'start1234end',
'startxend', 'startxxend', 'beginning']
1069: (6) [__________________________
___________________________________] ?

>>> /[aeiou]{2,}.*!/ ~= ['aa!', 'eee!',


'ou test!', 'aeiou!', 'a!', 'ae123!',
'iii...!', 'e!', 'aei', 'oui!']
1070: (7) [__________________________
___________________________________] ?

>>> /[0123456789]{3,4}-[abc]+/ ~= ['123-a',


'1234-abc', '12-a', '999-cab', '12345-b',
'111-bcac', '1111-a', '22-abc', '333-',
'4444-xyz']
1071: (5) [__________________________
___________________________________] ?

>>> /[mn]{1,2}.{2,3}[pq]{1}/ ~= ['m12p',


'nn123q', 'mabp', 'nxyzq', 'mn12p', 'm1234p',
'mmabcdq', 'np', 'm12345p', 'nnnnp']
1072: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 201

1073: WordSearch
'Functional Programming Languages'

S S P E F L P R F H S A I L U J R U E O L C G Y
A Y E L A M B D A A C L C O Q R E A S O N O O R
D M R G F E P L M D R A D N A T S D I Q S G N R
I B U N U R I J A Y L C Y L B I L N N U I L I U
A O P N I C C L A C M L M O R A J A F L I Y S C
R L F L S U O J U E A O O D T P I R C S E R U P
N I S A O R L N L W C J I C B Q N I P L H A N E
M C A U N Y I M X A O U F S C H E M E R U A C L
F L T F E S S T L M C R O I M G L M I R E C R F
U A R E O R P E H A A E R Y E N P X I L A N I P
R N C N K C L A C A D B M A L A I N C C I T U D
Y G F T B C S A S D S B A G L L A T C A R F S F
C C U Q O A A I N A X K M J E N L N S Q K O A F
R A N A D R G R A G O M E A Y U U G M M O O M X
E L T G P M M F U S I O N L L F J F L H L C K L
M I A E A L I P S I P O C I L O J A G E M O I A

AGDA APL ARROW BOO BQN CAL CLEAN CLOJURE COQ


CURRY ELIXIR ELM ERLANG ETA FACTOR FRACTAL
FSHARP FSTAR FUN FUNL FUNLANG FUSION GOSU
HASKELL IDRIS JAY JULIA KOKA LAMBDA LAMBDACALC
LFE LIGO LISPML LUCID MERCURY MICROML MIRANDA
OCAML OMEGA PICOLISP PURE PURESCRIPT RACKET
REASON SCHEME SIGMA SML STANDARDML SYMBOLICLANG
UNISON
Introduction and Puzzles 202

Truth Table Puzzles


-------------------
Truth Table 1074:
a b c d | ((a ^ b) | c) & d
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1985: Nintendo Entertainment


System released in North America with 6502

https://en.wikipedia.org/wiki/Nintendo_Entertainment_System
Introduction and Puzzles 203

Math Examples
-------------
0xFF 0x7F
+ 0x01 + 0x80
-------- ------
0x0100 0xFF

Math Puzzles
------------
Puzzle 1075: Puzzle 1077: Puzzle 1079:
0x99 0xF0 0x5A
+ 0x66 + 0x0F + 0xA5
------ ------ ------
0x__ 0x__ 0x__

Puzzle 1076: Puzzle 1078: Puzzle 1080:


0xCC 0x3C 0x69
+ 0x33 + 0xC3 + 0x96
------ ------ ------
0x__ 0x__ 0x__

Computing History: 1985: Microsoft Windows 1.0


released

https://en.wikipedia.org/wiki/Windows_1.0
Introduction and Puzzles 204

Python Puzzles
--------------
>>> data = [5, 3, 8, 1, 9]
>>> subset = data[2:]
>>> total = 0
>>> for item in subset:
>>> total += item
>>> print(f"{total}")
1081: __________ ?

>>> items = [3, 9, 2, 7, 1]


>>> tail = items[3:]
>>> accumulator = 0
>>> for x in tail:
>>> accumulator += x + 1
>>> print(f"{accumulator}")
1082: __________ ?

Computing History: 1986: Amstrad PC1512 -


popular European PC clone

https://en.wikipedia.org/wiki/Amstrad
Introduction and Puzzles 205

ASCII
-----

ASCII 1083:
80 65 82 65 76 76 69 76
__ __ __ __ __ __ __ __

ASCII 1084:
67 79 77 80 85 84 73 78 71
__ __ __ __ __ __ __ __ __

ASCII 1085:
77 85 76 84 73 84 72 82 69 65 68 73 78 71
__ __ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 1086:
67 79 78 67 85 82 82 69 78 67 89
__ __ __ __ __ __ __ __ __ __ __

Computing History: 1986: Sega Master System uses


Z80 as main processor

https://en.wikipedia.org/wiki/Master_System
Introduction and Puzzles 206

Regex Examples
--------------
>>> /[b-e]/ ~= ['a', 'b', 'c', 'd', 'e', 'f',
'g']
Matches: (4) ['b', 'c', 'd', 'e']

Regex Puzzles
-------------
>>> /[1-8]+/ ~= ['a', 'aa', '01', '9', '10',
'a10', '88', '18', '181']
1087: (3) [__________________________
___________________________________] ?

>>> /[1-9][0-9]* (m|k)ph/ ~= ['0mph',


'01 mph', '99 fph', '88 mph', '141 kph',
'012.5 mph', 'aa mph', 'b mph']
1088: (2) [__________________________
___________________________________] ?

Computing History: 1986: Apple IIgs uses 65C816


processor (16-bit 6502 successor)

https://en.wikipedia.org/wiki/Apple_IIgs
Introduction and Puzzles 207

Lisp Puzzles
------------
>>> (define a 5)
>>> (define b (begin
>>> (print "computing b")
>>> (+ a 3)))
>>> (print b)
1089: __________ ?

>>> (begin
>>> (define x 10)
>>> (define y 20)
>>> (print (+ x y)))
1090: __________ ?

>>> (define nums (list 2 4 6))


>>> (define first (begin
>>> (print "getting first")
>>> (car nums)))
>>> (print (* first 3))
1091: __________ ?

>>> (begin
>>> (print "starting")
>>> (define total (+ 7 8))
>>> (print total)
>>> (print "finished"))
1092: __________ ?
Introduction and Puzzles 208

Conversion Puzzles
------------------
1093: 0o023 = __ ?
1094: 0x89 = ___ ?
1095: 23 = 0o___ ?
1096: 0o216 = ___ ?
1097: 0o122 = __ ?
1098: 0xCC = 0o___ ?
1099: 37 = 0b________ ?
1100: 0b01000001 = 0o___ ?
1101: 0o334 = ___ ?
1102: 0b01001000 = 0o___ ?
1103: 0x11 = __ ?
1104: 0o012 = 0b____ ?
1105: 0x5A = __ ?
1106: 0o271 = ___ ?
1107: 0xA3 = 0b________ ?
1108: 0b10101000 = ___ ?
1109: 219 = 0b________ ?
1110: 0b01100011 = 0o___ ?
1111: 0xD8 = 0o___ ?
1112: 0x91 = ___ ?
1113: 206 = 0o___ ?
1114: 0b11000101 = 0x__ ?
1115: 0b00011001 = 0o___ ?
1116: 0o203 = ___ ?
1117: 0x7E = 0o___ ?
1118: 0b01000000 = __ ?
1119: 0b10011111 = 0o___ ?
1120: 0b1011 = 0x__ ?
1121: 0x67 = ___ ?
1122: 0b01010101 = 0o___ ?
1123: 0b01011111 = __ ?
1124: 0b01011000 = 0x__ ?
Introduction and Puzzles 209

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r1
>>> outpb r2 >>> outpb #2
>>> and r1, r2 >>> and r1, #2
>>> outpb r1 >>> outpb r1
0b0100, 0b0101, 0b0100 0b0100, 0b0010, 0b0000

Final RAM/Registers:
RAM Registers
--------- ---------
0: 6 r0: 3
1: 7 r1: 0
2: 8 r2: 5

Assembly Puzzles
----------------
Assembly 1125: Assembly 1126:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r0
>>> outpb #3 >>> outpb r2
>>> and r1, #3 >>> and r2, r0
>>> outpb r1 >>> outpb r2
________________ ? ________________ ?
Introduction and Puzzles 210

Truth Table Puzzles


-------------------
Truth Table 1127:
a b c d | a ^ ((b | c) & d)
---------------------------
F F F F | ___
F F F T | ___
F F T F | ___
F F T T | ___
F T F F | ___
F T F T | ___
F T T F | ___
F T T T | ___
T F F F | ___
T F F T | ___
T F T F | ___
T F T T | ___
T T F F | ___
T T F T | ___
T T T F | ___
T T T T | ___

Computing History: 1986: Compaq Deskpro 386 -


first 80386-based PC

https://en.wikipedia.org/wiki/Compaq_Deskpro
Introduction and Puzzles 211

Python Puzzles
--------------
>>> a, b, c = 1, 3, 2
>>> data = [a, b, c, 4, 5, 6]
>>> subset = data[a:]
>>> total = 0
>>> flag = True
>>> for item in subset:
>>> if flag:
>>> print(f"{item}")
>>> flag = not flag
1128: __________ ?

>>> x, y = 2, 4
>>> numbers = [1, x, y, 7, 9]
>>> slice_data = numbers[x:]
>>> count = 0
>>> for num in slice_data:
>>> count += num + y
>>> print(f"{count}")
1129: __________ ?

>>> u, v, w = 4, 2, 6
>>> array = [u, v, w, 1, 8, 3]
>>> suffix = array[v:]
>>> sum_val = 0
>>> toggle = True
>>> for element in suffix:
>>> sum_val += element + w
>>> if toggle:
>>> print(f"{sum_val}")
>>> toggle = not toggle
1130: __________ ?
Introduction and Puzzles 212

ASCII
-----

ASCII 1131:
71 82 65 80 72 73 67 83
__ __ __ __ __ __ __ __

ASCII 1132:
80 82 79 67 69 83 83 73 78 71
__ __ __ __ __ __ __ __ __ __

ASCII 1133:
85 78 73 84
__ __ __ __

ASCII 1134:
83 72 65 68 69 82 83
__ __ __ __ __ __ __

Computing History: 1987: IBM PS/2 computers


introduce VGA graphics and OS/2

https://en.wikipedia.org/wiki/IBM_Personal_System/2
Introduction and Puzzles 213

1135: WordSearch 'Compiled Languages'

F E S W M P S U M C N V S F N N O R E B O L Z E
I L C F L J R E C S O U I P A B Y R K O T L I N
I O A T V P R J R H C O I S J L P L O G O E C E
S B L A G C C G Y A A S C E U G C C A K G K O R
A O A O U G N B S R L L C L O A O O R D I S B U
B C W R F A N U T P F T U L I M L A N A Z A R C
L P Y E L O R A A R I M I D M P P B A T A H A R
A I N O I T R N L V O R U O O S S C A A R D Q Y
U L G F U V Q T E D E F N M P M S P A S C A L M
S S G R O B B C R V U L T K P L W L L L I D D D
C L I O N R T A M A I C R A P S C U A E H C Y T
V N E I L S T E L S N A D A W S O S I V F L F D
G T P F U L T H P Q O C A M L Y O P V B A I H F
M S M R F S A S T A N D A R D M L L O N W V F D
P R I N Y I Z A L U M I S I B Q N U J S L F A E
A U N S I M E C L A C R E T N I H S C Q N H P J

ADA ALGOL BCPL BQN CLIPS COBOL COBRA COMMONLISP


COOL CPLUSPLUS CRYSTAL CSHARP DART DLANG DYLAN
EIFFEL FALCON FORTH FORTRAN GOLANG HASKELL
INTERCAL JAVA JOVIAL KOTLIN LABVIEW LOGO
MERCURY MODULA MUMPS NIM NQC OBERON OBJECTIVEC
OCAML PASCAL RPG RUST SCALA SIMULA SPARK SPIN
STANDARDML SWIFT SYSTEMVERILOG TURING VHDL
VISUALBASIC WATFOR ZIG
Introduction and Puzzles 214

Regex Puzzles
-------------
>>> /[a-z]+\.[A-Z]+/ ~= ['hello.WORLD',
'test.ABC', 'xyz.123', 'abc.XYZ', 'ABC.xyz',
'hello.world', 'TEST.test', 'a.B', 'abc.X',
'x.ABC']
1136: (6) [__________________________
___________________________________] ?

>>> /[0-9]{2,3}\+[a-f]*/ ~= ['12+', '123+abc',


'1+a', '99+def', '234+', '12+xyz', '999+aaa',
'1234+', '45+bcf', '88+abcdef']
1137: (7) [__________________________
___________________________________] ?

>>> /([a-c]|[x-z])+/ ~= ['abc', 'xyz',


'abcxyz', 'def', 'azbycx', 'bxcyaz', 'ace',
'rst', 'abxyz', 'cxbza']
1138: (7) [__________________________
___________________________________] ?

>>> /[A-Z][a-z]*\.[0-9]{3}/ ~= ['Hello.123',


'A.999', 'Test.456', 'hello.123', 'ABC.12',
'X.000', 'World.789', 'HELLO.123', 'Hi.1234',
'Z.001']
1139: (6) [__________________________
___________________________________] ?

>>> /.*[m-p]{2,}.*/ ~= ['moon', 'happy', 'mm',


'xyz', 'lamp', 'ppm', 'jump', 'abc', 'nnoop',
'pompom']
1140: (8) [__________________________
___________________________________] ?
Introduction and Puzzles 215

Python Puzzles
--------------
>>> data = [9, 3, 7, 1, 5, 2]
>>> subset = data[2:]
>>> total = 0
>>> for i in range(len(subset)):
>>> total += subset[i]
>>> if i > 1:
>>> print(f"{i}: {total}")
1141: __________ ?

>>> array = [3, 7, 1, 5, 9, 2]


>>> suffix = array[3:]
>>> sum_val = 0
>>> for i in range(len(suffix) - 1):
>>> sum_val += suffix[i]
>>> print(f"{sum_val}")
1142: __________ ?

Computing History: 1988: Game Boy uses modified


Z80 processor (Sharp LR35902)

https://en.wikipedia.org/wiki/Game_Boy
Introduction and Puzzles 216

Truth Table Puzzles


-------------------
Truth Table 1143:
a b c | ~(~(b | a) ^ ~(c ^ c))
------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1144:


a c | ((c & a) & (c & c))
-------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Computing History: 1988: Sega Genesis uses Z80


as sound processor alongside 68000

https://en.wikipedia.org/wiki/Sega_Genesis
Introduction and Puzzles 217

Assembly Puzzles
----------------
Assembly 1145: Assembly 1147:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 12 0: 6 r0: 6
1: 7 r1: 10 1: 7 r1: 9
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r0 >>> and r1, r0
>>> outpb r1 >>> and r1, #3
>>> and r0, r1 >>> outpb r1
>>> outpb r0 ________________ ?
________________ ?

Assembly 1146: Assembly 1148:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 12 r0: 1
1: 7 r1: 4 1: 8 r1: 14
2: 8 r2: 15 2: 4 r2: 5
>>> outpb r2 >>> and r0, 1
>>> outpb #7 >>> and r1, r0
>>> and r2, #7 >>> outpb r1
>>> outpb r2 ________________ ?
________________ ?
Introduction and Puzzles 218

Conversion Puzzles
------------------
1149: 97 = 0o___ ?
1150: 192 = 0o___ ?
1151: 0b10010001 = ___ ?
1152: 0x28 = 0o___ ?
1153: 0o000 = 0x__ ?
1154: 201 = 0b________ ?
1155: 0xBB = 0b________ ?
1156: 0o323 = 0x__ ?
1157: 0o211 = 0b________ ?
1158: 204 = 0o___ ?
1159: 0b11101000 = 0x__ ?
1160: 0xFF = 0b________ ?
1161: 0b11011011 = ___ ?
1162: 0x7E = 0o___ ?
1163: 0x46 = __ ?
1164: 0o253 = ___ ?
1165: 0x58 = __ ?
1166: 0b10011000 = 0x__ ?
1167: 0o113 = 0x__ ?
1168: 0o355 = ___ ?
1169: 0x74 = ___ ?
1170: 0o371 = 0b________ ?
1171: 136 = 0b________ ?
1172: 0b00011011 = 0o___ ?
1173: 0xE2 = ___ ?
1174: 24 = 0o___ ?
1175: 0b01100011 = 0o___ ?
1176: 0x52 = 0o___ ?
1177: 0b10101101 = ___ ?
1178: 0o165 = 0x__ ?
1179: 0o351 = 0b________ ?
1180: 175 = 0b________ ?
Introduction and Puzzles 219

Lisp Examples
-------------
>>> (define add (lambda (x y) (+ x y)))
>>> (print (add 3 4))
7

>>> (define x 40)


>>> (define add_x (lambda (y) (+ x y)))
>>> (print (add_x 2))
42

Lisp Puzzles
------------
>>> (define add (lambda (x y) (+ x y)))
>>> (define sub (lambda (x y) (- x y)))
>>> (print (add 20 (sub 10 2)))
1181: __________ ?

>>> (print (
>>> (lambda (x y) (* x y)) 3 2))
1182: __________ ?

Computing History: 1988: Dell Computer


Corporation founded, focusing on PC clones

https://en.wikipedia.org/wiki/Dell
Introduction and Puzzles 220

Regex Puzzles
-------------
>>> /[0-9]?[a-z]+/ ~= ['abc', '1abc',
'123abc', 'a', '1a', '22hello', 'test',
'9word', 'abc123', '2test']
1183: (7) [__________________________
___________________________________] ?

>>> /[A-Z]?[a-z]+\./ ~= ['hello.', 'Hello.',


'HELLO.', 'test.', 'Test.', 'word', 'Word.',
'ABC.', 'abc.', 'Hello']
1184: (6) [__________________________
___________________________________] ?

>>> /\+?[0-9]+/ ~= ['123', '+123', '++123',


'abc', '+abc', '1', '+1', '12+3', '+',
'+-123']
1185: (4) [__________________________
___________________________________] ?

>>> /[a-z]?[A-Z][a-z]*/ ~= ['Hello', 'aHello',


'HELLO', 'hello', 'Test', 'bTest', 'ABC',
'Word', 'cWord', 'xyz']
1186: (6) [__________________________
___________________________________] ?

>>> /file[0-9]?\.txt/ ~= ['file.txt',


'file1.txt', 'file12.txt', 'file.doc',
'file123.txt', 'files.txt', 'file.txt',
'myfile.txt', 'file0.txt', 'file9.txt']
1187: (5) [__________________________
___________________________________] ?
Introduction and Puzzles 221

ASCII
-----

ASCII 1188:
67 89 66 69 82 83 69 67 85 82 73 84 89
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 1189:
68 65 84 65
__ __ __ __

ASCII 1190:
69 78 67 82 89 80 84 73 79 78
__ __ __ __ __ __ __ __ __ __

ASCII 1191:
80 82 79 84 79 67 79 76 83
__ __ __ __ __ __ __ __ __

Computing History: 1988: Fuzz testing technique


developed by Barton Miller at University of
Wisconsin

https://en.wikipedia.org/wiki/Fuzzing
Introduction and Puzzles 222

Python Examples
---------------
>>> items = [i for i in range(5)]
>>> print(items)
[0, 1, 2, 3, 4]

>>> items = [i + 2 for i in range(5)]


>>> print(items)
[2, 3, 4, 5, 6]

>>> items = [i * 2 for i in range(5)]


>>> print(items)
[0, 2, 4, 6, 8]

Python Puzzles
--------------
>>> items = [i for i in range(2, 5)]
>>> print(items)
1192: __________ ?

>>> items = [i + 2 for i in range(2, 5)]


>>> print(items)
1193: __________ ?

>>> items = [i * 2 for i in range(6, 2, -1)]


>>> print(items)
1194: __________ ?
Introduction and Puzzles 223

Math Examples
-------------
0o001 0o003 0o005
+ 0o002 + 0o004 + 0o002
------- ------- -------
0o003 0o007 0o007

Math Puzzles
------------
Puzzle 1195: Puzzle 1197: Puzzle 1199:
0o006 0o004 0o006
+ 0o001 + 0o003 + 0o002
------- ------- -------
0o___ 0o___ 0o___

Puzzle 1196: Puzzle 1198: Puzzle 1200:


0o007 0o002 0o003
+ 0o001 + 0o005 + 0o006
------- ------- -------
0o___ 0o___ 0o___

Computing History: 1989: ANSI C standard (C89)


published

https://en.wikipedia.org/wiki/ANSI_C
Introduction and Puzzles 224

Truth Table Puzzles


-------------------
Truth Table 1201:
a b | ((b ^ b) ^ (b ^ a))
-------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1202:


a b c | (b ^ (~(a | c) ^ (c & a)))
----------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Computing History: 1989: World Wide Web invented


at CERN

https://en.wikipedia.org/wiki/World_Wide_Web
Introduction and Puzzles 225

1203: WordSearch 'Computer Parts'

X K C I T S Y O J O S U E M S S S D A P E M A G
Y E N O H P O R C I M X V E E M O U S E P A D S
A P O W E R C O R D P R N S T C E L A P T O P T
L O P R I N T E R A P O A R K M V I U H S A T A
P W F A B C N A N R H C A I O M I C U G P U L A
S E D S M N O S O P R C N D D H R N M A C B E W
I R U O A B I J D E K G E V I R D L A C I T P O
D B S C Y O E A T B S M F C Y E Y C P V E S K D
I U S E N C E U A T R S H N R T P H O R X O N A
M T K S T H P L A O R A A B E C P A T H P U I P
R T L O E M L T T E S F O L T I O R K E R N S H
V O R S O B I A K S A L B C T N L G S A E D T C
T N U C L O I A I N T A R M A M F E E D S C A U
S O I B N D E S M O T H E R B O A R D S S A E O
M E T S A P L A M R E H T E T H E R N E T R H T
U P C R S B U R E L L O R T N O C S L T J D S S

BATTERY BIOS CHARGER CHASSIS CMOS COMPUTERCASE


CONTROLLER CPU DESKTOP DISPLAY DOCKINGSTATION
ETHERNET EXPANSIONSLOT FAN FLOPPYDRIVE GAMEPAD
GPU HDD HEADPHONES HEATSINK JOYSTICK KEYBOARD
LAPTOP MICROPHONE MODEM MOTHERBOARD MOUSE
MOUSEPAD NIC OPTICALDRIVE PCIEXPRESS
POWERBUTTON POWERCORD PRINTER PROJECTOR PSU
RADIATOR RAID RAM SATA SCANNER SOUNDCARD
SPEAKERS SSD TABLET THERMALPASTE THUNDERBOLT
TOUCHPAD TRACKBALL USB VRHEADSET VRM WEBCAM
Introduction and Puzzles 226

Regex Puzzles
-------------
>>> /[aeiou]?[bcdfg]+/ ~= ['abc', 'ebc', 'bc',
'bcd', 'idf', 'xyz', 'abcd', 'ebcdfg',
'bcdfg', 'aeiou']
1204: (8) [__________________________
___________________________________] ?

>>> /[0-9]?\.[0-9]+/ ~= ['1.5', '.5', '12.34',


'1.', '.123', 'a.5', '1.a', '..5', '1.5.6',
'0.0']
1205: (4) [__________________________
___________________________________] ?

>>> /[A-Z]?[a-z]+@[a-z]+\.[a-z]+/ ~=
['[email protected]', '[email protected]',
'[email protected]', '[email protected]',
'[email protected]', 'abc@', 'user@site',
'[email protected]', '[email protected]',
'[email protected]']
1206: (6) [__________________________
___________________________________] ?

>>> /\s?[a-z]+[0-9]?/ ~= ['test', ' test',


'test1', ' test1', 'test12', ' test', 'TEST',
' TEST1', 'test1a', '123test']
1207: (4) [__________________________
___________________________________] ?
Introduction and Puzzles 227

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r1
>>> outpb r2 >>> outpb #2
>>> or r1, r2 >>> or r1, #2
>>> outpb r1 >>> outpb r1
0b0100, 0b0101, 0b0101 0b0100, 0b0010, 0b0110

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 5 1: 7 r1: 6
2: 8 r2: 5 2: 8 r2: 5

Assembly Puzzles
----------------
Assembly 1208: Assembly 1209:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r0
>>> outpb #3 >>> outpb r2
>>> or r1, #3 >>> or r2, r0
>>> outpb r1 >>> outpb r2
________________ ? ________________ ?
Introduction and Puzzles 228

ASCII
-----

ASCII 1210:
67 76 79 85 68
__ __ __ __ __

ASCII 1211:
67 79 77 80 85 84 73 78 71
__ __ __ __ __ __ __ __ __

ASCII 1212:
86 73 82 84 85 65 76
__ __ __ __ __ __ __

ASCII 1213:
73 78 70 82 65 83 84 82 85 67 84 85 82 69
__ __ __ __ __ __ __ __ __ __ __ __ __ __

Computing History: 1989: Kent Beck develops


SUnit testing framework for Smalltalk

https://en.wikipedia.org/wiki/SUnit
Introduction and Puzzles 229

Conversion Examples
-------------------
32768 = 0b1000000000000000
16384 = 0b0100000000000000
8192 = 0b0010000000000000
4096 = 0b0001000000000000
2048 = 0b100000000000
1024 = 0b010000000000
512 = 0b001000000000
256 = 0b000100000000

Conversion Puzzles
------------------
1214: 25043 = 0b________________ ?
1215: 58716 = 0b________________ ?
1216: 29059 = 0b________________ ?
1217: 43614 = 0b________________ ?
1218: 8255 = 0b________________ ?
1219: 41950 = 0b________________ ?
1220: 39511 = 0b________________ ?
1221: 10544 = 0b________________ ?
1222: 18677 = 0b________________ ?
1223: 38153 = 0b________________ ?
1224: 64131 = 0b________________ ?
1225: 14294 = 0b________________ ?
1226: 31275 = 0b________________ ?
1227: 11955 = 0b________________ ?
1228: 42625 = 0b________________ ?
1229: 16359 = 0b________________ ?
Introduction and Puzzles 230

Lisp Puzzles
------------
>>> (define double (lambda (x) (* x 2)))
>>> (print (double (length (list 3 4 5))))
1230: __________ ?

>>> (define lst (list 5 10 15))


>>> (define get-second
>>> (lambda (items) (car (cdr items))))
>>> (print (min (get-second lst) 12))
1231: __________ ?

>>> (print
>>> ((lambda (a b)
>>> (max (+ a b) (* a 2)))
>>> 4 7))
1232: __________ ?

>>> (define make-adder


>>> (lambda (n) (lambda (x) (+ x n))))
>>> (define add5 (make-adder 5))
>>> (print (add5 (car (list 7 8 9))))
1233: __________ ?

Computing History: 1990: Game Gear uses Z80


processor

https://en.wikipedia.org/wiki/Game_Gear
Introduction and Puzzles 231

Python Puzzles
--------------
>>> nums = [x + 1 for x in range(4)]
>>> print(nums)
1234: __________ ?

>>> values = [i * 3 for i in range(5)]


>>> print(values)
1235: __________ ?

>>> data = [x + 2 for x in range(3, 7)]


>>> print(data)
1236: __________ ?

>>> results = [i * 2 + 1 for i in range(6)]


>>> print(results)
1237: __________ ?

>>> items = [x + 5 for x in range(2, 6)]


>>> print(items)
1238: __________ ?

Computing History: 1991: Linux kernel first


released

https://en.wikipedia.org/wiki/Linux_kernel
Introduction and Puzzles 232

Truth Table Puzzles


-------------------
Truth Table 1239:
a b c | (a & ~(~(c ^ b) & (b | b)))
-----------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1240:


a b c | (~(b & c) ^ (a | a))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 233

Regex Puzzles
-------------
>>> /[a-f0-9]{4,6}/ ~= ['abcd', '1234',
'abc123', 'ghij', 'abcdef', '123456',
'ab12cd', 'xyz', 'a1b2c3', 'abcdefg']
1241: (7) [__________________________
___________________________________] ?

>>> /([0-5]+|[a-c]+)\./ ~= ['123.', 'abc.',


'345.', '678.', '012.', 'bca.', 'def.',
'555.', 'aaa.', '6.']
1242: (7) [__________________________
___________________________________] ?

>>> /[A-Za-z]+-[0-9]+/ ~= ['Test-123',


'ABC-99', 'test-456', '123-ABC', 'Hello-',
'xyz-789', '-123', 'Test-', 'abc-0', 'XYZ-12']
1243: (6) [__________________________
___________________________________] ?

>>> /.{2}[g-m]+.{0,2}/ ~= ['abgh', '12jkl',


'xygmm', 'abc', 'ffhij', 'qrst', 'zzmmaa',
'11g', 'aagz', 'bbmm12']
1244: (8) [__________________________
___________________________________] ?

>>> /\+*[p-t]{1,3}\+*/ ~= ['pqr', '+stu+',


'++p++', 'abc', 'rst', '+++tps', 'ppp', 'xyz',
'+q+', 'uvw']
1245: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 234

ASCII
-----

ASCII 1246:
86 73 82 84 85 65 76
__ __ __ __ __ __ __

ASCII 1247:
77 65 67 72 73 78 69
__ __ __ __ __ __ __

ASCII 1248:
72 89 80 69 82 86 73 83 79 82
__ __ __ __ __ __ __ __ __ __

ASCII 1249:
69 77 85 76 65 84 73 79 78
__ __ __ __ __ __ __ __ __

Computing History: 1991: Python programming


language first released by Guido van Rossum

https://en.wikipedia.org/wiki/Python_(programming_language)
Introduction and Puzzles 235

Python Puzzles
--------------
>>> def add_one(x):
>>> return x + 1
>>>
>>> a = 3
>>> nums = [add_one(x) for x in range(a)]
>>> print(nums)
1250: __________ ?

>>> def multiply(x):


>>> return x * 2
>>>
>>> b = 4
>>> values = [multiply(i) for i in range(1, b)]
>>> print(values)
1251: __________ ?

>>> def transform(x):


>>> return x + 3
>>>
>>> c = 5
>>> data = [transform(x) for x in range(c)]
>>> print(data)
1252: __________ ?
Introduction and Puzzles 236

Assembly Puzzles
----------------
Assembly 1253: Assembly 1255:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 4 0: 6 r0: 2
1: 7 r1: 2 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r0 >>> or r1, r0
>>> outpb r1 >>> or r1, #1
>>> or r0, r1 >>> outpb r1
>>> outpb r0 ________________ ?
________________ ?

Assembly 1254: Assembly 1256:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 1
1: 7 r1: 4 1: 8 r1: 2
2: 8 r2: 8 2: 4 r2: 5
>>> outpb r2 >>> or r0, 1
>>> outpb #5 >>> or r1, r0
>>> or r2, #5 >>> outpb r1
>>> outpb r2 ________________ ?
________________ ?
Introduction and Puzzles 237

Truth Table Puzzles


-------------------
Truth Table 1257:
a b | ~(~(a ^ b) ^ (a & b))
---------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1258:


a b c | ~(~(c & a) ^ ~(c ^ b))
------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Computing History: 1991: vim (Vi IMproved)


created by Bram Moolenaar

https://en.wikipedia.org/wiki/Vim_(text_editor)
Introduction and Puzzles 238

Conversion Examples
-------------------
32768 = 0o100000 2048 = 0o004000
16384 = 0o040000 1024 = 0o002000
8192 = 0o020000 512 = 0o001000
4096 = 0o010000 256 = 0o400

Conversion Puzzles
------------------
1259: 58716 = 0o______ ?
1260: 64131 = 0o______ ?
1261: 10544 = 0o______ ?
1262: 14294 = 0o______ ?
1263: 38153 = 0o______ ?
1264: 41950 = 0o______ ?
1265: 8255 = 0o______ ?
1266: 16359 = 0o______ ?
1267: 31275 = 0o______ ?
1268: 29059 = 0o______ ?
1269: 25043 = 0o______ ?
1270: 42625 = 0o______ ?
1271: 18677 = 0o______ ?
1272: 43614 = 0o______ ?
1273: 11955 = 0o______ ?
1274: 39511 = 0o______ ?
Introduction and Puzzles 239

1275: WordSearch 'Compiler Concepts'

J G N I K C E H C E P Y T I U G I B M A V S L T
P A R A D I G M T N E C S A E V I S R U C E R I
S C I T N A M E S I N T E R P R E T E R U M M J
S R E X E L C O N S T A N T F O L D I N G A E N
R E G I S T E R A L L O C A T I O N A O T N R O
O T A I L C A L L O P T I M I Z A T I O N T R I
T J I M A C H I N E C O D E M O T I O N S I O T
A I N L I N I N G N I L L O R N U P O O L C R A
N O I T A G A P O R P T N A T S N O C T S A H Z
I C O N T R O L F L O W P R O D U C T I O N A I
M S Y M B O L T A B L E E R T X A T N Y S A N M
O X A T N Y S N O I T A R E N E G E D O C L D I
D A S T A T I C A N A L Y S I S E S S A H Y L T
C O M P I L E R A S S E M B L Y G E N M R S I P
N O I T A V I R E D E T A I D E M R E T N I N O
G N I K N I L E C U D E R T F I H S O T A S G S

AMBIGUITY AOT ASSEMBLYGEN AST CODEGENERATION


CODEMOTION COMPILER CONSTANTFOLDING
CONSTANTPROPAGATION CONTROLFLOW DERIVATION
DOMINATORS ERRORHANDLING INLINING INTERMEDIATE
INTERPRETER JIT LEXER LINKING LOOPUNROLLING
MACHINECODE OPTIMIZATION PARADIGM PRODUCTION
RECURSIVEASCENT REGISTERALLOCATION
SEMANTICANALYSIS SEMANTICS SHIFTREDUCE SSA
STATICANALYSIS SYMBOLTABLE SYNTAX SYNTAXTREE
TAILCALLOPTIMIZATION TYPECHECKING
Introduction and Puzzles 240

Lisp Examples
-------------
>>> (define mul (lambda (x y) (* x y)))
>>> (define apply
>>> (lambda (func v1 v2) (func v1 v2)))
>>> (print (apply mul 3 4))
12

>>> (define bind_5


>>> (lambda (func) (lambda (y) (func 5 y))))
>>> (define add (lambda (x y) (+ x y)))
>>> (define bound (bind_5 add))
>>> (print (bound 10))
15

Lisp Puzzles
------------
>>> (define apply-twice
>>> (lambda (f x) (f (f x))))
>>> (define inc (lambda (n) (+ n 1)))
>>> (print (apply-twice inc 10))
1276: __________ ?

Computing History: 1993: Visual C++ 1.0 released


by Microsoft

https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B
Introduction and Puzzles 241

Regex Examples
--------------
>>> /a\sb/ ~= ['a', 'b', 'a b', 'a b']
Matches: (1) ['a b']

Regex Puzzles
-------------
>>> /a\s\+b/ ~= ['a', 'b', 'ab', 'a b', 'aab',
'aa bb', 'a b']
1277: (0) [__________________________
___________________________________] ?

>>> /[a-z]\s{2,4}[0-9]/ ~= ['a 0', 'b 1',


'c 2', 'dGHJK3', 'e 4', 'aaBZ99']
1278: (2) [__________________________
___________________________________] ?

Computing History: 1993: Mosaic browser adds


inline images

https://en.wikipedia.org/wiki/Mosaic_(web_browser)
Introduction and Puzzles 242

Python Examples
---------------
>>> print(max([1,2,3,4,5]))
5

>>> print(min([1,2,3,4,5]))
1

>>> print(sum([1,2]))
>>> print(sum([1,2,3]))
3
6

Python Puzzles
--------------
>>> def process(x):
>>> return x * 2 + 1
>>>
>>> d = 3
>>> results = [process(i) for i in range(d)]
>>> print(f"{max(results)}")
1279: __________ ?

>>> def calculate(x):


>>> return x + 4
>>>
>>> e = 6
>>> items = [calculate(x) for x in range(2, e)]
>>> print(items)
1280: __________ ?
Introduction and Puzzles 243

ASCII
-----

ASCII 1281:
68 65 84 65 66 65 83 69
__ __ __ __ __ __ __ __

ASCII 1282:
77 65 78 65 71 69 77 69 78 84
__ __ __ __ __ __ __ __ __ __

ASCII 1283:
82 69 76 65 84 73 79 78 65 76
__ __ __ __ __ __ __ __ __ __

ASCII 1284:
81 85 69 82 73 69 83
__ __ __ __ __ __ __

Computing History: 1994: Python 1.0 released -


first major version

https://en.wikipedia.org/wiki/History_of_Python
Introduction and Puzzles 244

Math Examples
-------------
0o005 0o007
+ 0o004 + 0o003
------- -------
0o011 0o012

Math Puzzles
------------
Puzzle 1285: Puzzle 1287: Puzzle 1289:
0o004 0o002 0o005
+ 0o005 + 0o007 + 0o005
------- ------- -------
0o___ 0o___ 0o___

Puzzle 1286: Puzzle 1288: Puzzle 1290:


0o006 0o001 0o007
+ 0o003 + 0o006 + 0o007
------- ------- -------
0o___ 0o___ 0o___

Computing History: 1994: Amazon founded as


online bookstore

https://en.wikipedia.org/wiki/Amazon_(company)
Introduction and Puzzles 245

Truth Table Puzzles


-------------------
Truth Table 1291:
a b c | ~(c & ((c & b) | (a | a)))
----------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1292:


b c | ~((b ^ c) & ~(c & c))
---------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Computing History: 1994: Sony PlayStation


released in Japan with 3D graphics acceleration

https://en.wikipedia.org/wiki/PlayStation_(console)
Introduction and Puzzles 246

Assembly Puzzles
----------------
Assembly 1293: Assembly 1295:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 15 0: 6 r0: 6
1: 7 r1: 4 1: 7 r1: 8
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r0 >>> and r0, #3
>>> and r0, #7 >>> or r1, r0
>>> or r0, #8 >>> outpb r1
>>> outpb r0 ________________ ?
________________ ?

Assembly 1294: Assembly 1296:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 12
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 8 2: 8 r2: 6
>>> outpb r1 >>> or r2, #1
>>> or r1, r2 >>> and r0, r2
>>> and r1, #14 >>> outpb r0
>>> outpb r1 ________________ ?
________________ ?
Introduction and Puzzles 247

Regex Puzzles
-------------
>>> /[0-9]{3}\s*\.\s*[0-9]{2}/ ~= ['123.45',
'123 . 45', '123 . 45', '12.34', '1234.56',
'123..45', '123 .45', '999.99', '123x45',
'100 . 00']
1297: (6) [__________________________
___________________________________] ?

>>> /(yes|no)\s+(sir|madam)/ ~= ['yes sir',


'no madam', 'yessir', 'no sir', 'yes sir',
'maybe sir', 'yes', 'no madam',
'yes madam']
1298: (6) [__________________________
___________________________________] ?

>>> /.*[a-z]\s+[A-Z].*/ ~= ['hello WORLD',


'test ABC xyz', 'a B', 'helloWORLD',
'123 x Y 456', 'end START', 'ABC xyz',
'low HIGH', 'noSpace']
1299: (6) [__________________________
___________________________________] ?

Computing History: 1995: JavaScript created in


10 days at Netscape

https://en.wikipedia.org/wiki/JavaScript
Introduction and Puzzles 248

Python Puzzles
--------------
>>> def double_add(x):
>>> return x * 2 + 1
>>>
>>> a, b = 2, 4
>>> nums = [double_add(x) for x in range(a, b)]
>>> print(f"{sum(nums)}")
1300: __________ ?

>>> def increment(x):


>>> return x + 3
>>>
>>> p, q = 1, 5
>>> values = [increment(i) for i in range(p, q)]
>>> print(f"{max(values)}")
1301: __________ ?

>>> def transform_val(x):


>>> return x * 3
>>>
>>> m, n = 0, 4
>>> data = [transform_val(x) for x in range(m,
n)]
>>> print(f"{len(data)}")
1302: __________ ?
Introduction and Puzzles 249

Conversion Examples
-------------------
32768 = 0x8000 4096 = 0x1000 512 = 0x0200
16384 = 0x4000 2048 = 0x0800 256 = 0x0100
8192 = 0x2000 1024 = 0x0400

Conversion Puzzles
------------------
1303: 18677 = 0x____ ?
1304: 42625 = 0x____ ?
1305: 8255 = 0x____ ?
1306: 14294 = 0x____ ?
1307: 64131 = 0x____ ?
1308: 11955 = 0x____ ?
1309: 43614 = 0x____ ?
1310: 41950 = 0x____ ?
1311: 10544 = 0x____ ?
1312: 25043 = 0x____ ?
1313: 58716 = 0x____ ?
1314: 16359 = 0x____ ?
1315: 38153 = 0x____ ?
1316: 39511 = 0x____ ?
1317: 31275 = 0x____ ?
1318: 29059 = 0x____ ?
Introduction and Puzzles 250

ASCII
-----

ASCII 1319:
82 69 68 85 78 68 65 78 84
__ __ __ __ __ __ __ __ __

ASCII 1320:
65 82 82 65 89
__ __ __ __ __

ASCII 1321:
79 70
__ __

ASCII 1322:
73 78 68 69 80 69 78 68 69 78 84
__ __ __ __ __ __ __ __ __ __ __

ASCII 1323:
68 73 83 75 83
__ __ __ __ __
Introduction and Puzzles 251

Lisp Puzzles
------------
>>> (define triple (lambda (x) (* x 3)))
>>> (print (triple 4))
1324: __________ ?

>>> (define subtract-ten


>>> (lambda (n) (- n 10)))
>>> (print (subtract-ten 25))
1325: __________ ?

>>> (define compute


>>> (lambda (a b) (+ (* a 2) b)))
>>> (print (compute 3 5))
1326: __________ ?

>>> (print ((lambda (x) (+ x 7)) 8))


1327: __________ ?

>>> (define make-subtractor


>>> (lambda (n) (lambda (x) (- x n))))
>>> (define sub3 (make-subtractor 3))
>>> (print (sub3 15))
1328: __________ ?

>>> (define apply-twice


>>> (lambda (f x) (f (f x))))
>>> (define add2 (lambda (n) (+ n 2)))
>>> (print (apply-twice add2 6))
1329: __________ ?
Introduction and Puzzles 252

Truth Table Puzzles


-------------------
Truth Table 1330:
a b c | ((b & c) ^ (c ^ a))
---------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1331:


a b c | ~(~(~(a | c) | (b ^ b)) ^ a)
------------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 253

1332: WordSearch 'Retro Computing'

R E G G U B E D D R A C H C N U P B E S U O M V
P R I N T E R D N C G R A P H I C S M O D E K E
M T S S C S I K S I D Y P P O L F B G D R M E G
C F E F L O P P Y O E A M I G A C N A E R I E A
M E T S Y S G N I T A R E P O O I S D E E N G T
E P E R P O E M A R F N I A M T S A T P I I R N
R R C G A I I I C S T E P M U E O U A L E C E I
E T O T D B H O Y E B K A P M L P T D T M O T V
T F N D R I M C D B E N M B T M C N T E U M T P
S N S M O P R O S Y D O L O O I A E R R L P O U
I A O G I M M T B P C Y O C T M K O E M A U L L
G R L L L T M O R O B B O E M S T K E I T T P A
E T E O X O A O R A A R N O I I A M R N O E T I
R R B E D R M T C S C G C D N E O A V A R R G D
F O T E D P E R I I A S Y O P R T C E L P P A I
C F M K T R K C M M O Y M S Y A E D O T M X E T

AMIGA APPLE ASSEMBLY ATARI BASIC BBS BIOS


BOOTLOADER CARTRIDGE CHIPSET COBOL COMMANDLINE
COMMANDPROMPT COMMODORE COMPILER CONSOLE CPM
CRT DEBUGGER DIALUP DISKETTE DOS EMULATOR
FLOPPY FLOPPYDISK FORTRAN GRAPHICSMODE KEYBOARD
MAGNETICTAPE MAINFRAME MEMORY MICROCOMPUTER
MINICOMPUTER MODEM MONITOR MOUSE
OPERATINGSYSTEM PETSCII PLOTTER PRINTER
PUNCHCARD REGISTER RETROCOMPUTING ROM SCSI
SPEAKER TERMINAL TEXTMODE VINTAGE
Introduction and Puzzles 254

Regex Puzzles
-------------
>>> /\s*[abc]+\s+[xyz]+\s*/ ~= [' abc xyz ',
'a x', ' cba zyx ', 'abcxyz',
' aaa zzz ', 'abc xyz', 'def xyz', 'abc',
' b y ']
1333: (6) [__________________________
___________________________________] ?

>>> /[0-9]+\s*\+\s*[0-9]+\s*=/ ~= ['1+2=',


'123 + 456 =', '5 + 7 =', '12+34',
'99 +99=', '1++2=', 'a+b=', '100+ 200 =',
'1 + 2 = 3']
1334: (5) [__________________________
___________________________________] ?

>>> /[A-Za-z]+\s*\(.*\)/ ~= ['func()',


'test (123)', 'call(a,b)', 'func ( )',
'123()', 'test(', 'CALL (abc)', 'f()',
'name()test']
1335: (6) [__________________________
___________________________________] ?

>>> /\+{2,}\s*[a-f]+\s*\+{2,}/ ~=
['++ abc ++', '+++def+++', '++ a ++',
'+++ bcdef +++', '+ abc +', '++abc+',
'++xyz++', '++++ ef ++++', '++a++',
'++ ++']
1336: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 255

Python Puzzles
--------------
>>> def compute(x):
>>> return x + 2
>>>
>>> u, v = 3, 6
>>> results = [compute(i) for i in range(u, v)]
>>> print(results)
1337: __________ ?

>>> def operate(x):


>>> return x * 2 + 3
>>>
>>> x, y = 1, 4
>>> items = [operate(val) for val in range(x,
y)]
>>> print(f"{sum(items)}")
1338: __________ ?

Computing History: 1996: Google's PageRank


algorithm developed

https://en.wikipedia.org/wiki/PageRank
Introduction and Puzzles 256

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r1
>>> outpb r2 >>> outpb #2
>>> xor r1, r2 >>> xor r1, #2
>>> outpb r1 >>> outpb r1
0b0100, 0b0101, 0b0001 0b0100, 0b0010, 0b0110

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 1 1: 7 r1: 6
2: 8 r2: 5 2: 8 r2: 5

Assembly Puzzles
----------------
Assembly 1339: Assembly 1340:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb r0
>>> outpb #3 >>> outpb r2
>>> xor r1, #3 >>> xor r2, r0
>>> outpb r1 >>> outpb r2
________________ ? ________________ ?
Introduction and Puzzles 257

ASCII
-----

ASCII 1341:
79 80 69 82 65 84 73 78 71
__ __ __ __ __ __ __ __ __

ASCII 1342:
83 89 83 84 69 77 83
__ __ __ __ __ __ __

ASCII 1343:
75 69 82 78 69 76
__ __ __ __ __ __

ASCII 1344:
83 67 72 69 68 85 76 69 82
__ __ __ __ __ __ __ __ __

Computing History: 1996: Nintendo 64 released


with 3D graphics and analog control

https://en.wikipedia.org/wiki/Nintendo_64
Introduction and Puzzles 258

Conversion Examples
-------------------
0x8000 = 0o100000 0x0800 = 0o004000
0x4000 = 0o040000 0x0400 = 0o002000
0x2000 = 0o020000 0x0200 = 0o001000
0x1000 = 0o010000 0x0100 = 0o400

Conversion Puzzles
------------------
1345: 0xAA5E = 0o______ ?
1346: 0xFA83 = 0o______ ?
1347: 0x48F5 = 0o______ ?
1348: 0x2930 = 0o______ ?
1349: 0x7183 = 0o______ ?
1350: 0x3FE7 = 0o______ ?
1351: 0xA681 = 0o______ ?
1352: 0x9A57 = 0o______ ?
1353: 0x9509 = 0o______ ?
1354: 0x61D3 = 0o______ ?
1355: 0x203F = 0o______ ?
1356: 0x7A2B = 0o______ ?
1357: 0x2EB3 = 0o______ ?
1358: 0xA3DE = 0o______ ?
1359: 0x37D6 = 0o______ ?
1360: 0xE55C = 0o______ ?
Introduction and Puzzles 259

Truth Table Puzzles


-------------------
Truth Table 1361:
a b c | (~(a & b) & ~(b & c))
-----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1362:


a b c | (~(a & c) & (b | c))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 260

Lisp Puzzles
------------
>>> (define square (lambda (x) (* x x)))
>>> (define apply-three-times
>>> (lambda (f x) (f (f (f x)))))
>>> (print (apply-three-times square 2))
1363: __________ ?

>>> (define first-of-rest


>>> (lambda (lst) (car (cdr lst))))
>>> (define nums (list 10 20 30 40))
>>> (print (* (first-of-rest nums) 3))
1364: __________ ?

>>> (define combine-ops


>>> (lambda (f g)
>>> (lambda (x y) (f (g x) (g y)))))
>>> (define double (lambda (n) (* n 2)))
>>> (define add-doubled
>>> (combine-ops + double))
>>> (print (add-doubled 3 4))
1365: __________ ?

>>> (define process-pair


>>> (lambda (pair op)
>>> (op (car pair) (car (cdr pair)))))
>>> (define my-pair (list 8 5))
>>> (print (process-pair my-pair -))
1366: __________ ?
Introduction and Puzzles 261

Python Examples
---------------
>>> class Point:
>>> def __init__(self):
>>> self.x = 0
>>> self.y = 0
>>>
>>>
>>> point = Point()
>>> print("{point.x}, {point.y}")
>>>
>>> point.x = 5
>>> point.y = 10
>>>
>>> print("{point.x}, {point.y}")
{point.x}, {point.y}
{point.x}, {point.y}

Python Puzzles
--------------
>>> class Point:
>>> def __init__(self):
>>> self.x = 0
>>> self.y = 0
>>>
>>> def update(self):
>>> self.x = 3
>>> self.y = 4
>>>
>>>
>>> point = Point()
>>> point.update()
>>> print("{point.x}, {point.y}")
1367: __________ ?
Introduction and Puzzles 262

Regex Puzzles
-------------
>>> /hello\s?world/ ~= ['hello world',
'helloworld', 'hello world', 'hello\tworld',
'hello\nworld', 'hello', 'world',
'hello world!', 'helloworld!',
'hello world!']
1368: (4) [__________________________
___________________________________] ?

>>> /[0-9]+\s?\+\s?[0-9]+/ ~= ['1+2', '1 +2',


'1+ 2', '1 + 2', '12+34', '12 +34', '12+ 34',
'12 + 34', '1 + 2', '1++2']
1369: (8) [__________________________
___________________________________] ?

>>> /\s?[a-z]+\s?=/ ~= ['test=', ' test=',


'test =', ' test =', 'variable=', ' name =',
'test', '= test', 'test= value',
'test = value']
1370: (5) [__________________________
___________________________________] ?

>>> /function\s?\(/ ~= ['function(',


'function (', 'function (', 'function',
'function)', 'functions(', 'function((',
'function call', 'function_name(',
'function\t(']
1371: (3) [__________________________
___________________________________] ?
Introduction and Puzzles 263

Math Examples
-------------
0o010 0o025 0o036
+ 0o007 + 0o014 + 0o023
------- ------- -------
0o017 0o041 0o061

Math Puzzles
------------
Puzzle 1372: Puzzle 1374:
0o047 0o064
+ 0o012 + 0o035
------- -------
0o___ 0o___

Puzzle 1373: Puzzle 1375:


0o056 0o073
+ 0o021 + 0o046
------- -------
0o___ 0o___

Computing History: 1997: Deep Blue defeats chess


champion Kasparov

https://en.wikipedia.org/wiki/Deep_Blue_versus_Garry_Kasparov
Introduction and Puzzles 264

ASCII
-----

ASCII 1376:
72 85 77 65 78
__ __ __ __ __

ASCII 1377:
67 79 77 80 85 84 69 82
__ __ __ __ __ __ __ __

ASCII 1378:
73 78 84 69 82 65 67 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __

ASCII 1379:
73 78 84 69 82 70 65 67 69
__ __ __ __ __ __ __ __ __

Computing History: 1997: JUnit testing framework


developed by Kent Beck and Erich Gamma

https://en.wikipedia.org/wiki/JUnit
Introduction and Puzzles 265

1380: WordSearch 'Programming Tools'

G U R R S E Y M O T A M P N H S I F E U L B V E
I P Y U E U T N U V I S U A L S T U D I O A P D
D S P E B P B I A V N A R Y B A L T I G G H R O
E B T O E Y O L L E S N A E B T E N N R P C E C
T A E E S T M L I E G D P L U M A R A S N O D X
K P H A K T A I E M D R V S N N A N T D W D Y Y
E E O J V C M M N V E O T A O Y T O N O R E P G
L L C L P E A A T E E I C V M U R L T C E B S A
B B E L E P R R N X D D A O R M R I I K Z L B E
I A M T I V D L B E E S L N O S B C D E O O U N
T T A N I P E A J M A T O Q T E V T E R P C H E
T T C P V C S D P C I U S U S L I S K F M K T V
H H S M C S S E O E L D D B B D A T C L O S I A
G G K U B E C T L N T I N V E A M I I O K R G M
A I I N T E L L I J O O O G W R Y C L V D G G G
L L T Q M R A H C Y P M N N S G O E S C M E P E

ANDROIDSTUDIO ANT ATOM BLUEFISH BRACKETS CLION


CODEBLOCKS CODELITE DBEAVER DOCKER ECLIPSE
EMACS GEANY GEDIT GITHUB GITLAB GRADLE INTELLIJ
JEDIT KATE KOMPOZER KUBECTL LIGHTTABLE MAVEN
MONODEVELOP NETBEANS NOTEPADPP NOVA NPM
PHPSTORM PLUMA POSTMAN PYCHARM RSTUDIO RUBYMINE
SCITE SLICKEDIT SOURCEFORGE SPYDER SQLDEVELOPER
SUBLIME SVN TEXTMATE VAGRANT VIM VISUALSTUDIO
VSCODE WEBSTORM XCODE YARN
Introduction and Puzzles 266

Truth Table Puzzles


-------------------
Truth Table 1381:
a b | (~(b | a) ^ (b | b))
--------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1382:


a b c | ((~(b & a) | ~(b | c)) | b)
-----------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Computing History: 1998: C++98 becomes first ISO


standard for C++

https://en.wikipedia.org/wiki/C%2B%2B98
Introduction and Puzzles 267

Assembly Puzzles
----------------
Assembly 1383: Assembly 1385:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 12 0: 6 r0: 5
1: 7 r1: 10 1: 7 r1: 3
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r0 >>> xor r1, r0
>>> outpb r1 >>> xor r1, #7
>>> xor r0, r1 >>> outpb r1
>>> outpb r0 ________________ ?
________________ ?

Assembly 1384: Assembly 1386:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 0
1: 7 r1: 4 1: 7 r1: 12
2: 8 r2: 6 2: 10 r2: 5
>>> outpb r2 >>> xor r0, 2
>>> outpb #9 >>> xor r1, r0
>>> xor r2, #9 >>> outpb r1
>>> outpb r2 ________________ ?
________________ ?
Introduction and Puzzles 268

Python Puzzles
--------------
>>> class Counter:
>>> def __init__(self):
>>> self.value = 0
>>>
>>> counter = Counter()
>>> counter.value = 5
>>> print(f"{counter.value}")
1387: __________ ?

>>> class Box:


>>> def __init__(self):
>>> self.width = 10
>>> self.height = 20
>>>
>>> box = Box()
>>> print(f"{box.width}, {box.height}")
1388: __________ ?

>>> class Score:


>>> def __init__(self):
>>> self.points = 0
>>> self.level = 1
>>>
>>> score = Score()
>>> score.points += 15
>>> score.level += 2
>>> print(f"{score.points}, {score.level}")
1389: __________ ?
Introduction and Puzzles 269

Regex Puzzles
-------------
>>> /if\s?\([^)]+\)\s?/ ~= ['if(test)',
'if (test)', 'if(test) ', 'if (test) ',
'if(condition)', 'if', 'if()', 'if test',
'if(test)then', 'if ( test ) ']
1390: (5) [__________________________
___________________________________] ?

>>> /\s?#[a-z]+\s?/ ~= ['#tag', ' #tag',


'#tag ', ' #tag ', '##tag', '#123', '#tag#',
'tag#', '# tag', ' #hashtag ']
1391: (4) [__________________________
___________________________________] ?

>>> /[0-9]+\s?%/ ~= ['100%', '50 %', '25%',


'0%', '100 %', '50 %', 'percent', '99%',
'100', '50% off']
1392: (6) [__________________________
___________________________________] ?

>>> /\s?\*\s?[a-z]+\s?\*\s?/ ~= ['*bold*',


' *bold*', '*bold* ', ' *bold* ', '**bold**',
'*', '*bold', 'bold*', ' * word * ',
'*italic*']
1393: (5) [__________________________
___________________________________] ?
Introduction and Puzzles 270

Conversion Puzzles
------------------
1394: 26557 = 0b________________ ?
1395: 0b1001110001001111 = _____ ?
1396: 28272 = 0b________________ ?
1397: 0b1101011110000010 = _____ ?
1398: 0b0101110011001100 = _____ ?
1399: 60315 = 0b________________ ?
1400: 63258 = 0b________________ ?
1401: 27358 = 0b________________ ?
1402: 20402 = 0b________________ ?
1403: 0b0101110001101110 = _____ ?
1404: 0b110011011011 = ____ ?
1405: 0b0010110011111011 = _____ ?
1406: 44698 = 0b________________ ?
1407: 0b1111110110010110 = _____ ?
1408: 0b0101001000001101 = _____ ?
1409: 14101 = 0b________________ ?
1410: 0b1011011100110010 = _____ ?
1411: 0b1100000011011001 = _____ ?
1412: 0b001010001010 = ___ ?
1413: 0b1111001101110010 = _____ ?
1414: 0b1001010010010010 = _____ ?
1415: 13100 = 0b________________ ?
1416: 0b1011111010010010 = _____ ?
1417: 22647 = 0b________________ ?
1418: 40900 = 0b________________ ?
1419: 43905 = 0b________________ ?
1420: 0b0111101101010101 = _____ ?
1421: 0b1000010101000010 = _____ ?
1422: 0b0111010101101111 = _____ ?
1423: 46412 = 0b________________ ?
1424: 20981 = 0b________________ ?
1425: 0b0010101000011000 = _____ ?
Introduction and Puzzles 271

Lisp Examples
-------------
>>> (define x 8)
>>> (define y 5)
>>> (print (> x y))
True

>>> (define check-equal (lambda (a b)


>>> (= a b)))
>>> (print (check-equal 4 4))
True

Lisp Puzzles
------------
>>> (define a 12)
>>> (define b 7)
>>> (print (< a b))
1426: __________ ?

>>> (define test-greater (lambda (n)


>>> (> n 10)))
>>> (print (test-greater 15))
1427: __________ ?

Computing History: 1998: "Open source" term


coined

https://en.wikipedia.org/wiki/Open_source
Introduction and Puzzles 272

ASCII
-----

ASCII 1428:
73 78 84 69 82 78 69 84
__ __ __ __ __ __ __ __

ASCII 1429:
79 70
__ __

ASCII 1430:
84 72 73 78 71 83
__ __ __ __ __ __

ASCII 1431:
67 79 78 78 69 67 84 73 86 73 84 89
__ __ __ __ __ __ __ __ __ __ __ __

Computing History: 1999: Wi-Fi standard ratified

https://en.wikipedia.org/wiki/Wi-Fi
Introduction and Puzzles 273

Truth Table Puzzles


-------------------
Truth Table 1432:
a b c | ((b ^ a) | ~(a ^ c))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1433:


a b c | ((~(b | a) ^ ~(b ^ b)) & c)
-----------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 274

Python Puzzles
--------------
>>> class Calculator:
>>> def __init__(self):
>>> self.result = 0
>>>
>>> def add(self, x):
>>> self.result += x
>>>
>>> calc = Calculator()
>>> calc.add(5)
>>> calc.add(3)
>>> print(f"Result: {calc.result}")
1434: __________ ?

>>> class Container:


>>> def __init__(self):
>>> self.a = 2
>>> self.b = 3
>>>
>>> def compute(self):
>>> return self.a + self.b
>>>
>>> container = Container()
>>> result = container.compute()
>>> print(f"Computation: {result}")
1435: __________ ?
Introduction and Puzzles 275

Regex Examples
--------------
>>> /a\Sb/ ~= ['a', 'b', 'a b', 'a b', 'abc',
'aab', 'abc', 'a1b']
Matches: (2) ['aab', 'a1b']

Regex Puzzles
-------------
>>> /a\S\+b/ ~= ['a', 'b', 'ab', 'a b', 'aab',
'aa bb', 'a b', 'aabb', 'a1234b']
1436: (0) [__________________________
___________________________________] ?

>>> /[a-z]\S{2,4}[0-9]/ ~= ['a 0', 'b 1',


'c 2', 'dGHJK3', 'e 4', 'aaBZ99']
1437: (2) [__________________________
___________________________________] ?

Computing History: 1999: NVIDIA GeForce 256


introduces GPU term and hardware T&L

https://en.wikipedia.org/wiki/GeForce_256
Introduction and Puzzles 276

Assembly Puzzles
----------------
Assembly 1438: Assembly 1440:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 13 0: 6 r0: 10
1: 7 r1: 4 1: 7 r1: 12
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r0 >>> xor r0, #6
>>> and r0, #15 >>> and r1, r0
>>> xor r0, #5 >>> or r1, #1
>>> outpb r0 >>> outpb r1
________________ ? ________________ ?

Assembly 1439: Assembly 1441:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 15
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 2 2: 8 r2: 4
>>> outpb r1 >>> or r2, #2
>>> or r1, r2 >>> xor r0, r2
>>> xor r1, #3 >>> and r0, #7
>>> outpb r1 >>> outpb r0
________________ ? ________________ ?
Introduction and Puzzles 277

1442: WordSearch 'Virtualization Technologies'

R E N I H C A M L A U T R I V A R A P A U M E Q
T D I V I R T U A L I N F R A S T R U C T U R E
R N O I T A Z I L A U T R I V K R O W T E N P T
I C O N T A I N E R O R C H E S T R A T I O N O
V I R T U A L R E S O U R C E M U L A T I O N H
B S T O R A G E V I R T U A L I Z A T I O N C S
I S E R V E R O S I V R E P Y H D U O L C X L P
L V I R T U A L I Z A T I O N E C N A I L P P A
E X N E S T E D V I R T U A L D E S K T O P Y N
K R O W T E N L A U T R I V T R I V E R U C E S
V H R S O F T W A R E D E F I N E D S O T S O H
V I R T U A L P R O C E S S O R E T S U L C M V
M V E T O M E R E S O U R C E I S O L A T I O N
V V C O N T A I N E R N A T I V E S O T S E U G
R F D P A R A V I R T U A L I Z A T I O N N E X
H C T I W S D E G R E V N O C R E P Y H E R O C

APPLIANCE CLOUDHYPERVISOR CONTAINER


CONTAINERNATIVE CONTAINERORCHESTRATION CORE
EMULATION GUESTOS HOSTOS HYPERCONVERGED
HYPERVISOR LIBVIRT LXC NESTEDVIRT
NETWORKVIRTUALIZATION PARAVIRTUAL
PARAVIRTUALIZATION QEMU REMOTEVM
RESOURCEISOLATION RHV SECUREVIRT SERVER
SNAPSHOT SOFTWAREDEFINED STORAGEVIRTUALIZATION
SWITCH VDI VIRTUALDESKTOP VIRTUALINFRASTRUCTURE
VIRTUALIZATION VIRTUALMACHINE VIRTUALNETWORK
VIRTUALPROCESSOR VIRTUALRESOURCE VMCLUSTER XEN
Introduction and Puzzles 278

Conversion Puzzles
------------------
1443: 0b1100110111010011 = 0x____ ?
1444: 0b0011101111001110 = 0x____ ?
1445: 0b1100011001100101 = 0x____ ?
1446: 0b0101010111110100 = 0x____ ?
1447: 0x479A = 0b________________ ?
1448: 0b1100111111001111 = 0x____ ?
1449: 0x3F47 = 0b________________ ?
1450: 0xFCFF = 0b________________ ?
1451: 0b1101000100011100 = 0x____ ?
1452: 0b0110100001011000 = 0x____ ?
1453: 0b1011110011001010 = 0x____ ?
1454: 0xFA43 = 0b________________ ?
1455: 0b1001111001010001 = 0x____ ?
1456: 0xCC76 = 0b________________ ?
1457: 0b0011111010111010 = 0x____ ?
1458: 0b0110000110000111 = 0x____ ?
1459: 0x956E = 0b________________ ?
1460: 0x922F = 0b________________ ?
1461: 0x9476 = 0b________________ ?
1462: 0b0010110000011110 = 0x____ ?
1463: 0x3EA9 = 0b________________ ?
1464: 0xA6E4 = 0b________________ ?
1465: 0b0100100010001111 = 0x____ ?
1466: 0x69D1 = 0b________________ ?
1467: 0b1001111011010010 = 0x____ ?
1468: 0x8815 = 0b________________ ?
1469: 0b0100111110011101 = 0x____ ?
1470: 0xEFE9 = 0b________________ ?
1471: 0b0110000010110000 = 0x____ ?
1472: 0xAAA1 = 0b________________ ?
1473: 0b0100000001100000 = 0x____ ?
1474: 0b0110010011100010 = 0x____ ?
Introduction and Puzzles 279

ASCII
-----

ASCII 1475:
65 85 71 77 69 78 84 69 68
__ __ __ __ __ __ __ __ __

ASCII 1476:
82 69 65 76 73 84 89
__ __ __ __ __ __ __

ASCII 1477:
73 78 84 69 82 65 67 84 73 86 69
__ __ __ __ __ __ __ __ __ __ __

ASCII 1478:
83 73 77 85 76 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __

Computing History: 2000: Python 2.0 released


with list comprehensions

https://en.wikipedia.org/wiki/History_of_Python
Introduction and Puzzles 280

Truth Table Puzzles


-------------------
Truth Table 1479:
b c | ~(~(c ^ b) & (c & c))
---------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1480:


a c | ((a ^ c) & ~(a | a))
--------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Computing History: 2001: Wikipedia launches

https://en.wikipedia.org/wiki/Wikipedia
Introduction and Puzzles 281

Python Puzzles
--------------
>>> class State:
>>> def __init__(self):
>>> self.enabled = False
>>> self.counter = 0
>>>
>>> def increment(self):
>>> if self.enabled:
>>> self.counter += 1
>>>
>>> state = State()
>>> state.increment()
>>> state.increment()
>>> state.enabled = True
>>> state.increment()
>>> print(state.counter)
1481: __________ ?

>>> class Processor:


>>> def __init__(self):
>>> self.value = 10
>>>
>>> def double(self):
>>> self.value *= 2
>>>
>>> processor = Processor()
>>> processor.double()
>>> print(f"Inactive: {processor.value}")
1482: __________ ?
Introduction and Puzzles 282

Regex Puzzles
-------------
>>> /\S+@\S+\.\S+/ ~= ['[email protected]',
'test @ mail.net', '[email protected]', 'name@domain',
'@test.com', '[email protected]', '[email protected]',
'user @email.com', '[email protected]', 'email@.']
1483: (4) [__________________________
___________________________________] ?

>>> /[A-Z]\S*\s+\S*[0-9]/ ~=
['Hello world123', 'A b2', 'TEST #99',
'test 123', 'ABC xyz', 'H-e-l-l-o 9',
'CAPS lower8', 'Z @5', 'a B3']
1484: (6) [__________________________
___________________________________] ?

>>> /\S{3,}\+\S{3,}/ ~= ['abc+def', '123+456',


'a+b', 'test+case', '++ ++', 'xyz + abc',
'aaa+bbb', '12+34', 'word+word', '++++++']
1485: (5) [__________________________
___________________________________] ?

>>> /(\S+\s+){2,3}\S+/ ~= ['one two three',


'a b c d', 'hello world !', 'word',
'test case here', '1 2 3', 'a b',
'x y z', 'this is it', 'single']
1486: (7) [__________________________
___________________________________] ?
Introduction and Puzzles 283

Lisp Puzzles
------------
>>> (define is-zero (lambda (n) (= n 0)))
>>> (define x 5)
>>> (print (is-zero (- x 5)))
1487: __________ ?

>>> (define both-positive


>>> (lambda (a b)
>>> (and (> a 0) (> b 0))))
>>> (print (both-positive 3 7))
1488: __________ ?

>>> (define same-sign


>>> (lambda (x y)
>>> (or (and (> x 0) (> y 0))
>>> (and (< x 0) (< y 0)))))
>>> (print (same-sign -2 -8))
1489: __________ ?

>>> (define within-range


>>> (lambda (n low high)
>>> (and (>= n low) (<= n high))))
>>> (print (within-range 15 10 20))
1490: __________ ?
Introduction and Puzzles 284

Math Examples
-------------
0o077 0o052
+ 0o001 + 0o037
------- -------
0o100 0o111

Math Puzzles
------------
Puzzle 1491: Puzzle 1493: Puzzle 1495:
0o063 0o072 0o065
+ 0o024 + 0o015 + 0o022
------- ------- -------
0o___ 0o___ 0o___

Puzzle 1492: Puzzle 1494: Puzzle 1496:


0o041 0o034 0o017
+ 0o056 + 0o043 + 0o060
------- ------- -------
0o___ 0o___ 0o___

Computing History: 2001: Mac OS X released with


Unix foundation

https://en.wikipedia.org/wiki/MacOS
Introduction and Puzzles 285

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> outpb 1
>>> not r1 >>> not 1
>>> outpb r1 >>> outpb 1
0b0100, 0b11111011 0b0111, 0b11111000

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: -5 1: -8 r1: 4
2: 8 r2: 5 2: 8 r2: 5

Assembly Puzzles
----------------
Assembly 1497: Assembly 1498:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r2 >>> outpb 0
>>> not r2 >>> not 0
>>> outpb r2 >>> outpb 0
________________ ? ________________ ?
Introduction and Puzzles 286

Python Puzzles
--------------
>>> class Account:
>>> def __init__(self):
>>> self.balance = 100
>>>
>>> def deposit(self, amount):
>>> self.balance += amount
>>>
>>> def withdraw(self, amount):
>>> self.balance -= amount
>>>
>>> account = Account()
>>> account.deposit(50)
>>> account.withdraw(30)
>>> account.deposit(10)
>>> account.withdraw(15)
>>> account.withdraw(5)
>>> account.deposit(2)
>>> print(f"{account.balance}")
1499: __________ ?

Computing History: 2002: Mozilla Firefox


development begins as Phoenix

https://en.wikipedia.org/wiki/Firefox
Introduction and Puzzles 287

Truth Table Puzzles


-------------------
Truth Table 1500:
b c | ((c ^ b) | (c ^ c))
-------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1501:


a c | (~(a | a) | (c ^ a))
--------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Computing History: 2003: Skype revolutionizes


internet calling

https://en.wikipedia.org/wiki/Skype
Introduction and Puzzles 288

ASCII
-----

ASCII 1502:
78 69 84 87 79 82 75
__ __ __ __ __ __ __

ASCII 1503:
83 69 67 85 82 73 84 89
__ __ __ __ __ __ __ __

ASCII 1504:
70 73 82 69 87 65 76 76
__ __ __ __ __ __ __ __

ASCII 1505:
73 78 84 82 85 83 73 79 78
__ __ __ __ __ __ __ __ __

Computing History: 2003: Test-driven development


methodology popularized by Kent Beck

https://en.wikipedia.org/wiki/Test-driven_development
Introduction and Puzzles 289

Conversion Puzzles
------------------
1506: 0b0001101110110000 = 0o______ ?
1507: 0o055004 = 0b________________ ?
1508: 0b0011111111010011 = 0o______ ?
1509: 0b0111001001010011 = 0o______ ?
1510: 0o014717 = 0b________________ ?
1511: 0b1101100111011011 = 0o______ ?
1512: 0b0001010000111100 = 0o______ ?
1513: 0b0001111101101011 = 0o______ ?
1514: 0b0110110110001001 = 0o______ ?
1515: 0b1000000111111100 = 0o______ ?
1516: 0o125000 = 0b________________ ?
1517: 0o156206 = 0b________________ ?
1518: 0o025504 = 0b________________ ?
1519: 0o152102 = 0b________________ ?
1520: 0o074634 = 0b________________ ?
1521: 0o170532 = 0b________________ ?
1522: 0b1110110011100001 = 0o______ ?
1523: 0b0011011001101011 = 0o______ ?
1524: 0o041240 = 0b________________ ?
1525: 0o130174 = 0b________________ ?
1526: 0o111401 = 0b________________ ?
1527: 0b0010110010010010 = 0o______ ?
1528: 0o162210 = 0b________________ ?
1529: 0b1011011100100010 = 0o______ ?
1530: 0b0110111001000100 = 0o______ ?
1531: 0o161637 = 0b________________ ?
1532: 0o111516 = 0b________________ ?
1533: 0b1110101010101101 = 0o______ ?
1534: 0b1000001111110101 = 0o______ ?
1535: 0o005211 = 0b____________ ?
1536: 0o055744 = 0b________________ ?
1537: 0o022474 = 0b________________ ?
Introduction and Puzzles 290

Regex Puzzles
-------------
>>> /\+\S+\+\s*=\s*\S+/ ~= ['+abc+ = 123',
'+x+=y', '+ a + = b', '+test+ =result',
'+123+=456', '+a b+=c', '+xyz+ = 999',
'+++=+', '+word+=', '+m+ = n']
1538: (7) [__________________________
___________________________________] ?

>>> /[a-z]+:\/\/\S+/ ~= ['http://site.com',


'https://web.org', 'ftp://files.net',
'http:// bad.com', '://test', 'file://local',
'ssh://server', 'http//no', 'mail://user',
'abc://xyz']
1539: (7) [__________________________
___________________________________] ?

>>> /\S+\.(jpg|png|gif)/ ~= ['image.jpg',


'photo.png', 'pic.gif', 'file .jpg',
'test.jpeg', '.png', 'my-pic.png', 'img.JPG',
'photo.gif', 'file.txt']
1540: (5) [__________________________
___________________________________] ?

>>> /\S+\s*\(\S*\)/ ~= ['func()', 'test(123)',


'call( )', 'name (abc)', '123()', 'fn(x,y)',
'method ( )', 'f(', 'func(a b)', 'call()']
1541: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 291

1542: WordSearch 'Programming Concepts'

J P K C A B L L A C N T X E T N O C O T I A W A
E I A G E N E R A T O R E P O C S R V T F M F P
O P T I M I Z A T I O N L I T I O E E N J P R M
T S T A T E M E N T J I T R N T N R R E F A A R
N B I G N I Y R R U C U O T A C A R R V R R M E
E Y O N H N V M K E C P E R A T S E I E A A E G
M T W I E R L C L E X R E P O E Y C D E M M W G
U E H D A U A C X E P P S R M N N U I R E E O U
G C I A D T N E O R O U R I L T C R N T P T R B
R O L O S E A I E M L C T E A A R S G X O E K E
A D E L N R E T T A P N G I S E D I N A I R S D
G E L R E X E L T N U I L E L S P V W T N U Y K
X A O E B R A E K R O C L D R A I E S N T S M C
C S O V R E S R A P A C N E L U D O M Y E O B O
X C P O O L R O F L C A T B R E A K N S R L O L
T N I O P D N E L H H R O T C A F E R M T C L B

API ARGUMENT ASYNC AWAIT BLOCK BREAK BYTECODE


CALLBACK CALLSTACK CASE CLOSURE COMPILER
CONTEXT CONTINUE CURRYING DEBUGGER
DESIGNPATTERN ENCAPSULATE ENDPOINT EVENT
EXECUTION EXPORT EXPRESSION FORLOOP
FRAMEPOINTER FRAMEWORK GENERATOR HANDLER
INTERPRETER ITERATOR JIT LEXER MODULE OPERATOR
OPTIMIZATION OVERLOADING OVERRIDING PARAMETER
PARSER RECURSIVE REFACTOR RETURN RUNTIME SCOPE
STATEMENT SYMBOL SYNTAXTREE TAILCALL WHILELOOP
Introduction and Puzzles 292

Lisp Puzzles
------------
>>> (define greater-than-five
>>> (lambda (n) (> n 5)))
>>> (print (greater-than-five 8))
1543: __________ ?

>>> (define not-zero (lambda (x) (not (= x 0))))


>>> (print (not-zero 3))
1544: __________ ?

>>> (define either-negative


>>> (lambda (a b)
>>> (or (< a 0) (< b 0))))
>>> (print (either-negative 2 -1))
1545: __________ ?

Computing History: 2004: Facebook launched at


Harvard

https://en.wikipedia.org/wiki/Facebook
Introduction and Puzzles 293

Python Puzzles
--------------
>>> class Game:
>>> def __init__(self):
>>> self.score = 0
>>> self.lives = 3
>>>
>>> def add_score(self, points):
>>> self.score += points
>>>
>>> def lose_life(self):
>>> self.lives -= 1
>>>
>>> def gain_life(self):
>>> self.lives += 1
>>>
>>> game = Game()
>>> game.add_score(10)
>>> game.add_score(5)
>>> game.lose_life()
>>> game.add_score(8)
>>> game.lose_life()
>>> game.add_score(12)
>>> game.gain_life()
>>> print(f"{game.score}, Lives: {game.lives}")
1546: __________ ?
Introduction and Puzzles 294

Truth Table Puzzles


-------------------
Truth Table 1547:
a c | ~((a | c) ^ (c | a))
--------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1548:


a b | (b & a)
-------------
F F | ___
F T | ___
T F | ___
T T | ___

Computing History: 2005: YouTube founded

https://en.wikipedia.org/wiki/YouTube
Introduction and Puzzles 295

ASCII
-----

ASCII 1549:
85 83 69 82
__ __ __ __

ASCII 1550:
69 88 80 69 82 73 69 78 67 69
__ __ __ __ __ __ __ __ __ __

ASCII 1551:
68 69 83 73 71 78
__ __ __ __ __ __

ASCII 1552:
84 72 73 78 75 73 78 71
__ __ __ __ __ __ __ __

Computing History: 2005: Selenium web


application testing framework released

https://en.wikipedia.org/wiki/Selenium_(software)
Introduction and Puzzles 296

Assembly Puzzles
----------------
Assembly 1553: Assembly 1555:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 15 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 12
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r0 >>> not r1
>>> not r0 >>> not r1
>>> outpb r0 >>> outpb r1
________________ ? ________________ ?

Assembly 1554: Assembly 1556:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 5 r1: 4
2: 10 r2: 5 2: 8 r2: 7
>>> outpb 2 >>> not r2
>>> not 2 >>> outpb r2
>>> outpb 2 >>> not 1
________________ ? >>> outpb 1
________________ ?
Introduction and Puzzles 297

Regex Examples
--------------
>>> /\d/ ~= ['a', 'b', '1', '2', 'd', '3',
' ', '9', 'e', ',']
Matches: (4) ['1', '2', '3', '9']

Regex Puzzles
-------------
>>> /\d\d*/ ~= ['a', 'aa', '01', '9', '10',
'a10', '88']
1557: (4) [__________________________
___________________________________] ?

>>> /\d+ (m|k)ph/ ~= ['0mph', '01 mph',


'99 fph', '88 mph', '141 kph', '012.5 mph',
'aa mph', 'b mph']
1558: (3) [__________________________
___________________________________] ?

Computing History: 2006: Amazon Web Services


launches cloud computing

https://en.wikipedia.org/wiki/Amazon_Web_Services
Introduction and Puzzles 298

Conversion Puzzles
------------------
1559: 0o104247 = _____ ?
1560: 20505 = 0o______ ?
1561: 0o156652 = _____ ?
1562: 22779 = 0o______ ?
1563: 37540 = 0o______ ?
1564: 59658 = 0o______ ?
1565: 0o145465 = _____ ?
1566: 0o014150 = ____ ?
1567: 0o030321 = _____ ?
1568: 0o156050 = _____ ?
1569: 52504 = 0o______ ?
1570: 0o066726 = _____ ?
1571: 42340 = 0o______ ?
1572: 0o045372 = _____ ?
1573: 44889 = 0o______ ?
1574: 5311 = 0o______ ?
1575: 30009 = 0o______ ?
1576: 0o077102 = _____ ?
1577: 0o164663 = _____ ?
1578: 0o001216 = ___ ?
1579: 35951 = 0o______ ?
1580: 0o004346 = ____ ?
1581: 0o162144 = _____ ?
1582: 0o013702 = ____ ?
1583: 1561 = 0o______ ?
1584: 51975 = 0o______ ?
1585: 0o130737 = _____ ?
1586: 0o101725 = _____ ?
1587: 31687 = 0o______ ?
1588: 0o162744 = _____ ?
1589: 0o004447 = ____ ?
1590: 0o146454 = _____ ?
Introduction and Puzzles 299

Python Puzzles
--------------
>>> class Tracker:
>>> def __init__(self):
>>> self.x = 0
>>> self.y = 0
>>>
>>> def move_right(self):
>>> self.x += 1
>>>
>>> def move_up(self):
>>> self.y += 1
>>>
>>> def move_down(self):
>>> self.y -= 1
>>>
>>> def move_left(self):
>>> self.x -= 1
>>>
>>> tracker = Tracker()
>>> tracker.move_down()
>>> tracker.move_up()
>>> tracker.move_right()
>>> tracker.move_right()
>>> tracker.move_up()
>>> tracker.move_left()
>>> tracker.move_up()
>>> print(f"({tracker.x}, {tracker.y})")
1591: __________ ?
Introduction and Puzzles 300

Truth Table Puzzles


-------------------
Truth Table 1592:
a b c | (~(c & b) | (a & c))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1593:


a b c | (~(b ^ c) | (b | a))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 301

ASCII
-----

ASCII 1594:
68 73 83 84 82 73 66 85 84 69 68
__ __ __ __ __ __ __ __ __ __ __

ASCII 1595:
83 89 83 84 69 77 83
__ __ __ __ __ __ __

ASCII 1596:
77 73 67 82 79 83 69 82 86 73 67 69 83
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 1597:
65 82 67 72 73 84 69 67 84 85 82 69
__ __ __ __ __ __ __ __ __ __ __ __

Computing History: 2007: iPhone released

https://en.wikipedia.org/wiki/IPhone_(1st_generation)
Introduction and Puzzles 302

Math Examples
-------------
0o100 0o251 0o374
+ 0o007 + 0o146 + 0o203
------- ------- -------
0o107 0o417 0o577

Math Puzzles
------------
Puzzle 1598: Puzzle 1600:
0o456 0o634
+ 0o123 + 0o352
------- ----------
0o___ 0o______

Puzzle 1599: Puzzle 1601:


0o567 0o725
+ 0o214 + 0o461
---------- ----------
0o______ 0o______

Computing History: 2008: App Store launches

https://en.wikipedia.org/wiki/App_Store_(iOS)
Introduction and Puzzles 303

Regex Puzzles
-------------
>>> /\d{2,4}-\d{2}-\d{2}/ ~= ['2024-03-15',
'99-12-31', '1-2-3', '24-01-01',
'12345-01-01', '2024/03/15', 'abc-12-34',
'123-4-56', '9999-99-99', '22-11-33']
1602: (5) [__________________________
___________________________________] ?

>>> /[a-z]+\d+@\S+/ ~= ['[email protected]',


'[email protected]', '[email protected]',
'[email protected]', 'abc123@', 'xyz999@domain',
'[email protected]', '[email protected]', 'test123 @site',
'[email protected]']
1603: (5) [__________________________
___________________________________] ?

>>> /\(\d{3}\)\s*\d{3}-\d{4}/ ~=
['(123) 456-7890', '(555)123-4567',
'(12) 345-6789', '123-456-7890',
'(999) 000-1111', '(123)456-789',
'(800) 555-1212', '() 123-4567',
'(111)222-3333', '(abc) 123-4567']
1604: (5) [__________________________
___________________________________] ?

>>> /v\d+\.\d+(\.\d+)?/ ~= ['v1.0', 'v2.3.4',


'v10.0.1', 'v1', 'version1.0', 'v1.2.',
'v99.99', '1.2.3', 'v0.0.0', 'v1.2.3.4']
1605: (5) [__________________________
___________________________________] ?
Introduction and Puzzles 304

Lisp Puzzles
------------
>>> (define all-positive
>>> (lambda (x y z)
>>> (and (> x 0) (> y 0) (> z 0))))
>>> (print (all-positive 1 2 3))
1606: __________ ?

>>> (define in-teens


>>> (lambda (n)
>>> (and (>= n 13) (<= n 19))))
>>> (print (in-teens 16))
1607: __________ ?

>>> (define different-signs


>>> (lambda (a b)
>>> (not (same-sign a b))))
>>> (define same-sign
>>> (lambda (x y)
>>> (or (and (> x 0) (> y 0))
>>> (and (< x 0) (< y 0)))))
>>> (print (different-signs 4 -2))
1608: __________ ?

Computing History: 2008: Python 3.0 released


with breaking changes from Python 2.x

https://en.wikipedia.org/wiki/History_of_Python
Introduction and Puzzles 305

1609: WordSearch 'DevOps Practices'

G G N I T S E T D E T A M O T U A N A B N A K N
O F E T Y R E V I L E D S U O U N I T N O C F O
L B F S C R I P T A U T O M A T I O N R M P A I
T N E M E G A N A M N O I T A R U G I F N O C T
N O I T A Z I M I T P O E C N A M R O F R E P A
E Z Z I T N E M E G A N A M T N E D I C N I A G
D S C R U M G N I N N A C S Y T I R U C E S U E
I C D C O S T O P T I M I Z A T I O N S T K D R
C R E L E A S E M A N A G E M E N T I K Y U I G
N E D O C S A E R U T C U R T S A R F N I D T G
I R P T N E M E G A N A M R E N I A T N O C I A
I N F R A S T R U C T U R E M O N I T O R I N G
T N E M Y O L P E D S U O U N I T N O C U A G O
C O N T I N U O U S I N T E G R A T I O N M F L
T R B L U E G R E E N D E P L O Y M E N T P S E
K C A B L L O R T N E M Y O L P E D Y R A N A C

APM AUDITING AUTOMATEDTESTING AUTOMATION


BLUEGREENDEPLOYMENT CANARYDEPLOYMENT
CONFIGURATIONMANAGEMENT CONTAINERMANAGEMENT
CONTINUOUSDELIVERY CONTINUOUSDEPLOYMENT
CONTINUOUSINTEGRATION COSTOPTIMIZATION
INCIDENTLOG INCIDENTMANAGEMENT
INFRASTRUCTUREASCODE INFRASTRUCTUREMONITORING
KANBAN LOGAGGREGATION PERFORMANCEOPTIMIZATION
RELEASEMANAGEMENT ROLLBACK SCRIPTAUTOMATION
SCRUM SECURITYSCANNING
Introduction and Puzzles 306

Assembly Puzzles
----------------
Assembly 1610: Assembly 1612:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 5 0: 6 r0: 12
1: 7 r1: 4 1: 7 r1: 4
2: 8 r2: 5 2: 8 r2: 3
>>> outpb r0 >>> not r2
>>> not r0 >>> xor r0, r2
>>> and r0, #15 >>> outpb r0
>>> outpb r0 ________________ ?
________________ ?

Assembly 1611: Assembly 1613:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 3 0: 6 r0: 3
1: 7 r1: 4 1: 7 r1: 15
2: 8 r2: 5 2: 8 r2: 5
>>> outpb r1 >>> and r1, #7
>>> or r1, #8 >>> not r1
>>> not r1 >>> or r1, #8
>>> outpb r1 >>> outpb r1
________________ ? ________________ ?
Introduction and Puzzles 307

Python Puzzles
--------------
>>> class DataProcessor:
>>> def __init__(self):
>>> self.values = []
>>>
>>> def add_range(self, n):
>>> self.values = [x + 2 for x in range(n)]
>>>
>>> def sum_all(self):
>>> return sum(self.values)
>>>
>>> processor = DataProcessor()
>>> processor.add_range(4)
>>> total = processor.sum_all()
>>> print(f"{processor.values}")
>>> print(f"{total}")
1614: __________ ?

>>> def transform(x):


>>> return x * 2 + 1
>>>
>>> class Container:
>>> def __init__(self):
>>> self.data = []
>>>
>>> def generate(self):
>>> self.data = [transform(i) for i in
range(3)]
>>>
>>> container = Container()
>>> container.generate()
>>> print(f"{len(container.data)}")
1615: __________ ?
Introduction and Puzzles 308

Truth Table Puzzles


-------------------
Truth Table 1616:
a b c | ((b & a) ^ (a ^ c))
---------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1617:


a b c | ~(~(~(b ^ c) | ~(b & b)) ^ a)
-------------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 309

Conversion Puzzles
------------------
1618: 51117 = 0x____ ?
1619: 0x425D = _____ ?
1620: 20185 = 0x____ ?
1621: 0xCBBA = _____ ?
1622: 52371 = 0x____ ?
1623: 0x2F30 = _____ ?
1624: 54010 = 0x____ ?
1625: 39186 = 0x____ ?
1626: 0x2113 = ____ ?
1627: 56417 = 0x____ ?
1628: 0xFB13 = _____ ?
1629: 46496 = 0x____ ?
1630: 48506 = 0x____ ?
1631: 0xBF34 = _____ ?
1632: 44157 = 0x____ ?
1633: 24305 = 0x____ ?
1634: 0xA5BD = _____ ?
1635: 33095 = 0x____ ?
1636: 0x8BBA = _____ ?
1637: 57340 = 0x____ ?
1638: 36430 = 0x____ ?
1639: 23717 = 0x____ ?
1640: 29678 = 0x____ ?
1641: 0xEAB7 = _____ ?
1642: 48595 = 0x____ ?
1643: 51766 = 0x____ ?
1644: 62633 = 0x____ ?
1645: 56670 = 0x____ ?
1646: 533 = 0x____ ?
1647: 0x1CF9 = ____ ?
1648: 0x1B26 = ____ ?
1649: 0x90CC = _____ ?
Introduction and Puzzles 310

ASCII
-----

ASCII 1650:
65 82 84 73 70 73 67 73 65 76
__ __ __ __ __ __ __ __ __ __

ASCII 1651:
73 78 84 69 76 76 73 71 69 78 67 69
__ __ __ __ __ __ __ __ __ __ __ __

ASCII 1652:
68 69 69 80
__ __ __ __

ASCII 1653:
76 69 65 82 78 73 78 71
__ __ __ __ __ __ __ __

Computing History: 2009: Bitcoin introduced by


Satoshi Nakamoto

https://en.wikipedia.org/wiki/Bitcoin
Introduction and Puzzles 311

Regex Puzzles
-------------
>>> /\d?\d\d/ ~= ['123', '23', '1', '1234',
'abc', '12', '999', '12.3', 'a23', '123b']
1654: (4) [__________________________
___________________________________] ?

>>> /\$?\d+\.\d{2}/ ~= ['$123.45', '123.45',


'$99.99', '99.99', '$1.00', '1.00', '123.456',
'$123.4', 'abc.45', '$abc.45']
1655: (6) [__________________________
___________________________________] ?

>>> /\+?\d+\s?mph/ ~= ['+65 mph', '65 mph',


'+65mph', '65mph', '65 kph', '+65 kph', 'mph',
'65', '+65', '65 mph!']
1656: (4) [__________________________
___________________________________] ?

>>> /\d?\d:\d\d/ ~= ['12:34', '1:23',


'123:45', '1:2', '12:3', 'ab:cd', '12:34:56',
'1:23 pm', '12:34 am', '0:00']
1657: (3) [__________________________
___________________________________] ?

>>> /version\s?\d+(\.\d+)?/ ~= ['version 1.0',


'version1.0', 'version 1', 'version1',
'version 2.3.4', 'version', 'version abc',
'version 1.0.1', 'version1', 'versions 1.0']
1658: (5) [__________________________
___________________________________] ?
Introduction and Puzzles 312

Python Puzzles
--------------
>>> class Calculator:
>>> def __init__(self):
>>> self.result = 0
>>>
>>> def process_list(self, items):
>>> for item in items:
>>> self.result += item
>>>
>>> calc = Calculator()
>>> numbers = [i + 3 for i in range(4)]
>>> calc.process_list(numbers)
>>> print(f"{calc.result}")
1659: __________ ?

>>> class Stats:


>>> def __init__(self):
>>> self.numbers = []
>>>
>>> def fill(self, start, end):
>>> self.numbers = [x for x in range(start,
end)]
>>>
>>> def get_max(self):
>>> return max(self.numbers)
>>>
>>> stats = Stats()
>>> stats.fill(2, 7)
>>> print(f"Numbers: {stats.numbers}")
>>> print(f"Max: {stats.get_max()}")
1660: __________ ?
Introduction and Puzzles 313

Lisp Examples
-------------
>>> (define flag #t)
>>> (print flag)
True

>>> (define value #t)


>>> (define other (not value))
>>> (print other)
False

Lisp Puzzles
------------
>>> (define enabled #t)
>>> (define disabled (not enabled))
>>> (print (and enabled (not disabled)))
1661: __________ ?

>>> (define condition #f)


>>> (define result (not condition))
>>> (print (or condition result))
1662: __________ ?

Computing History: 2009: Go programming language


released by Google

https://en.wikipedia.org/wiki/Go_(programming_language)
Introduction and Puzzles 314

Assembly Puzzles
----------------
Assembly 1663: Assembly 1665:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 100 r0: 0 0: 150 r0: 1
1: 101 r1: 1 1: 151 r1: 2
2: 102 r2: 2 2: 152 r2: 0
>>> outp [r0] >>> outp [0]
________________ ? ________________ ?

Assembly 1664: Assembly 1666:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 200 r0: 2 0: 175 r0: 1
1: 201 r1: 0 1: 176 r1: 0
2: 202 r2: 1 2: 177 r2: 2
>>> outp [r1] >>> outp [r2]
________________ ? >>> outp [1]
________________ ?

Computing History: 2010: Behavior-driven


development (BDD) framework Cucumber released

https://en.wikipedia.org/wiki/Cucumber_(software)
Introduction and Puzzles 315

Truth Table Puzzles


-------------------
Truth Table 1667:
a c | (c ^ ((c | a) ^ (a & c)))
-------------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1668:


a b c | ((b ^ a) | ~(c & a))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Computing History: 2010: iPad released

https://en.wikipedia.org/wiki/IPad_(1st_generation)
Introduction and Puzzles 316

ASCII
-----

ASCII 1669:
86 73 82 84 85 65 76 73 90 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 1670:
67 79 78 84 65 73 78 69 82
__ __ __ __ __ __ __ __ __

ASCII 1671:
79 82 67 72 69 83 84 82 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 1672:
65 85 84 79 77 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __

Computing History: 2011: Watson defeats


Jeopardy! champions

https://en.wikipedia.org/wiki/Watson_(computer)
Introduction and Puzzles 317

1673: WordSearch 'Design Patterns'

T C E J B O L L U N D O H T E M Y R O T C A F B
I F Y T I L I B I S N O P S E R F O N I A H C V
D R S M V P Y R O T C A F T C A R T S B A M M D
O O E D A C A F D O M A I N D R I V E N E E O E
H N R R E L L O R T N O C W E I V L E D O M N T
T T V E R U T C E T I H C R A N A E L C M E A N
E C I T T N C C C L I E N T S E R V E R V N D E
M O C E M O V D R O C E R E V I T C A W V T L I
E N E R E T M A R E P P A M A T A D V P M O A R
T T L P D E P E N D E N C Y I N J E C T I O N O
A R O R I L E R U T C E T I H C R A N O I N O T
L O C E A G S E E V E N T S O U R C I N G M G C
P L A T T N K R O W F O T I N U R E T P A D A E
M L T N O I S S R E T L I F D N A S E P I P X P
E E O I R S T A T E M I C R O K E R N E L O E S
T R R E V R E S B O Y R O T I S O P E R O T H A

ABSTRACTFACTORY ACTIVERECORD ADAPTER


ASPECTORIENTED CHAINOFRESPONSIBILITY
CLEANARCHITECTURE CLIENTSERVER DATAMAPPER
DEPENDENCYINJECTION DOMAINDRIVEN EVENTSOURCING
FACADE FACTORYMETHOD FRONTCONTROLLER HEXAGONAL
INTERPRETER MEDIATOR MEMENTO MICROKERNEL
MODELVIEWCONTROLLER MONAD MVC MVP MVVM
NULLOBJECT OBSERVER ONIONARCHITECTURE
PIPESANDFILTERS REPOSITORY SERVICELOCATOR
SINGLETON STATE TEMPLATEMETHOD UNITOFWORK
Introduction and Puzzles 318

Regex Puzzles
-------------
>>> /\d+(\.\d+)?%/ ~= ['100%', '50.5%', '25%',
'0.25%', '100.0%', '50%', '100', '50.5',
'100.%', 'abc%']
1674: (6) [__________________________
___________________________________] ?

>>> /\(?\d{3}\)?\s?\d{3}-\d{4}/ ~=
['(123) 456-7890', '123 456-7890',
'(123)456-7890', '123456-7890',
'(123) 456-789', '123 456-78901',
'abc 456-7890', '(123) abc-7890',
'123-456-7890', '1234567890']
1675: (4) [__________________________
___________________________________] ?

>>> /\d{1,2}\/?\d{1,2}\/?\d{2,4}/ ~=
['12/25/2023', '12/25/23', '12252023',
'1/1/2023', '1/1/23', '1/1/1', '12/25',
'12/25/', 'ab/cd/efgh', '12/25/202a']
1676: (6) [__________________________
___________________________________] ?

>>> /\#?[a-fA-F0-9]{6}/ ~= ['#FF0000',


'FF0000', '#123abc', '123abc', '#ABCDEF',
'ABCDEF', '#GGG000', 'GGG000', '#12345',
'1234567']
1677: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 319

Python Puzzles
--------------
>>> a, b, c = 1, 5, 2
>>>
>>> class RangeProcessor:
>>> def __init__(self):
>>> self.total = 0
>>>
>>> def add_range(self, start, end, step):
>>> for i in range(start, end, step):
>>> self.total += i
>>>
>>> processor = RangeProcessor()
>>> processor.add_range(a, b, c)
>>> print(f"{processor.total}")
1678: __________ ?

>>> x, y = 3, 6
>>>
>>> def compute(val):
>>> return val + 4
>>>
>>> class DataHolder:
>>> def __init__(self):
>>> self.values = []
>>>
>>> def generate(self, a, b):
>>> self.values = [compute(i) for i in
range(a, b)]
>>>
>>> holder = DataHolder()
>>> holder.generate(x, y)
>>> print(f"{holder.values}")
1679: __________ ?
Introduction and Puzzles 320

Conversion Puzzles
------------------
1680: 0o144201 = 0x____ ?
1681: 0o124641 = 0x____ ?
1682: 0o062107 = 0x____ ?
1683: 0o030105 = 0x____ ?
1684: 0o122170 = 0x____ ?
1685: 0x68FB = 0o______ ?
1686: 0o164617 = 0x____ ?
1687: 0o150176 = 0x____ ?
1688: 0x6D85 = 0o______ ?
1689: 0o134241 = 0x____ ?
1690: 0o022024 = 0x____ ?
1691: 0x67A9 = 0o______ ?
1692: 0o125762 = 0x____ ?
1693: 0x4480 = 0o______ ?
1694: 0xD618 = 0o______ ?
1695: 0x2D00 = 0o______ ?
1696: 0xF22D = 0o______ ?
1697: 0o077415 = 0x____ ?
1698: 0x8944 = 0o______ ?
1699: 0o005647 = 0x____ ?
1700: 0o075407 = 0x____ ?
1701: 0x79F1 = 0o______ ?
1702: 0xBA54 = 0o______ ?
1703: 0o056341 = 0x____ ?
1704: 0x213E = 0o______ ?
1705: 0o060207 = 0x____ ?
1706: 0x7FF2 = 0o______ ?
1707: 0o030027 = 0x____ ?
1708: 0o113540 = 0x____ ?
1709: 0x3C40 = 0o______ ?
1710: 0o125765 = 0x____ ?
1711: 0x62A7 = 0o______ ?
Introduction and Puzzles 321

Math Examples
-------------
0o777 0o376
+ 0o001 + 0o421
---------- ----------
0o001000 0o001017

Math Puzzles
------------
Puzzle 1712: Puzzle 1714: Puzzle 1716:
0o542 0o324 0o713
+ 0o235 + 0o453 + 0o064
------- ------- -------
0o___ 0o___ 0o___

Puzzle 1713: Puzzle 1715: Puzzle 1717:


0o671 0o165 0o246
+ 0o106 + 0o612 + 0o531
------- ------- -------
0o___ 0o___ 0o___

Computing History: 2012: Raspberry Pi released

https://en.wikipedia.org/wiki/Raspberry_Pi
Introduction and Puzzles 322

Truth Table Puzzles


-------------------
Truth Table 1718:
a b c | ((c | b) & (b ^ a))
---------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1719:


a b c | ~(((c | a) | (b | a)) & a)
----------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 323

Regex Puzzles
-------------
>>> /\d+\s*(\+|-|\*|\/)\s*\d+\s*=/ ~=
['2 + 3 =', '10-5=', '3 * 4 =', '12/4=',
'1++2=', '5 x 3 =', 'a+b=', '99 * 11 =',
'7-2=', '100 / 0 =']
1720: (7) [__________________________
___________________________________] ?

>>> /[A-Z]{2,3}-\d{4,6}/ ~= ['ABC-12345',


'NY-9999', 'CA-123456', 'A-1234', 'XYZ-123',
'ABCD-12345', 'TX-000001', 'abc-12345',
'USA-99999', 'FL-1234567']
1721: (5) [__________________________
___________________________________] ?

>>> /\d+\s*[a-z]+\s+\d+\s*[a-z]+/ ~=
['5 cats and 3 dogs', '1cat2dog',
'10 apples 20 oranges',
'100 items 50 left', 'a cats b dogs',
'7days8nights', '2 x 3 y', '99 red 1 blue',
'12abc34def', '1 cat 1 dog']
1722: (5) [__________________________
___________________________________] ?

>>> /\d{1,3}(\.\d{1,3}){3}/ ~= ['192.168.1.1',


'10.0.0.1', '255.255.255.255', '1.2.3.4.5',
'999.999.999.999', '192.168.1', 'a.b.c.d',
'1.2.3.4', '0.0.0.0', '256.1.1.1']
1723: (7) [__________________________
___________________________________] ?
Introduction and Puzzles 324

Assembly Puzzles
----------------
Assembly 1724: Assembly 1726:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 5 r0: 20 0: 7 r0: 5
1: 10 r1: 1 1: 3 r1: 0
2: 15 r2: 2 2: 1 r2: 2
>>> add r0, [r1] >>> outpb [r2]
>>> outp r0 >>> and r0, [r2]
________________ ? >>> outpb r0
________________ ?

Assembly 1725: Assembly 1727:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 25 r0: 0 0: 50 r0: 2
1: 30 r1: 15 1: 55 r1: 0
2: 35 r2: 20 2: 60 r2: 1
>>> add r1, [0] >>> mov r1, [r0]
>>> outp r1 >>> outp r1
________________ ? ________________ ?

Computing History: 2012: TypeScript released by


Microsoft as JavaScript superset

https://en.wikipedia.org/wiki/TypeScript
Introduction and Puzzles 325

ASCII
-----

ASCII 1728:
86 73 82 84 85 65 76
__ __ __ __ __ __ __

ASCII 1729:
80 82 73 86 65 84 69
__ __ __ __ __ __ __

ASCII 1730:
78 69 84 87 79 82 75
__ __ __ __ __ __ __

ASCII 1731:
73 78 84 69 82 78 69 84
__ __ __ __ __ __ __ __

ASCII 1732:
80 82 79 84 79 67 79 76
__ __ __ __ __ __ __ __
Introduction and Puzzles 326

Lisp Puzzles
------------
>>> (define active #t)
>>> (define ready #f)
>>> (define status (or active ready))
>>> (print (and status active))
1733: __________ ?

>>> (define flag1 #t)


>>> (define flag2 (not flag1))
>>> (define combined (and flag1 flag2))
>>> (print (not combined))
1734: __________ ?

>>> (define check-bounds (lambda (x min max)


>>> (and (>= x min) (<= x max))))
>>> (print (check-bounds 5 1 10))
1735: __________ ?

>>> (define either-equal (lambda (x a b)


>>> (or (= x a) (= x b))))
>>> (print (either-equal 3 3 7))
1736: __________ ?

Computing History: 2013: Docker containerization


platform released

https://en.wikipedia.org/wiki/Docker_(software)
Introduction and Puzzles 327

Python Puzzles
--------------
>>> m, n, o = 2, 8, 3
>>>
>>> class Counter:
>>> def __init__(self):
>>> self.count = 0
>>>
>>> def count_range(self, start, end):
>>> for i in range(start, end):
>>> if i > o:
>>> self.count += 1
>>>
>>> counter = Counter()
>>> counter.count_range(m, n)
>>> print(f"Count: {counter.count}")
1737: __________ ?

>>> p, q, r = 4, 2, 6
>>> values = [p, q, r, 1, 8]
>>>
>>> class Analyzer:
>>> def __init__(self):
>>> self.result = 0
>>>
>>> def analyze(self, data):
>>> subset = data[q:]
>>> self.result = sum(subset)
>>>
>>> analyzer = Analyzer()
>>> analyzer.analyze(values)
>>> print(f"Result: {analyzer.result}")
1738: __________ ?
Introduction and Puzzles 328

Truth Table Puzzles


-------------------
Truth Table 1739:
a b c | ~((c ^ b) | ~(c ^ a))
-----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1740:


b c | ~((c & c) | (b & b))
--------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Computing History: 2014: Neovim project founded


as vim fork with modern architecture

https://en.wikipedia.org/wiki/Vim_(text_editor)
Introduction and Puzzles 329

Conversion Puzzles
------------------
1741: 2916 = 0x____ ?
1742: 0o143122 = 0b________________ ?
1743: 0o137611 = 0x____ ?
1744: 0b1100111100101000 = 0x____ ?
1745: 0o077227 = 0x____ ?
1746: 29221 = 0o______ ?
1747: 0x0C2B = 0b____________ ?
1748: 0x9BB0 = 0o______ ?
1749: 25817 = 0b________________ ?
1750: 0xC22E = 0b________________ ?
1751: 0b1001111010000000 = _____ ?
1752: 0b0100011011000001 = _____ ?
1753: 0o151325 = 0b________________ ?
1754: 0o165624 = _____ ?
1755: 0b1100010110000000 = 0o______ ?
1756: 0x12E1 = 0o______ ?
1757: 0o021414 = ____ ?
1758: 51687 = 0o______ ?
1759: 0o022734 = 0b________________ ?
1760: 0b1110011011011010 = 0o______ ?
1761: 0o063022 = 0b________________ ?
1762: 0o106451 = 0x____ ?
1763: 5273 = 0o______ ?
1764: 0x542B = 0b________________ ?
1765: 0b1000011111011010 = 0o______ ?
1766: 0b1111010100100100 = 0o______ ?
1767: 0b1100111101010111 = _____ ?
1768: 0b0111101100111110 = 0x____ ?
1769: 45243 = 0o______ ?
1770: 0x0118 = 0o___ ?
1771: 0x18EA = ____ ?
1772: 0b1111011011111100 = _____ ?
Introduction and Puzzles 330

1773: WordSearch 'Artificial Intelligence Terms'

G Z R T N E C S E D T N E I D A R G T Y E E I N
N M X Y R A D N U O B N O I S I C E D S C M H O
I G N I L A C S E R U T A E F D R O P O U T E I
S S N K E M A G E N E R A T I V E M O D E L N T
S K M E A N S T R A N S F E R L E A R N I N G A
E C N E G I L L E T N I L A I C I F I T R A M T
C H M M B L M A C H I N E L E A R N I N G U T N
O Y F E A T U R E E X T R A C T I O N G Y R U E
R R E T E M A R A P R E P Y H N A I S E Y A B M
P Z Z D D B A T C H N O R M A L I Z A T I O N G
E G A U G N A L L A R U T A N E N S E M B L E U
N E U R O E V O L U T I O N A I V E B A Y E S A
N C R E C U R S I V E N E U R A L X O M F P E A
L P D D K N O I T A G A P O R P K C A B A K O T
Y H C R O S S V A L I D A T I O N C T C I K M A
M R O B H G I E N T S E R A E N P T R O P O U D

ARTIFICIALINTELLIGENCE BACKPROPAGATION
BATCHNORMALIZATION BAYESIAN CROSSVALIDATION
DATAAUGMENTATION DECISIONBOUNDARY DROPOUT
ENSEMBLE FEATUREEXTRACTION FEATURESCALING
GENERATIVEMODEL GRADIENTDESCENT HYPERPARAMETER
KMEANS MACHINELEARNING NAIVEBAYES
NATURALLANGUAGE NEARESTNEIGHBOR NEUROEVOLUTION
PCA PROCESSING RECURSIVENEURAL TRANSFERLEARNING
Introduction and Puzzles 331

Regex Examples
--------------
>>> /\D/ ~= ['a', 'b', '1', '2', 'd', '3',
' ', '9', 'e', ',']
Matches: (6) ['a', 'b', 'd', ' ', 'e', ',']

Regex Puzzles
-------------
>>> /\D\D*/ ~= ['a', 'aa', '01', '9', '10',
'a10', '88']
1774: (2) [__________________________
___________________________________] ?

>>> /\D+ (m|k)ph/ ~= ['0mph', '01 mph',


'99 fph', '88 mph', '141 kph', '012.5 mph',
'aa mph', 'b mph']
1775: (2) [__________________________
___________________________________] ?

Computing History: 2014: Swift programming


language released by Apple

https://en.wikipedia.org/wiki/Swift_(programming_language)
Introduction and Puzzles 332

Python Examples
---------------
>>> def double(x):
>>> return x * 2
>>>
>>> def add_three(x):
>>> return x + 3
>>>
>>> numbers = [1, 2, 3, 4]
>>> processed = [double(x) if x > 2 else
add_three(x) for x in numbers]
>>> print(f"{processed}")
[4, 5, 6, 8]

Python Puzzles
--------------
>>> def process_value(val):
>>> if val > 5:
>>> return val + 2
>>> else:
>>> return val * 2
>>>
>>> data = [3, 6, 2, 8]
>>> results = [process_value(x) if x > 3 else
x for x in data]
>>> print(f"{results}")
1776: __________ ?

>>> def generate_list(start, end):


>>> return [x + 1 for x in range(start, end)]
>>>
>>> print(generate_list(2, 5))
1777: __________ ?
Introduction and Puzzles 333

ASCII
-----

ASCII 1778:
87 69 76 67 79 77 69
__ __ __ __ __ __ __

ASCII 1779:
84 79
__ __

ASCII 1780:
80 82 79 71 82 65 77 77 69 82
__ __ __ __ __ __ __ __ __ __

ASCII 1781:
80 85 90 90 76 69 83
__ __ __ __ __ __ __

Computing History: 2015: Rust 1.0 stable release

https://en.wikipedia.org/wiki/Rust_(programming_language)
Introduction and Puzzles 334

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 2 0: 3 r0: 2
1: 7 r1: 1 1: 4 r1: 1
2: 8 r2: 0 2: 5 r2: 0
>>> outp r0 3: 6 r3: 0
>>> outp 2 >>> outp 0
>>> outp [r0] >>> outp 3
2, 8, 8 >>> outp [0]
3, 6, 6

Assembly Puzzles
----------------
Assembly 1782: Assembly 1783:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 3 r0: 2 0: 3 r0: 2
1: 4 r1: 1 1: 4 r1: 1
2: 5 r2: 0 2: 5 r2: 0
3: 6 r3: 0 3: 6 r3: 0
>>> add r0, r1 >>> add r2, r0
>>> outp [r0] >>> outp [r2]
________________ ? ________________ ?
Introduction and Puzzles 335

Lisp Examples
-------------
>>> (define test-func (lambda (n)
>>> (begin (print "called") (> n 5))))
>>> (print (and #f (test-func 10)))
False

>>> (define test-func (lambda (n)


>>> (begin (print "called") (> n 5))))
>>> (print (and #t (test-func 10)))
called
True

Lisp Puzzles
------------
>>> (define check (lambda (x)
>>> (begin (print "checking") (= x 0))))
>>> (print (and #f (check 5)))
>>> (print (and #t (check 5)))
1784: __________ ?

>>> (define validate (lambda (n)


>>> (begin (print "validating") (< n 10))))
>>> (print (or #t (validate 15)))
>>> (print (or #f (validate 15)))
1785: __________ ?
Introduction and Puzzles 336

Truth Table Puzzles


-------------------
Truth Table 1786:
a c | ~((c | a) ^ (c | a))
--------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 1787:


a b c | ((b ^ c) & (b | a))
---------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Computing History: 2016: AlphaGo defeats Go


champion Lee Sedol

https://en.wikipedia.org/wiki/AlphaGo_versus_Lee_Sedol
Introduction and Puzzles 337

Regex Puzzles
-------------
>>> /\d+\D\s+\S+\d+/ ~= ['123a hello99',
'5x test456', '999! code007', '123',
'abc hello99', '42z world123', '1x y2',
'0# data999', '8b hello']
1788: (6) [__________________________
___________________________________] ?

>>> /\S*@\S*\.\D+/ ~= ['[email protected]',


'[email protected]', '[email protected]',
'@domain.info', '[email protected]',
'[email protected]', 'user@site', '[email protected]',
'[email protected]', 'user@site.']
1789: (7) [__________________________
___________________________________] ?

>>> /\D+\d{2,3}\s+\S+/ ~= ['hello123 world',


'test99 code', 'word12 end', 'name1234 file',
'xyz00 result', 'test 99world',
'hello123world', 'abc456', 'code123 ']
1790: (4) [__________________________
___________________________________] ?

>>> /\s*\S+\s*\d+\s*/ ~= [' test 123 ',


'hello456', 'word', ' data007 ', ' abc ',
'xyz123', ' 456 ', 'hello 123']
1791: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 338

Python Puzzles
--------------
>>> class Game:
>>> def __init__(self):
>>> self.scores = []
>>> self.bonus = 5
>>>
>>> def add_scores(self, n):
>>> self.scores = \
>>> [i * 2 + self.bonus for i in range(n)]
>>>
>>> game = Game()
>>> print(f"{game.scores}")
>>> game.add_scores(4)
>>> print(f"{game.scores}")
1792: __________ ?

Computing History: 2017: Kubernetes reaches 1.0


maturity for container orchestration

https://en.wikipedia.org/wiki/Kubernetes
Introduction and Puzzles 339

ASCII
-----

ASCII 1793:
67 82 89 80 84 79 71 82 65 80 72 73 67
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 1794:
72 65 83 72 73 78 71
__ __ __ __ __ __ __

ASCII 1795:
83 69 67 85 82 69
__ __ __ __ __ __

ASCII 1796:
65 76 71 79 82 73 84 72 77 83
__ __ __ __ __ __ __ __ __ __

Computing History: 2018: GitHub acquired by


Microsoft for $7.5 billion

https://en.wikipedia.org/wiki/GitHub
Introduction and Puzzles 340

Conversion Puzzles
------------------
1797: 0o070750 = 0b________________ ?
1798: 28633 = 0x____ ?
1799: 0x3924 = 0b________________ ?
1800: 63220 = 0b________________ ?
1801: 0b1000011101000011 = 0o______ ?
1802: 0o174747 = 0b________________ ?
1803: 0o072535 = 0b________________ ?
1804: 0x2A3D = 0o______ ?
1805: 0x65AF = 0b________________ ?
1806: 0x7D18 = _____ ?
1807: 0b1110011011110001 = _____ ?
1808: 0b101101001010 = 0x____ ?
1809: 0x47BD = 0b________________ ?
1810: 0o107312 = 0x____ ?
1811: 14791 = 0b________________ ?
1812: 0xC3A3 = 0o______ ?
1813: 13541 = 0b________________ ?
1814: 34631 = 0o______ ?
1815: 62789 = 0x____ ?
1816: 0x8BCA = 0o______ ?
1817: 41425 = 0b________________ ?
1818: 0xC0D2 = _____ ?
1819: 0xDAB9 = 0b________________ ?
1820: 0b0110000000011111 = _____ ?
1821: 0xF37F = 0o______ ?
1822: 63470 = 0o______ ?
1823: 0o160 = 0x__ ?
1824: 0b0011111100010000 = _____ ?
1825: 12426 = 0b________________ ?
1826: 0b1111000000001010 = 0o______ ?
1827: 0b1001111101111111 = 0x____ ?
1828: 0b1110000000101001 = 0o______ ?
Introduction and Puzzles 341

Math Examples
-------------
0o444 0o555
+ 0o333 + 0o222
------- -------
0o777 0o777

Math Puzzles
------------
Puzzle 1829: Puzzle 1831: Puzzle 1833:
0o666 0o614 0o136
+ 0o111 + 0o163 + 0o641
------- ------- -------
0o___ 0o___ 0o___

Puzzle 1830: Puzzle 1832: Puzzle 1834:


0o327 0o752 0o473
+ 0o450 + 0o025 + 0o304
------- ------- -------
0o___ 0o___ 0o___

Computing History: 2019: Google claims quantum


supremacy

https://en.wikipedia.org/wiki/Quantum_supremacy
Introduction and Puzzles 342

1835: WordSearch 'Operating Systems'

X S O D S O A C O M I N X U A S I S S A V G Q M
I V S E R E N I T Y O S K I O S Y N N O R M O M
N G T G F X Q N X S T H D D R L O 9 F U C R S G
I N C S R I V E K O A S 9 M L I L I H E P S N B
M U A O E N T Y A I B N I A S P E U R H R U I A
X M E R E O O U S P A N B O B N N Y O B H N K R
R A R E D S R H E L O L 2 S E D R S K U I A O S
I C D N O O C T P C E H D S B T E N R S R L E Y
I H R I S U S S A D E V T A Y A K D R O O O O N
U M A T F T 9 O I L S X X S M S O O S U B S I K
K U G Y X M S S E R T B Q U O O X C T R R V N X
I N O E R P S N O E A V N A N T E S I A E D F I
A G N S V C O 9 P X X L G E X I C B K O H D E N
H O F C O S M O S I I I O F P I L A A T O C O E
U V L O B E O S N H M N G S 2 O U T E T S M N X
P S Y S M S V U Y A L E X R E K O N E R 2 P R R

AKAROS AMIGAOS AMOEBA BEOS BSD COSMOS CPM DOS


DRAGONFLY EXOKERNEL FREEDOS FUCHSIA GNUHURD
GNUMACH HAIKU HELENOS INFERNO IRIX KOLIBRIOS
LINUX MINIX MINOCAOS MORPHOS NETBSD NEXTSTEP
NIXOS OPENBSD OS2 OSV PLAN9 QNX REACTOS REDOX
RISCOS SCO SERENITYOS SKYOS SOLARIS SYLLABLE
TOARUOS UNIX VMS XENIX
Introduction and Puzzles 343

Truth Table Puzzles


-------------------
Truth Table 1836:
a b c | (~(~(b ^ a) ^ (c ^ a)) & a)
-----------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1837:


a c | ~((a & c) & ~(c & a))
---------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Computing History: 2020: COVID-19 pandemic


impacts global technology adoption

https://en.wikipedia.org/wiki/Impact_of_the_COVID-19_pandemic_on_technolog
y
Introduction and Puzzles 344

Assembly Puzzles
----------------
Assembly 1838: Assembly 1840:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 1 0: 0 r0: 1
1: 0 r1: 25 1: 0 r1: 1
2: 0 r2: 2 2: 0 r2: 0
3: 0 r3: 0 3: 0 r3: 0
>>> mov [r0], r1 >>> add r0, r1
>>> outp [r0] >>> mov [r0], #50
________________ ? >>> outp [r0]
________________ ?

Assembly 1839: Assembly 1841:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 0 0: 75 r0: 0
1: 0 r1: 1 1: 80 r1: 1
2: 0 r2: 30 2: 85 r2: 3
3: 0 r3: 0 3: 90 r3: 0
>>> mov [1], r2 >>> mov [r2], [r0]
>>> outp [1] >>> outp [r2]
________________ ? ________________ ?
Introduction and Puzzles 345

Python Puzzles
--------------
>>> class Manager:
>>> def __init__(self):
>>> self.values = []
>>> self.active = False
>>>
>>> def load_data(self):
>>> self.values = \
>>> [x * 3 for x in range(2, 5)]
>>>
>>> def process(self):
>>> if self.active:
>>> return sum(self.values)
>>> else:
>>> return 0
>>>
>>> manager = Manager()
>>> manager.load_data()
>>> print(manager.values)
>>> result = manager.process()
>>> print(f"Result: {result}")
1842: __________ ?

Computing History: 2020: Apple M1 chip


introduces ARM-based processors to mainstream
computing

https://en.wikipedia.org/wiki/Apple_M1
Introduction and Puzzles 346

Regex Puzzles
-------------
>>> /\d+\s*\D+\s*\d+/ ~= ['123 abc 456',
'99test77', '5 hello 8', '1-2',
'42 world 99', '7x8', '100 end 200',
'123abc456', '9 test 1', '111 + 222']
1843: (10) [__________________________
___________________________________] ?

>>> /\S+\s+\D+\s+\S+/ ~= ['hello world test',


'abc xyz def', '123 hello 456',
'word hello end', 'a b c', 'code secret data',
'file hello world', '123 abc 789',
'test hello']
1844: (8) [__________________________
___________________________________] ?

>>> /\D*\d+\D*\s+\S+/ ~= ['abc123def hello',


'test99 world', '(456) code', 'xyz789! data',
'123 test', 'hello99xyz end',
'!@#456$%^ file', 'word123 result', 'test99',
'abc123def']
1845: (8) [__________________________
___________________________________] ?

>>> /\s*\S{3,}\d+\s*/ ~= [' hello123 ',


'test99', 'word', ' data007 ', 'ab123',
' testing999 ', ' hello ', 'code123 ']
1846: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 347

Lisp Examples
-------------
>>> (define x 10)
>>> (print (if (> x 5) "big" "small"))
big

>>> (define check-sign (lambda (n)


>>> (if (< n 0) "negative" "positive")))
>>> (print (check-sign -3))
negative

Lisp Puzzles
------------
>>> (define max-val (lambda (a b)
>>> (if (> a b) a b)))
>>> (print (max-val 7 3))
1847: __________ ?

>>> (define abs-val (lambda (n)


>>> (if (< n 0) (- 0 n) n)))
>>> (print (abs-val -5))
1848: __________ ?

Computing History: 2021: NFTs (Non-Fungible


Tokens) reach mainstream adoption

https://en.wikipedia.org/wiki/Non-fungible_token
Introduction and Puzzles 348

ASCII
-----

ASCII 1849:
66 76 79 67 75 67 72 65 73 78
__ __ __ __ __ __ __ __ __ __

ASCII 1850:
68 73 83 84 82 73 66 85 84 69 68
__ __ __ __ __ __ __ __ __ __ __

ASCII 1851:
76 69 68 71 69 82
__ __ __ __ __ __

ASCII 1852:
84 69 67 72 78 79 76 79 71 89
__ __ __ __ __ __ __ __ __ __

Computing History: 2022: ChatGPT released

https://en.wikipedia.org/wiki/ChatGPT
Introduction and Puzzles 349

Conversion Puzzles
------------------
1853: 0o152276 = 0x____ ?
1854: 0o003012 = ____ ?
1855: 55795 = 0b________________ ?
1856: 0b1110000100000010 = 0o______ ?
1857: 0x1B25 = 0b________________ ?
1858: 0b0100111010111011 = _____ ?
1859: 0b111011111100 = 0o______ ?
1860: 0b1111010001001000 = _____ ?
1861: 3493 = 0o______ ?
1862: 0b1000000010101111 = 0o______ ?
1863: 0b0010010011001000 = 0o______ ?
1864: 0xA967 = _____ ?
1865: 63887 = 0b________________ ?
1866: 0b1101100011010101 = 0x____ ?
1867: 0b1110000110010011 = _____ ?
1868: 0xDAA4 = 0o______ ?
1869: 0o073036 = 0x____ ?
1870: 56286 = 0o______ ?
1871: 0o101757 = 0b________________ ?
1872: 0xDA86 = _____ ?
1873: 0o056351 = 0x____ ?
1874: 0x4245 = _____ ?
1875: 0xDFBA = 0b________________ ?
1876: 47730 = 0x____ ?
1877: 0b1100000100100011 = 0x____ ?
1878: 0b0010100001011010 = 0o______ ?
1879: 26193 = 0x____ ?
1880: 0b0110000100100101 = _____ ?
1881: 0xB324 = 0b________________ ?
1882: 0o140427 = 0x____ ?
1883: 0o100575 = _____ ?
1884: 61875 = 0b________________ ?
Introduction and Puzzles 350

Truth Table Puzzles


-------------------
Truth Table 1885:
a b c | ((a | c) & ~(b ^ c))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1886:


a b c | (~(c | a) | (c ^ b))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 351

Python Puzzles
--------------
>>> def create_list(n):
>>> return [i + 2 for i in range(n)]
>>>
>>> class Storage:
>>> def __init__(self):
>>> self.items = []
>>> self.count = 0
>>>
>>> def store(self, data):
>>> self.items = data
>>> self.count = len(data)
>>>
>>> def get_info(self):
>>> return f"{self.count}, {sum(self.items)}"
>>>
>>> storage = Storage()
>>> data = create_list(4)
>>> storage.store(data)
>>> print(f"Items: {storage.items}")
>>> print(storage.get_info())
1887: __________ ?
Introduction and Puzzles 352

Regex Puzzles
-------------
>>> /\d+\D?\s+\S+/ ~= ['123a hello',
'456 world', '789! test', '123 code',
'456x data', '789 end', '123abc hello',
'456 world', '789! ', '123 ']
1888: (7) [__________________________
___________________________________] ?

>>> /\S+@\S+\.\D+\/?/ ~= ['[email protected]',


'[email protected]/', '[email protected]',
'[email protected]/', '[email protected]/path',
'[email protected]/', 'name@domain',
'[email protected]', '[email protected]/',
'[email protected]']
1889: (9) [__________________________
___________________________________] ?

>>> /\D+\d{2,3}\s?\S+/ ~= ['hello123 world',


'test99world', 'word12 end', 'name456 file',
'xyz00result', 'test99 code',
'hello123world', 'abc456', 'code123 ',
'test99']
1890: (7) [__________________________
___________________________________] ?

>>> /\s*\S{3,}\d+\s?.*/ ~= [' hello123 world',


'test99world', 'word456 ', ' data007end',
'ab123 ', ' testing999 result', ' hello ',
'code123 test', 'hello123', 'test99 ']
1891: (9) [__________________________
___________________________________] ?
Introduction and Puzzles 353

Assembly Puzzles
----------------
Assembly 1892: Assembly 1894:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 10 r0: 1 0: 4 r0: 0
1: 20 r1: 15 1: 8 r1: 2
2: 30 r2: 2 2: 12 r2: 1
>>> add [r0], r1 >>> lsl [r1], #1
>>> outp [r0] >>> outp [r1]
________________ ? ________________ ?

Assembly 1893: Assembly 1895:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 40 r0: 0 0: 7 r0: 0
1: 50 r1: 25 1: 3 r1: 2
2: 60 r2: 1 2: 5 r2: 1
>>> add r1, [r0] >>> and [r0], [r1]
>>> mov [r2], r1 >>> outp [r0]
>>> outp [r2] ________________ ?
________________ ?
Introduction and Puzzles 354

ASCII
-----

ASCII 1896:
65 77 69 82 73 67 65 78
__ __ __ __ __ __ __ __

ASCII 1897:
83 84 65 78 68 65 82 68
__ __ __ __ __ __ __ __

ASCII 1898:
67 79 68 69
__ __ __ __

ASCII 1899:
70 79 82
__ __ __

ASCII 1900:
73 78 70 79 82 77 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __

ASCII 1901:
73 78 84 69 82 67 72 65 78 71 69
__ __ __ __ __ __ __ __ __ __ __
Introduction and Puzzles 355

1902: WordSearch 'Git Commands and Concepts'

O O K H G O L T R O H S N Y S W G S G E M A L B
F W C O N T R I B U T O R H R U O I B O I N I T
D A E M O N E T C L T H C E D L B R T U L U L P
L D C P R V A C G E C N P T R A P M K L H F L U
R O U L I G _ I S T A O I E A E U R O F A T E I
I L O H O E C L E R S M M K W N L E S D L B I R
L N C T G N H F B I M O C C R C L S G R U O K G
B R D R E F E N T O T O I U O L R E N E M L W M
A I E E K G R O C E N L O B F E E T I V A E E E
M M S T X V R C K F S O R T T A Q H G E E M E S
K A C E S Y Y E I G N O I I S N U S A R R R M U
O K R R C L _ G M A I T G B A D E U T T T G O T
O R I V O T P R F T G F I R F D S P S K S E T A
H O B G A T I E F L A F N H S A T S R G P N R T
O F E A D D C M I I T I C H E C K O U T U _ V S
Y L P P A L K G D B G D D A E H W E S A B E R S

ADD APPLY ARCHIVE BISECT BITBUCKET BLAME BRANCH


CHECKOUT CHERRY_PICK CLEAN CLONE COMMIT CONFIG
CONTRIBUTOR DAEMON DESCRIBE DIFF DIFFTOOL
FASTFORWARD FETCH FORK GC GITHUB GITLAB HEAD
HOOK INDEX INIT LOG MERGE MERGECONFLICT
MERGETOOL NOTES ORIGIN PULL PULLREQUEST PUSH
REBASE REFLOG REMOTE REPOSITORY RESET REVERT
SHORTLOG STAGING STASH STATUS SUBMODULE SVN TAG
UPSTREAM WORKFLOW WORKTREE
Introduction and Puzzles 356

Lisp Puzzles
------------
>>> (define compose
>>> (lambda (f g) (lambda (x) (f (g x)))))
>>> (define add3 (lambda (x) (+ x 3)))
>>> (define double (lambda (x) (* x 2)))
>>> (define f (compose double add3))
>>> (print (f 4))
1903: __________ ?

>>> (define make-multiplier (lambda (n)


(lambda (x) (* x n))))
>>> (define times3 (make-multiplier 3))
>>> (define times4 (make-multiplier 4))
>>> (print (+ (times3 2) (times4 1)))
1904: __________ ?

>>> (define choose-op (lambda (op)


>>> (if (eq? op "add")
>>> (lambda (x y) (+ x y))
>>> (lambda (x y) (* x y)))))
>>> (define fn (choose-op "add"))
>>> (print (fn 5 7))
1905: __________ ?
Introduction and Puzzles 357

Python Puzzles
--------------
>>> a, b, c = 2, 6, 1
>>>
>>> def multiply(x):
>>> return x * 3
>>>
>>> class Calculator:
>>> def __init__(self):
>>> self.results = []
>>>
>>> def calculate(self, start, end):
>>> self.results = [multiply(i) for i in
range(start, end)]
>>>
>>> def filter_high(self, threshold):
>>> count = 0
>>> for val in self.results:
>>> if val > threshold:
>>> count += 1
>>> return count
>>>
>>> calc = Calculator()
>>> calc.calculate(a, b)
>>> high_count = calc.filter_high(10)
>>> print(f"Results: {calc.results}")
>>> print(f"High values: {high_count}")
1906: __________ ?
Introduction and Puzzles 358

Truth Table Puzzles


-------------------
Truth Table 1907:
a b c | ((c | a) ^ (b | c))
---------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1908:


b c | (~(c ^ b) | (b & b))
--------------------------
F F | ___
F T | ___
T F | ___
T T | ___
Introduction and Puzzles 359

Regex Puzzles
-------------
>>> /conste(xpr|val|init)?/ ~= ['const',
'consteval', 'constexpr', 'constinit']
1909: (2) [__________________________
___________________________________] ?

>>> /[_a-z][\da-z_]*/ ~= ['a', '1', 'abc',


'_', '_123', '123', 'a_1', '_1']
1910: (6) [__________________________
___________________________________] ?

>>> /(int|double|float|long)/ ~= ['float',


'long', 'short', 'char', 'double']
1911: (3) [__________________________
___________________________________] ?
Introduction and Puzzles 360

Conversion Puzzles
------------------
1912: 0b0001001000000100 = 0x____ ?
1913: 0xAEF1 = _____ ?
1914: 24370 = 0x____ ?
1915: 0xAABF = _____ ?
1916: 0b1110000101100101 = 0o______ ?
1917: 0b1100101111111000 = _____ ?
1918: 38121 = 0b________________ ?
1919: 15421 = 0b________________ ?
1920: 0xE5E4 = 0o______ ?
1921: 0b1110111011100010 = 0o______ ?
1922: 0xB13A = 0b________________ ?
1923: 16095 = 0b________________ ?
1924: 0o035363 = 0x____ ?
1925: 0b0011111011001011 = 0x____ ?
1926: 0o056003 = 0b________________ ?
1927: 0b0100010011100000 = 0o______ ?
1928: 0xC981 = 0b________________ ?
1929: 0xD85A = 0b________________ ?
1930: 0o076176 = _____ ?
1931: 0b1110001000010010 = 0x____ ?
1932: 0x1AB4 = ____ ?
1933: 0b0101000010011110 = 0o______ ?
1934: 30855 = 0o______ ?
1935: 0xE8E4 = _____ ?
1936: 51559 = 0b________________ ?
1937: 0x47ED = 0b________________ ?
1938: 9616 = 0x____ ?
1939: 0b1001101011111000 = 0o______ ?
1940: 0o003545 = 0x____ ?
1941: 39039 = 0o______ ?
1942: 0x0643 = 0b____________ ?
1943: 26962 = 0b________________ ?
Introduction and Puzzles 361

ASCII
-----

ASCII 1944:
83 89 83 84 69 77
__ __ __ __ __ __

ASCII 1945:
65 68 77 73 78 73 83 84 82 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 1946:
78 69 84 87 79 82 75
__ __ __ __ __ __ __

ASCII 1947:
77 79 78 73 84 79 82 73 78 71
__ __ __ __ __ __ __ __ __ __
Introduction and Puzzles 362

Math Examples
-------------
0x0A 0b1111 0x1F
+ 0b0101 + 0x08 + 0b1000
-------- ------------ --------
0x0F 0b00010111 0x27

Math Puzzles
------------
Puzzle 1948: Puzzle 1950: Puzzle 1952:
0b1010 0b0110 0b1001
+ 0x05 + 0x0A + 0x06
-------- -------- --------
0b____ 0x__ 0b____

Puzzle 1949: Puzzle 1951:


0x2C 0x15
+ 0b0011 + 0b1010
------------ --------
0b________ 0x__
Introduction and Puzzles 363

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 2 0: 3 r0: 2
1: 7 r1: 1 1: 4 r1: 1
2: 8 r2: 0 2: 5 r2: 0
>>> outp r0 3: 6 r3: 0
>>> mov r0, 2 >>> mov r0, r1
>>> outp r0 >>> outp r0
2, 8 1

Final RAM/Registers: Final RAM/Registers:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 6 r0: 8 0: 3 r0: 1
1: 7 r1: 1 1: 4 r1: 1
2: 8 r2: 0 2: 5 r2: 0
3: 6 r3: 0

Assembly Puzzles
----------------
Assembly 1953: Assembly 1954:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 3 r0: 2 0: 3 r0: 2
1: 4 r1: 1 1: 4 r1: 1
2: 5 r2: 0 2: 5 r2: 0
3: 6 r3: 0 3: 6 r3: 0
>>> mov r3, r2 >>> mov r1, 0
>>> mov r2, r1 >>> mov r2, [r1]
>>> mov r1, r3 >>> outp r2
>>> outp r1 ________________ ?
________________ ?
Introduction and Puzzles 364

Python Puzzles
--------------
>>> class DataManager:
>>> def __init__(self):
>>> self.raw = []
>>> self.processed = []
>>>
>>> def load(self, n):
>>> self.raw = [i for i in range(n)]
>>>
>>> def process_data(self):
>>> def transform(x):
>>> return x * 2 + 1
>>>
>>> self.processed = [transform(x) for x in
self.raw]
>>>
>>> manager = DataManager()
>>> manager.load(5)
>>> manager.process_data()
>>>
>>> x, y = 1, 3
>>> subset = manager.processed[x:y]
>>> print(f"Raw: {manager.raw}")
>>> print(f"Processed: {manager.processed}")
>>> print(f"Subset: {subset}")
1955: __________ ?
Introduction and Puzzles 365

Truth Table Puzzles


-------------------
Truth Table 1956:
a b c | ~(~(~(b | c) ^ (c & b)) & a)
------------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 1957:


a b | (a & (~(a | b) & (a | a)))
--------------------------------
F F | ___
F T | ___
T F | ___
T T | ___
Introduction and Puzzles 366

Regex Examples
--------------
>>> /(\d*),\1/ ~= ['123,456', 'abc,def',
'abc,abc', '123,321', '123,123', '431,431',
'a,a', '1,1']
Matches: (3) ['123,123', '431,431', '1,1']

Regex Puzzles
-------------
>>> /(\d)(\D)\2\1/ ~= ['a', 'aa', '01', '9',
'10', 'a10', '88', '1aa1', 'a11a']
1958: (1) [__________________________
___________________________________] ?

>>> /<(\w+)><\/\1>/ ~= ['<br>/<br>',


'<ul><ul>', '<li></li>', '<12></12>',
'<h1></h1>', '<ul></ul>']
1959: (4) [__________________________
___________________________________] ?
Introduction and Puzzles 367

Lisp Examples
-------------
>>> (define factorial (lambda (n)
>>> (if (= n 0)
>>> 1
>>> (* n (factorial (- n 1))))))
>>> (print (factorial 4))
24

>>> (define sum-to-n (lambda (n)


>>> (if (= n 0)
>>> 0
>>> (+ n (sum-to-n (- n 1))))))
>>> (print (sum-to-n 5))
15

Lisp Puzzles
------------
>>> (define factorial (lambda (n)
>>> (if (= n 0)
>>> 1
>>> (* n (factorial (- n 1))))))
>>> (print (factorial 5))
1960: __________ ?

>>> (define power (lambda (base exp)


>>> (if (= exp 0)
>>> 1
>>> (* base (power base (- exp 1))))))
>>> (print (power 3 4))
1961: __________ ?
Introduction and Puzzles 368

ASCII
-----

ASCII 1962: ASCII 1964:


66 73 78 65 82 89 68 73 71 73 84 65 76
__ __ __ __ __ __ __ __ __ __ __ __ __

ASCII 1963: ASCII 1965:


67 79 68 69 76 79 71 73 67
__ __ __ __ __ __ __ __ __
Introduction and Puzzles 369

1966: WordSearch 'Concurrent Programming'

K C E F A S D A E R H T T G R C R I O G N I O J
R R G C S C H E D U L E R I O E N M O N I T O R
O I N E O C H A N N E L I N A O B R E I R R A B
F T I N J N I O O P O T C D I W T I E D T N T B
E I S I T K T T X C A U W T X N A R F A P O N I
E C S T L Y I E K W R R A R E E O I P E I I O L
R A A U K F E S X R I Z A R E H T O T R P T I E
F L P O Y C T X E T I S R L P S O U T H E I T L
K S E R O E O N E N S U U A L L U I F T L D A L
C E G O P L C L O C C W M S T E M M H I I N V A
O C A C O Y O R N N U E I N P E L R E T N O R R
L T S W L C H O O I S T E T O E E I A L E C A A
D I S M K C X C P B P V O U C A N S S U K E T P
A O E C N F U T U R E S T R D H K D K M R C S T
E N M Y C O N D I T I O N V A R I A B L E A L L
D W S K A T E G N I L A E T S K R O W U K R F O

AWAIT BARRIER CHANNEL CONCURRENCY CONCURRENT


CONDITIONVARIABLE CONTEXTSWITCH COROUTINE
CRITICALSECTION DEADLOCK EVENTLOOP EXECUTOR
FIBER FORK FUTEX FUTURE JOIN LOCK LOCKFREE
LOCKSTEP MESSAGEPASSING MONITOR MULTITHREADING
NOTIFY PARALLEL PARALLELISM PIPELINE POOL
RACECONDITION READWRITELOCK RESUME SCHEDULER
SEMAPHORE SPINLOCK STARVATION SUSPEND
SYNCHRONIZATION TASK THREAD THREADSAFE TIMEOUT
WAIT WORKSTEALING
Introduction and Puzzles 370

Python Puzzles
--------------
>>> def check_value(x):
>>> return x > 5
>>>
>>> class Analyzer:
>>> def __init__(self):
>>> self.numbers = []
>>> self.flags = []
>>>
>>> def analyze_range(self, start, end):
>>> self.numbers = [i + 3 for i in
range(start, end)]
>>> self.flags = [check_value(n) for n in
self.numbers]
>>>
>>> def count_true(self):
>>> count = 0
>>> for flag in self.flags:
>>> if flag:
>>> count += 1
>>> return count
>>>
>>> analyzer = Analyzer()
>>> analyzer.analyze_range(1, 6)
>>> true_count = analyzer.count_true()
>>> print(f"Numbers: {analyzer.numbers}")
>>> print(f"Flags: {analyzer.flags}")
>>> print(f"True count: {true_count}")
1967: __________ ?
Introduction and Puzzles 371

Conversion Puzzles
------------------
1968: 0b1010001100101010 = _____ ?
1969: 0b0110100100001101 = _____ ?
1970: 64464 = 0b________________ ?
1971: 0xF546 = 0o______ ?
1972: 0b1011111001000000 = 0o______ ?
1973: 0o014023 = 0x____ ?
1974: 4287 = 0b________________ ?
1975: 27619 = 0x____ ?
1976: 0x3A36 = _____ ?
1977: 64512 = 0o______ ?
1978: 0b0001000111111100 = 0x____ ?
1979: 0xC89E = _____ ?
1980: 0b1001111100100100 = 0x____ ?
1981: 0o154455 = _____ ?
1982: 0o143752 = 0x____ ?
1983: 56017 = 0o______ ?
1984: 0b0110110010001100 = 0o______ ?
1985: 0x1BC2 = 0o______ ?
1986: 60983 = 0b________________ ?
1987: 0x80B6 = 0b________________ ?
1988: 46247 = 0b________________ ?
1989: 0x3690 = 0b________________ ?
1990: 0o107725 = _____ ?
1991: 59502 = 0x____ ?
1992: 0b0110010001111100 = _____ ?
1993: 0o157205 = 0x____ ?
1994: 0b0101110111111011 = 0x____ ?
1995: 0b1111000000111111 = 0o______ ?
1996: 0x7F6A = _____ ?
1997: 48007 = 0x____ ?
1998: 0b1001011111111101 = _____ ?
1999: 0o042542 = 0x____ ?
Introduction and Puzzles 372

Truth Table Puzzles


-------------------
Truth Table 2000:
b c | ~((b | c) & (b | c))
--------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 2001:


a b c | ((b & a) | ~(c ^ b))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 373

Regex Puzzles
-------------
>>> /([a-z]+)\s+\1/ ~= ['hello hello',
'test test', 'abc xyz', 'word word',
'hello world', 'test test', '123 123',
'cat cat', 'dog bird', 'same same']
2002: (6) [__________________________
___________________________________] ?

>>> /(\d{2,3})-\1/ ~= ['123-123', '99-99',


'12-12', '1234-1234', '123-456', '99-88',
'42-42', '1-1', '999-999', '88-99']
2003: (5) [__________________________
___________________________________] ?

>>> /(\S+)@(\S+)\.\2/ ~= ['[email protected]',


'[email protected]', '[email protected]',
'[email protected]', '[email protected]',
'[email protected]', '[email protected]', '[email protected]',
'[email protected]', '[email protected]']
2004: (8) [__________________________
___________________________________] ?

>>> /\s*(\D+)\s+\d+\s+\1\s*/ ~=
[' hello 123 hello ', 'test 99 test',
' abc 456 abc ', 'word 0 word',
'hello 123 world', 'test 99 test',
' xyz 789 xyz ', 'same 42 same',
'abc 1 def', ' test 88 test ']
2005: (8) [__________________________
___________________________________] ?
Introduction and Puzzles 374

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 5 0: 0 r0: 5
1: 1 r1: 5 1: 1 r1: 3
2: 2 r2: 0 2: 2 r2: 0
>>> cmp r0, r1 >>> cmp r0, r1
>>> jeq same >>> jne different
>>> outp #0 >>> outp #0
>>> jmp end >>> jmp end
>>> same: >>> different:
>>> outp r0 >>> outp r0
>>> end: >>> end:
5 5

Assembly Puzzles
----------------
Assembly 2006: Assembly 2007:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 0 0: 0 r0: 0
1: 1 r1: 4 1: 1 r1: 4
2: 2 r2: 4 2: 2 r2: 7
>>> cmp r1, r2 >>> cmp r1, r2
>>> jeq match >>> jne different
>>> outp #99 >>> outp #99
>>> jmp end >>> jmp end
>>> match: >>> different:
>>> outp r1 >>> outp r2
>>> end: >>> end:
________________ ? ________________ ?
Introduction and Puzzles 375

Python Puzzles
--------------
>>> p, q, r = 2, 7, 3
>>>
>>> def generate(x):
>>> return x + 5
>>>
>>> class System:
>>> def __init__(self):
>>> self.data = []
>>> self.active = False
>>>
>>> def initialize(self, a, b, step):
>>> self.data = [generate(i) for i in range(a,
b, step)]
>>> self.active = True
>>>
>>> def compute(self):
>>> if self.active:
>>> total = 0
>>> for val in self.data:
>>> total += val
>>> return total
>>> return 0
>>>
>>> system = System()
>>> system.initialize(p, q, r)
>>> result = system.compute()
>>> print(f"Data: {system.data}")
>>> print(f"Active: {system.active}")
>>> print(f"Result: {result}")
2008: __________ ?
Introduction and Puzzles 376

ASCII
-----

ASCII 2009:
79 66 74 69 67 84
__ __ __ __ __ __

ASCII 2010:
79 82 73 69 78 84 69 68
__ __ __ __ __ __ __ __

ASCII 2011:
68 69 83 73 71 78
__ __ __ __ __ __

ASCII 2012:
80 65 84 84 69 82 78 83
__ __ __ __ __ __ __ __
Introduction and Puzzles 377

Lisp Puzzles
------------
>>> (define multiply (lambda (a b)
>>> (if (= b 0)
>>> 0
>>> (+ a (multiply a (- b 1))))))
>>> (print (multiply 6 4))
2013: __________ ?

>>> (define sum-to-n (lambda (n)


>>> (if (= n 0)
>>> 0
>>> (+ n (sum-to-n (- n 1))))))
>>> (print (sum-to-n 8))
2014: __________ ?

>>> (define sum-odds (lambda (n)


>>> (if (= n 1)
>>> 1
>>> (+ n (sum-odds (- n 2))))))
>>> (print (sum-odds 9))
2015: __________ ?

>>> (define power (lambda (base exp)


>>> (if (= exp 0)
>>> 1
>>> (* base (power base (- exp 1))))))
>>> (print (power 2 6))
2016: __________ ?
Introduction and Puzzles 378

Truth Table Puzzles


-------------------
Truth Table 2017:
a b c | ~((c | a) ^ ~(c | b))
-----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 2018:


a b c | ~(~(b ^ c) & ~(b ^ a))
------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 379

Regex Puzzles
-------------
>>> /(\d+)([a-z])\s+\1\2/ ~= ['123a 123a',
'99x 99x', '42z 42z', '123a 456b', '1a 1a',
'99x 99y', '42z 42z', '123 123', '5b 5b',
'99x 99x']
2019: (7) [__________________________
___________________________________] ?

>>> /([A-Z]+)\.(\d+)\.(\1)/ ~= ['ABC.123.ABC',


'XYZ.999.XYZ', 'TEST.456.TEST', 'ABC.123.XYZ',
'A.1.A', 'xyz.123.xyz', 'TEST.999.TEST',
'FILE.007.FILE', 'ABC.123.DEF', 'XX.99.XX']
2020: (7) [__________________________
___________________________________] ?

>>> /\s*([a-z]+)\+([a-z]+)\s*=\s*\1\2\s*/ ~=
[' cat+dog = catdog ', 'abc+xyz=abcxyz',
' test+case = testcase ',
'cat+dog = dogcat',
'hello+world = helloworld', 'a+b=ab',
'test + case = testcase', ' x+y=xy ']
2021: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 380

Conversion Puzzles
------------------
2022: 21197 = 0x____ ?
2023: 63784 = 0b________________ ?
2024: 0xE626 = 0b________________ ?
2025: 0o013121 = 0x____ ?
2026: 0b1100100011101100 = 0x____ ?
2027: 0o020075 = 0b________________ ?
2028: 0b0111111111001110 = _____ ?
2029: 0x4B22 = _____ ?
2030: 46473 = 0b________________ ?
2031: 52313 = 0x____ ?
2032: 0b0010100011011111 = 0x____ ?
2033: 0x86FA = 0o______ ?
2034: 0b1000110101001110 = 0x____ ?
2035: 0b1111010110110011 = 0o______ ?
2036: 10207 = 0b________________ ?
2037: 0b0111000101001111 = 0x____ ?
2038: 0b0001101111011111 = 0x____ ?
2039: 0b0101010000101110 = 0o______ ?
2040: 0b1011011010111101 = 0o______ ?
2041: 0xAB38 = 0o______ ?
2042: 30790 = 0x____ ?
2043: 62459 = 0b________________ ?
2044: 0xDB3E = 0b________________ ?
2045: 0b010100101001 = 0o______ ?
2046: 0xAC8A = 0b________________ ?
2047: 0x198D = 0b________________ ?
2048: 0o141570 = 0b________________ ?
2049: 0xF8F0 = 0b________________ ?
2050: 0o130521 = 0x____ ?
2051: 0b1100111000010100 = 0o______ ?
2052: 0b1000111011001000 = 0o______ ?
2053: 0o010116 = ____ ?
Introduction and Puzzles 381

Math Examples
-------------
0b1100 0x47 0b0011
+ 0x03 + 0b1001 + 0x0C
-------- ------------ --------
0x0F 0b01010000 0b1111

Math Puzzles
------------
Puzzle 2054: Puzzle 2056: Puzzle 2058:
0x5B 0x6E 0x33
+ 0b0100 + 0b0111 + 0b1001
-------- ------------ --------
0x__ 0b________ 0x__

Puzzle 2055: Puzzle 2057:


0b1000 0b0101
+ 0x07 + 0x0B
-------- ------------
0x__ 0b________
Introduction and Puzzles 382

2059: WordSearch 'Electronics'

F T R E D O C E D R A O B D A E R B R E R I W V
W R O T A U T C A M U L T I P L E X E R E E A L
R E T F R E Q U E N C Y C O U N T E R E M C O E
O C S E I R E I F I L P M A C A I R T L R N S R
T T I U C L R E X E L P I T L U M E D L O A C O
A I R S R O T S I S N A R T D I O D E O F T I T
L F A F F U S E P R O C E S S O R O Q R S I L A
U I V S E N S O R E T R E V N I S C R T N C L N
D E M O D U L A T O R R O T C U D N I N A A A O
O R N O S C I L L O S C O P E F T E H O R P T S
M W T I U C R I C D E T A R G E T N I C T A O E
M O S F E T I N D U C T A N C E P N E O T C R R
R O T I C A P A C R O S S E C O R P O R C I M O
L L E C R A L O S B E C N A D E P M I C R B W D
E T A G C I G O L B P O L F P I L F T I U U C S
L A N G I S R O T C E N N O C C Y R O M E M C P

ACTUATOR AMPLIFIER BREADBOARD CAPACITANCE


CAPACITOR CONNECTOR COUNTER CURRENT DECODER
DEMODULATOR DEMULTIPLEXER DIODE ENCODER FILTER
FLIPFLOP FREQUENCY FUSE IMPEDANCE INDUCTANCE
INDUCTOR INTEGRATEDCIRCUIT INVERTER LOGICGATE
MEMORY MICROCONTROLLER MICROPROCESSOR MODULATOR
MOSFET MULTIPLEXER OSCILLATOR OSCILLOSCOPE PCB
PROCESSOR RECTIFIER RESONATOR SCR SENSOR SIGNAL
SOLARCELL SWITCH TRANSFORMER TRANSISTOR TRIAC
VARISTOR WIRE
Introduction and Puzzles 383

Assembly Examples
-----------------
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 8 0: 0 r0: 2
1: 1 r1: 3 1: 1 r1: 6
2: 2 r2: 0 2: 2 r2: 0
>>> cmp r0, r1 >>> cmp r0, r1
>>> jgt bigger >>> jlt smaller
>>> outp #0 >>> outp #0
>>> jmp end >>> jmp end
>>> bigger: >>> smaller:
>>> outp r0 >>> outp r0
>>> end: >>> end:
8 2

Assembly Puzzles
----------------
Assembly 2060: Assembly 2061:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 0 0: 0 r0: 0
1: 1 r1: 10 1: 1 r1: 3
2: 2 r2: 5 2: 2 r2: 9
>>> cmp r1, r2 >>> cmp r1, r2
>>> jgt bigger >>> jlt smaller
>>> outp #0 >>> outp #0
>>> jmp end >>> jmp end
>>> bigger: >>> smaller:
>>> outp r1 >>> outp r2
>>> end: >>> end:
________________ ? ________________ ?
Introduction and Puzzles 384

Python Puzzles
--------------
>>> class CompleteSystem:
>>> def __init__(self):
>>> self.values = []
>>> self.status = True
>>>
>>> def setup(self):
>>> x, y = 3, 6
>>> self.values = [i * 2 for i in range(x, y)]
>>>
>>> def process(self):
>>> def check(val):
>>> return val > 8
>>>
>>> results = []
>>> for v in self.values:
>>> if check(v) and self.status:
>>> results.append(v + 1)
>>> else:
>>> results.append(v)
>>> return results
>>>
>>> system = CompleteSystem()
>>> system.setup()
>>> output = system.process()
>>> print(f"Original: {system.values}")
>>> print(f"Processed: {output}")
>>> print(f"Sum: {sum(output)}")
2062: __________ ?
Introduction and Puzzles 385

ASCII
-----

ASCII 2063:
83 79 70 84 87 65 82 69
__ __ __ __ __ __ __ __

ASCII 2064:
84 69 83 84 73 78 71
__ __ __ __ __ __ __

ASCII 2065:
85 78 73 84
__ __ __ __

ASCII 2066:
73 78 84 69 71 82 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __
Introduction and Puzzles 386

Truth Table Puzzles


-------------------
Truth Table 2067:
a b | ~(((a & b) | (b ^ b)) & b)
--------------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 2068:


a b c | (~(b & a) & (c ^ a))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 387

Regex Puzzles
-------------
>>> /([a-z]+)\1?/ ~= ['abcabc', 'abc',
'testtest', 'test', 'abcdef', 'helloworld',
'codecode', 'code', 'datadata', 'data']
2069: (10) [__________________________
___________________________________] ?

>>> /([a-z]+)\1+/ ~= ['abcabc', 'abc',


'testtest', 'testtesttest', 'abcdef',
'helloworld', 'codecode', 'codecodecode',
'datadata', 'data']
2070: (6) [__________________________
___________________________________] ?

>>> /([a-z]+)\1*/ ~= ['abcabc', 'abc',


'testtest', 'testtesttest', 'abcdef',
'helloworld', 'codecode', 'codecodecode',
'datadata', 'data']
2071: (10) [__________________________
___________________________________] ?

>>> /([a-z])\1+([a-z])\2*/ ~= ['aabbc',


'aabc', 'aabbcc', 'abcd', 'xxyyy', 'xxyy',
'qqwwee', 'zzaa', 'mmnnoo', 'ppqq']
2072: (4) [__________________________
___________________________________] ?
Introduction and Puzzles 388

Lisp Puzzles
------------
>>> (define operation (lambda (lst)
>>> (if (null? lst)
>>> 0
>>> (+ 1 (operation (cdr lst))))))
>>> (print (operation (list 2 4 6 8 10)))
2073: __________ ?

>>> (define operation (lambda (lst)


>>> (if (null? lst)
>>> 0
>>> (+ (car lst) (operation (cdr lst))))))
>>> (print (operation (list 3 6 9 12)))
2074: __________ ?

>>> (define operation (lambda (lst)


>>> (if (null? (cdr lst))
>>> (car lst)
>>> (max (car lst) (operation (cdr lst))))))
>>> (print (operation (list 4 12 7 15 3)))
2075: __________ ?

>>> (define operation (lambda (item lst)


>>> (if (null? lst)
>>> 0
>>> (if (= item (car lst))
>>> (+ 1 (operation item (cdr lst)))
>>> (operation item (cdr lst))))))
>>> (print (operation 5 (list 2 5 8 5 1 5)))
2076: __________ ?
Introduction and Puzzles 389

Python Examples
---------------
>>> def work(n):
>>> if n == 0:
>>> return
>>> print(n)
>>> work(n - 1)
>>>
>>> work(1)
>>> work(2)
>>> work(3)
1
2
1
3
2
1

Python Puzzles
--------------
>>> def work(n):
>>> if n == 0:
>>> return
>>> work(n - 1)
>>> print(n)
>>>
>>> work(1)
>>> work(2)
>>> work(3)
2077: __________ ?
Introduction and Puzzles 390

Conversion Puzzles
------------------
2078: 0x2C27 = 0b________________ ?
2079: 19529 = 0b________________ ?
2080: 0b1101011100101101 = 0o______ ?
2081: 0b0100010000100001 = 0x____ ?
2082: 47465 = 0x____ ?
2083: 19465 = 0b________________ ?
2084: 0b0101110000000010 = _____ ?
2085: 0o110140 = _____ ?
2086: 0x933D = 0o______ ?
2087: 0o025223 = 0x____ ?
2088: 0o034356 = 0x____ ?
2089: 18708 = 0x____ ?
2090: 0o037314 = 0b________________ ?
2091: 0x50FA = 0o______ ?
2092: 0xEB1A = 0o______ ?
2093: 49390 = 0b________________ ?
2094: 0x4468 = 0o______ ?
2095: 0b0101010010110010 = 0o______ ?
2096: 0o074022 = 0b________________ ?
2097: 0x9B47 = _____ ?
2098: 0xDDCA = _____ ?
2099: 0o054662 = 0x____ ?
2100: 0x8BAA = 0b________________ ?
2101: 0b0010000011110000 = 0x____ ?
2102: 31412 = 0o______ ?
2103: 28058 = 0x____ ?
2104: 0xF226 = 0o______ ?
2105: 8171 = 0x____ ?
2106: 0x8046 = _____ ?
2107: 0x468D = _____ ?
2108: 0o141174 = 0b________________ ?
2109: 0x21 = 0o___ ?
Introduction and Puzzles 391

ASCII
-----

ASCII 2110:
83 79 70 84 87 65 82 69
__ __ __ __ __ __ __ __

ASCII 2111:
65 82 67 72 73 84 69 67 84 85 82 69
__ __ __ __ __ __ __ __ __ __ __ __

ASCII 2112:
83 69 82 86 73 67 69
__ __ __ __ __ __ __

ASCII 2113:
79 82 73 69 78 84 69 68
__ __ __ __ __ __ __ __
Introduction and Puzzles 392

Assembly Puzzles
----------------
Assembly 2114: Assembly 2116:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 3 0: 0 r0: 5
1: 1 r1: 5 1: 1 r1: 8
2: 2 r2: 3 2: 2 r2: 9
>>> cmp r0, r2 >>> cmp r0, #5
>>> jeq equal >>> jeq match
>>> outp r0 >>> outp r1
>>> jmp done >>> outp r2
>>> equal: >>> jmp end
>>> outp r2 >>> match:
>>> done: >>> outp r0
>>> outp r1 >>> end:
________________ ? ________________ ?

Assembly 2115: Assembly 2117:


RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 7 0: 0 r0: 6
1: 1 r1: 4 1: 1 r1: 12
2: 2 r2: 6 2: 2 r2: 6
>>> cmp r1, r2 >>> cmp r2, r0
>>> jne different >>> jne skip
>>> outp #10 >>> jmp output
>>> jmp finish >>> skip:
>>> different: >>> outp r1
>>> outp #20 >>> output:
>>> finish: >>> outp r2
>>> outp r0 ________________ ?
________________ ?
Introduction and Puzzles 393

Truth Table Puzzles


-------------------
Truth Table 2118:
a b c | ~((b | a) | ~(c | b))
-----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 2119:


a c | ~((c ^ a) ^ ~(a & a))
---------------------------
F F | ___
F T | ___
T F | ___
T T | ___
Introduction and Puzzles 394

Regex Puzzles
-------------
>>> /([a-z]{2,3})\1?/ ~= ['abcabc', 'abc',
'testtest', 'test', 'abcdef', 'helloworld',
'codecode', 'code', 'dataxy', 'xyxyxy']
2120: (2) [__________________________
___________________________________] ?

>>> /([a-z]+)\s*\1+/ ~= ['abc abc',


'test testtest', 'hello hellohello',
'code code', 'data datadata', 'word',
'abc abc', 'test test', 'hello hello',
'code codecode']
2121: (9) [__________________________
___________________________________] ?

>>> /([a-z]+)\s?=\s?\1/ ~= ['abc=abc',


'test = test', 'hello=hello', 'code = code',
'data=data', 'word=word', 'abc=def',
'test = case', 'hello=world', 'code = test']
2122: (6) [__________________________
___________________________________] ?

>>> /\(?([a-z]+)\)?\s*\1*/ ~= ['(abc) abc',


'test testtest', '(hello)', 'code codecode',
'data', '(word) word', 'abc abcabc',
'(test) test', 'hello hellohello', '(code)']
2123: (10) [__________________________
___________________________________] ?
Introduction and Puzzles 395

2124: WordSearch 'Computer Parts'

P R K C I T S Y R O M E M D R A C M E D O M W R
F I O H V R K O W M S S T O R A G E D E V I C E
I Q H T G E H D M I H U W O R A L B A D N V G A
I P B C A L L D M R R R R D U B C G U E I R T T
W A W M S L G I I E O E R G A C N K T H O V N R
K R I E E O U B Q M T E L C E I H W R S B I D T
C A R M C R I G L U A S K E L P O S N O R S R F
A L E O U T R B E D I R Y O S R R E C P W O U D
R L L R R N A E E R O D O S K S S O R R P T R E
R E E Y I O C R I W E C C S G L A E T Y E A E A
E L S M T C R O T F R G W O A N G D A E C E N N
V P S O Y N W E O E I I A C O N I L A T C N N C
R O C D K A N S T L T L I T I L P L R P E T A A
E R A U E F P A U C A T P F L S I A O T T B O O
S T R L Y U W R H S P N U M I O M N N O L E S R
N G D E V I F I W O P R T D A S V A G E C F R I

AMPLIFIER ANTENNA BIOSCHIP CABLE CARDREADER


COOLANT COOLINGSYSTEM DISPLAYPORT DVI
FANCONTROLLER FINGERPRINT HDMI LIQUIDCOOLING
MEMORYMODULE MEMORYSTICK MODEMCARD NETWORKCABLE
NETWORKCARD NETWORKSWITCH OPTICALSENSOR
PARALLELPORT ROM SECURITYKEY SERVERRACK
SMARTCARD STORAGEDEVICE SURGEPROTECTOR
TOUCHSCREEN UPS USBHUB VGA VOLTAGEREGULATOR
WATERCOOLING WIFI WIRELESSADAPTER WIRELESSCARD
Introduction and Puzzles 396

Python Examples
---------------
>>> def factorial(n):
>>> if n == 0:
>>> return 1
>>> else:
>>> return n * factorial(n - 1)
>>>
>>> print(factorial(0))
>>> print(factorial(1))
>>> print(factorial(2))
>>> print(factorial(3))
>>> print(factorial(4))
1
1
2
6
24

Python Puzzles
--------------
>>> def power(base, exp):
>>> if exp == 0:
>>> return 1
>>> else:
>>> return base * power(base, exp - 1)
>>>
>>> print(power(3, 1))
>>> print(power(3, 2))
>>> print(power(3, 3))
2125: __________ ?
Introduction and Puzzles 397

ASCII
-----

ASCII 2126:
77 79 66 73 76 69
__ __ __ __ __ __

ASCII 2127:
65 80 80 76 73 67 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __

ASCII 2128:
82 69 83 80 79 78 83 73 86 69
__ __ __ __ __ __ __ __ __ __

ASCII 2129:
68 69 83 73 71 78
__ __ __ __ __ __
Introduction and Puzzles 398

Lisp Puzzles
------------
>>> (define fibonacci (lambda (n)
>>> (if (<= n 1)
>>> n
>>> (+ (fibonacci (- n 1))
>>> (fibonacci (- n 2))))))
>>> (print (fibonacci 5))
>>> (print (fibonacci 6))
2130: __________ ?

>>> (define double-factorial (lambda (n)


>>> (if (<= n 0)
>>> 1
>>> (* n (double-factorial (- n 2))))))
>>> (print (double-factorial 1))
>>> (print (double-factorial 2))
>>> (print (double-factorial 7))
2131: __________ ?
Introduction and Puzzles 399

Truth Table Puzzles


-------------------
Truth Table 2132:
b c | ~((c ^ b) ^ ~(b & c))
---------------------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 2133:


a b | (~(~(a | b) | (b | b)) | b)
---------------------------------
F F | ___
F T | ___
T F | ___
T T | ___
Introduction and Puzzles 400

Regex Puzzles
-------------
>>> /0x[0-9a-fA-F]+/ ~= ['0x123', '0xABCD',
'0xabc', '0x999', '0xDEADBEEF', '0x', '0xGGG',
'x123', '0x0', '0X123']
2134: (6) [__________________________
___________________________________] ?

>>> /0b[01]+/ ~= ['0b101', '0b000', '0b1111',


'0b210', 'b101', '0b', '0B101', '0b0', '0b12',
'0b1010101']
2135: (5) [__________________________
___________________________________] ?

>>> /0o[0-7]+/ ~= ['0o123', '0o777', '0o000',


'0o89', 'o123', '0o', '0O123', '0o0', '0o456',
'0o999']
2136: (5) [__________________________
___________________________________] ?

>>> /\d+\.\d+/ ~= ['123.456', '0.99',


'3.14159', '12.', '.456', '123', '1.0',
'99.9', '0.0', '123.456.789']
2137: (6) [__________________________
___________________________________] ?

>>> /(0x[0-9a-fA-F]+|0b[01]+|0o[0-7]+|\d+)/ ~=
['0x123', '0b101', '0o777', '456', '0xABC',
'0b010', '0o123', '999', '0xGGG', '123.45']
2138: (8) [__________________________
___________________________________] ?
Introduction and Puzzles 401

Conversion Puzzles
------------------
2139: 51315 = 0b________________ ?
2140: 0o033466 = _____ ?
2141: 0o103343 = 0x____ ?
2142: 41919 = 0o______ ?
2143: 57444 = 0o______ ?
2144: 55288 = 0b________________ ?
2145: 0o005515 = 0x____ ?
2146: 17174 = 0b________________ ?
2147: 0o162562 = 0x____ ?
2148: 0b1100000110001001 = 0o______ ?
2149: 48874 = 0o______ ?
2150: 23049 = 0x____ ?
2151: 6257 = 0x____ ?
2152: 0x81B8 = _____ ?
2153: 0b0010000011011010 = 0x____ ?
2154: 0b1101010110011100 = _____ ?
2155: 0b0011001110110111 = 0x____ ?
2156: 0b0011101101101100 = 0x____ ?
2157: 55124 = 0b________________ ?
2158: 0o102644 = 0x____ ?
2159: 0o045443 = 0x____ ?
2160: 0o074623 = 0b________________ ?
2161: 0b0100000001100101 = 0o______ ?
2162: 0b0001000100000111 = 0x____ ?
2163: 0b111111111001 = ____ ?
2164: 0o051535 = 0x____ ?
2165: 45804 = 0b________________ ?
2166: 0o004072 = ____ ?
2167: 0x7F2C = _____ ?
2168: 0x8D61 = _____ ?
2169: 0o376 = ___ ?
2170: 0b0011011110100000 = 0o______ ?
Introduction and Puzzles 402

Math Examples
-------------
0x1A 0b1010
+ 0b0101 + 0x2F
------------ --------
0b00011111 0x39

Math Puzzles
------------
Puzzle 2171: Puzzle 2173: Puzzle 2175:
0x4C 0x67 0x89
+ 0b0110 + 0b1000 + 0b1100
------------ -------- ------------
0b________ 0x__ 0b________

Puzzle 2172: Puzzle 2174: Puzzle 2176:


0b1011 0b0111 0b00010110
+ 0x5A + 0x78 + 0x9A
-------- ------------ ------------
0x__ 0b________ 0x__
Introduction and Puzzles 403

Assembly Puzzles
----------------
Assembly 2177: Assembly 2178:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 3 0: 15 r0: 12
1: 1 r1: 2 1: 1 r1: 0
2: 2 r2: 5 2: 2 r2: 4
>>> add r0, r1 >>> mov r1, 0
>>> lsl r0, #1 >>> and r0, #7
>>> cmp r0, #10 >>> or r0, r1
>>> jeq found >>> cmp r0, r2
>>> outp r0 >>> jne different
>>> jmp end >>> outp #100
>>> found: >>> jmp finish
>>> outpb r0 >>> different:
>>> end: >>> outp r0
________________ ? >>> finish:
________________ ?
Introduction and Puzzles 404

Python Puzzles
--------------
>>> def multiply(a, b):
>>> if b == 0:
>>> return 0
>>> else:
>>> return a + multiply(a, b - 1)
>>>
>>> print(multiply(6, 4))
2179: __________ ?

>>> def sum_to_n(n):


>>> if n == 0:
>>> return 0
>>> else:
>>> return n + sum_to_n(n - 1)
>>>
>>> print(sum_to_n(2))
>>> print(sum_to_n(4))
2180: __________ ?

>>> def sum_things(n):


>>> if n <= 1:
>>> return 1
>>> else:
>>> return n + sum_things(n - 2)
>>>
>>> print(sum_things(8))
>>> print(sum_things(9))
2181: __________ ?
Introduction and Puzzles 405

ASCII
-----

ASCII 2182:
67 79 77 80 73 76 69
__ __ __ __ __ __ __

ASCII 2183:
84 73 77 69
__ __ __ __

ASCII 2184:
79 80 84 73 77 73 90 65 84 73 79 78
__ __ __ __ __ __ __ __ __ __ __ __

ASCII 2185:
84 69 67 72 78 73 81 85 69 83
__ __ __ __ __ __ __ __ __ __
Introduction and Puzzles 406

Truth Table Puzzles


-------------------
Truth Table 2186:
a c | (a ^ c)
-------------
F F | ___
F T | ___
T F | ___
T T | ___

Truth Table 2187:


a b c | (((a & c) ^ (b & a)) | c)
---------------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 407

Regex Puzzles
-------------
>>> /\d+(\.\d+)?([eE][+-]?\d+)?/ ~= ['123',
'3.14', '1e10', '2.5e-3', '99.9E+5', '1.0e',
'123e', '3.14e10', '0.001', '1e+10']
2188: (8) [__________________________
___________________________________] ?

>>> /(0x[0-9a-fA-F]+|\d+(\.\d+)?)/ ~=
['0x123', '456', '3.14', '0xABC', '99.9',
'123', '0.5', '0xFF', '789.123', '0xGGG']
2189: (9) [__________________________
___________________________________] ?

>>> /\$?\d+(\.\d{2})?/ ~= ['$123', '$99.99',


'456', '123.45', '$0.50', '$', '99.9',
'$123.456', '0.99', '$1000']
2190: (7) [__________________________
___________________________________] ?
Introduction and Puzzles 408

2191: WordSearch 'Software Testing Terms'

G A G G N I T R O P E R G U B E R U L I A F N N
N D N C O N T I N U O U S T E S T I N G T Y O E
I H I O L Q U A L I T Y A S S U R A N C E R I V
T O T V A N G N I T S E T Y T I R U C E S O T I
S C S E I F Y T I L I B I T A P M O C M T T A R
E P E R F O R M A N C E T E S T I N G U D A T D
T B T A U B T E S T R E P O R T I N G L R R N R
D R E G R E S S I O N T E S T I N G F O I O E O
E S K E E X T R A C E A B I L I T Y V V V L M I
T T O S I S Y L A N A E C N A M R O F R E P U V
A U M E L O V S Y S T E M T E S T I N G R X R A
M B S M B D S A N I T Y T E S T I N G I X E T H
O G N I T S E T N O I T A R G E T N I T U B S E
T E S T D R I V E N O N F U N C T I O N A L N B
U E R R O R S T R E S S T E S T I N G H Q G I A
A T C E F E D G N I T S E T E C N A T P E C C A

ACCEPTANCETESTING ADHOC AUTOMATEDTESTING


BEHAVIORDRIVEN BUGREPORTING COMPATIBILITY
CONTINUOUSTESTING COVERAGE DEFECT ERROR
EXPLORATORY FAILURE FUNCTIONAL INSTRUMENTATION
INTEGRATIONTESTING NONFUNCTIONAL
PERFORMANCEANALYSIS PERFORMANCETESTING
QUALITYASSURANCE REGRESSIONTESTING
SANITYTESTING SECURITYTESTING SMOKETESTING
STRESSTESTING STUB SYSTEMTESTING TESTDRIVEN
TESTDRIVER TESTREPORTING TRACEABILITY VOLUME
Introduction and Puzzles 409

Python Puzzles
--------------
>>> def list_length(lst):
>>> if not lst:
>>> return 0
>>> else:
>>> return 1 + list_length(lst[1:])
>>>
>>> print(list_length([2, 4, 6, 8, 10]))
2192: __________ ?

>>> def find_max(lst):


>>> if len(lst) == 1:
>>> return lst[0]
>>> else:
>>> return min(lst[0], find_max(lst[1:]))
>>>
>>> print(find_max([4, 12, 7, 15, 3]))
2193: __________ ?

>>> def count_item(item, lst):


>>> if not lst:
>>> return 0
>>> elif lst[0] > item:
>>> return 1 + count_item(item, lst[1:])
>>> else:
>>> return count_item(item, lst[1:])
>>>
>>> print(count_item(5, [2, 5, 8, 5, 1, 5]))
2194: __________ ?
Introduction and Puzzles 410

Lisp Puzzles
------------
>>> (define triangular (lambda (n)
>>> (if (= n 1)
>>> 1
>>> (+ n (triangular (- n 1))))))
>>> (define sum-triangular (lambda (n)
>>> (if (= n 1)
>>> (triangular 1)
>>> (+ (triangular n)
>>> (sum-triangular (- n 1))))))
>>> (print (sum-triangular 1))
>>> (print (sum-triangular 2))
>>> (print (sum-triangular 4))
2195: __________ ?

>>> (define operation (lambda (n)


>>> (if (= n 0)
>>> 0
>>> (+ (* n n) (operation (- n 1))))))
>>> (print (operation 1))
>>> (print (operation 2))
>>> (print (operation 5))
2196: __________ ?
Introduction and Puzzles 411

Conversion Puzzles
------------------
2197: 34696 = 0x____ ?
2198: 0x2CA0 = 0o______ ?
2199: 0x544D = 0o______ ?
2200: 0xE9BD = 0o______ ?
2201: 0x1259 = 0b________________ ?
2202: 0b1101100111010100 = 0o______ ?
2203: 0o145765 = _____ ?
2204: 0xD1A1 = _____ ?
2205: 0x8974 = 0o______ ?
2206: 3006 = 0x____ ?
2207: 0xEC55 = 0b________________ ?
2208: 0b1000000110010110 = 0o______ ?
2209: 0xBA05 = _____ ?
2210: 0o051025 = 0b________________ ?
2211: 0x0937 = ____ ?
2212: 0o055310 = 0x____ ?
2213: 0b0101000000001111 = 0o______ ?
2214: 0o032364 = _____ ?
2215: 0x2C49 = _____ ?
2216: 0b1000011001101100 = 0x____ ?
2217: 0b0111111011000111 = 0o______ ?
2218: 46574 = 0o______ ?
2219: 0b0110110111110010 = 0x____ ?
2220: 0b1011101100110110 = 0x____ ?
2221: 30375 = 0o______ ?
2222: 0xC352 = 0o______ ?
2223: 0o006135 = 0x____ ?
2224: 0x7CFA = 0b________________ ?
2225: 0b0110101110110111 = 0o______ ?
2226: 0o007704 = 0b____________ ?
2227: 0o062522 = 0b________________ ?
2228: 28409 = 0o______ ?
Introduction and Puzzles 412

Assembly Puzzles
----------------
Assembly 2229: Assembly 2230:
RAM Registers RAM Registers
--------- --------- --------- ---------
0: 0 r0: 14 0: 0 r0: 12
1: 1 r1: 6 1: 1 r1: 2
2: 2 r2: 0 2: 2 r2: 0
>>> xor r0, r1 >>> lsl r1, #2
>>> lsr r0, #1 >>> not r0
>>> add r0, #3 >>> and r0, #15
>>> mov r2, r0 >>> add r0, r1
>>> cmp r2, #8 >>> cmp r0, #20
>>> jeq match >>> jne skip
>>> outp r2 >>> outp #255
>>> jmp done >>> jmp end
>>> match: >>> skip:
>>> outpb r2 >>> outp r0
>>> done: >>> end:
________________ ? ________________ ?
Introduction and Puzzles 413

ASCII
-----

ASCII 2231:
67 79 77 80 73 76 69 82
__ __ __ __ __ __ __ __

ASCII 2232:
68 69 83 73 71 78
__ __ __ __ __ __

ASCII 2233:
80 65 82 83 73 78 71
__ __ __ __ __ __ __

ASCII 2234:
76 69 88 73 78 71
__ __ __ __ __ __
Introduction and Puzzles 414

Truth Table Puzzles


-------------------
Truth Table 2235:
a b c | ((b & c) & ~(c ^ a))
----------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___

Truth Table 2236:


a b c | ((a & b) & (a ^ c))
---------------------------
F F F | ___
F F T | ___
F T F | ___
F T T | ___
T F F | ___
T F T | ___
T T F | ___
T T T | ___
Introduction and Puzzles 415

Regex Puzzles
-------------
>>> /\d+\s*[+\-*\/]\s*\d+/ ~= ['2+3',
'10 - 5', '4*7', '12 / 3', '1+2+3',
'5 * 6 * 7', '10-5+2', '2*3/4', '1 + 2 - 3',
'a+b']
2237: (4) [__________________________
___________________________________] ?

>>> /\d+\s*[+\-*\/]\s*\d+\s*[+\-*\/]\s*\d+/ ~=
['1+2+3', '10-5*2', '4*7/2', '12/3+1',
'1 + 2 - 3', '5*6/2', '10-5+2', '2*3*4',
'1+2*3', 'a+b+c']
2238: (9) [__________________________
___________________________________] ?

>>> /\+\+[a-z]+|[a-z]+\+\+/ ~= ['++var',


'count++', '++index', 'value++', '++counter',
'total++', '++', 'var', '++var++', 'count+ +']
2239: (6) [__________________________
___________________________________] ?

>>> /\-\-[a-z]+|[a-z]+\-\-/ ~= ['--var',


'count--', '--index', 'value--', '--counter',
'total--', '--', 'var', '--var--', 'count- -']
2240: (6) [__________________________
___________________________________] ?
Introduction and Puzzles 416

Python Puzzles
--------------
>>> def fibonacci(n):
>>> if n <= 1:
>>> return n
>>> else:
>>> return fibonacci(n - 1) + fibonacci(n - 2)
>>>
>>> print(fibonacci(4))
>>> print(fibonacci(6))
>>> print(fibonacci(8))
2241: __________ ?

>>> def triangular(n):


>>> if n == 1:
>>> return 1
>>> else:
>>> return n + triangular(n - 1)
>>>
>>> def sum_triangular(n):
>>> if n == 1:
>>> return triangular(1)
>>> else:
>>> return triangular(n) + sum_triangular(n -
1)
>>>
>>> print(sum_triangular(4))
>>> print(sum_triangular(6))
>>> print(sum_triangular(8))
2242: __________ ?
Base Conversion Solutions
[0: 0b0000 = 0] [1: 0b0011 = 3] [2: 0b0111 = 7] [3: 0b0110 = 6] [4: 0b1011
= 11] [5: 0b1001 = 9] [6: 0b1010 = 10] [7: 0b1111 = 15] [8: 0b1110 = 14]
[9: 0x09 = 9] [10: 0x0B = 11] [11: 0x03 = 3] [12: 0x0E = 14] [13: 0x0F =
15] [14: 0x00 = 0] [15: 0x06 = 6] [16: 0x0A = 10] [17: 0x07 = 7] [54: 7 =
0b0111] [55: 0b1101 = 13] [56: 5 = 0b0101] [57: 0b1010 = 10] [58: 0b0110 =
6] [59: 0b1111 = 15] [60: 0b0100 = 4] [61: 8 = 0b1000] [62: 0b1110 = 14]
[63: 12 = 0b1100] [64: 1 = 0b0001] [65: 2 = 0b0010] [66: 0b0000 = 0] [67:
0b0011 = 3] [68: 0b1011 = 11] [69: 0b1001 = 9] [70: 13 = 0x0D] [71: 10 =
0x0A] [72: 0x0B = 11] [73: 0x09 = 9] [74: 8 = 0x08] [75: 12 = 0x0C] [76:
14 = 0x0E] [77: 4 = 0x04] [78: 7 = 0x07] [79: 0x05 = 5] [80: 3 = 0x03]
[81: 0x0F = 15] [82: 0 = 0x00] [83: 1 = 0x01] [84: 6 = 0x06] [85: 0x02 =
2] [117: 0b0100 = 4] [118: 0b1100 = 12] [119: 9 = 0b1001] [120: 0b0000 =
0] [121: 0b0110 = 6] [122: 0b1000 = 8] [123: 0b0101 = 5] [124: 2 = 0b0010]
[125: 0b1110 = 14] [126: 0b1111 = 15] [127: 11 = 0b1011] [128: 13 = 0b1101]
[129: 10 = 0x0A] [130: 0x0D = 13] [131: 3 = 0x03] [132: 0x01 = 1] [133:
0 = 0x00] [134: 0x08 = 8] [135: 15 = 0x0F] [136: 9 = 0x09] [137: 0x05 =
5] [138: 4 = 0x04] [139: 0x0C = 12] [140: 7 = 0x07] [175: 0x0A = 0b1010]
[176: 0x06 = 0b0110] [177: 0x0B = 0b1011] [178: 0x00 = 0b0000] [179: 0x03
= 0b0011] [180: 0x07 = 0b0111] [181: 0x09 = 0b1001] [182: 0x0E = 0b1110]
[183: 0x0F = 0b1111] [184: 0b0101 = 0x05] [185: 0x01 = 0b0001] [186: 0x07 =
0b0111] [187: 0x09 = 0b1001] [188: 0x04 = 0b0100] [189: 0b0000 = 0x00] [190:
0b1100 = 0x0C] [191: 0x02 = 0b0010] [220: 0b11000100 = 196] [221: 0b11111111
= 255] [222: 0b01111111 = 127] [223: 0b10000000 = 128] [224: 0b00101010 =
42] [225: 0x2A = 42] [226: 0xC4 = 196] [227: 0x80 = 128] [228: 0x7F = 127]
[229: 0xFF = 255] [260: 0x2A = 0b00101010] [261: 0xFF = 0b11111111] [262:
0x7F = 0b01111111] [263: 0x80 = 0b10000000] [264: 0xC4 = 0b11000100] [295:
0b00110111 = 55] [296: 220 = 0b11011100] [297: 0b11010101 = 213] [298: 97 =
0b01100001] [299: 104 = 0b01101000] [300: 16 = 0b00010000] [301: 0b00010001
= 17] [302: 0b01100100 = 100] [303: 57 = 0b00111001] [304: 123 = 0b01111011]
[305: 202 = 0b11001010] [306: 0b11101000 = 232] [307: 92 = 0b01011100] [308:
59 = 0b00111011] [309: 252 = 0b11111100] [310: 62 = 0b00111110] [311: 35 =
0b00100011] [312: 0b01010111 = 87] [313: 158 = 0b10011110] [314: 0b01111001
= 121] [315: 228 = 0b11100100] [316: 0b01010101 = 85] [317: 0b00010011 =
19] [318: 0b00111111 = 63] [319: 182 = 0b10110110] [320: 0b11011011 = 219]
[321: 0b01110100 = 116] [322: 0b11101011 = 235] [323: 162 = 0b10100010] [324:
0b11100011 = 227] [357: 0x97 = 151] [358: 0xB7 = 183] [359: 0xF1 = 241] [360:
0xAE = 174] [361: 0x8A = 138] [362: 0x07 = 7] [363: 0x16 = 22] [364: 0x1B =
27] [365: 110 = 0x6E] [366: 90 = 0x5A] [367: 21 = 0x15] [368: 223 = 0xDF]
[369: 0x72 = 114] [370: 0x76 = 118] [371: 158 = 0x9E] [372: 0xB0 = 176]
[373: 0x8B = 139] [374: 0xE1 = 225] [375: 148 = 0x94] [376: 142 = 0x8E]
[377: 237 = 0xED] [378: 116 = 0x74] [379: 146 = 0x92] [380: 39 = 0x27] [381:
126 = 0x7E] [382: 0x46 = 70] [383: 112 = 0x70] [384: 64 = 0x40] [385: 37
= 0x25] [386: 0xAF = 175] [416: 0b11101101 = 0xED] [417: 0xE7 = 0b11100111]
[418: 0b01110000 = 0x70] [419: 0x76 = 0b01110110] [420: 0xD8 = 0b11011000]
[421: 0x9D = 0b10011101] [422: 0x2B = 0b00101011] [423: 0b10011111 = 0x9F]
Base Conversion Solutions 418

[424: 0xA5 = 0b10100101] [425: 0b00100001 = 0x21] [426: 0xE5 = 0b11100101]


[427: 0b00011001 = 0x19] [428: 0b10000111 = 0x87] [429: 0b00111000 = 0x38]
[430: 0x17 = 0b00010111] [431: 0xDE = 0b11011110] [432: 0b11010010 = 0xD2]
[433: 0x2A = 0b00101010] [434: 0xEE = 0b11101110] [435: 0b01110101 = 0x75]
[436: 0x58 = 0b01011000] [437: 0b11010001 = 0xD1] [438: 0b11000011 = 0xC3]
[439: 0b00110001 = 0x31] [440: 0xD5 = 0b11010101] [441: 0b10110001 = 0xB1]
[442: 0x8E = 0b10001110] [443: 0x8B = 0b10001011] [444: 0xBD = 0b10111101]
[445: 0x4D = 0b01001101] [479: 0o013 = 11] [480: 0o000 = 0] [481: 0o003 =
3] [482: 0o007 = 7] [483: 0o017 = 15] [484: 0o012 = 10] [485: 0o016 = 14]
[486: 0o006 = 6] [487: 0o011 = 9] [488: 0o017 = 0b1111] [489: 0o006 = 0b0110]
[490: 0o007 = 0b0111] [491: 0o013 = 0b1011] [492: 0o000 = 0b0000] [493: 0o012
= 0b1010] [494: 0o016 = 0b1110] [495: 0o003 = 0b0011] [496: 0o011 = 0b1001]
[526: 0o000 = 0x00] [527: 0o006 = 0x06] [528: 0o016 = 0x0E] [529: 0o011 =
0x09] [530: 0o017 = 0x0F] [531: 0o007 = 0x07] [532: 0o012 = 0x0A] [533: 0o013
= 0x0B] [534: 0o003 = 0x03] [535: 0x00 = 0b0000] [536: 0b1010 = 0x0A] [537:
0b0110 = 0x06] [538: 0b0101 = 0x05] [539: 0x08 = 0b1000] [540: 0b1101 = 0x0D]
[541: 0x0F = 0b1111] [542: 0b1100 = 0x0C] [543: 0x02 = 0b0010] [544: 0b1001 =
0x09] [545: 0o002 = 0x02] [546: 0x09 = 0o011] [547: 0x03 = 0o003] [548: 0x0E
= 0o016] [549: 0o001 = 0x01] [550: 0o015 = 0x0D] [551: 0x08 = 0o010] [552:
0o007 = 0x07] [553: 0o006 = 0x06] [554: 0x00 = 0o000] [585: 0b1000 = 0o010]
[586: 0b0101 = 0o005] [587: 0b0011 = 0o003] [588: 0b0010 = 0o002] [589: 0o011
= 0b1001] [590: 0b1101 = 0o015] [591: 0o000 = 0b0000] [592: 0o014 = 0b1100]
[593: 0o016 = 0b1110] [594: 0b0110 = 0o006] [595: 0o013 = 0b1011] [596: 0b0100
= 0o004] [597: 0b1010 = 0o012] [598: 0b1111 = 0o017] [599: 0b0111 = 0o007]
[600: 0o001 = 0b0001] [601: 0o012 = 0x0A] [602: 0o016 = 0x0E] [603: 0x0D =
0o015] [604: 0x00 = 0o000] [605: 0x09 = 0o011] [606: 0o004 = 0x04] [607: 0x0C
= 0o014] [608: 0o017 = 0x0F] [609: 0o003 = 0x03] [610: 0x0B = 0o013] [611:
0o007 = 0x07] [612: 0x01 = 0o001] [613: 0o006 = 0x06] [614: 0x05 = 0o005]
[615: 0x08 = 0o010] [616: 0x02 = 0o002] [644: 0o011 = 9] [645: 0b0010 =
0o002] [646: 4 = 0o004] [647: 0o014 = 12] [648: 0o010 = 0b1000] [649: 0b0101
= 5] [650: 14 = 0o016] [651: 0b1101 = 0o015] [652: 0o003 = 3] [653: 0b0000
= 0o000] [654: 0o007 = 7] [655: 0b0001 = 0o001] [656: 0o006 = 0b0110] [657:
0o017 = 0b1111] [658: 10 = 0o012] [659: 0b1011 = 0o013] [660: 15 = 0o017]
[661: 0o013 = 0x0B] [662: 0o003 = 0x03] [663: 0x0C = 0o014] [664: 0 = 0o000]
[665: 0x04 = 4] [666: 0x02 = 2] [667: 14 = 0o016] [668: 0o015 = 13] [669:
0o006 = 6] [670: 9 = 0o011] [671: 8 = 0x08] [672: 1 = 0o001] [673: 0o005 = 5]
[674: 0o012 = 10] [675: 7 = 0x07] [703: 0b10000000 = 0o200] [704: 0b00101010
= 0o052] [705: 0b11111111 = 0o377] [706: 0b11000100 = 0o304] [707: 0b01111111
= 0o177] [708: 196 = 0o304] [709: 127 = 0o177] [710: 42 = 0o052] [711: 255 =
0o377] [712: 128 = 0o200] [748: 0xC4 = 0o304] [749: 0x80 = 0o200] [750: 0x2A
= 0o052] [751: 0x7F = 0o177] [752: 0xFF = 0o377] [753: 0xEA = 0b11101010]
[754: 0xB6 = 0b10110110] [755: 0x54 = 0b01010100] [756: 0xFC = 0b11111100]
[757: 0b10010010 = 0x92] [758: 0b11100110 = 0xE6] [759: 0b00111010 = 0x3A]
[760: 0x74 = 0b01110100] [761: 0b11111011 = 0xFB] [762: 0xF0 = 0b11110000]
[763: 0o031 = 0x19] [764: 0x52 = 0o122] [765: 0x3B = 0o073] [766: 0o320
= 0xD0] [767: 0x33 = 0o063] [768: 0o257 = 0xAF] [769: 0xEC = 0o354] [770:
0o041 = 0x21] [771: 0o302 = 0xC2] [772: 0o242 = 0xA2] [791: 0o010 = 0b1000]
[792: 0o024 = 0b00010100] [793: 0o071 = 0b00111001] [794: 0o022 = 0b00010010]
[795: 0o133 = 0b01011011] [796: 0o051 = 0b00101001] [797: 0b11000111 = 0o307]
[798: 0b01001001 = 0o111] [799: 0b01110011 = 0o163] [800: 0b00110101 = 0o065]
Base Conversion Solutions 419

[801: 0b11100100 = 0o344] [802: 0b00100001 = 0o041] [803: 0b01111000 = 0o170]


[804: 0o230 = 0b10011000] [805: 0b10001101 = 0o215] [806: 0o140 = 0b01100000]
[807: 0o015 = 0b1101] [808: 0b0100 = 0o004] [809: 0o034 = 0b00011100] [810:
0o313 = 0b11001011] [811: 0b01000001 = 0o101] [812: 0o327 = 0b11010111] [813:
0b0111 = 0o007] [814: 0b11011101 = 0o335] [815: 0b10010001 = 0o221] [816:
0o105 = 0b01000101] [817: 0b10010011 = 0o223] [818: 0o125 = 0b01010101] [819:
0b11101001 = 0o351] [820: 0b10010111 = 0o227] [821: 0b01100110 = 0o146] [822:
0b11110010 = 0o362] [859: 0o033 = 27] [860: 189 = 0o275] [861: 236 = 0o354]
[862: 13 = 0o015] [863: 99 = 0o143] [864: 242 = 0o362] [865: 31 = 0o037] [866:
0o065 = 53] [867: 206 = 0o316] [868: 3 = 0o003] [869: 19 = 0o023] [870: 0o372
= 250] [871: 0o247 = 167] [872: 86 = 0o126] [873: 133 = 0o205] [874: 0o367
= 247] [875: 48 = 0o060] [876: 175 = 0o257] [877: 0o303 = 195] [878: 168 =
0o250] [879: 204 = 0o314] [880: 0o343 = 227] [881: 0o177 = 127] [882: 126 =
0o176] [883: 70 = 0o106] [884: 160 = 0o240] [885: 0o227 = 151] [886: 196 =
0o304] [887: 129 = 0o201] [888: 0o031 = 25] [889: 0o262 = 178] [890: 0o161 =
113] [914: 0o142 = 0x62] [915: 0o327 = 0xD7] [916: 0xED = 0o355] [917: 0x59 =
0o131] [918: 0o070 = 0x38] [919: 0x18 = 0o030] [920: 0xC6 = 0o306] [921: 0o135
= 0x5D] [922: 0x60 = 0o140] [923: 0o027 = 0x17] [924: 0x64 = 0o144] [925: 0x91
= 0o221] [926: 0x3D = 0o075] [927: 0x02 = 0o002] [928: 0o157 = 0x6F] [929:
0o373 = 0xFB] [930: 0x67 = 0o147] [931: 0o026 = 0x16] [932: 0x1E = 0o036]
[933: 0xB8 = 0o270] [934: 0o150 = 0x68] [935: 0o334 = 0xDC] [936: 0o320 =
0xD0] [937: 0o375 = 0xFD] [938: 0o130 = 0x58] [939: 0o247 = 0xA7] [940: 0x5A
= 0o132] [941: 0xB4 = 0o264] [942: 0o110 = 0x48] [943: 0xD1 = 0o321] [944:
0o056 = 0x2E] [945: 0xF9 = 0o371] [976: 0x5C = 0o134] [977: 0o063 = 51] [978:
0o342 = 226] [979: 0xB0 = 0o260] [980: 0x54 = 0o124] [981: 0xD0 = 208] [982:
0o102 = 0x42] [983: 0o213 = 139] [984: 80 = 0x50] [985: 169 = 0o251] [986:
68 = 0x44] [987: 0o156 = 110] [988: 0x16 = 22] [989: 218 = 0xDA] [990: 0x0B
= 0o013] [991: 0o172 = 122] [992: 24 = 0o030] [993: 241 = 0xF1] [994: 0x13 =
0o023] [995: 0o103 = 0x43] [996: 0xDF = 223] [997: 126 = 0o176] [998: 0o055 =
0x2D] [999: 59 = 0o073] [1000: 0o057 = 47] [1001: 114 = 0x72] [1002: 0x47 =
0o107] [1003: 26 = 0x1A] [1004: 205 = 0xCD] [1005: 0o160 = 0x70] [1006: 0o070
= 56] [1007: 0o017 = 0x0F] [1030: 0o030 = 24] [1031: 0x8B = 0b10001011] [1032:
0o153 = 0b01101011] [1033: 0x2D = 0b00101101] [1034: 0xAD = 173] [1035: 0b0001
= 1] [1036: 0o073 = 0x3B] [1037: 0b00100100 = 0o044] [1038: 0o265 = 0xB5]
[1039: 110 = 0x6E] [1040: 245 = 0xF5] [1041: 0xE7 = 0o347] [1042: 0b11100010
= 0xE2] [1043: 156 = 0o234] [1044: 0x0F = 0o017] [1045: 186 = 0xBA] [1046:
0b00111000 = 0x38] [1047: 26 = 0x1A] [1048: 0o053 = 0b00101011] [1049: 18 =
0x12] [1050: 0x87 = 135] [1051: 0b11100011 = 0xE3] [1052: 0o317 = 207] [1053:
0xDC = 0b11011100] [1054: 0b01011001 = 0x59] [1055: 0o060 = 0x30] [1056: 0o163
= 115] [1057: 147 = 0x93] [1058: 250 = 0xFA] [1059: 0xD2 = 210] [1060: 146
= 0b10010010] [1061: 0o262 = 0b10110010] [1093: 0o023 = 19] [1094: 0x89 =
137] [1095: 23 = 0o027] [1096: 0o216 = 142] [1097: 0o122 = 82] [1098: 0xCC =
0o314] [1099: 37 = 0b00100101] [1100: 0b01000001 = 0o101] [1101: 0o334 = 220]
[1102: 0b01001000 = 0o110] [1103: 0x11 = 17] [1104: 0o012 = 0b1010] [1105:
0x5A = 90] [1106: 0o271 = 185] [1107: 0xA3 = 0b10100011] [1108: 0b10101000
= 168] [1109: 219 = 0b11011011] [1110: 0b01100011 = 0o143] [1111: 0xD8 =
0o330] [1112: 0x91 = 145] [1113: 206 = 0o316] [1114: 0b11000101 = 0xC5] [1115:
0b00011001 = 0o031] [1116: 0o203 = 131] [1117: 0x7E = 0o176] [1118: 0b01000000
= 64] [1119: 0b10011111 = 0o237] [1120: 0b1011 = 0x0B] [1121: 0x67 = 103]
[1122: 0b01010101 = 0o125] [1123: 0b01011111 = 95] [1124: 0b01011000 = 0x58]
Base Conversion Solutions 420

[1149: 97 = 0o141] [1150: 192 = 0o300] [1151: 0b10010001 = 145] [1152: 0x28 =
0o050] [1153: 0o000 = 0x00] [1154: 201 = 0b11001001] [1155: 0xBB = 0b10111011]
[1156: 0o323 = 0xD3] [1157: 0o211 = 0b10001001] [1158: 204 = 0o314] [1159:
0b11101000 = 0xE8] [1160: 0xFF = 0b11111111] [1161: 0b11011011 = 219] [1162:
0x7E = 0o176] [1163: 0x46 = 70] [1164: 0o253 = 171] [1165: 0x58 = 88] [1166:
0b10011000 = 0x98] [1167: 0o113 = 0x4B] [1168: 0o355 = 237] [1169: 0x74 =
116] [1170: 0o371 = 0b11111001] [1171: 136 = 0b10001000] [1172: 0b00011011 =
0o033] [1173: 0xE2 = 226] [1174: 24 = 0o030] [1175: 0b01100011 = 0o143] [1176:
0x52 = 0o122] [1177: 0b10101101 = 173] [1178: 0o165 = 0x75] [1179: 0o351
= 0b11101001] [1180: 175 = 0b10101111] [1214: 25043 = 0b0110000111010011]
[1215: 58716 = 0b1110010101011100] [1216: 29059 = 0b0111000110000011] [1217:
43614 = 0b1010101001011110] [1218: 8255 = 0b0010000000111111] [1219: 41950
= 0b1010001111011110] [1220: 39511 = 0b1001101001010111] [1221: 10544 =
0b0010100100110000] [1222: 18677 = 0b0100100011110101] [1223: 38153 =
0b1001010100001001] [1224: 64131 = 0b1111101010000011] [1225: 14294 =
0b0011011111010110] [1226: 31275 = 0b0111101000101011] [1227: 11955 =
0b0010111010110011] [1228: 42625 = 0b1010011010000001] [1229: 16359 =
0b0011111111100111] [1259: 58716 = 0o162534] [1260: 64131 = 0o175203] [1261:
10544 = 0o024460] [1262: 14294 = 0o033726] [1263: 38153 = 0o112411] [1264:
41950 = 0o121736] [1265: 8255 = 0o020077] [1266: 16359 = 0o037747] [1267:
31275 = 0o075053] [1268: 29059 = 0o070603] [1269: 25043 = 0o060723] [1270:
42625 = 0o123201] [1271: 18677 = 0o044365] [1272: 43614 = 0o125136] [1273:
11955 = 0o027263] [1274: 39511 = 0o115127] [1303: 18677 = 0x48F5] [1304:
42625 = 0xA681] [1305: 8255 = 0x203F] [1306: 14294 = 0x37D6] [1307: 64131
= 0xFA83] [1308: 11955 = 0x2EB3] [1309: 43614 = 0xAA5E] [1310: 41950 =
0xA3DE] [1311: 10544 = 0x2930] [1312: 25043 = 0x61D3] [1313: 58716 =
0xE55C] [1314: 16359 = 0x3FE7] [1315: 38153 = 0x9509] [1316: 39511 =
0x9A57] [1317: 31275 = 0x7A2B] [1318: 29059 = 0x7183] [1345: 0xAA5E =
0o125136] [1346: 0xFA83 = 0o175203] [1347: 0x48F5 = 0o044365] [1348: 0x2930 =
0o024460] [1349: 0x7183 = 0o070603] [1350: 0x3FE7 = 0o037747] [1351: 0xA681 =
0o123201] [1352: 0x9A57 = 0o115127] [1353: 0x9509 = 0o112411] [1354: 0x61D3 =
0o060723] [1355: 0x203F = 0o020077] [1356: 0x7A2B = 0o075053] [1357: 0x2EB3 =
0o027263] [1358: 0xA3DE = 0o121736] [1359: 0x37D6 = 0o033726] [1360: 0xE55C
= 0o162534] [1394: 26557 = 0b0110011110111101] [1395: 0b1001110001001111 =
40015] [1396: 28272 = 0b0110111001110000] [1397: 0b1101011110000010 = 55170]
[1398: 0b0101110011001100 = 23756] [1399: 60315 = 0b1110101110011011] [1400:
63258 = 0b1111011100011010] [1401: 27358 = 0b0110101011011110] [1402: 20402 =
0b0100111110110010] [1403: 0b0101110001101110 = 23662] [1404: 0b110011011011
= 3291] [1405: 0b0010110011111011 = 11515] [1406: 44698 = 0b1010111010011010]
[1407: 0b1111110110010110 = 64918] [1408: 0b0101001000001101 = 21005]
[1409: 14101 = 0b0011011100010101] [1410: 0b1011011100110010 = 46898]
[1411: 0b1100000011011001 = 49369] [1412: 0b001010001010 = 650] [1413:
0b1111001101110010 = 62322] [1414: 0b1001010010010010 = 38034] [1415:
13100 = 0b0011001100101100] [1416: 0b1011111010010010 = 48786] [1417:
22647 = 0b0101100001110111] [1418: 40900 = 0b1001111111000100] [1419:
43905 = 0b1010101110000001] [1420: 0b0111101101010101 = 31573] [1421:
0b1000010101000010 = 34114] [1422: 0b0111010101101111 = 30063] [1423:
46412 = 0b1011010101001100] [1424: 20981 = 0b0101000111110101] [1425:
0b0010101000011000 = 10776] [1443: 0b1100110111010011 = 0xCDD3] [1444:
0b0011101111001110 = 0x3BCE] [1445: 0b1100011001100101 = 0xC665] [1446:
Base Conversion Solutions 421

0b0101010111110100 = 0x55F4] [1447: 0x479A = 0b0100011110011010] [1448:


0b1100111111001111 = 0xCFCF] [1449: 0x3F47 = 0b0011111101000111] [1450:
0xFCFF = 0b1111110011111111] [1451: 0b1101000100011100 = 0xD11C] [1452:
0b0110100001011000 = 0x6858] [1453: 0b1011110011001010 = 0xBCCA] [1454:
0xFA43 = 0b1111101001000011] [1455: 0b1001111001010001 = 0x9E51] [1456:
0xCC76 = 0b1100110001110110] [1457: 0b0011111010111010 = 0x3EBA] [1458:
0b0110000110000111 = 0x6187] [1459: 0x956E = 0b1001010101101110] [1460:
0x922F = 0b1001001000101111] [1461: 0x9476 = 0b1001010001110110] [1462:
0b0010110000011110 = 0x2C1E] [1463: 0x3EA9 = 0b0011111010101001] [1464:
0xA6E4 = 0b1010011011100100] [1465: 0b0100100010001111 = 0x488F] [1466:
0x69D1 = 0b0110100111010001] [1467: 0b1001111011010010 = 0x9ED2] [1468:
0x8815 = 0b1000100000010101] [1469: 0b0100111110011101 = 0x4F9D] [1470:
0xEFE9 = 0b1110111111101001] [1471: 0b0110000010110000 = 0x60B0] [1472:
0xAAA1 = 0b1010101010100001] [1473: 0b0100000001100000 = 0x4060] [1474:
0b0110010011100010 = 0x64E2] [1506: 0b0001101110110000 = 0o015660] [1507:
0o055004 = 0b0101101000000100] [1508: 0b0011111111010011 = 0o037723] [1509:
0b0111001001010011 = 0o071123] [1510: 0o014717 = 0b0001100111001111] [1511:
0b1101100111011011 = 0o154733] [1512: 0b0001010000111100 = 0o012074] [1513:
0b0001111101101011 = 0o017553] [1514: 0b0110110110001001 = 0o066611] [1515:
0b1000000111111100 = 0o100774] [1516: 0o125000 = 0b1010101000000000] [1517:
0o156206 = 0b1101110010000110] [1518: 0o025504 = 0b0010101101000100] [1519:
0o152102 = 0b1101010001000010] [1520: 0o074634 = 0b0111100110011100] [1521:
0o170532 = 0b1111000101011010] [1522: 0b1110110011100001 = 0o166341] [1523:
0b0011011001101011 = 0o033153] [1524: 0o041240 = 0b0100001010100000] [1525:
0o130174 = 0b1011000001111100] [1526: 0o111401 = 0b1001001100000001] [1527:
0b0010110010010010 = 0o026222] [1528: 0o162210 = 0b1110010010001000] [1529:
0b1011011100100010 = 0o133442] [1530: 0b0110111001000100 = 0o067104] [1531:
0o161637 = 0b1110001110011111] [1532: 0o111516 = 0b1001001101001110] [1533:
0b1110101010101101 = 0o165255] [1534: 0b1000001111110101 = 0o101765] [1535:
0o005211 = 0b101010001001] [1536: 0o055744 = 0b0101101111100100] [1537:
0o022474 = 0b0010010100111100] [1559: 0o104247 = 34983] [1560: 20505 =
0o050031] [1561: 0o156652 = 56746] [1562: 22779 = 0o054373] [1563: 37540
= 0o111244] [1564: 59658 = 0o164412] [1565: 0o145465 = 52021] [1566: 0o014150
= 6248] [1567: 0o030321 = 12497] [1568: 0o156050 = 56360] [1569: 52504 =
0o146430] [1570: 0o066726 = 28118] [1571: 42340 = 0o122544] [1572: 0o045372
= 19194] [1573: 44889 = 0o127531] [1574: 5311 = 0o012277] [1575: 30009 =
0o072471] [1576: 0o077102 = 32322] [1577: 0o164663 = 59827] [1578: 0o001216
= 654] [1579: 35951 = 0o106157] [1580: 0o004346 = 2278] [1581: 0o162144
= 58468] [1582: 0o013702 = 6082] [1583: 1561 = 0o003031] [1584: 51975 =
0o145407] [1585: 0o130737 = 45535] [1586: 0o101725 = 33749] [1587: 31687 =
0o075707] [1588: 0o162744 = 58852] [1589: 0o004447 = 2343] [1590: 0o146454 =
52524] [1618: 51117 = 0xC7AD] [1619: 0x425D = 16989] [1620: 20185 = 0x4ED9]
[1621: 0xCBBA = 52154] [1622: 52371 = 0xCC93] [1623: 0x2F30 = 12080] [1624:
54010 = 0xD2FA] [1625: 39186 = 0x9912] [1626: 0x2113 = 8467] [1627: 56417 =
0xDC61] [1628: 0xFB13 = 64275] [1629: 46496 = 0xB5A0] [1630: 48506 = 0xBD7A]
[1631: 0xBF34 = 48948] [1632: 44157 = 0xAC7D] [1633: 24305 = 0x5EF1] [1634:
0xA5BD = 42429] [1635: 33095 = 0x8147] [1636: 0x8BBA = 35770] [1637: 57340 =
0xDFFC] [1638: 36430 = 0x8E4E] [1639: 23717 = 0x5CA5] [1640: 29678 = 0x73EE]
[1641: 0xEAB7 = 60087] [1642: 48595 = 0xBDD3] [1643: 51766 = 0xCA36] [1644:
62633 = 0xF4A9] [1645: 56670 = 0xDD5E] [1646: 533 = 0x0215] [1647: 0x1CF9
Base Conversion Solutions 422

= 7417] [1648: 0x1B26 = 6950] [1649: 0x90CC = 37068] [1680: 0o144201 =


0xC881] [1681: 0o124641 = 0xA9A1] [1682: 0o062107 = 0x6447] [1683: 0o030105 =
0x3045] [1684: 0o122170 = 0xA478] [1685: 0x68FB = 0o064373] [1686: 0o164617 =
0xE98F] [1687: 0o150176 = 0xD07E] [1688: 0x6D85 = 0o066605] [1689: 0o134241 =
0xB8A1] [1690: 0o022024 = 0x2414] [1691: 0x67A9 = 0o063651] [1692: 0o125762 =
0xABF2] [1693: 0x4480 = 0o042200] [1694: 0xD618 = 0o153030] [1695: 0x2D00 =
0o026400] [1696: 0xF22D = 0o171055] [1697: 0o077415 = 0x7F0D] [1698: 0x8944 =
0o104504] [1699: 0o005647 = 0x0BA7] [1700: 0o075407 = 0x7B07] [1701: 0x79F1 =
0o074761] [1702: 0xBA54 = 0o135124] [1703: 0o056341 = 0x5CE1] [1704: 0x213E =
0o020476] [1705: 0o060207 = 0x6087] [1706: 0x7FF2 = 0o077762] [1707: 0o030027
= 0x3017] [1708: 0o113540 = 0x9760] [1709: 0x3C40 = 0o036100] [1710: 0o125765
= 0xABF5] [1711: 0x62A7 = 0o061247] [1741: 2916 = 0x0B64] [1742: 0o143122
= 0b1100011001010010] [1743: 0o137611 = 0xBF89] [1744: 0b1100111100101000 =
0xCF28] [1745: 0o077227 = 0x7E97] [1746: 29221 = 0o071045] [1747: 0x0C2B =
0b110000101011] [1748: 0x9BB0 = 0o115660] [1749: 25817 = 0b0110010011011001]
[1750: 0xC22E = 0b1100001000101110] [1751: 0b1001111010000000 = 40576]
[1752: 0b0100011011000001 = 18113] [1753: 0o151325 = 0b1101001011010101]
[1754: 0o165624 = 60308] [1755: 0b1100010110000000 = 0o142600] [1756:
0x12E1 = 0o011341] [1757: 0o021414 = 8972] [1758: 51687 = 0o144747] [1759:
0o022734 = 0b0010010111011100] [1760: 0b1110011011011010 = 0o163332] [1761:
0o063022 = 0b0110011000010010] [1762: 0o106451 = 0x8D29] [1763: 5273 =
0o012231] [1764: 0x542B = 0b0101010000101011] [1765: 0b1000011111011010 =
0o103732] [1766: 0b1111010100100100 = 0o172444] [1767: 0b1100111101010111
= 53079] [1768: 0b0111101100111110 = 0x7B3E] [1769: 45243 = 0o130273]
[1770: 0x0118 = 0o430] [1771: 0x18EA = 6378] [1772: 0b1111011011111100
= 63228] [1797: 0o070750 = 0b0111000111101000] [1798: 28633 = 0x6FD9]
[1799: 0x3924 = 0b0011100100100100] [1800: 63220 = 0b1111011011110100] [1801:
0b1000011101000011 = 0o103503] [1802: 0o174747 = 0b1111100111100111] [1803:
0o072535 = 0b0111010101011101] [1804: 0x2A3D = 0o025075] [1805: 0x65AF =
0b0110010110101111] [1806: 0x7D18 = 32024] [1807: 0b1110011011110001 = 59121]
[1808: 0b101101001010 = 0x0B4A] [1809: 0x47BD = 0b0100011110111101] [1810:
0o107312 = 0x8ECA] [1811: 14791 = 0b0011100111000111] [1812: 0xC3A3 = 0o141643]
[1813: 13541 = 0b0011010011100101] [1814: 34631 = 0o103507] [1815: 62789 =
0xF545] [1816: 0x8BCA = 0o105712] [1817: 41425 = 0b1010000111010001] [1818:
0xC0D2 = 49362] [1819: 0xDAB9 = 0b1101101010111001] [1820: 0b0110000000011111 =
24607] [1821: 0xF37F = 0o171577] [1822: 63470 = 0o173756] [1823: 0o160 = 0x70]
[1824: 0b0011111100010000 = 16144] [1825: 12426 = 0b0011000010001010] [1826:
0b1111000000001010 = 0o170012] [1827: 0b1001111101111111 = 0x9F7F] [1828:
0b1110000000101001 = 0o160051] [1853: 0o152276 = 0xD4BE] [1854: 0o003012 =
1546] [1855: 55795 = 0b1101100111110011] [1856: 0b1110000100000010 = 0o160402]
[1857: 0x1B25 = 0b0001101100100101] [1858: 0b0100111010111011 = 20155] [1859:
0b111011111100 = 0o007374] [1860: 0b1111010001001000 = 62536] [1861: 3493 =
0o006645] [1862: 0b1000000010101111 = 0o100257] [1863: 0b0010010011001000 =
0o022310] [1864: 0xA967 = 43367] [1865: 63887 = 0b1111100110001111] [1866:
0b1101100011010101 = 0xD8D5] [1867: 0b1110000110010011 = 57747] [1868: 0xDAA4
= 0o155244] [1869: 0o073036 = 0x761E] [1870: 56286 = 0o155736] [1871: 0o101757
= 0b1000001111101111] [1872: 0xDA86 = 55942] [1873: 0o056351 = 0x5CE9]
[1874: 0x4245 = 16965] [1875: 0xDFBA = 0b1101111110111010] [1876: 47730
= 0xBA72] [1877: 0b1100000100100011 = 0xC123] [1878: 0b0010100001011010 =
0o024132] [1879: 26193 = 0x6651] [1880: 0b0110000100100101 = 24869] [1881:
Base Conversion Solutions 423

0xB324 = 0b1011001100100100] [1882: 0o140427 = 0xC117] [1883: 0o100575


= 33149] [1884: 61875 = 0b1111000110110011] [1912: 0b0001001000000100 =
0x1204] [1913: 0xAEF1 = 44785] [1914: 24370 = 0x5F32] [1915: 0xAABF =
43711] [1916: 0b1110000101100101 = 0o160545] [1917: 0b1100101111111000 =
52216] [1918: 38121 = 0b1001010011101001] [1919: 15421 = 0b0011110000111101]
[1920: 0xE5E4 = 0o162744] [1921: 0b1110111011100010 = 0o167342] [1922:
0xB13A = 0b1011000100111010] [1923: 16095 = 0b0011111011011111] [1924:
0o035363 = 0x3AF3] [1925: 0b0011111011001011 = 0x3ECB] [1926: 0o056003 =
0b0101110000000011] [1927: 0b0100010011100000 = 0o042340] [1928: 0xC981 =
0b1100100110000001] [1929: 0xD85A = 0b1101100001011010] [1930: 0o076176 =
31870] [1931: 0b1110001000010010 = 0xE212] [1932: 0x1AB4 = 6836] [1933:
0b0101000010011110 = 0o050236] [1934: 30855 = 0o074207] [1935: 0xE8E4 =
59620] [1936: 51559 = 0b1100100101100111] [1937: 0x47ED = 0b0100011111101101]
[1938: 9616 = 0x2590] [1939: 0b1001101011111000 = 0o115370] [1940: 0o003545
= 0x0765] [1941: 39039 = 0o114177] [1942: 0x0643 = 0b011001000011]
[1943: 26962 = 0b0110100101010010] [1968: 0b1010001100101010 = 41770]
[1969: 0b0110100100001101 = 26893] [1970: 64464 = 0b1111101111010000]
[1971: 0xF546 = 0o172506] [1972: 0b1011111001000000 = 0o137100] [1973:
0o014023 = 0x1813] [1974: 4287 = 0b0001000010111111] [1975: 27619 = 0x6BE3]
[1976: 0x3A36 = 14902] [1977: 64512 = 0o176000] [1978: 0b0001000111111100
= 0x11FC] [1979: 0xC89E = 51358] [1980: 0b1001111100100100 = 0x9F24]
[1981: 0o154455 = 55597] [1982: 0o143752 = 0xC7EA] [1983: 56017 =
0o155321] [1984: 0b0110110010001100 = 0o066214] [1985: 0x1BC2 = 0o015702]
[1986: 60983 = 0b1110111000110111] [1987: 0x80B6 = 0b1000000010110110]
[1988: 46247 = 0b1011010010100111] [1989: 0x3690 = 0b0011011010010000]
[1990: 0o107725 = 36821] [1991: 59502 = 0xE86E] [1992: 0b0110010001111100
= 25724] [1993: 0o157205 = 0xDE85] [1994: 0b0101110111111011 = 0x5DFB]
[1995: 0b1111000000111111 = 0o170077] [1996: 0x7F6A = 32618] [1997: 48007
= 0xBB87] [1998: 0b1001011111111101 = 38909] [1999: 0o042542 = 0x4562]
[2022: 21197 = 0x52CD] [2023: 63784 = 0b1111100100101000] [2024: 0xE626
= 0b1110011000100110] [2025: 0o013121 = 0x1651] [2026: 0b1100100011101100
= 0xC8EC] [2027: 0o020075 = 0b0010000000111101] [2028: 0b0111111111001110
= 32718] [2029: 0x4B22 = 19234] [2030: 46473 = 0b1011010110001001] [2031:
52313 = 0xCC59] [2032: 0b0010100011011111 = 0x28DF] [2033: 0x86FA = 0o103372]
[2034: 0b1000110101001110 = 0x8D4E] [2035: 0b1111010110110011 = 0o172663]
[2036: 10207 = 0b0010011111011111] [2037: 0b0111000101001111 = 0x714F] [2038:
0b0001101111011111 = 0x1BDF] [2039: 0b0101010000101110 = 0o052056] [2040:
0b1011011010111101 = 0o133275] [2041: 0xAB38 = 0o125470] [2042: 30790 = 0x7846]
[2043: 62459 = 0b1111001111111011] [2044: 0xDB3E = 0b1101101100111110] [2045:
0b010100101001 = 0o002451] [2046: 0xAC8A = 0b1010110010001010] [2047: 0x198D
= 0b0001100110001101] [2048: 0o141570 = 0b1100001101111000] [2049: 0xF8F0
= 0b1111100011110000] [2050: 0o130521 = 0xB151] [2051: 0b1100111000010100
= 0o147024] [2052: 0b1000111011001000 = 0o107310] [2053: 0o010116 = 4174]
[2078: 0x2C27 = 0b0010110000100111] [2079: 19529 = 0b0100110001001001] [2080:
0b1101011100101101 = 0o153455] [2081: 0b0100010000100001 = 0x4421] [2082:
47465 = 0xB969] [2083: 19465 = 0b0100110000001001] [2084: 0b0101110000000010
= 23554] [2085: 0o110140 = 36960] [2086: 0x933D = 0o111475] [2087:
0o025223 = 0x2A93] [2088: 0o034356 = 0x38EE] [2089: 18708 = 0x4914] [2090:
0o037314 = 0b0011111011001100] [2091: 0x50FA = 0o050372] [2092: 0xEB1A
= 0o165432] [2093: 49390 = 0b1100000011101110] [2094: 0x4468 = 0o042150]
Base Conversion Solutions 424

[2095: 0b0101010010110010 = 0o052262] [2096: 0o074022 = 0b0111100000010010]


[2097: 0x9B47 = 39751] [2098: 0xDDCA = 56778] [2099: 0o054662 = 0x59B2]
[2100: 0x8BAA = 0b1000101110101010] [2101: 0b0010000011110000 = 0x20F0]
[2102: 31412 = 0o075264] [2103: 28058 = 0x6D9A] [2104: 0xF226 = 0o171046]
[2105: 8171 = 0x1FEB] [2106: 0x8046 = 32838] [2107: 0x468D = 18061]
[2108: 0o141174 = 0b1100001001111100] [2109: 0x21 = 0o041] [2139: 51315 =
0b1100100001110011] [2140: 0o033466 = 14134] [2141: 0o103343 = 0x86E3] [2142:
41919 = 0o121677] [2143: 57444 = 0o160144] [2144: 55288 = 0b1101011111111000]
[2145: 0o005515 = 0x0B4D] [2146: 17174 = 0b0100001100010110] [2147: 0o162562
= 0xE572] [2148: 0b1100000110001001 = 0o140611] [2149: 48874 = 0o137352]
[2150: 23049 = 0x5A09] [2151: 6257 = 0x1871] [2152: 0x81B8 = 33208]
[2153: 0b0010000011011010 = 0x20DA] [2154: 0b1101010110011100 = 54684] [2155:
0b0011001110110111 = 0x33B7] [2156: 0b0011101101101100 = 0x3B6C] [2157: 55124
= 0b1101011101010100] [2158: 0o102644 = 0x85A4] [2159: 0o045443 = 0x4B23]
[2160: 0o074623 = 0b0111100110010011] [2161: 0b0100000001100101 = 0o040145]
[2162: 0b0001000100000111 = 0x1107] [2163: 0b111111111001 = 4089] [2164:
0o051535 = 0x535D] [2165: 45804 = 0b1011001011101100] [2166: 0o004072 =
2106] [2167: 0x7F2C = 32556] [2168: 0x8D61 = 36193] [2169: 0o376 = 254]
[2170: 0b0011011110100000 = 0o033640] [2197: 34696 = 0x8788] [2198: 0x2CA0 =
0o026240] [2199: 0x544D = 0o052115] [2200: 0xE9BD = 0o164675] [2201: 0x1259
= 0b0001001001011001] [2202: 0b1101100111010100 = 0o154724] [2203: 0o145765 =
52213] [2204: 0xD1A1 = 53665] [2205: 0x8974 = 0o104564] [2206: 3006 = 0x0BBE]
[2207: 0xEC55 = 0b1110110001010101] [2208: 0b1000000110010110 = 0o100626]
[2209: 0xBA05 = 47621] [2210: 0o051025 = 0b0101001000010101] [2211: 0x0937
= 2359] [2212: 0o055310 = 0x5AC8] [2213: 0b0101000000001111 = 0o050017]
[2214: 0o032364 = 13556] [2215: 0x2C49 = 11337] [2216: 0b1000011001101100 =
0x866C] [2217: 0b0111111011000111 = 0o077307] [2218: 46574 = 0o132756] [2219:
0b0110110111110010 = 0x6DF2] [2220: 0b1011101100110110 = 0xBB36] [2221: 30375
= 0o073247] [2222: 0xC352 = 0o141522] [2223: 0o006135 = 0x0C5D] [2224: 0x7CFA
= 0b0111110011111010] [2225: 0b0110101110110111 = 0o065667] [2226: 0o007704 =
0b111111000100] [2227: 0o062522 = 0b0110010101010010] [2228: 28409 = 0o067371]
Regular Expression Solutions
[19: aabc cabb zabd cabd aabb] [20: aaaaaa bbaabb] [21: file.txt fileatxt]
[40: cot cat cut] [41: beak bark bask book bulk bank buck back bunk balk]
[42: typing coming] [43: torn turn thin town twin teen] [44: fix tax max box
wax six fox mix] [95: simple little handle middle bottle purple candle circle]
[96: stove state style stone stale store stage stake] [97: short photo front
story phone floor about close] [98: pilot paint point plant print] [99: sister
farmer player mother worker driver father writer] [141: abzd abcd] [142: aaaaaa
bbaabb aaaaa aaaaaaa] [143: file.txt filetxt file] [161: seats soft spots shut
slot] [162: cake made face are same fade] [163: book bark bank black back block
break brick] [164: home dome come done rope vote bone zone] [165: ring king
sing wing thing] [198: cats city cute costs cite cloth] [199: man can rain barn
fan taken pain bacon] [200: read head send dead need end lead bend] [201: time
tree take the trade table three tie tribe] [202: books looks cook work took
hooks rocks oak] [230: aabb aab] [231: aaaaaa bbaabb aaaaa ababab aaaaaaa]
[232: file.txt filatxt file] [254: ale aple apple apppple ale appple] [255:
color colllor coor] [256: ook book bbook bbbook] [257: heo helo hello helllo
hellllo heo] [258: grn gren green greeen greeeen] [275: smile male mile mole
smale ssmile sssmile] [276: tea tree tee trek ten] [277: last fast past cast
mast vast east] [278: fire five fine ice fffire fife ire ide] [279: pant punt
ant pont ppant int] [325: aab aaab] [326: b bbb ab aabb] [327: ab aab aaabcdb]
[346: some same ssome ssame ssssome] [347: bend send friend tend wend blend]
[348: green grain grown grin gran griffin groan] [349: book bbook bbbook bok
boook booook] [350: red bed feed need ed speed reed led] [397: coat cart cut
coats cotton crafts cat cute cast] [398: cool pool ol fool tool] [399: help
hopp hip happ heapp hop heap hoop] [400: man men moon mean mn mann mnn main min]
[401: car far star barr carry cart start] [451: a+.b] [452: file.pdf file.txt
file.xls] [453: ..+ .. ..++. +. b..+] [473: a.b a.bb a.bbb a.bbbb] [474:
a+b x+y 123+456 +++ a++b] [475: .a. .test. … .abc. .+. .123.] [476: +a+ ++
+test+ +++ +123+ ++++] [477: a+b+ 1+2+ ++++ x+y+ m+n+] [513: .+ a.+b test.+
.+test ..++ x.+y] [514: +a+ +a++ +test+++ +x++++ ++++ +b+b+] [515: a.b. 1.2.
x.y. ….] [516: +. ++. +++. +.. ++.. +++..] [517: a++b x++y 1++2 ab++cd
test++end] [562: a b c] [563: a b c abc cba acbcabbca] [564: ac abc aec abdc]
[576: xat yat zat] [577: bat bet bot but bit] [578: 1.4 2.5 3.6 1x4 2+5] [579:
ax by cz ay bx cx az] [580: xmps ynqt ampx mnpq xnpy zmqr xmpq ynpr zmps] [626:
Hello hello Hallo hillo Hollo hullo Hxllo hyllo] [627: grab pleb stud club
slab clef flub] [628: party runny penny proxy rally pansy query] [629: 1+4 2+5
3+6] [630: a.x b.y c.z c.y] [676: color colour] [677: file files files] [678:
http https] [679: ‘Mr Smith’ ‘Mr. Smith’] [698: b ab abb abbb bb] [699: a b
ab aaa aaab aab] [700: cat ct catch cats caterpillar] [701: tests tess] [702:
prefix prefix prfix] [722: maybe mabe maybe maybe] [723: work ork] [724: hello
ello] [725: time ime] [726: name ame] [776: ab bc abbc bcab] [777: ‘Jason
is here?’ ‘Jason was here!’] [823: cat dog catdog dogcat catcatdog dogdogcat
catdogcat] [824: ab cd abcd cdab abab cdcdcd abcdab] [825: yes no yesno
noyes yesyesno nonono yesnono yesyes] [826: red blue redcar bluehouse red123
blue! redblue redhot] [827: up down lookup breakdown getup putdown updown
Regular Expression Solutions 426

backup] [845: na bana babana naaa] [846: ladi ladida laladi laladida ladidada
lalaladi laladidadada] [847: ‘go ahead’ ‘stop ahead’ ‘gogo ahead’ ‘stopstop
ahead’ ‘gostop ahead’ ‘stopgo ahead’ ‘gogogo ahead’] [848: ‘start and end’
‘start or end’ ‘start andor end’ ‘start orand end’ ‘start andandor end’ ‘start
oror end’] [897: ‘Mr Smith’ ‘Mrs. Smith’ ‘Ms Smith’ ‘Mr. Smith’ ‘Mrs Smith’
‘Ms. Smith’] [898: http://site.com https://secure.org https:// http://test
https://example] [899: color colour colors colours] [900: aluminium] [901:
gray grey ] [948: example.com www.example.com] [949: ‘Dr Smith’ ‘Prof. Jones’
‘Dr. Smith’ ‘Prof Jones’ ‘Prof. Smith’ ‘Dr Jones’] [950: ‘call maybe’ ‘call me
maybe’ ‘call later’ ‘call me later’] [951: start restart starting restarting]
[969: a ab aab aabb aaabb] [970: a aa aaa bb bbb bbbb] [1020: ab abc ca aa ccc]
[1021: 1. 12. 3. 21. 2. 13.] [1022: 123end abcend xyzend 12345end testend]
[1023: x xyz x12 y z1 xyza] [1024: ++ +++ ++++ ++abc +++a ++++bcac ++++cab]
[1068: ppx qqyz ‘rrabc xyz’ pr123x pqxyz rryyy ppqxy qrz] [1069: startend
‘start end’ startabcend start123end startxend startxxend] [1070: aa! eee! ‘ou
test!’ aeiou! ae123! iii…! oui!] [1071: 123-a 1234-abc 999-cab 111-bcac
1111-a] [1072: m12p nn123q mabp nxyzq mn12p nnnnp] [1087: 88 18 181] [1088:
‘88 mph’ ‘141 kph’] [1136: hello.WORLD test.ABC abc.XYZ a.B abc.X x.ABC] [1137:
12+ 123+abc 99+def 234+ 999+aaa 45+bcf 88+abcdef] [1138: abc xyz abcxyz azbycx
bxcyaz abxyz cxbza] [1139: Hello.123 A.999 Test.456 X.000 World.789 Z.001]
[1140: moon happy mm lamp ppm jump nnoop pompom] [1183: abc 1abc a 1a test 9word
2test] [1184: hello. Hello. test. Test. Word. abc.] [1185: 123 +123 1 +1]
[1186: Hello aHello Test bTest Word cWord] [1187: file.txt file1.txt file.txt
file0.txt file9.txt] [1204: abc ebc bc bcd idf abcd ebcdfg bcdfg] [1205: 1.5
.5 .123 0.0] [1206: [email protected] [email protected] [email protected] [email protected]
[email protected] [email protected]] [1207: test ’ test’ test1 ’ test1’] [1241: abcd
1234 abc123 abcdef 123456 ab12cd a1b2c3] [1242: 123. abc. 345. 012. bca.
555. aaa.] [1243: Test-123 ABC-99 test-456 xyz-789 abc-0 XYZ-12] [1244: abgh
12jkl xygmm ffhij zzmmaa 11g aagz bbmm12] [1245: pqr ++p++ rst +++tps ppp +q+]
[1277: ] [1278: ‘b 1’ ‘c 2’] [1297: 123.45 ‘123 . 45’ ‘123 . 45’ ‘123 .45’
999.99 ‘100 . 00’] [1298: ‘yes sir’ ‘no madam’ ‘no sir’ ‘yes sir’ ‘no madam’
‘yes madam’] [1299: ‘hello WORLD’ ‘test ABC xyz’ ‘a B’ ‘123 x Y 456’ ‘end START’
‘low HIGH’] [1333: ’ abc xyz ’ ‘a x’ ’ cba zyx ’ ’ aaa zzz ’ ‘abc xyz’ ’ b y ‘]
[1334: 1+2= ‘123 + 456 =’ ‘5 + 7 =’ ‘99 +99=’ ‘100+ 200 =’] [1335: func() ‘test
(123)’ call(a,b) ‘func ( )’ ‘CALL (abc)’ f()] [1336: ‘++ abc ++’ +++def+++ ‘++
a ++’ ‘+++ bcdef +++’ ‘++++ ef ++++’ ++a++] [1368: ‘hello world’ helloworld
hello world hello world] [1369: 1+2 ‘1 +2’ ‘1+ 2’ ‘1 + 2’ 12+34 ‘12 +34’ ‘12+
34’ ‘12 + 34’] [1370: test= ’ test=’ ‘test =’ ’ test =’ variable=] [1371:
function( ‘function (’ function (] [1390: if(test) ‘if (test)’ ’if(test) ’ ‘if
(test) ’ if(condition)] [1391: #tag ’ #tag’ ’#tag ’ ’ #tag ‘] [1392: 100% ‘50
%’ 25% 0% ‘100 %’ 99%] [1393: bold ’ bold’ ’bold ’ ’ bold ’ italic] [1436: ]
[1437: dGHJK3 aaBZ99] [1483: [email protected] [email protected] [email protected] [email protected]]
[1484: ‘Hello world123’ ‘A b2’ ‘TEST #99’ ‘H-e-l-l-o 9’ ‘CAPS lower8’ ‘Z
@5’] [1485: abc+def 123+456 test+case aaa+bbb word+word] [1486: ‘one two
three’ ‘a b c d’ ‘hello world !’ ‘test case here’ ‘1 2 3’ ‘x y z’ ‘this is
it’] [1538: ‘+abc+ = 123’ +x+=y ‘+test+ =result’ +123+=456 ‘+xyz+ = 999’ +++=+
‘+m+ = n’] [1539: http://site.com https://web.org ftp://files.net file://local
ssh://server mail://user abc://xyz] [1540: image.jpg photo.png pic.gif my-
pic.png photo.gif] [1541: func() test(123) ‘name (abc)’ 123() fn(x,y) call()]
[1557: 01 9 10 88] [1558: ‘01 mph’ ‘88 mph’ ‘141 kph’] [1602: 2024-03-15 99-
Regular Expression Solutions 427

12-31 24-01-01 9999-99-99 22-11-33] [1603: [email protected] [email protected]


xyz999@domain [email protected] [email protected]] [1604: ‘(123) 456-7890’ (555)123-4567
‘(999) 000-1111’ ‘(800) 555-1212’ (111)222-3333] [1605: v1.0 v2.3.4 v10.0.1
v99.99 v0.0.0] [1654: 123 23 12 999] [1655: $123.45 123.45 $99.99 99.99 $1.00
1.00] [1656: ‘+65 mph’ ‘65 mph’ +65mph 65mph] [1657: 12:34 1:23 0:00] [1658:
‘version 1.0’ version1.0 ‘version 1’ version1 version1] [1674: 100% 50.5%
25% 0.25% 100.0% 50%] [1675: ‘(123) 456-7890’ ‘123 456-7890’ (123)456-7890
123456-7890] [1676: 12/25/2023 12/25/23 12252023 1/1/2023 1/1/23 12/25] [1677:
#FF0000 FF0000 #123abc 123abc #ABCDEF ABCDEF] [1720: ‘2 + 3 =’ 10-5= ‘3 * 4
=’ 12/4= ‘99 * 11 =’ 7-2= ‘100 / 0 =’] [1721: ABC-12345 NY-9999 CA-123456
TX-000001 USA-99999] [1722: ‘10 apples 20 oranges’ ‘100 items 50 left’ ‘2 x 3
y’ ‘99 red 1 blue’ ‘1 cat 1 dog’] [1723: 192.168.1.1 10.0.0.1 255.255.255.255
999.999.999.999 1.2.3.4 0.0.0.0 256.1.1.1] [1774: a aa] [1775: ‘aa mph’ ‘b
mph’] [1788: ‘123a hello99’ ‘5x test456’ ‘999! code007’ ‘42z world123’ ‘1x
y2’ ‘0# data999’] [1789: [email protected] [email protected] [email protected] @domain.info
[email protected] [email protected] [email protected]] [1790: ‘hello123 world’ ‘test99 code’ ‘word12
end’ ‘xyz00 result’] [1791: ’ test 123 ’ hello456 ’ data007 ’ xyz123 ’ 456
’ ‘hello 123’] [1843: ‘123 abc 456’ 99test77 ‘5 hello 8’ 1-2 ‘42 world 99’
7x8 ‘100 end 200’ 123abc456 ‘9 test 1’ ‘111 + 222’] [1844: ‘hello world test’
‘abc xyz def’ ‘123 hello 456’ ‘word hello end’ ‘a b c’ ‘code secret data’
‘file hello world’ ‘123 abc 789’] [1845: ‘abc123def hello’ ‘test99 world’
‘(456) code’ ‘xyz789! data’ ‘123 test’ ‘hello99xyz end’ ‘!@#456$%^ file’
‘word123 result’] [1846: ’ hello123 ’ test99 ’ data007 ’ ab123 ’ testing999 ’
’code123 ‘] [1888: ‘123a hello’ ‘456 world’ ‘789! test’ ‘123 code’ ‘456x data’
‘789 end’ ‘456 world’] [1889: [email protected] [email protected]/ [email protected]
[email protected]/ [email protected]/path [email protected]/ [email protected] [email protected]/
[email protected]] [1890: ‘hello123 world’ test99world ‘word12 end’ ‘name456
file’ xyz00result hello123world abc456] [1891: ’ hello123 world’ test99world
‘word456 ’ ’ data007end’ ‘ab123 ’ ’ testing999 result’ ‘code123 test’ hello123
’test99 ’] [1909: consteval constexpr] [1910: a abc _ _123 a_1 _1] [1911:
float long double] [1958: 1aa1] [1959: <12></12> ] [2002: ‘hello hello’ ‘test
test’ ‘word word’ ‘test test’ ‘cat cat’ ‘same same’] [2003: 123-123 99-99 12-12
42-42 999-999] [2004: [email protected] [email protected] [email protected] [email protected]
[email protected] [email protected] [email protected] [email protected]] [2005: ’ hello 123 hello
’ ‘test 99 test’ ’ abc 456 abc ’ ‘word 0 word’ ‘test 99 test’ ’ xyz 789
xyz ’ ‘same 42 same’ ’ test 88 test ’] [2019: ‘123a 123a’ ‘99x 99x’ ‘42z
42z’ ‘1a 1a’ ‘42z 42z’ ‘5b 5b’ ‘99x 99x’] [2020: ABC.123.ABC XYZ.999.XYZ
TEST.456.TEST A.1.A TEST.999.TEST FILE.007.FILE XX.99.XX] [2021: ’ cat+dog =
catdog ’ abc+xyz=abcxyz ’ test+case = testcase ’ ‘hello+world = helloworld’
a+b=ab ’ x+y=xy ’] [2069: abcabc abc testtest test abcdef helloworld codecode
code datadata data] [2070: abcabc testtest testtesttest codecode codecodecode
datadata] [2071: abcabc abc testtest testtesttest abcdef helloworld codecode
codecodecode datadata data] [2072: xxyyy xxyy zzaa ppqq] [2120: abcabc abc]
[2121: ‘abc abc’ ‘test testtest’ ‘hello hellohello’ ‘code code’ ‘data datadata’
‘abc abc’ ‘test test’ ‘hello hello’ ‘code codecode’] [2122: abc=abc ‘test =
test’ hello=hello ‘code = code’ data=data word=word] [2123: ‘(abc) abc’ ‘test
testtest’ (hello) ‘code codecode’ data ‘(word) word’ ‘abc abcabc’ ‘(test)
test’ ‘hello hellohello’ (code)] [2134: 0x123 0xABCD 0xabc 0x999 0xDEADBEEF
0x0] [2135: 0b101 0b000 0b1111 0b0 0b1010101] [2136: 0o123 0o777 0o000 0o0
0o456] [2137: 123.456 0.99 3.14159 1.0 99.9 0.0] [2138: 0x123 0b101 0o777 456
Regular Expression Solutions 428

0xABC 0b010 0o123 999] [2188: 123 3.14 1e10 2.5e-3 99.9E+5 3.14e10 0.001 1e+10]
[2189: 0x123 456 3.14 0xABC 99.9 123 0.5 0xFF 789.123] [2190: $123 $99.99 456
123.45 $0.50 0.99 $1000] [2237: 2+3 ‘10 - 5’ 47 ‘12 / 3’] [2238: 1+2+3 10-52
47/2 12/3+1 ‘1 + 2 - 3’ 56/2 10-5+2 234 1+2*3] [2239: ++var count++ ++index
value++ ++counter total++] [2240: —var count— —index value— —counter total—]
Truth Table Solutions
[22: FFFFFFFFFFFFFFFT] [45: FTTTTTTTTTTTTTTT] [100: FFFFFFFT] [101:
FFFFFFFT] [102: FTTTTTTT] [103: FTTTTTTT] [144: FFFTFFFTFFFTTTTT] [166:
FFFFFTTTFTTTFTTT] [203: FFFFFFFFFFFTFTFT] [233: FFFTFFFTFFFTFTFT] [259:
FFFFFFFFFFFTFTFT] [280: FFFFFTTTFTTTFTTT] [328: FFTFFFFF] [353: TTFT] [354:
TTTF] [355: TF] [356: TF] [405: TTTF] [406: TTTF] [407: TFFF] [408:
TFFF] [457: TTTTTTTF] [458: TTTTTTTF] [497: TFFFFFFF] [498: TFFFFFFF]
[518: TTTTTFFF] [519: TTTTTFFF] [565: TTTFTFTF] [566: TTTFTFTF] [617:
TTTFTTTFTTTFFFFF] [641: TTTFTTTFTTTFFFFF] [688: TTTTTFFFTFFFTFFF] [717:
TTTTTFFFTFFFTFFF] [740: FTTT] [741: FTTT] [742: FFFT] [743: FFFT] [781:
FTFTFTTT] [782: FFFFFTTT] [834: FTTTTTFT] [835: FFFFFTTF] [855: TTFT]
[856: FTTF] [857: TTTF] [858: TFFF] [905: FFFTFTFF] [906: FFFTTTTF] [907:
FTTFTFTF] [908: FTTFTTTT] [956: FFFTFFFTFFFTTTTF] [1008: FFFTFFTFFTFFTFFF]
[1025: TFFT] [1026: FTTF] [1074: FFFTFTFTFTFTFFFT] [1127: FFFTFTFTTTTFTFTF]
[1143: TTFFFFFF] [1144: FFFT] [1201: FTTF] [1202: TFFTFTTF] [1239: FFFFTTTF]
[1240: TTTFFFFT] [1257: FTTT] [1258: TFFTTTFF] [1291: TTTFTFTF] [1292: TTFT]
[1330: FTFFTFTT] [1331: TFTFTTTT] [1361: TTTFTTFF] [1362: FTTTFFTF] [1381:
TTFT] [1382: TTTTTTTT] [1432: TFTTTTFT] [1433: FFFTFTFT] [1479: TTTF] [1480:
FTFF] [1500: FTTF] [1501: TTTF] [1547: TTTT] [1548: FFFT] [1592: TTTFTTTT]
[1593: TFTTTTTT] [1616: FTFTTFFT] [1617: TTFTFFTF] [1667: FFTT] [1668:
TTTTTTTF] [1718: FFTTFTFF] [1719: TTTTFFFF] [1739: FFFTTFFF] [1740: TFFF]
[1786: TTTT] [1787: FFTFFTTF] [1836: FFFFFTTF] [1837: TTTT] [1885: FFFTTFFT]
[1886: TTTFFTTF] [1907: FFTFTFFF] [1908: TFTT] [1956: TTTTTFFT] [1957: FFFF]
[2000: TFFF] [2001: TFFTTFTT] [2017: FFTFTFFF] [2018: FTTTTTTF] [2067: TTTF]
[2068: FTFTTFFF] [2118: FTFFFFFF] [2119: FTFT] [2132: FTTT] [2133: FTTT]
[2186: FTTF] [2187: FTFTFTTT] [2235: FFFFFFFT] [2236: FFFFFFTF]
Lisp Solutions
[23: 6] [24: 8] [86: 12] [87: 12] [88: 12] [89: 10] [145: 17] [146: 14]
[147: 10] [148: 15] [149: 25] [150: 12] [192: 1] [193: 8] [234: 8] [235: 12]
[236: 10] [237: 12] [238: 12] [239: 11] [240: 10] [241: 7] [272: 300] [273:
10] [274: 6] [329: 12] [330: 12] [331: 14] [332: 27] [391: 6] [392: 7] [393:
11] [394: 36] [395: 7] [396: 12] [459: (3)] [460: 1] [461: (2 4 6)] [499:
12] [500: 12] [501: 7] [502: (6 7 8)] [571: 3] [572: 3] [622: 12] [623: 9]
[624: 5] [625: 7] [689: 7] [690: 4] [691: 12] [692: (3 4 5)] [693: 2] [694:
12] [727: (5 6 7)] [728: (8 9 5)] [729: 15] [730: (10 30)] [787: 12] [788:
6] [789: 6] [790: 7] [849: 12] [850: 8] [851: (7 9)] [852: 4] [909: 42]
[971: 9] [972: 8] [973: 6] [974: 20] [1027: hello world done] [1028: working
30] [1089: computing b 8] [1090: 30] [1091: getting first 6] [1092: starting
15 finished] [1181: 28] [1182: 6] [1230: 6] [1231: 10] [1232: 11] [1233: 12]
[1276: 12] [1324: 12] [1325: 15] [1326: 11] [1327: 15] [1328: 12] [1329: 10]
[1363: 256] [1364: 60] [1365: 14] [1366: 3] [1426: False] [1427: True] [1487:
True] [1488: True] [1489: True] [1490: True] [1543: True] [1544: True] [1545:
True] [1606: True] [1607: True] [1608: True] [1661: True] [1662: True] [1733:
True] [1734: True] [1735: True] [1736: True] [1784: False checking False]
[1785: True validating False] [1847: 7] [1848: 5] [1903: 14] [1904: 10]
[1905: 12] [1960: 120] [1961: 81] [2013: 24] [2014: 36] [2015: 25] [2016:
64] [2073: 5] [2074: 30] [2075: 15] [2076: 3] [2130: 5 8] [2131: 1 2 105]
[2195: 1 4 20] [2196: 1 5 55]
Python Solutions
[25: 5] [26: 11] [35: 9] [36: 6] [37: 15] [38: 8] [39: 16] [90: 11] [91: 10]
[92: 17] [93: 13] [108: 82, 43] [109: 9, 6] [110: 3, 9, 81] [155: Result:
13] [156: Calculation: 20] [157: Total plus 5: 27] [158: Final: 38] [159:
Chain: 6 -> 9 -> 15 -> 19] [194: 14] [195: 10 + 6 = 16, then + 3 = 19] [196:
5->13->19->21] [197: 11, 15, 18, 20] [209: True False] [210: True False] [246:
True True] [247: True True] [248: True True True] [249: True True True] [265:
True] [266: True, False] [281: True True] [282: True False] [333: True True]
[334: False True False] [335: True True] [336: True True] [351: Jambo] [352:
World] [402: 1 3] [454: 13 Always: 10] [455: 18 Final: 16] [456: 14 Done:
14] [470: False: 11 End: 7] [471: 14] [472: Base: 13 18 Complete: 20] [503:
* * * * *] [504: 125] [555: Count: 0 Count: 1 Count: 3 Count: 6 Final: 11]
[556: Value: 10 Value: 11 High: 12 Value: 12] [573: Below: 0 Below: 1 Below:
3 Above: 7 Above: 11] [574: Enabled: 2 Enabled: 5 Enabled: 9 Enabled: 14
Total: 20] [575: On: 1 Off: 5 On: 6 Off: 12] [618: Hello 6 Jambo 6 Jambo 4
Hola 2] [642: 3 12 Final: 18] [643: 3 10] [695: 3 10 Final: 10] [696: 2 6 9]
[718: 3, 2, 1] [719: 2, 4, 3] [737: 5, 2, 9] [738: 15] [739: 2, 4, 9] [778:
10] [779: 3, 25] [780: 8, 8] [828: 5] [829: 42] [853: Result: 10] [854: 20]
[902: False checking False] [903: True validating False] [946: 9] [947: 25]
[967: 23] [968: 16] [1013: 12] [1014: 12] [1015: 72, 20] [1029: [3, 4, 5] 5]
[1081: 18] [1082: 10] [1128: 3 4 6] [1129: 8 19 32] [1130: 12 33] [1141: 2:
13 3: 15] [1142: 14] [1192: [2, 3, 4]] [1193: [4, 5, 6]] [1194: [12, 10, 8,
6]] [1234: [1, 2, 3, 4]] [1235: [0, 3, 6, 9, 12]] [1236: [5, 6, 7, 8]] [1237:
[1, 3, 5, 7, 9, 11]] [1238: [7, 8, 9, 10]] [1250: [1, 2, 3]] [1251: [2, 4,
6]] [1252: [3, 4, 5, 6, 7]] [1279: 5] [1280: [6, 7, 8, 9]] [1300: 12] [1301:
7] [1302: 4] [1337: [5, 6, 7]] [1338: 21] [1367: {point.x}, {point.y}] [1387:
5] [1388: 10, 20] [1389: 15, 3] [1434: Result: 8] [1435: Computation: 5]
[1481: 1] [1482: Inactive: 20] [1499: 112] [1546: 35, Lives: 2] [1591: (1,
2)] [1614: [2, 3, 4, 5] 14] [1615: 3] [1659: 18] [1660: Numbers: [2, 3, 4,
5, 6] Max: 6] [1678: 4] [1679: [7, 8, 9]] [1737: Count: 4] [1738: Result:
15] [1776: [3, 8, 2, 10]] [1777: [3, 4, 5]] [1792: [] [5, 7, 9, 11]] [1842:
[6, 9, 12] Result: 0] [1887: Items: [2, 3, 4, 5] 4, 14] [1906: Results: [6,
9, 12, 15] High values: 2] [1955: Raw: [0, 1, 2, 3, 4] Processed: [1, 3, 5,
7, 9] Subset: [3, 5]] [1967: Numbers: [4, 5, 6, 7, 8] Flags: [False, False,
True, True, True] True count: 3] [2008: Data: [7, 10] Active: True Result:
17] [2062: Original: [6, 8, 10] Processed: [6, 8, 11] Sum: 25] [2077: 1 1 2
1 2 3] [2125: 3 9 27] [2179: 24] [2180: 3 10] [2181: 21 25] [2192: 5] [2193:
3] [2194: 1] [2241: 3 8 21] [2242: 20 56 120]
Assembly Solutions
[27: 5] [28: 5, 4, 3] [50: 7, 8] [51: 14, 12] [52: 18, 19, 17] [53: 22,
24, 23, 22] [111: 8] [112: 8, 7, 6] [167: 30, 31] [168: 37, 35] [169: 41,
42, 40] [170: 45, 47, 46, 45] [211: 2] [212: 2, 1, 0] [250: 0, 1] [251:
2, 0] [252: 1, 2, 0] [253: 0, 2, 1, 0] [283: 5, 10, 0] [284: 9, 21, 1]
[285: 13, 32, 2] [286: 5, 41, 15] [342: 19, 3, 50, 20] [343: 62, 21, 7,
61] [344: 9, 26, 70, 4] [345: 81, 2, 28, 80] [403: 4, 11] [404: 4, 4]
[462: 16] [463: 24] [464: 25] [465: 19] [509: 10] [510: 30] [511: 24]
[512: 53] [567: 72] [568: 85] [569: 125] [570: 144] [619: 12] [620: 12]
[680: 16] [681: 17] [682: 15] [683: 81] [720: 7, 0b0111] [721: 15, 0b1111]
[774: 0b0100, 0b00100000] [775: 0b0101, 0b10100000] [830: 0b0110, 0b1100]
[831: 0b0011, 0b00110000] [832: 0b0101, 0b00010100] [833: 0b00100000] [895:
0b0100, 0b0000] [896: 0b0101, 0b0000] [952: 0b1100, 0b0110] [953: 0b00110000,
0b0011] [954: 0b00010100, 0b0101] [955: 0b0100] [1009: 0b0101, 0b0101] [1010:
0b00011000, 0b1100] [1011: 0b1100] [1012: 0b00010000] [1066: 0b1111, 0b1110]
[1067: 0b1101, 0b1100] [1125: 0b0100, 0b0011, 0b0000] [1126: 0b0011, 0b0101,
0b0001] [1145: 0b1100, 0b1010, 0b1000] [1146: 0b1111, 0b0111, 0b0111] [1147:
0b0000] [1148: 0b0000] [1208: 0b0100, 0b0011, 0b0111] [1209: 0b0011, 0b0101,
0b0111] [1253: 0b0100, 0b0010, 0b0110] [1254: 0b1000, 0b0101, 0b1101] [1255:
0b0111] [1256: 0b1011] [1293: 0b1111, 0b1111] [1294: 0b0100, 0b1100] [1295:
0b1010] [1296: 0b0100] [1339: 0b0100, 0b0011, 0b0111] [1340: 0b0011, 0b0101,
0b0110] [1383: 0b1100, 0b1010, 0b0110] [1384: 0b0110, 0b1001, 0b1111] [1385:
0b0001] [1386: 0b0110] [1438: 0b1101, 0b1000] [1439: 0b0100, 0b0101] [1440:
0b1101] [1441: 0b0001] [1497: 0b0101, 0b11111010] [1498: 0b0110, 0b11111001]
[1553: 0b1111, 0b11110000] [1554: 0b1010, 0b11110101] [1555: 0b1100] [1556:
0b11111000, 0b11111010] [1610: 0b0101, 0b1010] [1611: 0b0100, 0b11110011]
[1612: 0b11110000] [1613: 0b11111000] [1663: 100] [1664: 200] [1665: 0]
[1666: 177, 0] [1724: 30] [1725: 15] [1726: 0b0001, 0b0001] [1727: 60]
[1782: 6] [1783: 5] [1838: 25] [1839: 30] [1840: 50] [1841: 75] [1892: 35]
[1893: 65] [1894: 24] [1895: 5] [1953: 0] [1954: 6] [2006: 4] [2007: 7]
[2060: 10] [2061: 9] [2114: 3, 5] [2115: 20, 7] [2116: 5] [2117: 6] [2177:
0b1010] [2178: 15] [2229: 7] [2230: 11]
Math Solutions
[29: 0b0110] [30: 0b0111] [31: 0b1000] [32: 0b0101] [33: 0b0111] [34: 0b0101]
[113: 0b1111] [114: 0b1111] [115: 0b1111] [116: 0b1111] [214: 0b00010100]
[215: 0b00011000] [216: 0b00010010] [217: 0b00010110] [218: 0b00011010]
[219: 0b00011100] [291: 0b11111111] [292: 0b11111111] [293: 0b11111111]
[294: 0b11111111] [410: 0b11111111] [411: 0b11111111] [412: 0b11111111]
[413: 0b11111111] [414: 0b11111111] [415: 0b11111111] [520: 0b11111111]
[521: 0b11111111] [522: 0b11111111] [523: 0b11111111] [524: 0b11111111]
[525: 0b11111111] [635: 0x13] [636: 0x17] [637: 0x1B] [638: 0x10] [639:
0x0F] [640: 0x0F] [731: 0x0F] [732: 0x0F] [733: 0x0F] [734: 0x0F] [735:
0x10] [736: 0x10] [841: 0x60] [842: 0x8F] [843: 0xB1] [844: 0xCF] [961:
0xFF] [962: 0xFF] [963: 0xFF] [964: 0xFF] [965: 0xFF] [966: 0xFF] [1075:
0xFF] [1076: 0xFF] [1077: 0xFF] [1078: 0xFF] [1079: 0xFF] [1080: 0xFF]
[1195: 0o007] [1196: 0o010] [1197: 0o007] [1198: 0o007] [1199: 0o010] [1200:
0o011] [1285: 0o011] [1286: 0o011] [1287: 0o011] [1288: 0o007] [1289: 0o012]
[1290: 0o016] [1372: 0o061] [1373: 0o077] [1374: 0o121] [1375: 0o141] [1491:
0o107] [1492: 0o117] [1493: 0o107] [1494: 0o077] [1495: 0o107] [1496: 0o077]
[1598: 0o601] [1599: 0o001003] [1600: 0o001206] [1601: 0o001406] [1712:
0o777] [1713: 0o777] [1714: 0o777] [1715: 0o777] [1716: 0o777] [1717: 0o777]
[1829: 0o777] [1830: 0o777] [1831: 0o777] [1832: 0o777] [1833: 0o777] [1834:
0o777] [1948: 0b1111] [1949: 0b00101111] [1950: 0x10] [1951: 0x1F] [1952:
0b1111] [2054: 0x5F] [2055: 0x0F] [2056: 0b01110101] [2057: 0b00010000]
[2058: 0x3C] [2171: 0b01010010] [2172: 0x65] [2173: 0x6F] [2174: 0b01111111]
[2175: 0b10010101] [2176: 0xB0]
ASCII Solutions
[46: AGILE] [47: SPRINT] [48: RETROSPECTIVE] [49: MEETING] [104: SOURCE]
[105: CODE] [106: VERSION] [107: CONTROL] [151: DIGITAL] [152: FORENSICS]
[153: INCIDENT] [154: RESPONSE] [171: DIGITAL] [172: SIGNAL] [173:
PROCESSING] [174: UNIT] [204: CENTRAL] [205: PROCESSING] [206: UNIT] [207:
VIRTUAL] [208: MACHINE] [242: PROGRAMMING] [243: LANGUAGE] [244: SYNTAX] [245:
SEMANTICS] [267: WIRELESS] [268: COMMUNICATION] [269: BLUETOOTH] [270: WIFI]
[287: INTERNET] [288: PROTOCOL] [289: ADDRESS] [290: ROUTING] [338: OPEN]
[339: SOURCE] [340: SOFTWARE] [341: COMMUNITY] [387: MACHINE] [388: LEARNING]
[389: NEURAL] [390: NETWORKS] [446: DATA] [447: MINING] [448: BIG] [449:
DATA] [450: ANALYTICS] [466: PROGRAMMING] [467: CONTEST] [468: ALGORITHMIC]
[469: CHALLENGES] [505: EDGE] [506: COMPUTING] [507: INTERNET] [508: DEVICES]
[557: SOFTWARE] [558: DEVELOPMENT] [559: AGILE] [560: METHODOLOGY] [581:
INTERNET] [582: CENSORSHIP] [583: CIRCUMVENTION] [584: TOOLS] [631: NETWORK]
[632: PROTOCOLS] [633: PACKET] [634: SWITCHING] [684: ERROR] [685: HANDLING]
[686: EXCEPTION] [687: CATCHING] [713: QUANTUM] [714: COMPUTING] [715: QUBIT]
[716: ENTANGLEMENT] [744: DATA] [745: STRUCTURES] [746: ALGORITHMS] [747:
EFFICIENCY] [783: EMBEDDED] [784: FIRMWARE] [785: REAL] [786: TIME] [836:
ARTIFICIAL] [837: NEURAL] [838: NETWORK] [839: SIMULATION] [891: REGULAR]
[892: EXPRESSIONS] [893: CODER] [894: DECODER] [910: BIG] [911: DATA] [912:
DISTRIBUTED] [913: STORAGE] [957: VIRTUAL] [958: REALITY] [959: AUGMENTED]
[960: EXPERIENCE] [1016: MODERN] [1017: INTEGRATED] [1018: DEVELOPMENT]
[1019: ENVIRONMENT] [1062: SOFTWARE] [1063: LICENSING] [1064: OPEN] [1065:
COMPLIANCE] [1083: PARALLEL] [1084: COMPUTING] [1085: MULTITHREADING] [1086:
CONCURRENCY] [1131: GRAPHICS] [1132: PROCESSING] [1133: UNIT] [1134: SHADERS]
[1188: CYBERSECURITY] [1189: DATA] [1190: ENCRYPTION] [1191: PROTOCOLS]
[1210: CLOUD] [1211: COMPUTING] [1212: VIRTUAL] [1213: INFRASTRUCTURE]
[1246: VIRTUAL] [1247: MACHINE] [1248: HYPERVISOR] [1249: EMULATION] [1281:
DATABASE] [1282: MANAGEMENT] [1283: RELATIONAL] [1284: QUERIES] [1319:
REDUNDANT] [1320: ARRAY] [1321: OF] [1322: INDEPENDENT] [1323: DISKS] [1341:
OPERATING] [1342: SYSTEMS] [1343: KERNEL] [1344: SCHEDULER] [1376: HUMAN]
[1377: COMPUTER] [1378: INTERACTION] [1379: INTERFACE] [1428: INTERNET]
[1429: OF] [1430: THINGS] [1431: CONNECTIVITY] [1475: AUGMENTED] [1476:
REALITY] [1477: INTERACTIVE] [1478: SIMULATION] [1502: NETWORK] [1503:
SECURITY] [1504: FIREWALL] [1505: INTRUSION] [1549: USER] [1550: EXPERIENCE]
[1551: DESIGN] [1552: THINKING] [1594: DISTRIBUTED] [1595: SYSTEMS] [1596:
MICROSERVICES] [1597: ARCHITECTURE] [1650: ARTIFICIAL] [1651: INTELLIGENCE]
[1652: DEEP] [1653: LEARNING] [1669: VIRTUALIZATION] [1670: CONTAINER]
[1671: ORCHESTRATION] [1672: AUTOMATION] [1728: VIRTUAL] [1729: PRIVATE]
[1730: NETWORK] [1731: INTERNET] [1732: PROTOCOL] [1778: WELCOME] [1779:
TO] [1780: PROGRAMMER] [1781: PUZZLES] [1793: CRYPTOGRAPHIC] [1794: HASHING]
[1795: SECURE] [1796: ALGORITHMS] [1849: BLOCKCHAIN] [1850: DISTRIBUTED]
[1851: LEDGER] [1852: TECHNOLOGY] [1896: AMERICAN] [1897: STANDARD] [1898:
CODE] [1899: FOR] [1900: INFORMATION] [1901: INTERCHANGE] [1944: SYSTEM]
[1945: ADMINISTRATION] [1946: NETWORK] [1947: MONITORING] [1962: BINARY]
[1963: CODE] [1964: DIGITAL] [1965: LOGIC] [2009: OBJECT] [2010: ORIENTED]
ASCII Solutions 435

[2011: DESIGN] [2012: PATTERNS] [2063: SOFTWARE] [2064: TESTING] [2065: UNIT]
[2066: INTEGRATION] [2110: SOFTWARE] [2111: ARCHITECTURE] [2112: SERVICE]
[2113: ORIENTED] [2126: MOBILE] [2127: APPLICATION] [2128: RESPONSIVE] [2129:
DESIGN] [2182: COMPILE] [2183: TIME] [2184: OPTIMIZATION] [2185: TECHNIQUES]
[2231: COMPILER] [2232: DESIGN] [2233: PARSING] [2234: LEXING]
Supporters
Thank you to my Patreon Book Supporters: Aaron D. Marasco, Adam P Shield,
Alejandro Lucena, Alexander Roper, Ali Raein, Andrei Sebastian Cîmpean, Anton
Smyk, Ashley Gay, Bill Baker, Björn Fahller, Brendan Nolan, Clint Rajaniemi,
Cooper Healy, David C Black, David Poole, Drue Peters, Ewoud van Raamsdonk,
Fedor Alekseev, Florian Sommer, Gwendolyn Hunt, Ivan Pakhomov, Jaewon Jung,
Jakub Sanestrzik, Jeff Bakst, jimmy, Jonathan Watmough, Kedar Bhat, Kevin Stone,
Lars Ove Larsen, Luke Valenty, Magnus Westin, Marcin Zdun, Mark Guidarelli,
Martin Hammerchmidt, Matt Godbolt, Matthew Guidry, Michael Pearce, Michael
Pettit, michel morel, Mo Xiaoming, Namgoo Lee, Natalya Kochanova, Ólafur
Waage, Panos Gourgaris, Pi, Ralph Jeffrey Steinhagen, Reiner Eiteljoerge,
royaltrashfire, Samuel Egger, Sebastian Raaphorst, Sergii Lovygin, Silver,
Šimon Bařinka, Stefan Goetschi, Tim Butler, Tomasz Cwik, Volker Schwaberow,
Will Killian, William Hawkins, Y, Yacob Cohen-Arazi, Yang, Wenbo

You might also like