# The Computer Science Department

On a tour of a nearby university, we went into the computer science department. I was fascinated by the courses they offered, of course, but there were weird grids displayed on screens along the hallways. Halfway along the tour, a student challenged me to find out what they represent.

Can you work it out?

Oh, and if it helps, there were a few ads displayed as well:

PDF with the 13 pictures in text form

(The story is entirely fictional)

Hints:
1.

The ads aren't necessary to solve the puzzle, but they will clarify the steps you need to make

• That's a lot of pictures hehe – dcfyj Nov 30 '16 at 20:59
• @dcfyj Maybe I should add the visual tag ;) – boboquack Nov 30 '16 at 21:02
• I was about to ask whether this is a true story - it sounded entirely plausible - and then I scrolled to the bottom ... – Rand al'Thor Nov 30 '16 at 21:19
• Any chance of getting a text transcription of the grids? – GentlePurpleRain Nov 30 '16 at 22:12
• @GentlePurpleRain Done! At the bottom is a link to a PDF. – boboquack Dec 1 '16 at 0:00

Using Jonathan Allan's results, I suspect the final answer to be

INFORMATICS

How I reached this:

Every keyword Jonathan found should be used as a mask on the corresponding tile, and tiles are ordered according to the numbers which were also decoded by Jonathan. The original color of cells is not needed anymore, only the characters themselves are relevant from now on.

So here's how to decode each tile, but let me skip tile number 0 for a short moment, as it seems to have some anomaly - maybe my understanding is not yet perfect. EDIT: see below for updates.

Tile number 1 has the keyword 'oddness'. This suggests characters with an odd number as their ASCII code should be masked:

Looks like a letter N.

Tile number 2 - 'fourset' - character should me masked if its ASCII code has exactly 4 digits of 1 in its binary representation, or if the character itself is the number 4:

Letter F.

Tile number 3 - 'ispower' - character should me masked if its ASCII code is a power (with exponent greater than one) of a prime number - letter O.

Tile number 4 - 'rbshift' - character should me masked if its ASCII code and one of its neighbouring characters' ASCII code are in a right-bit-shift relation (that's an integer division by 2) - letter M.

Tile number 5 - 'alphnum' - character should me masked if it is alphanumeric - letter A.

Tile number 6 - let me skip this one for a while.

Tile number 7 - 'sixfact' - character should me masked if its ASCII code has exactly 6 different integer divisors - letter I.

Tile number 8 - 'divfour' - character should me masked if its ASCII code is divisible by 4 - letter C.

Tile number 9 - 'sqrfree' - character should me masked if its ASCII code is not divisible with any square number (except 1) - letter S.

So far we have letters: _NFOMA_ICS. Let's get back to tiles 0 and 6.

Tile number 0 - 'collatz' - I think it means character should me masked if its ASCII code and one of its neighbouring characters' ASCII code are consecutive elements of a Collatz-sequence, however the results are a littly bit dirty here:
It's almost a letter I, but the upper right part is missing. There are also some additional black cells on the left side, which might be a result of unintentional match between 68/2=34, or my interpretation is imperfect.

Tile number 6 - 'isprime' - I think it means character should me masked if its ASCII code is a prime number, but this one is dirty too:
It could be a letter T if there weren't those two extra black cells on the left side. A fault in my interpretation or in the puzzle generating process, maybe.

Anyway, I'll go with I and T as best guesses for these two, resulting in the final solution INFOMATICS - which again, seems to be missing an R. But maybe that's a proper english word - I've never heard it, but I'm not a native speaker. Or is this a reference to programming language R, and that it should be skipped because python is superior according to the posters?

EDIT: Tiles number 0 and 6 have been corrected, and now clearly say I and T, respectively. Also, tile number 3 has been updated, and instead of a single letter O, there are two letters now on it: O and R. I wasn't completely right about its masking though, as it seems, it's not only prime number's powers which should be masked, any integer to the power of at least two should be masked in the ASCII codes.

With all these modifications the solution is clearly: INFORMATICS.

• SQRFREE should mean it has no square factors > 1? – greenturtle3141 Dec 9 '16 at 3:13
• @greenturtle3141 yeah, that's another way to phrase the same criteria. – elias Dec 9 '16 at 7:38
• My fault with your problems. See my edit: I've fixed up some of the mistakes. I've accepted your answer because it's correct, but still try to decipher the 2 ads you haven't used. You should be able to finish the last 2, now, and be aware that I have changed the 3rd picture (in the post). – boboquack Dec 10 '16 at 6:18
• Thanks, @boboquack, I've seen and solved your updates, and will update my answer. No idea about the ads yet though. – elias Dec 10 '16 at 13:03
• To decipher the ads retrospectively, you'll need to think about some steps that were done that were perhaps not completely obvious. The graphing ad was to help with the snake, but what other things did you or Jonathan have to partially guess? – boboquack Dec 10 '16 at 22:13

I'm not convinced this is the final solution (since it does not seem to use all the poster information):

