2015–16 Detroit Titans men's basketball team

The 2015–16 Detroit Titans men's basketball team represented the University of Detroit Mercy during the 2015–16 NCAA Division I men's basketball season. Their head coach was Ray McCallum in his eighth season. The Titans played their home games at Calihan Hall and were members of the Horizon League. They finished the season 16–15, 9–9 in Horizon League play to finish in sixth place. They defeated Youngstown State in the first round of the Horizon League Tournament to advance to the second round where they lost to Wright State.

2015–16 Detroit Titans men's basketball
ConferenceHorizon League
2015–16 record16–15 (9–9 Horizon)
Head coachRay McCallum (8th season)
Assistant coaches
Home arenaCalihan Hall
2015–16 Horizon League men's basketball standings
Conf  Overall
TeamW L PCT  W L PCT
Valparaiso162 .889  307  .811
Oakland135 .722  2312  .657
Wright State135 .722  2213  .629
Green Bay117 .611  2313  .639
Milwaukee108 .556  2013  .606
Detroit99 .500  1615  .516
Youngstown State612 .333  1121  .344
Northern Kentucky*513 .278  921  .300
Cleveland State414 .222  923  .281
UIC315 .167  525  .167
* Ineligible for NCAA postseason during transition to Division I.
2016 Horizon League Tournament winner

On April 1, head coach Ray McCallum was fired.[1] He finished at Detroit with an eight-year record of 130–132.

Roster

2015–16 Detroit Titans men's basketball team
PlayersCoaches
Pos.#NameHeightWeightYearHometown
G/F 0 Chris Jenkins 6 ft 7 in (2.01 m)190 lb (86 kg) Jr Detroit, MI
G 1 Anton Wilson 6 ft 5 in (1.96 m)210 lb (95 kg) Sr Flint, MI
F 2 Jalen Gibson 6 ft 7 in (2.01 m)213 lb (97 kg) Fr Detroit, MI
G 4 Carlton Brundidge 6 ft 2 in (1.88 m)204 lb (93 kg) RS Sr Southfield, MI
PG 5 Matthew Grant 6 ft 0 in (1.83 m)177 lb (80 kg) Jr Los Angeles, CA
PG 11 Jarod Williams 6 ft 1 in (1.85 m)215 lb (98 kg) Jr Danville, VA
G 13 Patrick Robinson, Jr. 5 ft 11 in (1.8 m)170 lb (77 kg) Jr Brampton, ON
F 15 Aaron Foster-Smith 6 ft 7 in (2.01 m)220 lb (100 kg) RS Fr Taylor, MI
F 21 Jaleel Hogan 6 ft 6 in (1.98 m)240 lb (109 kg) So Saginaw, MI
G 23 Josh McFolley 6 ft 0 in (1.83 m)170 lb (77 kg) Fr Detroit, MI
F 25 Gerald Blackshear 6 ft 8 in (2.03 m)215 lb (98 kg) Fr Detroit, MI
G/F 35 Paris Bass 6 ft 8 in (2.03 m)200 lb (91 kg) RS So Birmingham, MI
Head coach
Assistant coach(es)

Legend
  • (C) Team captain
  • (S) Suspended
  • (I) Ineligible
  • (W) Walk-on

Roster
Last update: 2015–11–09

Schedule

[2]

Date
time, TV
Rank# Opponent# Result Record High points High rebounds High assists Site (attendance)
city, state
Regular season
Nov 16*
7:00 pm, ESPN3
Central State W 88–65  1–0
 17  McFolley  10  Blackshear  5  Brundidge  Calihan Hall (1,295)
Detroit, MI
Nov 20*
8:00 pm, ESPN3
at Pittsburgh L 79–95  1–1
 20  Wilson  7  Brundidge  4  Brundidge  Petersen Events Center (7,819)
Pittsburgh, PA
Nov 23*
7:00 pm, ESPN3
UM–Dearborn W 122–70  2–1
 25  Jenkins  9  Gibson  9  Brundidge  Calihan Hall (1,309)
Detroit, MI
Nov 28*
2:00 pm, ESPN3
at Oral Roberts L 95–100  2–2
 23  Brundidge  13  Jenkins  4  Wilson  Mabee Center (2,914)
Tulsa, OK
Dec 2*
8:00 pm, SECN Plus
at No. 16 Vanderbilt L 52–102  2–3
 14  Wilson  6  Blackshear  2  Williams  Memorial Gymnasium (9,958)
Nashville, TN
Dec 5*
3:00 pm, ESPN3
Northeastern W 76–73  3–3
 20  McFolley  6  Jenkins  3  Tied  Calihan Hall (1,733)
Detroit, MI
Dec 9*
7:30 pm, ESPN3
Toledo W 75–72  4–3
 17  Jenkins  11  Jenkins  3  3 Tied  Calihan Hall (1,523)
