List of classes taught and ma­te­ri­als

1 Classes at Uni­ver­sity of Athens

K09 – Dis­crete Math

(Fall 2022)


In­tro­duc­tion to the fol­low­ing con­cepts: Sets, Math­e­mat­i­cal logic and iduc­tion, bi­nary re­la­tions, func­tions, com­bi­na­tions and per­mu­ta­tions, dis­crete prob­a­bil­ity dis­tri­b­u­tions, con­di­tional prob­a­bil­ity, in­de­pen­dent events, Bayes the­o­rem, as­ymp­totic be­hav­ior of arith­metic func­tions. Sem­i­nar ex­er­cises are given as well as a fi­nal test.

2 Classes at UW-Madi­son

CS 787 – Ad­vanced Al­go­rithms

(Spring 2022, Spring 2020, Fall 2019)


Ad­vanced par­a­digms for the de­sign and analy­sis of ef­fi­cient al­go­rithms, in­clud­ing the use of ran­dom­ness, lin­ear pro­gram­ming, and semi-def­i­nite pro­gram­ming. Ap­pli­ca­tions to data struc­tures, ap­prox­i­mat­ing NP-hard op­ti­miza­tion prob­lems, learn­ing, on-line and dis­trib­uted prob­lems.

CS 880 – Top­ics in Al­go­rith­mic Game The­ory and Ma­chine Learn­ing

(Spring 2019)


How to de­sign al­go­rithms when in­puts are given by strate­gic or ma­li­cious peo­ple and the out­puts af­fect them di­rectly? Top­ics in­clude: Con­cepts from Game The­ory Learn­ing Dy­nam­ics and Con­ver­gence in Games Mech­a­nism De­sign with­out money and So­cial Choice The­ory Mech­a­nism De­sign with Money Con­cepts from Learn­ing The­ory Op­ti­miza­tion from Sam­ples Learn­ing un­der Ad­ver­sar­ial or Strate­gic In­puts

CS 577 – In­tro­duc­tion to Al­go­rithms

(Spring 2021, Spring 2020, Fall 2018)


Ba­sic par­a­digms for the de­sign and analy­sis of ef­fi­cient al­go­rithms: greed, di­vide-and-con­quer, dy­namic pro­gram­ming, re­duc­tions, and the use of ran­dom­ness. Com­pu­ta­tional in­tractabil­ity in­clud­ing typ­i­cal NP-com­plete prob­lems and ways to deal with them.