{"id":258,"date":"2026-07-22T12:36:49","date_gmt":"2026-07-22T12:36:49","guid":{"rendered":"https:\/\/knightongrange.co.uk\/portal\/?page_id=258"},"modified":"2026-07-30T00:33:18","modified_gmt":"2026-07-30T00:33:18","slug":"gcsecsj277","status":"publish","type":"page","link":"https:\/\/knightongrange.co.uk\/portal\/gcsecsj277\/","title":{"rendered":"GCSE Computer Science J277 Main Page"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n\/* ==========================================\n   KNIGHTON GRANGE RESOURCES PAGE\n========================================== *\/\n\n:root {\n  --kge-green: #001f18;\n  --kge-green-light: #063b30;\n  --kge-gold: #c5a059;\n  --kge-gold-light: #e5c98d;\n  --kge-text: #172238;\n  --kge-muted: #626a76;\n  --kge-border: #dedede;\n  --kge-background: #f7f6f2;\n  --kge-white: #ffffff;\n}\n\n.kge-resources-page,\n.kge-resources-page * {\n  box-sizing: border-box;\n}\n\n.kge-resources-page {\n  width: 100%;\n  margin: 0;\n  color: var(--kge-text);\n  background: var(--kge-background);\n  font-family: \"Montserrat\", Arial, sans-serif;\n}\n\n.kge-container {\n  width: min(1420px, calc(100% - 48px));\n  margin: 0 auto;\n}\n\n\n\/* HERO *\/\n\n.kge-resource-hero {\n  position: relative;\n  overflow: hidden;\n  padding: 48px 0 42px;\n  color: var(--kge-white);\n  background:\n    radial-gradient(circle at 78% 20%, rgba(197, 160, 89, 0.12), transparent 28%),\n    linear-gradient(135deg, #001f18 0%, #00382b 100%);\n}\n\n.kge-resource-hero .kge-container {\n  position: relative;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n\n.kge-hero-content {\n  position: relative;\n  z-index: 2;\n  max-width: 780px;\n}\n\n.kge-eyebrow {\n  display: block;\n  margin-bottom: 10px;\n  color: var(--kge-gold-light);\n  font-size: 12px;\n  font-weight: 700;\n  letter-spacing: 2px;\n}\n\n.kge-resource-hero h1 {\n  margin: 0 0 10px;\n  color: var(--kge-white);\n  font-size: clamp(40px, 5vw, 60px);\n  font-weight: 700;\n  line-height: 1.05;\n}\n\n.kge-resource-hero p {\n  max-width: 760px;\n  margin: 0;\n  color: rgba(255, 255, 255, 0.88);\n  font-size: 17px;\n  line-height: 1.7;\n}\n\n.kge-hero-mark {\n  position: absolute;\n  right: 35px;\n  color: rgba(229, 201, 141, 0.08);\n  font-family: Georgia, serif;\n  font-size: 150px;\n  font-weight: 700;\n  line-height: 1;\n}\n\n\n\/* MAIN *\/\n\n.kge-resource-main {\n  padding: 30px 0 50px;\n}\n\n\n\/* FILTERS *\/\n\n.kge-filter-bar {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 22px;\n  padding-bottom: 25px;\n  border-bottom: 1px solid var(--kge-border);\n}\n\n.kge-topic-filters {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n}\n\n.kge-filter {\n  min-height: 42px;\n  padding: 9px 17px;\n  border: 1px solid #d8c49c;\n  border-radius: 7px;\n  color: var(--kge-text);\n  background: var(--kge-white);\n  font-family: inherit;\n  font-size: 13px;\n  cursor: pointer;\n  transition: 0.2s ease;\n}\n\n.kge-filter:hover,\n.kge-filter.active {\n  border-color: var(--kge-green);\n  color: var(--kge-white);\n  background: var(--kge-green);\n}\n\n.kge-search-box {\n  display: flex;\n  align-items: center;\n  width: 280px;\n  min-width: 240px;\n  border: 1px solid var(--kge-border);\n  border-radius: 7px;\n  background: var(--kge-white);\n}\n\n.kge-search-box input {\n  width: 100%;\n  min-height: 42px;\n  padding: 10px 8px 10px 15px;\n  border: 0;\n  outline: 0;\n  color: var(--kge-text);\n  background: transparent;\n  font-family: inherit;\n}\n\n.kge-search-box span {\n  padding: 0 14px 0 6px;\n  font-size: 23px;\n}\n\n\n\/* TOPIC *\/\n\n.kge-topic-section {\n  padding-top: 25px;\n}\n\n.kge-topic-heading {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 25px;\n  margin-bottom: 22px;\n}\n\n.kge-topic-intro {\n  display: flex;\n  align-items: center;\n  gap: 15px;\n}\n\n.kge-topic-icon {\n  display: grid;\n  flex: 0 0 50px;\n  width: 50px;\n  height: 50px;\n  place-items: center;\n  border-radius: 50%;\n  color: var(--kge-gold-light);\n  background: var(--kge-green);\n  font-size: 24px;\n}\n\n.kge-title-row {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 12px;\n}\n\n.kge-title-row h2 {\n  margin: 0;\n  color: var(--kge-green);\n  font-size: 26px;\n  font-weight: 700;\n}\n\n.kge-lesson-count {\n  padding: 5px 11px;\n  border-radius: 20px;\n  color: #665735;\n  background: #eee8db;\n  font-size: 12px;\n  font-weight: 600;\n}\n\n.kge-topic-intro p {\n  margin: 5px 0 0;\n  color: var(--kge-muted);\n  font-size: 14px;\n}\n\n.kge-topic-download {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  min-height: 42px;\n  padding: 10px 18px;\n  border-radius: 6px;\n  color: var(--kge-white);\n  background: var(--kge-green);\n  font-size: 14px;\n  font-weight: 600;\n  text-decoration: none;\n  box-shadow: 0 5px 14px rgba(0, 31, 24, 0.14);\n}\n\n.kge-topic-download:hover {\n  color: var(--kge-white);\n  background: var(--kge-green-light);\n}\n\n\n\/* RESOURCE CARDS *\/\n\n.kge-resource-grid {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 16px;\n}\n\n.kge-resource-card {\n  display: flex;\n  min-height: 190px;\n  flex-direction: column;\n  justify-content: space-between;\n  overflow: hidden;\n  border: 1px solid var(--kge-border);\n  border-radius: 10px;\n  background: var(--kge-white);\n  box-shadow: 0 3px 12px rgba(11, 25, 21, 0.035);\n  transition:\n    transform 0.2s ease,\n    box-shadow 0.2s ease,\n    border-color 0.2s ease;\n}\n\n.kge-resource-card:hover {\n  transform: translateY(-3px);\n  border-color: rgba(197, 160, 89, 0.7);\n  box-shadow: 0 10px 25px rgba(11, 25, 21, 0.09);\n}\n\n.kge-card-top {\n  display: grid;\n  grid-template-columns: 52px 1fr 28px;\n  gap: 13px;\n  padding: 20px 18px;\n}\n\n.kge-lesson-number {\n  display: grid;\n  width: 48px;\n  height: 48px;\n  place-items: center;\n  border-radius: 50%;\n  color: var(--kge-white);\n  background: linear-gradient(145deg, #00382b, #001f18);\n  font-size: 13px;\n  font-weight: 700;\n}\n\n.kge-card-copy h3 {\n  margin: 1px 0 6px;\n  color: #10263b;\n  font-size: 17px;\n  font-weight: 700;\n  line-height: 1.3;\n}\n\n.kge-card-copy p {\n  margin: 0;\n  color: var(--kge-muted);\n  font-size: 13px;\n  line-height: 1.6;\n}\n\n.kge-bookmark {\n  width: 28px;\n  height: 30px;\n  padding: 0;\n  border: 0;\n  color: #6c737c;\n  background: transparent;\n  font-family: inherit;\n  font-size: 25px;\n  line-height: 1;\n  cursor: pointer;\n}\n\n.kge-bookmark.active {\n  color: var(--kge-gold);\n}\n\n.kge-card-bottom {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 15px;\n  padding: 13px 18px;\n  border-top: 1px solid #ededed;\n}\n\n.kge-card-meta {\n  display: flex;\n  flex-direction: column;\n  gap: 3px;\n  color: #555d67;\n  font-size: 11px;\n}\n\n.kge-view-button {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  min-height: 38px;\n  padding: 8px 14px;\n  border-radius: 5px;\n  color: var(--kge-white);\n  background: linear-gradient(135deg, #b4862f, #d0a84e);\n  font-size: 12px;\n  font-weight: 700;\n  text-decoration: none;\n  white-space: nowrap;\n}\n\n.kge-view-button:hover {\n  color: var(--kge-white);\n  background: linear-gradient(135deg, #a57824, #c49a3c);\n}\n\n\n\/* ASSESSMENT BANNER *\/\n\n.kge-assessment-banner {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 20px;\n  margin-top: 18px;\n  padding: 18px 20px;\n  border: 1px solid var(--kge-border);\n  border-radius: 10px;\n  background: linear-gradient(100deg, #f8f7f2, #ffffff);\n}\n\n.kge-assessment-content {\n  display: flex;\n  align-items: center;\n  gap: 14px;\n}\n\n.kge-assessment-icon {\n  display: grid;\n  flex: 0 0 46px;\n  width: 46px;\n  height: 46px;\n  place-items: center;\n  border-radius: 50%;\n  color: var(--kge-gold-light);\n  background: var(--kge-green);\n  font-weight: 700;\n}\n\n.kge-assessment-banner h3 {\n  margin: 0 0 3px;\n  color: #10263b;\n  font-size: 16px;\n}\n\n.kge-assessment-banner p {\n  margin: 0;\n  color: var(--kge-muted);\n  font-size: 13px;\n}\n\n.kge-outline-button {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  min-height: 40px;\n  padding: 8px 16px;\n  border: 1px solid var(--kge-green);\n  border-radius: 5px;\n  color: var(--kge-green);\n  background: transparent;\n  font-size: 13px;\n  font-weight: 700;\n  text-decoration: none;\n  white-space: nowrap;\n}\n\n.kge-outline-button:hover {\n  color: var(--kge-white);\n  background: var(--kge-green);\n}\n\n\n\/* HIDE EMPTY SEARCH RESULTS *\/\n\n.kge-resource-card.kge-hidden {\n  display: none;\n}\n\n\n\/* TABLET *\/\n\n@media (max-width: 1050px) {\n  .kge-resource-grid {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n  }\n\n  .kge-filter-bar {\n    align-items: stretch;\n    flex-direction: column;\n  }\n\n  .kge-search-box {\n    width: 100%;\n  }\n}\n\n\n\/* MOBILE *\/\n\n@media (max-width: 700px) {\n  .kge-container {\n    width: min(100% - 28px, 1420px);\n  }\n\n  .kge-resource-hero {\n    padding: 34px 0;\n  }\n\n  .kge-resource-hero h1 {\n    font-size: 40px;\n  }\n\n  .kge-resource-hero p {\n    font-size: 15px;\n  }\n\n  .kge-hero-mark {\n    display: none;\n  }\n\n  .kge-topic-filters {\n    flex-wrap: nowrap;\n    overflow-x: auto;\n    padding-bottom: 5px;\n  }\n\n  .kge-filter {\n    flex: 0 0 auto;\n  }\n\n  .kge-topic-heading {\n    align-items: flex-start;\n    flex-direction: column;\n  }\n\n  .kge-topic-download {\n    width: 100%;\n    justify-content: center;\n  }\n\n  .kge-resource-grid {\n    grid-template-columns: 1fr;\n  }\n\n  .kge-card-bottom {\n    align-items: stretch;\n    flex-direction: column;\n  }\n\n  .kge-view-button {\n    justify-content: center;\n  }\n\n  .kge-assessment-banner {\n    align-items: stretch;\n    flex-direction: column;\n  }\n\n  .kge-outline-button {\n    justify-content: center;\n  }\n}\n\n.kge-topic-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 10px;\n    min-height: 44px;\n    padding: 10px 18px;\n    border: 1px solid #c5a059;\n    border-radius: 7px;\n    color: #001f18;\n    background: #c5a059;\n    font-size: 12px;\n    font-weight: 700;\n    text-decoration: none;\n    transition:\n        background 0.2s ease,\n        color 0.2s ease,\n        border-color 0.2s ease,\n        transform 0.2s ease;\n}\n\n.kge-topic-button:hover {\n    color: #001f18;\n    background: #e5c98d;\n    border-color: #e5c98d;\n    text-decoration: none;\n    transform: translateY(-1px);\n}\n\n.kge-topic-button span {\n    color: #001f18;\n    font-size: 17px;\n}\n<\/style>\n\n<meta charset=\"UTF-8\">\n\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n<title>\nOCR GCSE Computer Science J277 Course\n<\/title>\n\n\n<style>\n\n\/* =========================================================\n   GLOBAL\n========================================================= *\/\n\n* {\n    box-sizing:border-box;\n}\n\n\nbody {\n    margin:0;\n    background:#f5f7f6;\n    font-family:\"Montserrat\", Arial, sans-serif;\n    color:#132c2a;\n}\n\n\n\/* =========================================================\n   DASHBOARD\n========================================================= *\/\n\n.kge-dashboard {\n    max-width:1600px;\n    margin:auto;\n    padding:40px;\n}\n\n\n\n\/* =========================================================\n   HEADER\n========================================================= *\/\n\n.kge-header {\n\n    background:linear-gradient(\n        135deg,\n        #001f18,\n        #00382b\n    );\n\n    border-radius:18px;\n\n    padding:45px;\n\n    display:flex;\n\n    justify-content:space-between;\n\n    align-items:center;\n\n    margin-bottom:35px;\n\n}\n\n\n.kge-title h1 {\n\n    margin:0 0 12px;\n\n    color:#e5c98d;\n\n    font-size:38px;\n\n}\n\n\n.kge-title p {\n\n    margin:0;\n\n    color:white;\n\n    opacity:.85;\n\n}\n\n\n\n\/* =========================================================\n   THREE COLUMN LAYOUT\n========================================================= *\/\n\n\/* =========================================================\n   MAIN THREE-COLUMN LAYOUT\n========================================================= *\/\n\n.kge-layout {\n    display: grid;\n    grid-template-columns:\n        clamp(210px, 16vw, 250px)\n        minmax(0, 1fr)\n        clamp(240px, 19vw, 300px);\n\n    grid-template-areas: \"sidebar content advert\";\n    gap: 25px;\n    align-items: start;\n}\n\n.kge-sidebar {\n    grid-area: sidebar;\n}\n\n.kge-content {\n    grid-area: content;\n    min-width: 0;\n}\n\n.kge-image-panel {\n    grid-area: advert;\n    width: 100%;\n    max-width: 300px;\n    justify-self: end;\n\n    background: white;\n    border-radius: 8px;\n    overflow: hidden;\n    border: 1px solid #d6e3dc;\n    box-shadow: 0 10px 25px rgba(0, 31, 24, 0.08);\n\n    position: sticky;\n    top: 60px;\n}\n\n.kge-image-panel img {\n    width: 100%;\n    height: auto;\n    aspect-ratio: 320 \/ 520;\n    object-fit: cover;\n    display: block;\n}\n\n\n\n\/* =========================================================\n   SIDEBAR\n========================================================= *\/\n\n.kge-sidebar {\n\n    background:linear-gradient(\n        160deg,\n        #00251c,\n        #003b2d\n    );\n\n    color:white;\n\n    padding:28px 22px;\n\n    border-radius:12px;\n\n    box-shadow:\n    0 10px 30px rgba(0,31,24,.18);\n\n    position:sticky;\n\n    top:60px;\n\n    height:max-content;\n\n}\n\n\n\n\/* COURSE NAVIGATION *\/\n\n.kge-sidebar h3 {\n\n    display:block !important;\n\n    color:#e5c98d !important;\n\n    font-size:22px;\n\n    font-weight:700;\n\n    margin-top:0;\n\n    visibility:visible;\n\n    opacity:1;\n\n}\n\n\n\n\/* =========================================================\n   SEARCH\n========================================================= *\/\n\n.kge-search {\n\n    width:100%;\n\n    position:relative;\n\n    margin-bottom:25px;\n\n}\n\n\n.kge-search input {\n\n    width:100%;\n\n    height:45px;\n\n    border-radius:8px;\n\n    border:none;\n\n    padding:0 45px 0 15px;\n\n    font-size:14px;\n\n    outline:none;\n\n}\n\n\n.kge-search span {\n\n    position:absolute;\n\n    right:15px;\n\n    top:50%;\n\n    transform:translateY(-50%);\n\n}\n\n\n\n\/* =========================================================\n   PAPER BUTTONS\n========================================================= *\/\n\n.kge-paper-buttons {\n\n    display:flex;\n\n    gap:10px;\n\n    margin-top:12px;\n\n}\n\n\n.paper-btn {\n\n    flex:1;\n\n    padding:12px;\n\n    border-radius:6px !important;\n\n    border:1px solid rgba(229,201,141,.4);\n\n    background:transparent;\n\n    color:white !important;\n\n    cursor:pointer;\n\n    font-weight:700;\n\n}\n\n\n.paper-btn.active {\n\n    background:#c8a052;\n\n    border-color:#c8a052;\n\n}\n\n\n\n\/* =========================================================\n   HELP BOX\n========================================================= *\/\n\n.kge-help {\n\n    margin-top:30px;\n\n    padding:18px;\n\n    border-radius:8px;\n\n    background:rgba(0,0,0,.15);\n\n    border:1px solid rgba(229,201,141,.35);\n\n}\n\n\n.kge-help h4 {\n\n    color:#e5c98d;\n\n}\n\n\n.kge-help p {\n\n    color:white;\n\n    line-height:1.6;\n\n}\n\n\n\n\/* =========================================================\n   IMAGE PANEL\n========================================================= *\/\n\n.kge-image-panel {\n\n    background:white;\n\n    border-radius:6px;\n\n    overflow:hidden;\n\n    border:1px solid #d6e3dc;\n\n    box-shadow:\n    0 10px 25px rgba(0,31,24,.08);\n\n    position:sticky;\n\n    top:60px;\n\n}\n\n\n.kge-image-panel img {\n\n    width:100%;\n\n    height:520px;\n\n    object-fit:cover;\n\n    display:block;\n\n}\n\n\n\n\/* =========================================================\n   PAPER HEADER\n========================================================= *\/\n\n.paper-heading {\n\n    display:flex;\n\n    justify-content:space-between;\n\n    align-items:center;\n\n    margin-bottom:25px;\n\n}\n\n\n.paper-heading h2 {\n\n    color:#062b24;\n\n}\n\n\n.expand-all {\n\n    background:#c8a052;\n\n    color:white;\n\n    border:none;\n\n    padding:12px 18px;\n\n    border-radius:6px;\n\n    cursor:pointer;\n\n}\n\n\n\n\/* =========================================================\n   TOPIC CARD\n========================================================= *\/\n\n.kge-topic {\n\n    background:white;\n\n    border-radius:6px;\n\n    overflow:hidden;\n\n    border:1px solid #d6e3dc;\n\n    margin-bottom:18px;\n\n    box-shadow:\n    0 4px 15px rgba(0,31,24,.06);\n\n}\n\n\n\n\/* =========================================================\n   TOPIC BUTTON\n========================================================= *\/\n\n.kge-topic-header {\n\n    width:100%;\n\n    padding:18px 22px;\n\n    border:none !important;\n\n    border-radius:6px !important;\n\n    background:linear-gradient(\n        135deg,\n        #dcebe3,\n        #edf5f1\n    );\n\n    color:#00382b !important;\n\n    display:flex;\n\n    justify-content:space-between;\n\n    align-items:center;\n\n    cursor:pointer;\n\n    font-weight:700;\n\n}\n\n\n.kge-topic-header:hover {\n\n    background:linear-gradient(\n        135deg,\n        #c3dbcf,\n        #d7e9df\n    );\n\n}\n\n\n.kge-topic-header.active {\n\n    background:linear-gradient(\n        135deg,\n        #b8d3c5,\n        #cee4d8\n    ) !important;\n\n}\n\n\n.kge-topic-header span {\n\n    color:#00382b !important;\n\n}\n\n\n.kge-topic-header span:last-child {\n\n    color:#52645f !important;\n\n}\n\n\n\n\/* =========================================================\n   LESSONS\n========================================================= *\/\n\n.kge-lessons {\n\n    display:none;\n\n}\n\n\n.lesson-item {\n\n    display:flex;\n\n    justify-content:space-between;\n\n    align-items:center;\n\n    padding:16px 22px;\n\n    border-bottom:1px solid #eeeeee;\n\n    text-decoration:none!important;\n\n    color:#132c2a;\n\n    font-weight:600;\n\n}\n\n\n.lesson-item:hover {\n\n    background:#fffaf1;\n\n    padding-left:28px;\n\n}\n\n\n.lesson-btn {\n\n    background:#c8a052;\n\n    color:white;\n\n    padding:8px 14px;\n\n    border-radius:6px;\n\n    font-size:12px;\n\n}\n\n\n\n\/* =========================================================\n   HIDDEN PAPERS\n========================================================= *\/\n\n.kge-paper-section.hidden {\n\n    display:none!important;\n\n}\n\n\n\n\/* =========================================================\n   RESPONSIVE\n========================================================= *\/\n\n\/* =========================================================\n   MEDIUM LAPTOPS\n========================================================= *\/\n\n@media (max-width: 1250px) {\n\n    .kge-dashboard {\n        padding: 25px;\n    }\n\n    .kge-layout {\n        grid-template-columns: 220px minmax(0, 1fr);\n        grid-template-areas:\n            \"sidebar content\"\n            \"sidebar advert\";\n\n        gap: 22px;\n    }\n\n    .kge-image-panel {\n        position: relative;\n        top: auto;\n\n        width: 280px;\n        max-width: 100%;\n        justify-self: end;\n        margin-top: 10px;\n    }\n}\n\n\n\n\/* =========================================================\n   TABLETS AND MOBILE\n========================================================= *\/\n\n@media (max-width: 900px) {\n\n    .kge-dashboard {\n        width: 100%;\n        max-width: 100%;\n        padding: 12px;\n        overflow-x: hidden;\n    }\n\n    .kge-header {\n        width: 100%;\n        padding: 25px 20px;\n        flex-direction: column;\n        align-items: flex-start;\n    }\n\n    .kge-title h1 {\n        font-size: 28px;\n        line-height: 1.2;\n    }\n\n    .kge-layout {\n        display: block;\n        width: 100%;\n    }\n\n    .kge-sidebar {\n        position: relative;\n        top: auto;\n        width: 100%;\n        max-width: 100%;\n        margin: 0 0 24px 0;\n        padding: 22px 18px;\n    }\n\n    .kge-content {\n        display: block;\n        width: 100%;\n        min-width: 0;\n    }\n\n    .kge-image-panel {\n        display: none !important;\n    }\n\n    .kge-search input {\n        width: 100%;\n        font-size: 16px;\n    }\n\n    .kge-paper-buttons {\n        width: 100%;\n    }\n\n    .paper-btn {\n        min-width: 0;\n        padding: 12px 8px;\n    }\n\n    .paper-heading {\n        flex-direction: column;\n        align-items: stretch;\n        gap: 15px;\n    }\n\n    .paper-heading h2 {\n        font-size: 23px;\n        line-height: 1.3;\n    }\n\n    .expand-all {\n        width: 100%;\n    }\n\n    .kge-topic-header {\n        gap: 15px;\n        text-align: left;\n    }\n\n    .kge-topic-header span:first-child {\n        flex: 1;\n        min-width: 0;\n    }\n\n    .kge-topic-header span:last-child {\n        flex-shrink: 0;\n        font-size: 12px;\n    }\n\n    .lesson-item {\n        flex-direction: column;\n        align-items: flex-start;\n        gap: 15px;\n    }\n\n    .lesson-btn {\n        width: 100%;\n        text-align: center;\n    }\n}\n\n\n<\/style>\n\n\n\n\n\n\n\n\n\n\n<div class=\"kge-dashboard\">\n\n\n\n<header class=\"kge-header\">\n\n\n<div class=\"kge-title\">\n\n<h1>\nOCR GCSE Computer Science (J277)\n<\/h1>\n\n\n<p>\nComplete course content organised by paper, topic and lesson.\n<\/p>\n\n\n<\/div>\n\n\n\n\n\n\n<\/header>\n\n\n\n\n\n<div class=\"kge-layout\">\n\n\n\n\n\n<aside class=\"kge-sidebar\">\n<div class=\"kge-search\">\n\n<input type=\"text\" id=\"lessonSearch\" placeholder=\"Search lessons, topics or keywords...\">\n\n\n<span>\n\ud83d\udd0d\n<\/span>\n\n\n<\/div>\n\n<h3>\nCourse Navigation\n<\/h3>\n\n\n\n\n\n\n\n\n<label>\nChoose Paper\n<\/label>\n\n\n<div class=\"kge-paper-buttons\">\n\n\n<button class=\"paper-btn active\" data-paper=\"paper1\">\n\nPaper 1\n\n<\/button>\n\n\n\n<button class=\"paper-btn\" data-paper=\"paper2\">\n\nPaper 2\n\n<\/button>\n\n\n<\/div>\n\n\n\n\n\n\n\n\n\n\n\n\n\n<div class=\"kge-help\">\n\n\n<h4>\n\ud83d\udca1 How to use\n<\/h4>\n\n\n<p>\nSelect a topic to reveal lessons.\nClick any lesson to open it.\n<\/p>\n\n\n<\/div>\n\n\n<\/aside>\n\n\n\n\n\n<main class=\"kge-content\">\n\n\n\n\n\n<section class=\"kge-paper-section\" data-paper=\"paper1\">\n\n\n\n\n\n<div class=\"paper-heading\">\n\n\n<h2>\nPaper 1: Computer Systems\n<\/h2>\n\n\n<button class=\"expand-all\">\n\nExpand All\n\n<\/button>\n\n\n<\/div>\n\n\n\n\n\n\n\n<!-- 1.1 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n\n<span>\n1.1 Systems Architecture\n<\/span>\n\n\n<span>\n3 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/1-1-1-architecture-of-the-cpu\/\" class=\"lesson-item\">\n\n<span>\n1.1.1 Architecture of the CPU\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-1-2-cpu-performance\/\" class=\"lesson-item\">\n\n<span>\n1.1.2 CPU Performance\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-1-3-embedded-systems\/\" class=\"lesson-item\">\n\n<span>\n1.1.3 Embedded Systems\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n\n\n<!-- 1.2 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n\n<span>\n1.2 Memory and Storage\n<\/span>\n\n\n<span>\n5 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/1-2-1-primary-storage\/\" class=\"lesson-item\">\n\n<span>\n1.2.1 Primary Storage\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-2-2-secondary-storage\/\" class=\"lesson-item\">\n\n<span>\n1.2.2 Secondary Storage\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-2-3-units-of-storage\/\" class=\"lesson-item\">\n\n<span>\n1.2.3 Units of Storage\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-2-4-binary-and-denary\/\" class=\"lesson-item\">\n\n<span>\n1.2.4 Binary and Denary\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-2-5-character-sets\/\" class=\"lesson-item\">\n\n<span>\n1.2.5 Character Sets\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n\n\n<!-- 1.3 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n\n<span>\n1.3 Computer Networks\n<\/span>\n\n\n<span>\n9 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/1-3-1-types-of-networks\/\" class=\"lesson-item\">\n\n<span>\n1.3.1 Types of Networks (LAN and WAN)\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-3-2-network-topologies\/\" class=\"lesson-item\">\n\n<span>\n1.3.2 Network Topologies\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-3-3-wired-and-wireless-networks\/\" class=\"lesson-item\">\n\n<span>\n1.3.3 Wired and Wireless Networks\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-3-4-network-hardware\/\" class=\"lesson-item\">\n\n<span>\n1.3.4 Network Hardware\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-3-5-network-protocols\/\" class=\"lesson-item\">\n\n<span>\n1.3.5 Network Protocols\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-3-6-tcp-ip\/\" class=\"lesson-item\">\n\n<span>\n1.3.6 TCP\/IP\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-3-7-the-internet\/\" class=\"lesson-item\">\n\n<span>\n1.3.7 The Internet\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-3-8-ip-addresses\/\" class=\"lesson-item\">\n\n<span>\n1.3.8 IP Addresses and MAC Addresses\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-3-9-dns\/\" class=\"lesson-item\">\n\n<span>\n1.3.9 Domain Name System (DNS)\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n<!-- 1.4 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n\n<span>\n1.4 Network Security\n<\/span>\n\n\n<span>\n2 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/1-4-1-network-threats\/\" class=\"lesson-item\">\n\n<span>\n1.4.1 Network Threats\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/1-4-2-network-security\/\" class=\"lesson-item\">\n\n<span>\n1.4.2 Network Security\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n\n<!-- 1.5 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n\n<span>\n1.5 Systems Software\n<\/span>\n\n\n<span>\n5 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n\n<div class=\"kge-lessons\">\n\n\n<a href=\"\/portal\/1-5-1-operating-systems\/\" class=\"lesson-item\">\n\n<span>\n1.5.1 Operating Systems\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-5-2-utility-software\/\" class=\"lesson-item\">\n\n<span>\n1.5.2 Utility Software\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-5-3-os-functions\/\" class=\"lesson-item\">\n\n<span>\n1.5.3 Operating System Functions\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-5-4-file-management\/\" class=\"lesson-item\">\n\n<span>\n1.5.4 File Management\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-5-5-security-utilities\/\" class=\"lesson-item\">\n\n<span>\n1.5.5 Security Utilities\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n<!-- 1.6 -->\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n<span>\n1.6 Ethical, Legal, Cultural and Environmental Impacts\n<\/span>\n\n\n<span>\n10 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/1-6-1-ethical-issues\/\" class=\"lesson-item\">\n\n<span>\n1.6.1 Ethical Issues\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-2-environmental-issues\/\" class=\"lesson-item\">\n\n<span>\n1.6.2 Environmental Issues\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-3-legal-issues\/\" class=\"lesson-item\">\n\n<span>\n1.6.3 Legal Issues\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-4-cultural-issues\/\" class=\"lesson-item\">\n\n<span>\n1.6.4 Cultural Issues\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-5-privacy\/\" class=\"lesson-item\">\n\n<span>\n1.6.5 Privacy Issues\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-6-cloud-computing\/\" class=\"lesson-item\">\n\n<span>\n1.6.6 Cloud Computing\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-7-open-source\/\" class=\"lesson-item\">\n\n<span>\n1.6.7 Open Source and Proprietary Software\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-8-software-licences\/\" class=\"lesson-item\">\n\n<span>\n1.6.8 Software Licences\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-9-emerging-technologies\/\" class=\"lesson-item\">\n\n<span>\n1.6.9 Emerging Technologies\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/1-6-10-review\/\" class=\"lesson-item\">\n\n<span>\n1.6.10 Topic Review\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n<\/section>\n\n\n\n\n\n<!-- ===========================\nPAPER 2\n=========================== -->\n\n\n<section class=\"kge-paper-section hidden\" data-paper=\"paper2\">\n\n\n\n<div class=\"paper-heading\">\n\n<h2>\nPaper 2: Computational Thinking, Algorithms and Programming\n<\/h2>\n\n\n<button class=\"expand-all\">\n\nExpand All\n\n<\/button>\n\n\n<\/div>\n\n\n\n\n\n\n<!-- 2.1 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n<span>\n2.1 Algorithms\n<\/span>\n\n\n<span>\n5 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/2-1-1-abstraction-and-decomposition\/\" class=\"lesson-item\">\n\n<span>\n2.1.1 Abstraction and Decomposition\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-1-2-algorithm-design\/\" class=\"lesson-item\">\n\n<span>\n2.1.2 Algorithm Design\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-1-3-searching-algorithms\/\" class=\"lesson-item\">\n\n<span>\n2.1.3 Searching Algorithms\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-1-4-sorting-algorithms\/\" class=\"lesson-item\">\n\n<span>\n2.1.4 Sorting Algorithms\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-1-5-algorithm-efficiency\/\" class=\"lesson-item\">\n\n<span>\n2.1.5 Algorithm Efficiency\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n\n\n<!-- 2.2 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n\n<span>\n2.2 Programming Fundamentals\n<\/span>\n\n\n<span>\n8 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/2-2-1-programming-concepts\/\" class=\"lesson-item\">\n\n<span>\n2.2.1 Programming Concepts\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-2-2-data-types\/\" class=\"lesson-item\">\n\n<span>\n2.2.2 Data Types\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-2-3-variables\/\" class=\"lesson-item\">\n\n<span>\n2.2.3 Variables and Constants\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-2-4-input-output\/\" class=\"lesson-item\">\n\n<span>\n2.2.4 Input, Output and Storage\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-2-5-operators\/\" class=\"lesson-item\">\n\n<span>\n2.2.5 Operators\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-2-6-selection\/\" class=\"lesson-item\">\n\n<span>\n2.2.6 Selection\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-2-7-iteration\/\" class=\"lesson-item\">\n\n<span>\n2.2.7 Iteration\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-2-8-arrays\/\" class=\"lesson-item\">\n\n<span>\n2.2.8 Arrays and String Handling\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n\n<\/div>\n\n\n\n\n\n\n<!-- 2.3 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n\n<span>\n2.3 Producing Robust Programs\n<\/span>\n\n\n<span>\n6 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/2-3-1-defensive-design\/\" class=\"lesson-item\">\n\n<span>\n2.3.1 Defensive Design\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-3-2-validation\/\" class=\"lesson-item\">\n\n<span>\n2.3.2 Validation\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-3-3-authentication\/\" class=\"lesson-item\">\n\n<span>\n2.3.3 Authentication\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-3-4-testing\/\" class=\"lesson-item\">\n\n<span>\n2.3.4 Testing\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-3-5-maintainability\/\" class=\"lesson-item\">\n\n<span>\n2.3.5 Maintainability\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-3-6-robust-programs\/\" class=\"lesson-item\">\n\n<span>\n2.3.6 Robust Program Development\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n<!-- 2.4 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n\n<span>\n2.4 Boolean Logic\n<\/span>\n\n\n<span>\n4 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/2-4-1-logic-gates\/\" class=\"lesson-item\">\n\n<span>\n2.4.1 Logic Gates\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-4-2-truth-tables\/\" class=\"lesson-item\">\n\n<span>\n2.4.2 Truth Tables\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-4-3-boolean-expressions\/\" class=\"lesson-item\">\n\n<span>\n2.4.3 Boolean Expressions\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-4-4-logic-circuits\/\" class=\"lesson-item\">\n\n<span>\n2.4.4 Logic Circuits\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n<!-- 2.5 -->\n\n\n<div class=\"kge-topic\">\n\n\n<button class=\"kge-topic-header\">\n\n<span>\n2.5 Programming Languages and IDEs\n<\/span>\n\n\n<span>\n6 Lessons \u25bc\n<\/span>\n\n\n<\/button>\n\n\n\n\n<div class=\"kge-lessons\">\n\n\n\n<a href=\"\/portal\/2-5-1-low-high-level-languages\/\" class=\"lesson-item\">\n\n<span>\n2.5.1 Low-Level and High-Level Languages\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<a href=\"\/portal\/2-5-2-assembly-language\/\" class=\"lesson-item\">\n\n<span>\n2.5.2 Assembly Language\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-5-3-translators\/\" class=\"lesson-item\">\n\n<span>\n2.5.3 Translators\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-5-4-compilers-interpreters\/\" class=\"lesson-item\">\n\n<span>\n2.5.4 Compilers and Interpreters\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-5-5-ides\/\" class=\"lesson-item\">\n\n<span>\n2.5.5 Integrated Development Environments (IDEs)\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n\n<a href=\"\/portal\/2-5-6-ide-features\/\" class=\"lesson-item\">\n\n<span>\n2.5.6 IDE Features\n<\/span>\n\n<span class=\"lesson-btn\">\nOpen Lesson \u2192\n<\/span>\n\n<\/a>\n\n\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n\n<\/section>\n\n\n\n\n\n<\/main>\n\n<aside class=\"kge-image-panel\">\n\n<img decoding=\"async\" src=\"https:\/\/knightongrange.co.uk\/portal\/wp-content\/uploads\/2026\/07\/advertimage.png\" alt=\"Course image\">\n\n<\/aside>\n\n<\/div>\n\n<\/div>\n\n\n\n\n\n\n<script>\n\n\ndocument.addEventListener(\n\"DOMContentLoaded\",\nfunction(){\n\n\n\n\n\/* =========================================\n   OPEN \/ CLOSE TOPICS\n========================================= *\/\n\n\nconst topics =\ndocument.querySelectorAll(\n\".kge-topic-header\"\n);\n\n\n\ntopics.forEach(\nfunction(button){\n\n\nbutton.addEventListener(\n\"click\",\nfunction(){\n\n\nconst lessons =\nbutton.nextElementSibling;\n\n\n\n\/* REMOVE ACTIVE FROM OTHER TOPICS *\/\n\ndocument\n.querySelectorAll(\n\".kge-topic-header\"\n)\n.forEach(\nfunction(item){\n\nitem.classList.remove(\"active\");\n\n});\n\n\n\ndocument\n.querySelectorAll(\n\".kge-lessons\"\n)\n.forEach(\nfunction(item){\n\nif(item !== lessons){\n\nitem.style.display=\"none\";\n\n}\n\n});\n\n\n\n\n\/* OPEN CURRENT *\/\n\nif(\nlessons.style.display === \"block\"\n)\n\n{\n\nlessons.style.display=\"none\";\n\nbutton.classList.remove(\"active\");\n\n}\n\nelse\n\n{\n\nlessons.style.display=\"block\";\n\nbutton.classList.add(\"active\");\n\n}\n\n\n\n});\n\n\n});\n\n\n\n\n\n\n\/* =========================================\n   PAPER SWITCHING\n========================================= *\/\n\n\nconst paperButtons =\ndocument.querySelectorAll(\n\".paper-btn\"\n);\n\n\n\nconst papers =\ndocument.querySelectorAll(\n\".kge-paper-section\"\n);\n\n\n\npaperButtons.forEach(\nfunction(button){\n\n\n\nbutton.addEventListener(\n\"click\",\nfunction(){\n\n\n\npaperButtons.forEach(\nfunction(btn){\n\nbtn.classList.remove(\n\"active\"\n);\n\n});\n\n\n\nbutton.classList.add(\n\"active\"\n);\n\n\n\n\n\nconst selected =\nbutton.dataset.paper;\n\n\n\n\npapers.forEach(\nfunction(paper){\n\n\n\nif(\npaper.dataset.paper === selected\n)\n\n{\n\npaper.classList.remove(\n\"hidden\"\n);\n\n}\n\nelse\n\n{\n\npaper.classList.add(\n\"hidden\"\n);\n\n}\n\n\n});\n\n\n\n});\n\n\n});\n\n\n\n\n\n\n\/* =========================================\n   EXPAND ALL\n========================================= *\/\n\n\nconst expandButtons =\ndocument.querySelectorAll(\n\".expand-all\"\n);\n\n\n\nexpandButtons.forEach(\nfunction(button){\n\n\n\nbutton.addEventListener(\n\"click\",\nfunction(){\n\n\n\nconst section =\nbutton.closest(\n\".kge-paper-section\"\n);\n\n\n\nconst lessons =\nsection.querySelectorAll(\n\".kge-lessons\"\n);\n\n\n\nlessons.forEach(\nfunction(item){\n\n\nitem.style.display=\"block\";\n\n\n});\n\n\n\n});\n\n\n});\n\n\n\n\n\n\n\n\/* =========================================\n   SEARCH\n========================================= *\/\n\n\nconst search =\ndocument.querySelector(\n\"#lessonSearch\"\n);\n\n\n\nsearch.addEventListener(\n\"input\",\nfunction(){\n\n\n\nconst value =\nsearch.value\n.toLowerCase()\n.trim();\n\n\n\n\nconst allLessons =\ndocument.querySelectorAll(\n\".lesson-item\"\n);\n\n\n\n\n\nallLessons.forEach(\nfunction(lesson){\n\n\n\nconst text =\nlesson.textContent\n.toLowerCase();\n\n\n\n\n\nif(\ntext.includes(value)\n)\n\n{\n\n\nlesson.style.display=\"flex\";\n\nlesson.closest(\n\".kge-topic\"\n)\n.style.display=\"block\";\n\n\n}\n\nelse\n\n{\n\n\nlesson.style.display=\"none\";\n\n\n}\n\n\n});\n\n\n\n\n\n\ndocument\n.querySelectorAll(\n\".kge-topic\"\n)\n.forEach(\nfunction(topic){\n\n\n\nconst visible =\ntopic.querySelectorAll(\n\".lesson-item:not([style*='display: none'])\"\n);\n\n\n\nif(\nvisible.length === 0\n&& value !== \"\"\n)\n\n{\n\ntopic.style.display=\"none\";\n\n}\n\nelse\n\n{\n\ntopic.style.display=\"block\";\n\n}\n\n\n\n});\n\n\n\n});\n\n\n});\n\n\n\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>OCR GCSE Computer Science J277 Course OCR GCSE Computer Science (J277) Complete course content organised by paper, topic and lesson. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pmpro_default_level":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-258","page","type-page","status-publish","hentry","pmpro-has-access"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/knightongrange.co.uk\/portal\/wp-json\/wp\/v2\/pages\/258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/knightongrange.co.uk\/portal\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/knightongrange.co.uk\/portal\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/knightongrange.co.uk\/portal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/knightongrange.co.uk\/portal\/wp-json\/wp\/v2\/comments?post=258"}],"version-history":[{"count":57,"href":"https:\/\/knightongrange.co.uk\/portal\/wp-json\/wp\/v2\/pages\/258\/revisions"}],"predecessor-version":[{"id":608,"href":"https:\/\/knightongrange.co.uk\/portal\/wp-json\/wp\/v2\/pages\/258\/revisions\/608"}],"wp:attachment":[{"href":"https:\/\/knightongrange.co.uk\/portal\/wp-json\/wp\/v2\/media?parent=258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}