{"id":2707,"date":"2025-09-13T09:34:16","date_gmt":"2025-09-13T09:34:16","guid":{"rendered":"https:\/\/comped.acm.org\/2025\/?page_id=2707"},"modified":"2025-10-20T04:30:05","modified_gmt":"2025-10-20T04:30:05","slug":"conference-schedule","status":"publish","type":"page","link":"https:\/\/comped.acm.org\/2025\/conference-schedule\/","title":{"rendered":"Conference Schedule"},"content":{"rendered":"\n<!doctype html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n  <title>ACM CompED 2025 \u2014 Programme<\/title>\n  <style>\n    :root{\n      --ink:#0f172a; --muted:#6b7280; --bg:#0b1020; --primary:#2563eb; --accent:#f59e0b; --card:#111827;\n      --ring:#93c5fd; --chip:rgba(255,255,255,.03);\n    }\n    *{ box-sizing:border-box }\n    body{\n      margin:0;\n      background:\n        radial-gradient(1200px 600px at 10% -10%, rgba(34,211,238,.12), transparent 40%),\n        radial-gradient(900px 500px at 110% 10%, rgba(99,102,241,.12), transparent 40%),\n        var(--bg);\n      color: var(--ink);\n      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\";\n    }\n\n    header{\n      display:flex; align-items:center; justify-content:space-between;\n      padding:24px clamp(16px, 4vw, 40px);\n    }\n    .brand{font-weight:800; letter-spacing:.5px; font-size:clamp(18px, 3vw, 24px)}\n    .subtitle{color:var(--muted); font-weight:600; font-size:clamp(12px, 2vw, 14px)}\n    .wrap{max-width:1100px; margin:0 auto; padding:0 clamp(16px, 4vw, 40px) 60px;}\n\n    \/* Day tabs *\/\n    .tabs{ display:flex; gap:10px; flex-wrap:wrap; margin:6px 0 20px; }\n    .tab{\n      border:1px solid rgba(255,255,255,.08); background:var(--chip); color:var(--ink);\n      padding:10px 14px; border-radius:999px; cursor:pointer; font-weight:600;\n      transition: transform .12s ease, border-color .12s ease, background .2s ease;\n    }\n    .tab:hover{ transform: translateY(-1px); }\n    .tab[aria-selected=\"true\"]{\n      outline: 3px solid var(--ring);\n      background: linear-gradient(135deg, #0ea5e9 0%, #22d3ee 50%, #60a5fa 100%);\n      color:#03141c; border-color:transparent;\n    }\n\n    \/* Day header & filters *\/\n    .daybar{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; justify-content:space-between; margin: 10px 0 18px; }\n    .dateTitle{ font-size: clamp(18px, 4vw, 28px); font-weight:800; letter-spacing:.4px; }\n    .controls{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }\n    .search{ background:#0b1220; border: 1px solid rgba(255,255,255,.08); color: var(--ink); border-radius: 12px; padding:10px 12px; width:min(320px, 60vw); }\n    .exportBtn{ border:1px solid rgba(255,255,255,.1); background: var(--chip); color:var(--ink); border-radius:12px; padding:10px 12px; cursor:pointer; font-weight:600; }\n\n    \/* Schedule grid *\/\n    .grid{ display:grid; grid-template-columns: 110px 1fr; gap:12px; }\n    @media (max-width:680px){ .grid{ grid-template-columns: 1fr; } .time{ order:0; } }\n\n    .row{ display:contents; }\n    .time{ color:var(--muted); font-weight:700; letter-spacing:.4px; padding-top:2px; }\n\n    .card{\n      position:relative; background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));\n      border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:14px 16px; overflow:hidden;\n    }\n    .card:before{ content:\"\"; position:absolute; inset:-2px; border-radius:18px; pointer-events:none; box-shadow: 0 0 0 0 rgba(34,211,238,0); transition: box-shadow .2s ease; }\n    .card:hover:before{ box-shadow:0 0 0 3px var(--ring); }\n    .title{ font-weight:800; font-size:clamp(14px, 2.6vw, 18px); margin:0 0 6px; }\n    .meta{ display:flex; gap:10px; flex-wrap:wrap; margin:4px 0 10px; }\n    .chip{ font-size:12px; padding:6px 10px; border-radius:999px; font-weight:700; background:rgba(34,211,238,.15); color:#86eaf6; border:1px solid rgba(255,255,255,.14); }\n    .desc{ color:#c7cad1; margin:0; line-height:1.45; }\n\n    footer{ color:var(--muted); text-align:center; margin-top:36px; font-size:12px; }\n\n    \/* Print current day nicely *\/\n    @media print{\n      body{ background:#fff; color:#000; }\n      .tabs, .controls button, .controls input, header .subtitle, footer{ display:none !important; }\n      .card{ border-color:#ccc; background:#fff; }\n      .chip{ border-color:#ddd; color:#000; background:#eee; }\n    }\n  <\/style>\n<\/head>\n<body>\n  <header>\n    <div>\n      <div class=\"brand\">ACM CompED 2025 \u2014 Programme<\/div>\n      <div class=\"subtitle\">Interactive Schedule (Oct 21\u201325)<\/div>\n    <\/div>\n  <\/header>\n\n  <main class=\"wrap\">\n    <!-- Day Tabs -->\n    <nav class=\"tabs\" role=\"tablist\" aria-label=\"Days\">\n      <button class=\"tab\" role=\"tab\" aria-selected=\"true\" data-day=\"tue\">Tue \u2022 Oct 21<\/button>\n      <button class=\"tab\" role=\"tab\" aria-selected=\"false\" data-day=\"wed\">Wed \u2022 Oct 22<\/button>\n      <button class=\"tab\" role=\"tab\" aria-selected=\"false\" data-day=\"thu\">Thu \u2022 Oct 23<\/button>\n      <button class=\"tab\" role=\"tab\" aria-selected=\"false\" data-day=\"fri\">Fri \u2022 Oct 24<\/button>\n      <button class=\"tab\" role=\"tab\" aria-selected=\"false\" data-day=\"sat\">Sat \u2022 Oct 25<\/button>\n    <\/nav>\n\n    <section class=\"daybar\">\n      <h2 class=\"dateTitle\" id=\"dateTitle\">Tuesday \u2022 21 Oct<\/h2>\n      <div class=\"controls\">\n        <input id=\"search\" class=\"search\" placeholder=\"Search sessions, e.g., Keynote, Working Group\u2026\"\/>\n        <button class=\"exportBtn\" id=\"print\">Print Day<\/button>\n      <\/div>\n    <\/section>\n\n    <!-- Schedule Grid -->\n    <div class=\"grid\" id=\"scheduleGrid\" aria-live=\"polite\"><\/div>\n\n    <footer>Tip: Click a day above to switch the view. Use search to filter.<\/footer>\n  <\/main>\n\n  <script>\n    \/\/ ---- Data model ---------------------------------------------------------\n    const PROGRAM = {\n      tue: {\n        label: 'Tuesday \u2022 21 Oct',\n        items: [\n          { time: '08:30 \u2013 17:00', title: 'Working Groups (All day)', track: 'Working Groups', desc: 'Collaborative, hands-on groups meet across the day to kick off projects and draft outputs.' }\n        ]\n      },\n      wed: {\n        label: 'Wednesday \u2022 22 Oct',\n        items: [\n          { time: '09:00 \u2013 17:00', title: 'Doctoral Consortium', track: 'DC' },\n          { time: '16:00 \u2013 18:00', title: 'Registration Desk Open', track: 'General' },\n          { time: '18:00 \u2013 20:00', title: 'Workshop\/Tutorial: Integrating Generative AI into Introductory CS Courses', track: 'Workshop' }\n        ]\n      },\n      thu: {\n        label: 'Thursday \u2022 23 Oct',\n        items: [\n          { time: '07:30 \u2013 17:00', title: 'Registration Desk Open', track: 'General' },\n          { time: '08:30 \u2013 09:30', title: 'Maru <br> Opening Address', track: 'General'},\n          { time: '09:30 \u2013 10:30', title: 'Maru<br> Keynote Address: Captain Kgomotso Phatsima', track: 'Keynote' },\n          { time: '10:30 \u2013 11:00', title: 'Tea Break & Posters', track: 'Break' },\n          { time: '11:00 \u2013 12:15', title: 'Parallel Sessions 1A \/ 1B \/ 1C (3 papers each)', track: 'Papers' },\n          { time: '12:15 \u2013 13:15', title: 'Lunch (& BoF)', track: 'Catering' },\n          { time: '13:15 \u2013 15:00', title: 'Parallel Sessions 2A \/ 2B (1 paper + 1 panel per room) (Paper 13:15\u201313:40, Panel 13:40\u201315:00)', track: 'Panel' },\n          { time: '15:00 \u2013 15:30', title: 'Tea Break & Posters', track: 'Break' },\n          { time: '15:30 \u2013 16:45', title: 'Parallel Sessions 3A \/ 3B \/ 3C (3 papers each)', track: 'Papers' },\n          { time: '18:00 \u2013 20:00', title: 'Ngwedi <br> Reception', track: 'Social' }\n        ]\n      },\n      fri: {\n        label: 'Friday \u2022 24 Oct',\n        items: [\n          { time: '08:00 \u2013 14:00', title: 'Registration Desk Open', track: 'General' },\n          { time: '08:30 \u2013 08:45', title: 'Maru <br> Announcements', track: 'General' },\n          { time: '08:45 \u2013 09:45', title: 'Maru <br> Keynote Address: Professor Jelani Nelson', track: 'Keynote' },\n          { time: '09:45 \u2013 10:30', title: 'Maru <br> Poster Lightning Talks', track: 'General' },\n          { time: '10:30 \u2013 11:00', title: 'Tea Break & Posters', track: 'Break' },\n          { time: '11:00 \u2013 12:15', title: 'Parallel Sessions 4A \/ 4B \/ 4C (9 papers total)', track: 'Papers' },\n          { time: '12:15 \u2013 13:15', title: 'Lunch (& BoF)', track: 'Catering' },\n          { time: '13:15 \u2013 14:05', title: 'Parallel Sessions 5A \/ 5B \/ 5C (2 papers \u00d7 3 rooms)', track: 'Papers' },\n          { time: '14:30 \u2013 22:00', title: 'Mokolodi Game Reserve \u2014 Game Drive, Traditional Dance & Dinner <strong style=\"color:#b91c1c;\">(Closed)<\/strong><br><em>Due to capacity limits, this is now closed. If you selected to attend the excursion during the registration process, you will receive a ticket when you arrive at CompEd.\u00a0 You must show this ticket to board the bus for the excursion. Check your email for more information!\u00a0 This is a 7.5-hour excursion.<\/em>', track: 'Social'}\n        ]\n      },\n      sat: {\n        label: 'Saturday \u2022 25 Oct',\n        items: [\n           { time: '08:00 \u2013 18:00', title: 'Registration Desk Open', track: 'General' },\n          { time: '08:30 \u2013 08:45', title: 'Maru <br> Announcements', track: 'General' },\n          { time: '08:45\u2013 09:15', title: 'Maru <br> DC Lighting talks', track: 'DC' },\n          { time: '09:15 \u2013 10:30', title: 'Parallel: 6A Papers (3 papers) \/ 6B Working Groups', track: 'Paper'},\n          { time: '10:30 \u2013 11:00', title: 'Tea Break & DC Posters', track: 'Posters' },\n          { time: '11:00 \u2013 12:15', title: 'Parallel: 7A Papers (3 papers) \/ 7B Working Groups', track: 'Papers' },\n          { time: '12:15 \u2013 13:00', title: 'Lunch (& BoF)', track: 'Catering' },\n          { time: '13:00 \u2013 15:00', title: 'Parallel Sessions 8A \/ 8B (1 paper + 1 panel per room)', track: 'Panel' },\n          { time: '15:00 \u2013 15:30', title: 'Tea Break & Posters', track: 'Break' },\n          { time: '15:30 \u2013 16:45', title: 'Parallel Sessions 9A \/ 9B (6 papers total across 2 rooms)', track: 'Papers' },\n          { time: '16:45 \u2013 17:15', title: 'Maru <br> Closing Address', track: 'General'}\n        ]\n      }\n    };\n\n    \/\/ ---- Render logic -------------------------------------------------------\n    const grid = document.getElementById('scheduleGrid');\n    const dateTitle = document.getElementById('dateTitle');\n    const tabs = document.querySelectorAll('.tab');\n    const search = document.getElementById('search');\n\n    let active = 'tue';\n\n    function rowHTML(item){\n      const tags = item.track ? `<span class=\"chip\">${item.track}<\/span>` : '';\n      const desc = item.desc ? `<p class=\"desc\">${item.desc}<\/p>` : '';\n      return `\n        <div class=\"row\">\n          <div class=\"time\">${item.time}<\/div>\n          <article class=\"card\">\n            <h3 class=\"title\">${item.title}<\/h3>\n            <div class=\"meta\">${tags}<\/div>\n            ${desc}\n          <\/article>\n        <\/div>`;\n    }\n\n    function render(){\n      const q = (search.value || '').toLowerCase().trim();\n      const day = PROGRAM[active];\n      dateTitle.textContent = day.label;\n      grid.innerHTML = day.items\n        .filter(it => !q || `${it.title} ${it.track||''}`.toLowerCase().includes(q))\n        .map(rowHTML).join('');\n    }\n\n    tabs.forEach(btn => btn.addEventListener('click', () => {\n      tabs.forEach(b=>b.setAttribute('aria-selected','false'));\n      btn.setAttribute('aria-selected','true');\n      active = btn.dataset.day;\n      render();\n      window.scrollTo({ top: document.querySelector('main').offsetTop - 16, behavior: 'smooth' });\n    }));\n\n    search.addEventListener('input', render);\n\n    \/\/ Print current day\n    document.getElementById('print').addEventListener('click', () => window.print());\n\n    \/\/ Initial render\n    render();\n  <\/script>\n<\/body>\n<\/html>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ACM CompED 2025 \u2014 Programme ACM CompED 2025 \u2014 Programme Interactive Schedule (Oct 21\u201325) Tue \u2022 Oct 21 Wed \u2022 Oct 22 Thu \u2022 Oct&hellip;<\/p>\n","protected":false},"author":12,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2707","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/comped.acm.org\/2025\/wp-json\/wp\/v2\/pages\/2707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/comped.acm.org\/2025\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/comped.acm.org\/2025\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/comped.acm.org\/2025\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/comped.acm.org\/2025\/wp-json\/wp\/v2\/comments?post=2707"}],"version-history":[{"count":41,"href":"https:\/\/comped.acm.org\/2025\/wp-json\/wp\/v2\/pages\/2707\/revisions"}],"predecessor-version":[{"id":2915,"href":"https:\/\/comped.acm.org\/2025\/wp-json\/wp\/v2\/pages\/2707\/revisions\/2915"}],"wp:attachment":[{"href":"https:\/\/comped.acm.org\/2025\/wp-json\/wp\/v2\/media?parent=2707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}