Detroit, MI
Dec 12*
1:00 pm, ESPN3
Bowling Green W 95–80  5–3
 25  Bass  10  Hogan  4  Williams  Calihan Hall (1,609)
Detroit, MI
Dec 19*
1:00 pm, ESPN3
Central Florida W 95–89  6–3
 26  Jenkins  10  Jenkins  3  Hogan  Calihan Hall (2,055)
Detroit, MI
Dec 22*
8:00 pm
at Western Kentucky L 74–79  6–4
 15  McFolley  8  Jenkins  5  Bass  E. A. Diddle Arena (3,031)
Bowling Green, KY
Dec 28*
7:00 pm, ESPN3
at Eastern Michigan L 73–88  6–5
 19  McFolley  10  Blackshear  4  Bass  Convocation Center (1,415)
Ypsilanti, MI
Horizon League regular season
Jan 2
3:00 pm, ESPN3/WADL
Youngstown State W 96–87  7–5
(1–0)
 34  Wilson  9  Wilson  5  Jenkins  Calihan Hall (1655)
Detroit, MI
Jan 4
7:30 pm, ESPN3
Cleveland State W 88–80  8–5
(2–0)
 28  Bass  13  Bass  6  McFolley  Calihan Hall (1,539)
Detroit, MI
Jan 8
7/9:00 pm, ESPNU
UIC W 87–69  9–5
(3–0)
 17  Bass  6  Blackshear  3  Brundidge  Calihan Hall (1,857)
Detroit, MI
Jan 10
1:05 pm, ASN/ESPN3
Valparaiso L 74–92  9–6
(3–1)
 23  Wilson  10  Bass  4  Jenkins  Calihan Hall (1,513)
Detroit, MI
Jan 16
3:00 pm, ESPN3/WADL
Oakland L 82–86  9–7
(3–2)
 20  Bass, Hogan  8  Bass, Hogan  6  Bass  Calihan Hall (6,125)
Detroit, MI
Jan 18
7:00 pm, ASN
at Wright State L 76–77  9–8
(3–3)
 28  Bass  6  Bass  4  McFolley  Nutter Center (3,733)
Dayton, OH
Jan 23
4:00 pm, ESPN3
at Milwaukee L 80–83  9–9
(3–4)
 20  Jenkins  8  Bass  3  Tied  UW–Milwaukee Panther Arena (3,107)
Milwaukee, WI
Jan 25
8:00 pm, ESPN3
at Green Bay L 108–115 OT 9–10
(3–5)
 25  Jenkins  8  Bass  3  3 Tied  Resch Center (2,469)
Green Bay, WI
Jan 29
7:00 pm, ESPN3/WADL
Northern Kentucky L 83–91  9–11
(3–6)
 17  Hogan  7  Hogan  3  Tied  Calihan Hall (2,025)
Detroit, MI
Jan 31
1:00 pm, ESPN3/WADL
Wright State W 75–68  10–11
(4–6)
 18  Wilson  5  Jenkins  4  McFolley  Calihan Hall (2,011)
Detroit, MI
Feb 4
7:30 pm, ESPN3
at Cleveland State W 71–63  11–11
(5–6)
 20  Jenkins  17  Bass  4  McFolley  Wolstein Center (1,577)
Cleveland, OH
Feb 6
7:05 pm
at Youngstown State W 94–92  12–11
(6–6)
 20  Bass  4  Bass/Blackshear/Brundidge/Jenkins  5  McFolley  Beeghly Center (3,516)
Youngstown, OH
Feb 11
7:30 pm, ESPN3/WADL
Green Bay L 85–86  12–12
(6–7)
 24  Bass  13  Bass  4  Wilson  Calihan Hall (2,311)
Detroit, MI
Feb 13
3:00 pm, ESPN3/WADL
Milwaukee W 80–66  13–12
(7–7)
 24  Bass  12  Brundidge  3  Bass/Williams/Wilson  Calihan Hall (3,259)
Detroit, MI
Feb 16
7:00 pm, ESPN3
at Northern Kentucky W 74–68  14–12
(8–7)
 24  Bass  12  Bass  5  McFolley  BB&T Arena (2,357)
Highland Heights, KY
Feb 19
8:00 pm, ESPN3
at UIC W 83–72  15–12
(9–7)
 22  Bass  11  Bass  7  Brudidge  UIC Pavilion 
Chicago, IL
Feb 21
2:30 pm, ESPN3
at Valparaiso W 90–74  15–13
(9–8)
 28  Bass  7  Bass  4  Brundidge  Athletics–Recreation Center (4,151)