All of the ASCII range (except the space character) has been used across the grids, hinting to us to look at ASCII.
The black and white grids are each $7$ by $7$, and $7$ is the number of bits in an ASCII code point, so they could each be read as $7$ characters.
Letters of the English alphabet (upper or lower) all have code points greater than $63$ and hence have a $1$ as their most significant bit (the leftmost in standard notation).
If we scan the black and white "pixels" as if we were following an overlaid plot of the function from the Introduction to Graphing course poster from its left to its right, we would read the first column of pixels from top to bottom, the second column from bottom to top, and so on, and each resulting $7$ bit long string would start with a black pixel.
Treating black as $1$ and white as $0$ and reading each as ASCII we then find ten "function names":

iSPrIMe
fOUrsEt
iSPowER
cOLlatz
aLPhNuM
sQRFreE
oDDnesS
dIVFour
sIXfACT
rBShIft
If we then treat capitals as $1$ and lowercase as $0$ and translate the results to ASCII:
iSPrIMe  0110110  '6'
fOUrsEt  0110010  '2'
iSPowER  0110011  '3'
cOLlatz  0110000  '0'
aLPhNuM  0110101  '5'
sQRFreE  0111001  '9'
oDDnesS  0110001  '1'
dIVFour  0111000  '8'
sIXfACT  0110111  '7'
rBShIft  0110100  '4'
...then we have found all ten decimal digits $[0,9]$ as characters.

• Nice! I guess this suggests in which order to use the tiles when reading their remaining information. – elias Dec 8 '16 at 17:23
• Correct so far! Now you need to use that information to do something else... – boboquack Dec 8 '16 at 19:26

My observations and guesses, as well as (hopefully) time saving information.

The 3-letter characters are the ascii names for certain commands. Here is a list of all the ones I can find and their control shortcuts. All Ascii Special characters Black DC1- XON, with XOFF to pause listings; ":okay to send" - ^Q
RS - Record separator, block-mode terminator - ^^
ETX - End of text - ^C
ESC - Escape, next character is not echoed - ^[
ETB - End transmission block, not the same as EOT - ^W
US - Unit separator - ^_
BEL - Bell, rings the bell… - ^G
% - Modulo
ENQ - Enquiry, goes with ACK; old HP flow control - ^E
NUL - Null Character - ^@
NAK - Negative acknowledge - ^U
VT - Vertical tab - ^K
EOT - End of transmission, not the same as ETB - ^D
ACK - Acknowledge, clears ENQ logon hand - ^F
DC3 - XOFF, with XON is TERM=18 flow control - ^S
SYN - Synchronous idle - ^V
CR - Carriage Return - ^M
EM - End of medium, Control-Y interrupt - ^Y
DC2 - Device control 2, block-mode flow control - ^R
FF - Form Feed, page eject - ^L
SOH -Start of heading, = console interrupt - ^A
DC4 - Device control 4 -^T
DLE - Data link escape - ^P
BS - Backspace, works on HP terminals/computers - ^H
CAN - Cancel line, MPE echoes !!! - ^X
FS - File separator - ^\
STX - Start of text, maintenance mode on HP console - ^B
SO - Shift Out, alternate character set - ^N

And:

White Exclusive Characters LF - Line Feed - ^J
SUB - Substitute - ^Z
SI - Shift In, resume default character set - ^O

Guesses:

Assuming that SO and SI do mean to change character set, what is this alternate set? Does the use of SO in black, and SI in white indicate that we should follow ones instructions, blacks, first, then white's? Do we use the letters in the control keys as a guide for substitution?
Also, note that there are codes for 4 different input devices. Do they each have their own code or set of instructions?

Python Image Code:

m+=n means to take m, and increment it by n
x**2, means x squared
a**3, means a cubed
t**-1, means 1/t
l[i], means the i-1th item or letter in l, as positions start from zero in python.
Might they be instructions?

Intro Graphing:

Assuming that x is a set of 0 to 7 means for x from 0 to 7, the graph looks like this: with peaks of 7 high.

• In the Python code, it is not relevant to solving the puzzle, but it is the i+1th letter or item, not the i-1th. – boboquack Dec 1 '16 at 5:34

For family trees puzzle

It may represent the linked list concept, i.e they are announcing that linked list courses are to be starting soon.

• No, but good try – boboquack Dec 2 '16 at 19:54
• Oh then it may be trees concept... Is it so?? – Badri Narayanan Dec 10 '16 at 3:48
• It specifically relates to the solving of the puzzle, not just a concept. – boboquack Dec 10 '16 at 5:37

Some observations:

Each grid is 7x7 and contains a representation of one ASCII character in each cell, the colouring suggests a binary code, and 7 bits are exactly sufficient to encode ASCII.

Perhaps the code is some sort of Viginere variant of XOR cypher keyed by the binary code?

• The encoding is straight, if you can work out how… check the other answers and you might find something helpful. – boboquack Dec 4 '16 at 1:44