Valparaiso, IN
Feb 26
9:00 pm, ESPNU
at Oakland L 97–108  15–14
(9–9)
 22  Jenkins  8  Hogan  6  Wilson  Athletics Center O'rena (4,114)
Auburn Hills, MI
Horizon League Tournament
Mar 5
7:30 pm, ESPN3
(6) vs. (7) Youngstown State
First round
W 92–79  16–14
 28  Brundidge  9  Brundidge  4  Wilson  Joe Louis Arena (5,247)
Detroit, MI
Mar 6
1:00 pm, ESPN3
(6) vs. (3) Wright State
Second round
L 72–82  16–15
 24  Bass  13  Bass  3  Wilson  Joe Louis Arena (4,792)
Detroit, MI
*Non-conference game. #Rankings from AP Poll. (#) Tournament seedings in parentheses.
All times are in Eastern Time.
gollark: I can come up with a thing to transmit ubqmachine™ details to osmarks.net or whatever which people can embed in their code.
gollark: It's an x86-64 system using debian or something.
gollark: > `import hashlib`Hashlib is still important!> `for entry, ubq323 in {**globals(), **__builtins__, **sys.__dict__, **locals(), CONSTANT: Entry()}.items():`Iterate over a bunch of things. I think only the builtins and globals are actually used.The stuff under here using `blake2s` stuff is actually written to be ridiculously unportable, to hinder analysis. This caused issues when trying to run it, so I had to hackily patch in the `/local` thing a few minutes before the deadline.> `for PyObject in gc.get_objects():`When I found out that you could iterate over all objects ever, this had to be incorporated somehow. This actually just looks for some random `os` function, and when it finds it loads the obfuscated code.> `F, G, H, I = typing(lookup[7]), typing(lookup[8]), __import__("functools"), lambda h, i, *a: F(G(h, i))`This is just a convoluted way to define `enumerate(range))` in one nice function.> `print(len(lookup), lookup[3], typing(lookup[3])) #`This is what actually loads the obfuscated stuff. I think.> `class int(typing(lookup[0])):`Here we subclass `complex`. `complex` is used for 2D coordinates within the thing, so I added some helper methods, such as `__iter__`, allowing unpacking of complex numbers into real and imaginary parts, `abs`, which generates a complex number a+ai, and `ℝ`, which provvides the floored real parts of two things.> `class Mаtrix:`This is where the magic happens. It actually uses unicode homoglyphs again, for purposes.> `self = typing("dab7d4733079c8be454e64192ce9d20a91571da25fc443249fc0be859b227e5d")`> `rows = gc`I forgot what exactly the `typing` call is looking up, but these aren't used for anything but making the fake type annotations work.> `def __init__(rows: self, self: rows):`This slightly nonidiomatic function simply initializes the matrix's internals from the 2D array used for inputs.> `if 1 > (typing(lookup[1]) in dir(self)):`A convoluted way to get whether something has `__iter__` or not.
gollark: If you guess randomly the chance of getting none right is 35%ish.
gollark: Anyway, going through #12 in order:> `import math, collections, random, gc, hashlib, sys, hashlib, smtplib, importlib, os.path, itertools, hashlib`> `import hashlib`We need some libraries to work with. Hashlib is very important, so to be sure we have hashlib we make sure to keep importing it.> `ℤ = int`> `ℝ = float`> `Row = "__iter__"`Create some aliases for int and float to make it mildly more obfuscated. `Row` is not used directly in anywhere significant.> `lookup = [...]`These are a bunch of hashes used to look up globals/objects. Some of them are not actually used. There is deliberately a comma missing, because of weird python string concattey things.```pythondef aes256(x, X): import hashlib A = bytearray() for Α, Ҙ in zip(x, hashlib.shake_128(X).digest(x.__len__())): A.append(Α ^ Ҙ) import zlib, marshal, hashlib exec(marshal.loads(zlib.decompress(A)))```Obviously, this is not actual AES-256. It is abusing SHAKE-128's variable length digests to implement what is almost certainly an awful stream cipher. The arbitrary-length hash of our key, X, is XORed with the data. Finally, the result of this is decompressed, loaded (as a marshalled function, which is extremely unportable bytecode I believe), and executed. This is only used to load one piece of obfuscated code, which I may explain later.> `class Entry(ℝ):`This is also only used once, in `typing` below. Its `__init__` function implements Rule 110 in a weird and vaguely golfy way involving some sets and bit manipulation. It inherits from float, but I don't think this does much.> `#raise SystemExit(0)`I did this while debugging the rule 110 but I thought it would be fun to leave it in.> `def typing(CONSTANT: __import__("urllib3")):`This is an obfuscated way to look up objects and load our obfuscated code.> `return getattr(Entry, CONSTANT)`I had significant performance problems, so this incorporates a cache. This was cooler™️ than dicts.

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.