├── .prettierignore
├── src
├── components
│ ├── Logo
│ │ ├── index.js
│ │ ├── Logo.js
│ │ └── Logo.css
│ ├── Courses
│ │ ├── index.js
│ │ ├── Courses.css
│ │ └── Courses.js
│ ├── Pagination
│ │ ├── index.js
│ │ ├── Pagination.css
│ │ └── Pagination.js
│ ├── Schedule
│ │ ├── Cell
│ │ │ ├── index.js
│ │ │ └── Cell.js
│ │ ├── index.js
│ │ ├── Schedule.css
│ │ └── Schedule.js
│ ├── CourseSelector
│ │ ├── index.js
│ │ └── CourseSelector.js
│ ├── SemesterSelector
│ │ ├── index.js
│ │ └── SemesterSelector.js
│ └── InstructorSelector
│ │ ├── index.js
│ │ ├── InstructorSelector.css
│ │ └── InstructorSelector.js
├── constants
│ ├── days.js
│ ├── colors.js
│ ├── hours.js
│ └── theme.js
├── guide
│ ├── index.js
│ └── steps.js
├── index.js
├── schedule.js
├── App.css
├── serviceWorker.js
└── App.js
├── .firebaserc
├── public
├── robots.txt
├── icons
│ ├── cup.png
│ ├── bilkent-128x128.png
│ ├── bilkent-144x144.png
│ ├── bilkent-152x152.png
│ ├── bilkent-192x192.png
│ ├── bilkent-384x384.png
│ ├── bilkent-512x512.png
│ ├── bilkent-72x72.png
│ └── bilkent-96x96.png
├── manifest.json
├── index.html
└── data
│ ├── departments.json
│ ├── semesters.json
│ └── offerings
│ ├── 20013.json
│ ├── 20003.json
│ ├── 20023.json
│ ├── 20223.json
│ ├── 20243.json
│ └── 20213.json
├── scraper
├── index.js
├── main.js
└── services
│ ├── semester.service.js
│ └── bilkent.service.js
├── .huskyrc
├── .lintstagedrc
├── firebase.json
├── .github
├── workflows
│ ├── lint.yml
│ ├── deploy.hosting.yml
│ └── fetch-offerings.yml
└── FUNDING.yml
├── .eslintrc
├── LICENSE
├── README.md
├── package.json
└── .gitignore
/.prettierignore:
--------------------------------------------------------------------------------
1 | public/data
2 | build
--------------------------------------------------------------------------------
/src/components/Logo/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./Logo";
2 |
--------------------------------------------------------------------------------
/src/components/Courses/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./Courses";
2 |
--------------------------------------------------------------------------------
/src/components/Pagination/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./Pagination";
2 |
--------------------------------------------------------------------------------
/src/components/Schedule/Cell/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./Cell";
2 |
--------------------------------------------------------------------------------
/src/components/Schedule/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./Schedule";
2 |
--------------------------------------------------------------------------------
/src/components/CourseSelector/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./CourseSelector";
2 |
--------------------------------------------------------------------------------
/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "bilkent-scheduler"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/components/SemesterSelector/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./SemesterSelector";
2 |
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/scraper/index.js:
--------------------------------------------------------------------------------
1 | require = require("esm")(module);
2 | module.exports = require("./main");
3 |
--------------------------------------------------------------------------------
/src/components/InstructorSelector/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./InstructorSelector";
2 |
--------------------------------------------------------------------------------
/public/icons/cup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/cup.png
--------------------------------------------------------------------------------
/public/icons/bilkent-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/bilkent-128x128.png
--------------------------------------------------------------------------------
/public/icons/bilkent-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/bilkent-144x144.png
--------------------------------------------------------------------------------
/public/icons/bilkent-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/bilkent-152x152.png
--------------------------------------------------------------------------------
/public/icons/bilkent-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/bilkent-192x192.png
--------------------------------------------------------------------------------
/public/icons/bilkent-384x384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/bilkent-384x384.png
--------------------------------------------------------------------------------
/public/icons/bilkent-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/bilkent-512x512.png
--------------------------------------------------------------------------------
/public/icons/bilkent-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/bilkent-72x72.png
--------------------------------------------------------------------------------
/public/icons/bilkent-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/furkankose/bilkent-scheduler/HEAD/public/icons/bilkent-96x96.png
--------------------------------------------------------------------------------
/.huskyrc:
--------------------------------------------------------------------------------
1 | {
2 | "hooks": {
3 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
4 | "pre-commit": "lint-staged"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/components/InstructorSelector/InstructorSelector.css:
--------------------------------------------------------------------------------
1 | #instructor-selector {
2 | width: 100%;
3 | margin-bottom: 20px;
4 | }
5 |
--------------------------------------------------------------------------------
/.lintstagedrc:
--------------------------------------------------------------------------------
1 | {
2 | "*.+(js|jsx|json|css|md)": ["prettier --write", "git add"],
3 | "*.+(js|jsx)": ["eslint --fix", "git add"]
4 | }
5 |
--------------------------------------------------------------------------------
/src/constants/days.js:
--------------------------------------------------------------------------------
1 | export default [
2 | "MONDAY",
3 | "TUESDAY",
4 | "WEDNESDAY",
5 | "THURSDAY",
6 | "FRIDAY",
7 | "SATURDAY",
8 | "SUNDAY",
9 | ];
10 |
--------------------------------------------------------------------------------
/src/constants/colors.js:
--------------------------------------------------------------------------------
1 | export default [
2 | "#BA68C8",
3 | "#7986CB",
4 | "#4FC3F7",
5 | "#4DB6AC",
6 | "#AED581",
7 | "#FFD54F",
8 | "#FF8A65",
9 | "#A1887F",
10 | "#90A4AE",
11 | ];
12 |
--------------------------------------------------------------------------------
/src/constants/hours.js:
--------------------------------------------------------------------------------
1 | export default [
2 | "08:30",
3 | "09:30",
4 | "10:30",
5 | "11:30",
6 | "12:30",
7 | "13:30",
8 | "14:30",
9 | "15:30",
10 | "16:30",
11 | "17:30",
12 | "18:30",
13 | "19:30",
14 | "20:30",
15 | "21:30",
16 | ];
17 |
--------------------------------------------------------------------------------
/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosting": {
3 | "public": "build",
4 | "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
5 | "rewrites": [
6 | {
7 | "source": "**",
8 | "destination": "/index.html"
9 | }
10 | ]
11 | },
12 | "functions": {
13 | "source": "./functions"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/constants/theme.js:
--------------------------------------------------------------------------------
1 | export default {
2 | typography: {
3 | fontFamily: "Montserrat",
4 | fontSize: 12,
5 | },
6 | shape: {
7 | borderRadius: 0,
8 | },
9 | overrides: {
10 | MuiChip: {
11 | root: {
12 | borderRadius: 0,
13 | },
14 | },
15 | MuiInputBase: {
16 | root: {
17 | lineHeight: 0.8,
18 | },
19 | },
20 | },
21 | };
22 |
--------------------------------------------------------------------------------
/.github/workflows/lint.yml:
--------------------------------------------------------------------------------
1 | name: Lint
2 |
3 | on: pull_request
4 |
5 | jobs:
6 | lint:
7 | runs-on: ubuntu-latest
8 | steps:
9 | - name: Checkout
10 | uses: actions/checkout@v3
11 | - name: "Use Node.js"
12 | uses: actions/setup-node@v3
13 | with:
14 | node-version: 16
15 | - name: Install
16 | run: yarn install
17 | - name: Run ESLint
18 | run: yarn lint
19 |
--------------------------------------------------------------------------------
/src/components/Logo/Logo.js:
--------------------------------------------------------------------------------
1 | import React, { memo } from "react";
2 |
3 | import "./Logo.css";
4 |
5 | const Logo = () => (
6 |
7 |

13 |
14 | BILKENT
15 |
16 | SCHEDULER
17 |
18 |
19 | );
20 |
21 | export default memo(Logo);
22 |
--------------------------------------------------------------------------------
/src/components/Logo/Logo.css:
--------------------------------------------------------------------------------
1 | #bilkent-scheduler {
2 | display: inline-flex;
3 | align-items: center;
4 | height: 40px;
5 | opacity: 0.5;
6 | }
7 |
8 | #bilkent-scheduler:hover {
9 | opacity: 0.4;
10 | }
11 |
12 | #scheduler-title {
13 | font-size: 14px;
14 | font-weight: bold;
15 | line-height: 1.2;
16 | color: white;
17 | margin-left: 12px;
18 | }
19 |
20 | #bilkent-logo {
21 | width: 36px;
22 | height: auto;
23 | display: block;
24 | padding: 1px;
25 | background: white;
26 | border-radius: 50%;
27 | }
28 |
--------------------------------------------------------------------------------
/src/guide/index.js:
--------------------------------------------------------------------------------
1 | import introJs from "intro.js";
2 | import initUserGuideSteps from "./steps";
3 |
4 | import "intro.js/introjs.css";
5 |
6 | const display = (onExit) => {
7 | const intro = introJs();
8 | const steps = initUserGuideSteps();
9 |
10 | intro.setOptions({
11 | disableInteraction: true,
12 | showProgress: true,
13 | hidePrev: true,
14 | hideNext: true,
15 | keyboardNavigation: true,
16 | steps,
17 | });
18 |
19 | intro.start();
20 |
21 | intro.onexit(onExit);
22 | };
23 |
24 | export default display;
25 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom";
3 | import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles";
4 |
5 | import App from "./App";
6 |
7 | import theme from "./constants/theme";
8 | import * as serviceWorker from "./serviceWorker";
9 |
10 | const MuiTheme = createMuiTheme(theme);
11 |
12 | ReactDOM.render(
13 |
14 |
15 | ,
16 | document.getElementById("root")
17 | );
18 |
19 | // If you want your app to work offline and load faster, you can change
20 | // unregister() to register() below. Note this comes with some pitfalls.
21 | // Learn more about service workers: https://bit.ly/CRA-PWA
22 | serviceWorker.unregister();
23 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["react-app", "airbnb", "prettier", "prettier/react"],
3 | "plugins": ["prettier"],
4 | "ignorePatterns": ["**/build/*", "**/node_modules/*"],
5 | "rules": {
6 | "prettier/prettier": ["error"],
7 | "no-console": "off",
8 | "no-await-in-loop": "off",
9 | "import/prefer-default-export": "off",
10 | "no-global-assign": "off",
11 | "import/no-extraneous-dependencies": "off",
12 | "no-restricted-syntax": "off",
13 | "jsx-a11y/click-events-have-key-events": "off",
14 | "jsx-a11y/no-static-element-interactions": "off",
15 | "jsx-a11y/no-noninteractive-element-interactions": "off",
16 | "react/jsx-props-no-spreading": "off",
17 | "react/jsx-filename-extension": [
18 | 1,
19 | {
20 | "extensions": [".js", ".jsx"]
21 | }
22 | ]
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.hosting.yml:
--------------------------------------------------------------------------------
1 | name: Deploy Hosting
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | paths-ignore:
8 | - "scraper/**"
9 |
10 | jobs:
11 | release:
12 | runs-on: ubuntu-latest
13 |
14 | env:
15 | REACT_APP_GA_TRACKING_ID: "${{ secrets.REACT_APP_GA_TRACKING_ID }}"
16 |
17 | steps:
18 | - name: Checkout
19 | uses: actions/checkout@v3
20 | - name: "Use Node.js"
21 | uses: actions/setup-node@v3
22 | with:
23 | node-version: 16
24 | - name: Install
25 | run: yarn install
26 | - name: Build
27 | run: yarn build
28 | - name: Install Firebase
29 | run: sudo yarn global add firebase-tools@12.9.1
30 | - name: Deploy
31 | run: firebase deploy --only hosting --token ${{ secrets.FIREBASE_TOKEN }}
32 |
--------------------------------------------------------------------------------
/src/components/Courses/Courses.css:
--------------------------------------------------------------------------------
1 | #courses {
2 | width: 100%;
3 | table-layout: fixed;
4 | border-spacing: 0;
5 | }
6 |
7 | @media only screen and (max-width: 599px) {
8 | #courses {
9 | margin-bottom: 32px;
10 | }
11 | }
12 |
13 | #courses tr {
14 | height: 47px;
15 | }
16 |
17 | #courses tr td {
18 | font-size: 13px;
19 | border-bottom: #d9d9d9 solid thin;
20 | position: relative;
21 | }
22 |
23 | #courses tbody tr:last-child td {
24 | border: none;
25 | }
26 |
27 | #courses tr td:nth-child(1) {
28 | width: 30px;
29 | text-align: center;
30 | padding-right: 5px;
31 | }
32 |
33 | .instructor small {
34 | width: 100%;
35 | min-width: 0;
36 | display: block;
37 | white-space: nowrap;
38 | overflow: hidden;
39 | text-overflow: ellipsis;
40 | font-size: 80%;
41 | margin-top: 3px;
42 | opacity: 0.6;
43 | }
44 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [furkankose] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
14 |
--------------------------------------------------------------------------------
/.github/workflows/fetch-offerings.yml:
--------------------------------------------------------------------------------
1 | name: Fetch Offerings
2 | on:
3 | schedule:
4 | - cron: "0 2 * * *"
5 | workflow_dispatch:
6 |
7 | jobs:
8 | fetch-offerings:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v4
12 | with:
13 | ref: ${{ github.head_ref }}
14 | ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
15 | fetch-depth: 0
16 | - name: Set up Node.js
17 | uses: actions/setup-node@v4
18 | with:
19 | node-version: "18"
20 | - name: Install Dependencies
21 | run: yarn install
22 | - name: Run Build Script
23 | run: yarn fetch-offerings
24 | - name: Commit results
25 | run: |
26 | git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
27 | git config user.name "github-actions[bot]"
28 |
29 | git add --all
30 | git commit --allow-empty -m "chore: sync application data"
31 | git push origin main
32 |
--------------------------------------------------------------------------------
/src/components/Schedule/Cell/Cell.js:
--------------------------------------------------------------------------------
1 | import React, { memo } from "react";
2 | import PropTypes from "prop-types";
3 | import classnames from "classnames";
4 |
5 | const Cell = ({
6 | colorStyle,
7 | courseCode,
8 | classroom,
9 | isEmpty,
10 | isExcluded,
11 | onClick,
12 | }) => {
13 | const cellClasses = classnames({
14 | selected: !isEmpty,
15 | locked: isExcluded,
16 | });
17 |
18 | return (
19 |
20 | {!isEmpty && (
21 | <>
22 | {courseCode}
23 |
24 | {classroom}
25 | >
26 | )}
27 | |
28 | );
29 | };
30 |
31 | Cell.defaultProps = {
32 | courseCode: null,
33 | classroom: null,
34 | isExcluded: false,
35 | };
36 |
37 | Cell.propTypes = {
38 | colorStyle: PropTypes.shape({}).isRequired,
39 | courseCode: PropTypes.string,
40 | classroom: PropTypes.string,
41 | isEmpty: PropTypes.bool.isRequired,
42 | isExcluded: PropTypes.bool,
43 | onClick: PropTypes.func.isRequired,
44 | };
45 |
46 | export default memo(Cell);
47 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Furkan Köse
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/src/components/Pagination/Pagination.css:
--------------------------------------------------------------------------------
1 | #pagination {
2 | display: flex;
3 | align-items: center;
4 | justify-content: center;
5 | width: fit-content;
6 | height: 50px;
7 | margin: 30px auto 0 auto;
8 | color: #ffffff;
9 | transition: 0.7s ease all;
10 | }
11 |
12 | #pagination.hidden {
13 | pointer-events: none;
14 | opacity: 0;
15 | height: 0;
16 | margin-top: 0;
17 | }
18 |
19 | @media only screen and (max-width: 599px) {
20 | #pagination {
21 | order: 1;
22 | }
23 |
24 | #pagination:not(.hidden) {
25 | margin: 10px auto;
26 | }
27 | }
28 |
29 | #prev,
30 | #next {
31 | cursor: pointer;
32 | font-size: 64px;
33 | opacity: 0.8;
34 | }
35 |
36 | #prev:hover,
37 | #next:hover {
38 | opacity: 1;
39 | }
40 |
41 | #prev.disabled,
42 | #next.disabled {
43 | pointer-events: none;
44 | opacity: 0.05;
45 | }
46 |
47 | #pages {
48 | display: flex;
49 | flex-direction: column;
50 | align-items: center;
51 | position: relative;
52 | }
53 |
54 | #title {
55 | font-size: 12px;
56 | position: absolute;
57 | top: -15px;
58 | opacity: 0.4;
59 | }
60 |
61 | #page-numbers {
62 | font-size: 24px;
63 | margin: 0 24px;
64 | }
65 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "Bilkent Scheduler",
3 | "name": "Bilkent Scheduler",
4 | "icons": [
5 | {
6 | "src": "icons/bilkent-72x72.png",
7 | "sizes": "72x72",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "icons/bilkent-96x96.png",
12 | "sizes": "96x96",
13 | "type": "image/png"
14 | },
15 | {
16 | "src": "icons/bilkent-128x128.png",
17 | "sizes": "128x128",
18 | "type": "image/png"
19 | },
20 | {
21 | "src": "icons/bilkent-144x144.png",
22 | "sizes": "144x144",
23 | "type": "image/png"
24 | },
25 | {
26 | "src": "icons/bilkent-152x152.png",
27 | "sizes": "152x152",
28 | "type": "image/png"
29 | },
30 | {
31 | "src": "icons/bilkent-192x192.png",
32 | "sizes": "192x192",
33 | "type": "image/png"
34 | },
35 | {
36 | "src": "icons/bilkent-384x384.png",
37 | "sizes": "384x384",
38 | "type": "image/png"
39 | },
40 | {
41 | "src": "icons/bilkent-512x512.png",
42 | "sizes": "512x512",
43 | "type": "image/png"
44 | }
45 | ],
46 | "start_url": ".",
47 | "display": "standalone",
48 | "theme_color": "#000000",
49 | "background_color": "#ffffff"
50 | }
51 |
--------------------------------------------------------------------------------
/src/components/SemesterSelector/SemesterSelector.js:
--------------------------------------------------------------------------------
1 | import React, { memo } from "react";
2 | import PropTypes from "prop-types";
3 |
4 | import { Autocomplete } from "@material-ui/lab";
5 | import { TextField } from "@material-ui/core";
6 |
7 | const getOptionLabel = (selectedSemester, { code, name, year }) => {
8 | return selectedSemester.code === code ? `${name} / ${year}` : name;
9 | };
10 |
11 | const renderInput = (params) => (
12 |
13 | );
14 |
15 | const SemesterSelector = ({ semesters, selectedSemester, onChange }) => (
16 | year,
23 | onChange: (_, value) => onChange(value),
24 | disableClearable: true,
25 | openOnFocus: true,
26 | getOptionLabel: (semester) => getOptionLabel(selectedSemester, semester),
27 | renderInput,
28 | }}
29 | />
30 | );
31 |
32 | SemesterSelector.defaultProps = {
33 | selectedSemester: null,
34 | };
35 |
36 | SemesterSelector.propTypes = {
37 | semesters: PropTypes.arrayOf(PropTypes.object).isRequired,
38 | selectedSemester: PropTypes.shape({}),
39 | onChange: PropTypes.func.isRequired,
40 | };
41 |
42 | export default memo(SemesterSelector);
43 |
--------------------------------------------------------------------------------
/src/guide/steps.js:
--------------------------------------------------------------------------------
1 | const init = () => [
2 | {
3 | intro: "How to use Bilkent scheduler?",
4 | },
5 | {
6 | element: "#semester-selector",
7 | intro: "Firstly, you need to select a semester!",
8 | position: "right",
9 | },
10 | {
11 | element: "#course-selector",
12 | intro:
13 | "Then, you need to select some courses from the list to be able to do some magic with them!",
14 | position: "left",
15 | },
16 | {
17 | element: "#content",
18 | intro: "Abracadabra and tada! Your schedules are ready. Let's get to work!",
19 | position: "top",
20 | },
21 | {
22 | element: "#filter",
23 | intro: "Filter prepared schedules by instructors as you wish",
24 | position: "right",
25 | },
26 | {
27 | element: "#capture-button",
28 | intro: "Export any of your schedule as PNG whenever you want!",
29 | position: "top",
30 | },
31 | {
32 | element: document.querySelector("#schedule-table .locked"),
33 | intro: "Keep any timeslot you wish empty. Just lock it by clicking on!",
34 | position: "left",
35 | },
36 | {
37 | element: "#pagination",
38 | intro:
39 | "Navigate among all schedules by using pagination or arrow keys on your keyboard!",
40 | position: "top",
41 | },
42 | {
43 | intro:
44 | "That's all. You are ready to use Bilkent scheduler. May the force be with you!",
45 | },
46 | ];
47 |
48 | export default init;
49 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Bilkent Scheduler
2 |
3 | [Bilkent Scheduler](https://www.bilkentscheduler.com/) is an open-source tool designed to assist students at Bilkent University in planning their course schedules.
4 |
5 | This tool allows students to input the courses they wish to take and then generates possible schedules based on the times those courses are offered.
6 |
7 | ## Table of Contents
8 |
9 | - [Project Structure](#project-structure)
10 | - [Project Architecture](#project-architecture)
11 | - [Features](#features)
12 | - [License](#license)
13 |
14 | ## Project Structure
15 |
16 | Bilkent Scheduler consists of two main parts; data scraper and visualizer.
17 |
18 | ### Data Scraper
19 |
20 | Data scraper part is responsible from ensuring that the application data is up to date. The scraping function runs each an every day at 5:00 AM (GMT+3); it scrapes the necessary data from [Bilkent Stars](https://stars.bilkent.edu.tr/), and commits the new/updated application data to GitHub repo.
21 |
22 | ### Visualizer
23 |
24 | Visualizer part is responsible from calculating and visualising all of the possible weekly schedules that result from selected courses.
25 |
26 | ## Project Architecture
27 |
28 | Both data scraper and visualizer runs on Firebase (Firebase Hosting, Firebase Functions). When a new commit is pushed to main, the continuous deployment pipelines that are created by using GitHub actions handle the deployment processes.
29 |
30 | ## Features
31 |
32 | - Instructor selection
33 | - Timeslot preservation
34 | - Schedule exporter
35 |
36 | ## License
37 |
38 | [MIT](LICENSE)
39 |
--------------------------------------------------------------------------------
/src/components/Schedule/Schedule.css:
--------------------------------------------------------------------------------
1 | #schedule {
2 | table-layout: fixed;
3 | width: 100%;
4 | border-spacing: 0;
5 | border-collapse: collapse;
6 | background: white;
7 | }
8 |
9 | #schedule tr td:nth-child(n + 2) {
10 | font-size: 11px;
11 | cursor: pointer;
12 | }
13 |
14 | #schedule tr th,
15 | #schedule tr td {
16 | position: relative;
17 | /*
18 | height temporarily decreased until the covid go away
19 | height: 46px;
20 | */
21 | height: 38px;
22 | padding: 0 8px;
23 | text-align: right;
24 | text-transform: uppercase;
25 | vertical-align: middle;
26 | border: #d9d9d9 solid thin;
27 | }
28 |
29 | @media only screen and (max-width: 599px) {
30 | #schedule tr td:nth-child(n + 2),
31 | #schedule tr th {
32 | /*
33 | font-size and padding temporarily decreased until the covid go away
34 | font-size: 9px;
35 | padding: 0 6px;
36 | */
37 | font-size: 8px;
38 | padding: 0 4px;
39 | }
40 | }
41 |
42 | #schedule tr th {
43 | white-space: nowrap;
44 | overflow: hidden;
45 | text-overflow: ellipsis;
46 | }
47 |
48 | #schedule tr td:after {
49 | content: "";
50 | position: absolute;
51 | width: calc(100% - 14px);
52 | height: calc(100% - 14px);
53 | padding: 7px;
54 | top: 0;
55 | left: 0;
56 | font-family: "Material Icons";
57 | font-size: 16px;
58 | }
59 |
60 | #schedule tr td:hover:after {
61 | background-color: #f3f3f3;
62 | }
63 |
64 | #schedule tr td.locked:after {
65 | content: "\e897";
66 | }
67 |
68 | #schedule tr td:not(.locked):hover:after {
69 | content: "\e897";
70 | }
71 |
72 | #schedule tr td.locked:hover:after {
73 | content: "\e898";
74 | }
75 |
--------------------------------------------------------------------------------
/src/components/CourseSelector/CourseSelector.js:
--------------------------------------------------------------------------------
1 | import React, { memo } from "react";
2 | import PropTypes from "prop-types";
3 |
4 | import { Autocomplete } from "@material-ui/lab";
5 | import { TextField } from "@material-ui/core";
6 |
7 | const renderInput = (params) => (
8 |
14 | );
15 |
16 | const filterOptions = (options, { inputValue }) => {
17 | if (inputValue.length === 0) {
18 | return options;
19 | }
20 |
21 | // to prevent possible turkish "ı" character related search issues
22 | const normalizedInput = inputValue.replace("ı", "i").toLowerCase();
23 |
24 | const filteredOptions = options.filter(({ courseCode }) => {
25 | return courseCode.toLowerCase().includes(normalizedInput);
26 | });
27 |
28 | return filteredOptions;
29 | };
30 |
31 | const CourseSelector = ({ offerings, selectedCourses, onChange }) => (
32 | courseCode.replace(" ", "-"),
39 | groupBy: ({ departmentCode }) => departmentCode,
40 | onChange: (_, value) => onChange(value),
41 | filterSelectedOptions: true,
42 | openOnFocus: true,
43 | multiple: true,
44 | filterOptions,
45 | renderInput,
46 | }}
47 | />
48 | );
49 |
50 | CourseSelector.propTypes = {
51 | offerings: PropTypes.arrayOf(PropTypes.object).isRequired,
52 | selectedCourses: PropTypes.arrayOf(PropTypes.object).isRequired,
53 | onChange: PropTypes.func.isRequired,
54 | };
55 |
56 | export default memo(CourseSelector);
57 |
--------------------------------------------------------------------------------
/src/components/Pagination/Pagination.js:
--------------------------------------------------------------------------------
1 | import React, { memo } from "react";
2 | import PropTypes from "prop-types";
3 | import { useKeyPressEvent } from "react-use";
4 | import classnames from "classnames";
5 |
6 | import "./Pagination.css";
7 |
8 | const Pagination = ({
9 | title,
10 | activePage,
11 | numberOfPages,
12 | onPageChange,
13 | ...props
14 | }) => {
15 | const isFirstPage = activePage === 1;
16 | const isLastPage = activePage >= numberOfPages;
17 |
18 | const wrapperClasses = classnames({ hidden: numberOfPages === 0 });
19 | const prevButtonClasses = classnames({ disabled: isFirstPage });
20 | const nextButtonClasses = classnames({ disabled: isLastPage });
21 |
22 | const goToPreviousPage = () => {
23 | if (activePage > 1) {
24 | onPageChange(activePage - 1);
25 | }
26 | };
27 |
28 | const goToNextPage = () => {
29 | if (activePage < numberOfPages) {
30 | onPageChange(activePage + 1);
31 | }
32 | };
33 |
34 | useKeyPressEvent("ArrowLeft", goToPreviousPage);
35 | useKeyPressEvent("ArrowRight", goToNextPage);
36 |
37 | return (
38 |
53 | );
54 | };
55 |
56 | Pagination.propTypes = {
57 | title: PropTypes.string.isRequired,
58 | activePage: PropTypes.number.isRequired,
59 | numberOfPages: PropTypes.number.isRequired,
60 | onPageChange: PropTypes.func.isRequired,
61 | };
62 |
63 | export default memo(Pagination);
64 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bilkent-scheduler",
3 | "version": "1.0.0",
4 | "license": "MIT",
5 | "repository": {
6 | "type": "git",
7 | "url": "https://github.com/furkankose/bilkent-scheduler"
8 | },
9 | "scripts": {
10 | "start": "react-scripts start",
11 | "build": "react-scripts build",
12 | "eject": "react-scripts eject",
13 | "fetch-offerings": "node -r esm scraper/index.js",
14 | "format": "prettier --write .",
15 | "lint": "eslint .",
16 | "lint:fix": "eslint --fix ."
17 | },
18 | "dependencies": {
19 | "@material-ui/core": "^4.9.10",
20 | "@material-ui/icons": "^4.9.1",
21 | "@material-ui/lab": "^4.0.0-alpha.49",
22 | "classnames": "^2.2.6",
23 | "html2canvas": "^1.0.0-rc.5",
24 | "intro.js": "^2.9.3",
25 | "prop-types": "^15.7.2",
26 | "react": "^16.13.1",
27 | "react-dom": "^16.13.1",
28 | "react-ga4": "^2.1.0",
29 | "react-scripts": "3.4.1",
30 | "react-use": "^15.3.3"
31 | },
32 | "devDependencies": {
33 | "@commitlint/cli": "^11.0.0",
34 | "@commitlint/config-conventional": "^11.0.0",
35 | "cheerio": "^1.0.0-rc.12",
36 | "eslint-config-airbnb": "^18.1.0",
37 | "eslint-config-prettier": "^6.10.1",
38 | "eslint-plugin-jsx-a11y": "^6.2.3",
39 | "eslint-plugin-prettier": "^3.1.2",
40 | "esm": "^3.2.25",
41 | "husky": "^4.3.5",
42 | "lint-staged": "^10.5.3",
43 | "merge-deep": "^3.0.3",
44 | "moment": "^2.30.1",
45 | "prettier": "^2.0.4",
46 | "reqque": "^2.0.3",
47 | "typescript": "^4.0.2"
48 | },
49 | "commitlint": {
50 | "extends": [
51 | "@commitlint/config-conventional"
52 | ]
53 | },
54 | "browserslist": {
55 | "production": [
56 | ">0.2%",
57 | "not dead",
58 | "not op_mini all"
59 | ],
60 | "development": [
61 | "last 1 chrome version",
62 | "last 1 firefox version",
63 | "last 1 safari version"
64 | ]
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
13 |
17 |
18 |
27 |
32 |
36 |
37 | Bilkent Scheduler
38 |
39 |
40 |
41 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # Snowpack dependency directory (https://snowpack.dev/)
45 | web_modules/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 | .parcel-cache
78 |
79 | # Next.js build output
80 | .next
81 | out
82 |
83 | # Nuxt.js build
84 | .nuxt
85 |
86 | # Gatsby files
87 | .cache/
88 | # Comment in the public line in if your project uses Gatsby and not Next.js
89 | # https://nextjs.org/blog/next-9-1#public-directory-support
90 | # public
91 |
92 | # vuepress build output
93 | .vuepress/dist
94 |
95 | # build output
96 | build
97 |
98 | # Serverless directories
99 | .serverless/
100 |
101 | # Firebase directories
102 | .firebase/
103 |
104 | # FuseBox cache
105 | .fusebox/
106 |
107 | # DynamoDB Local files
108 | .dynamodb/
109 |
110 | # TernJS port file
111 | .tern-port
112 |
113 | # Stores VSCode versions used for testing VSCode extensions
114 | .vscode-test
115 |
116 | # yarn v2
117 | .yarn/cache
118 | .yarn/unplugged
119 | .yarn/build-state.yml
120 | .yarn/install-state.gz
121 | .pnp.*
--------------------------------------------------------------------------------
/scraper/main.js:
--------------------------------------------------------------------------------
1 | import merge from "merge-deep";
2 | import { promises as fs } from "fs";
3 | import { join } from "path";
4 |
5 | import {
6 | fetchAcademicCalendar,
7 | fetchDepartments,
8 | fetchOfferings,
9 | } from "./services/bilkent.service";
10 |
11 | import {
12 | getSemesters,
13 | findSemestersNotFetchedBefore,
14 | } from "./services/semester.service";
15 |
16 | const writeJsonToFile = async (directory, fileName, json) => {
17 | await fs.mkdir(directory, { recursive: true });
18 | await fs.writeFile(`${directory}/${fileName}.json`, JSON.stringify(json));
19 | };
20 |
21 | const mergeOfferingsIntoObject = (offerings) => {
22 | const offeringsObjects = offerings.map((offering) => {
23 | const { code, name, instructor, schedule } = offering;
24 | const [courseCode, sectionNumber] = code.split("-");
25 | const [departmentCode] = courseCode.split(" ");
26 |
27 | return {
28 | [departmentCode]: {
29 | [courseCode]: {
30 | name,
31 | sections: {
32 | [sectionNumber]: {
33 | instructor,
34 | schedule,
35 | },
36 | },
37 | },
38 | },
39 | };
40 | });
41 |
42 | return merge(...offeringsObjects);
43 | };
44 |
45 | const scrape = async (OUTPUT_DIRECTORY) => {
46 | const OFFERINGS_DIRECTORY = `${OUTPUT_DIRECTORY}/offerings`;
47 |
48 | const departments = await fetchDepartments();
49 |
50 | if (departments.length === 0) {
51 | throw new Error("No departments fetched!");
52 | }
53 |
54 | const academicCalendar = await fetchAcademicCalendar();
55 | const semesters = getSemesters(academicCalendar);
56 |
57 | const [currentSemester, ...oldSemesters] = semesters;
58 | const semestersNotFetchedBefore = await findSemestersNotFetchedBefore(
59 | OFFERINGS_DIRECTORY,
60 | oldSemesters
61 | );
62 |
63 | await Promise.all([
64 | writeJsonToFile(OUTPUT_DIRECTORY, "departments", departments),
65 | writeJsonToFile(OUTPUT_DIRECTORY, "semesters", semesters),
66 | ]);
67 |
68 | for (const semester of [currentSemester, ...semestersNotFetchedBefore]) {
69 | console.log("Semester", semester.code);
70 |
71 | const offerings = await fetchOfferings(
72 | departments.map(({ code }) => code),
73 | semester.code
74 | );
75 |
76 | if (offerings.length === 0) {
77 | throw new Error("No offerings fetched!");
78 | }
79 |
80 | const offeringsObject = mergeOfferingsIntoObject(offerings);
81 |
82 | await writeJsonToFile(OFFERINGS_DIRECTORY, semester.code, offeringsObject);
83 | }
84 | };
85 |
86 | (async () => {
87 | await scrape(join(__dirname, "../public/data"));
88 | })();
89 |
--------------------------------------------------------------------------------
/public/data/departments.json:
--------------------------------------------------------------------------------
1 | [{"code":"ACC","name":"Accounting Information Systems"},{"code":"ADA","name":"Art, Design and Architecture Courses"},{"code":"AMER","name":"American Culture and Literature"},{"code":"ARCH","name":"Architecture"},{"code":"BTE","name":"Curriculum and Instruction with Teaching Certificate "},{"code":"CHEM","name":"Chemistry"},{"code":"CI","name":"Curriculum and Instruction"},{"code":"CINT","name":"Translation and Interpretation"},{"code":"COMD","name":"Communication and Design"},{"code":"CS","name":"Computer Engineering"},{"code":"CTE","name":"Computer and Instructional Technology Teacher Education"},{"code":"CTIS","name":"Information Systems and Technologies"},{"code":"ECON","name":"Economics"},{"code":"EDEB","name":"Turkish Literature"},{"code":"EDU","name":"Basic Education"},{"code":"EEE","name":"Electrical and Electronics Engineering"},{"code":"ELIT","name":"English Language and Literature"},{"code":"ELS","name":"Academic English Program"},{"code":"EMBA","name":"Management"},{"code":"ENG","name":"Academic English Program"},{"code":"ETE","name":"Curriculum and Instruction with Teaching Certificate "},{"code":"FA","name":"Fine Arts"},{"code":"FRP","name":"Translation and Interpretation"},{"code":"GE","name":"General Education Courses"},{"code":"GRA","name":"Graphic Design"},{"code":"HART","name":"Archaeology"},{"code":"HCIV","name":"History"},{"code":"HIST","name":"History"},{"code":"HUM","name":"Program in Cultures, Civilizations, and Ideas"},{"code":"IAED","name":"Interior Architecture and Environmental Design"},{"code":"IE","name":"Industrial Engineering"},{"code":"IELTS","name":"English Language Preparatory Program"},{"code":"IR","name":"International Relations"},{"code":"LAUD","name":"Urban Design and Landscape Architecture"},{"code":"LAW","name":"Law"},{"code":"LNG","name":"Second Foreign Language Program"},{"code":"MAN","name":"Management"},{"code":"MATH","name":"Mathematics"},{"code":"MBA","name":"Management"},{"code":"MBG","name":"Molecular Biology and Genetics"},{"code":"ME","name":"Mechanical Engineering"},{"code":"MSC","name":"Music"},{"code":"MSN","name":"Materials Science and Nanotechnology"},{"code":"MTE","name":"Curriculum and Instruction with Teaching Certificate "},{"code":"MUS","name":"Music"},{"code":"NSC","name":"Neuroscience"},{"code":"PHIL","name":"Philosophy"},{"code":"PHYS","name":"Physics"},{"code":"POLS","name":"Political Science and Public Administration"},{"code":"PREP","name":"English Language Preparatory Program"},{"code":"PSYC","name":"Psychology"},{"code":"SFL","name":"Translation and Interpretation"},{"code":"SOC","name":"Political Science and Public Administration"},{"code":"TE","name":"Curriculum and Instruction with Teaching Certificate "},{"code":"TEFL","name":"Teaching English as a Foreign Language"},{"code":"THEA","name":"Performing Arts"},{"code":"THM","name":"Tourism and Hotel Management"},{"code":"THR","name":"Performing Arts"},{"code":"TOEFL","name":"English Language Preparatory Program"},{"code":"TRIN","name":"Translation and Interpretation"},{"code":"TURK","name":"Turkish Unit"}]
--------------------------------------------------------------------------------
/src/components/Schedule/Schedule.js:
--------------------------------------------------------------------------------
1 | import React, { memo } from "react";
2 | import PropTypes from "prop-types";
3 |
4 | import TableCell from "./Cell";
5 |
6 | import "./Schedule.css";
7 |
8 | import days from "../../constants/days";
9 | import hours from "../../constants/hours";
10 | import colors from "../../constants/colors";
11 |
12 | const TOTAL_DAYS = days.length;
13 |
14 | const Schedule = ({
15 | courses,
16 | timeslots,
17 | excludedTimeslots,
18 | onCellClick,
19 | ...props
20 | }) => {
21 | const getCourseIndex = (timeslotIndex) => {
22 | if (timeslots[timeslotIndex] === undefined) {
23 | return undefined;
24 | }
25 |
26 | return timeslots[timeslotIndex].course;
27 | };
28 |
29 | const isTimeslotEmpty = (timeslotIndex) => {
30 | const courseIndex = getCourseIndex(timeslotIndex);
31 |
32 | return courseIndex === undefined;
33 | };
34 |
35 | const getCourseCode = (timeslotIndex) => {
36 | const courseIndex = getCourseIndex(timeslotIndex);
37 | const course = courses[courseIndex] || {};
38 |
39 | return course.courseCode;
40 | };
41 |
42 | const getClassroom = (timeslotIndex) => {
43 | const timeslot = timeslots[timeslotIndex] || {};
44 |
45 | return timeslot.classroom;
46 | };
47 |
48 | const getColorStyle = (timeslotIndex) => {
49 | const courseIndex = getCourseIndex(timeslotIndex);
50 |
51 | return { style: { color: colors[courseIndex] } };
52 | };
53 |
54 | return (
55 |
56 |
57 |
58 | | |
59 | {days.map((day) => (
60 | {day} |
61 | ))}
62 |
63 |
64 |
65 | {hours.map((hour, hIndex) => (
66 |
67 | <>
68 | | {hour} |
69 | {days.map((day, dIndex) => (
70 | onCellClick(hIndex * TOTAL_DAYS + dIndex)}
77 | key={`${hour}-${day}`}
78 | />
79 | ))}
80 | >
81 |
82 | ))}
83 |
84 |
85 | );
86 | };
87 |
88 | Schedule.defaultProps = {
89 | courses: [],
90 | timeslots: {},
91 | };
92 |
93 | Schedule.propTypes = {
94 | courses: PropTypes.arrayOf(PropTypes.object),
95 | timeslots: PropTypes.shape({}),
96 | excludedTimeslots: PropTypes.shape({}).isRequired,
97 | onCellClick: PropTypes.func.isRequired,
98 | };
99 |
100 | export default memo(Schedule);
101 |
--------------------------------------------------------------------------------
/scraper/services/semester.service.js:
--------------------------------------------------------------------------------
1 | import moment from "moment";
2 | import { promises as fs } from "fs";
3 |
4 | const semesterNames = { 1: "Fall", 2: "Spring", 3: "Summer" };
5 |
6 | const findRegistrationDates = (academicCalendarData) => {
7 | const registrationDateDescriptions = [
8 | "Departments finalize schedules, quotas, and elective pools",
9 | "Course requests for Summer School through SRS",
10 | ];
11 |
12 | const registrationDates = [];
13 |
14 | for (const { date, description } of academicCalendarData) {
15 | const isRegistrationDate = registrationDateDescriptions.includes(
16 | description
17 | );
18 |
19 | if (isRegistrationDate) {
20 | registrationDates.push(date);
21 | }
22 | }
23 |
24 | return registrationDates;
25 | };
26 |
27 | const findCurrentSemester = (registrationDates) => {
28 | const [beginningDateOfAcademicYear] = registrationDates;
29 | const academicYear = beginningDateOfAcademicYear.split(" ").pop();
30 |
31 | const currentSemesterIndex = registrationDates
32 | .map((date) => moment() > moment(date, "D MMMM YYYY").subtract(40, "days"))
33 | .lastIndexOf(true);
34 |
35 | if (currentSemesterIndex === -1) {
36 | return {
37 | year: academicYear - 1,
38 | number: 3,
39 | };
40 | }
41 |
42 | // Semester numbers
43 | // Fall -> 1
44 | // Spring -> 2
45 | // Summer -> 3
46 | return {
47 | year: parseInt(academicYear, 10),
48 | number: currentSemesterIndex + 1,
49 | };
50 | };
51 |
52 | const getSemesters = (academicCalendar) => {
53 | const registrationDates = findRegistrationDates(academicCalendar);
54 | const currentSemester = findCurrentSemester(registrationDates);
55 | const semesters = [];
56 |
57 | for (
58 | let semesterYear = currentSemester.year;
59 | semesterYear >= 2000;
60 | semesterYear -= 1
61 | ) {
62 | const isCurrentSemesterYear = semesterYear === currentSemester.year;
63 |
64 | for (
65 | let semesterNumber = isCurrentSemesterYear ? currentSemester.number : 3;
66 | semesterNumber >= 1;
67 | semesterNumber -= 1
68 | ) {
69 | const semester = {
70 | year: `${semesterYear}-${semesterYear + 1}`,
71 | code: `${semesterYear}${semesterNumber}`,
72 | name: semesterNames[semesterNumber],
73 | };
74 |
75 | semesters.push(semester);
76 | }
77 | }
78 |
79 | return semesters;
80 | };
81 |
82 | const findSemestersNotFetchedBefore = async (offeringsDirectory, semesters) => {
83 | let isOfferingsFolderCreated = true;
84 |
85 | try {
86 | await fs.access(offeringsDirectory, fs.F_OK);
87 | } catch (error) {
88 | console.log(error);
89 | isOfferingsFolderCreated = false;
90 | }
91 |
92 | if (!isOfferingsFolderCreated) {
93 | return [];
94 | }
95 |
96 | const offeringsFiles = await fs.readdir(offeringsDirectory);
97 |
98 | return semesters.filter(
99 | (semester) => !offeringsFiles.includes(`${semester.code}.json`)
100 | );
101 | };
102 |
103 | export { getSemesters, findSemestersNotFetchedBefore };
104 |
--------------------------------------------------------------------------------
/src/components/InstructorSelector/InstructorSelector.js:
--------------------------------------------------------------------------------
1 | import React, { memo, useEffect } from "react";
2 | import PropTypes from "prop-types";
3 |
4 | import Dialog from "@material-ui/core/Dialog";
5 | import DialogTitle from "@material-ui/core/DialogTitle";
6 | import DialogContent from "@material-ui/core/DialogContent";
7 | import DialogActions from "@material-ui/core/DialogActions";
8 | import FormControl from "@material-ui/core/FormControl";
9 | import InputLabel from "@material-ui/core/InputLabel";
10 | import Select from "@material-ui/core/Select";
11 | import MenuItem from "@material-ui/core/MenuItem";
12 | import Button from "@material-ui/core/Button";
13 |
14 | import "./InstructorSelector.css";
15 |
16 | const InstructorSelector = ({ show, courses, onApply, onClose }) => {
17 | const [tempCourses, setTempCourses] = React.useState([]);
18 |
19 | const getUniqueInstructorList = ({ sections }) => [
20 | ...new Set(Object.values(sections).map(({ instructor }) => instructor)),
21 | ];
22 |
23 | const selectInstructor = (instructorIndex, selectedInstructor) => {
24 | setTempCourses(
25 | Object.assign([], tempCourses, {
26 | [instructorIndex]: {
27 | ...tempCourses[instructorIndex],
28 | selectedInstructor,
29 | },
30 | })
31 | );
32 | };
33 |
34 | const applyChangesAndCloseDialog = () => {
35 | onApply(tempCourses);
36 | onClose();
37 | };
38 |
39 | useEffect(() => {
40 | setTempCourses(courses);
41 | }, [show, courses]);
42 |
43 | return (
44 |
79 | );
80 | };
81 |
82 | InstructorSelector.propTypes = {
83 | show: PropTypes.bool.isRequired,
84 | courses: PropTypes.arrayOf(PropTypes.object).isRequired,
85 | onApply: PropTypes.func.isRequired,
86 | onClose: PropTypes.func.isRequired,
87 | };
88 |
89 | export default memo(InstructorSelector);
90 |
--------------------------------------------------------------------------------
/src/components/Courses/Courses.js:
--------------------------------------------------------------------------------
1 | import React, { memo } from "react";
2 | import PropTypes from "prop-types";
3 |
4 | import { Icon, IconButton } from "@material-ui/core";
5 |
6 | import "./Courses.css";
7 |
8 | import colors from "../../constants/colors";
9 |
10 | const status = {
11 | 0: {
12 | title: "No course selected yet!",
13 | message: "Really? Come on!",
14 | },
15 | 1: {
16 | title: "No available schedule!",
17 | message: "Please, remove some of the courses.",
18 | },
19 | };
20 |
21 | const Courses = ({
22 | courses,
23 | isFailed,
24 | onCourseEdit,
25 | onCourseRemove,
26 | ...props
27 | }) => {
28 | const getColorStyle = (colorIndex) => {
29 | return { style: { color: colors[colorIndex] } };
30 | };
31 |
32 | return (
33 |
34 |
35 |
36 | |
37 | #
38 | |
39 |
40 | [COURSE]-[SECTION]
41 |
42 | Instructor
43 | |
44 |
45 | {courses.length > 0 && (
46 |
52 | filter_list
53 |
54 | )}
55 | |
56 |
57 |
58 |
59 | {courses.length > 0 ? (
60 | courses.map((course, index) => (
61 |
62 | |
63 | {index + 1}
64 | |
65 |
66 |
67 | {course.courseCode}
68 |
69 | {course.instructor}
70 |
71 | |
72 |
73 | onCourseRemove(index)}
77 | data-html2canvas-ignore
78 | >
79 | clear
80 |
81 | |
82 |
83 | ))
84 | ) : (
85 |
86 | |
87 | ?
88 | |
89 |
90 |
91 | {status[+isFailed].title}
92 |
93 | {status[+isFailed].message}
94 |
95 | |
96 |
97 | )}
98 |
99 |
100 | );
101 | };
102 |
103 | Courses.defaultProps = {
104 | courses: [],
105 | };
106 |
107 | Courses.propTypes = {
108 | courses: PropTypes.arrayOf(PropTypes.object),
109 | isFailed: PropTypes.bool.isRequired,
110 | onCourseEdit: PropTypes.func.isRequired,
111 | onCourseRemove: PropTypes.func.isRequired,
112 | };
113 |
114 | export default memo(Courses);
115 |
--------------------------------------------------------------------------------
/src/schedule.js:
--------------------------------------------------------------------------------
1 | import html2canvas from "html2canvas";
2 |
3 | const reduceOfferings = (offerings, [departmentCode, departmentOfferings]) => {
4 | const courses = Object.entries(departmentOfferings).map(
5 | ([courseCode, course]) => ({
6 | selectedInstructor: "All",
7 | departmentCode,
8 | courseCode,
9 | ...course,
10 | })
11 | );
12 |
13 | return [...offerings, ...courses];
14 | };
15 |
16 | const areTimeslotsOverlapping = (...timeslots) => {
17 | const mergedTimeslots = new Set(timeslots.flat());
18 |
19 | const totalTimeslots = timeslots.reduce(
20 | (total, timeslot) => total + timeslot.length,
21 | 0
22 | );
23 |
24 | return mergedTimeslots.size !== totalTimeslots;
25 | };
26 |
27 | const getNotOverlappingSections = (
28 | excludedTimeslots,
29 | courseSection,
30 | schedule = { timeslots: [], courses: [] }
31 | ) => {
32 | if (
33 | areTimeslotsOverlapping(
34 | Object.keys(excludedTimeslots),
35 | Object.keys(courseSection.schedule),
36 | Object.keys(schedule.timeslots)
37 | )
38 | ) {
39 | return null;
40 | }
41 |
42 | const course = {
43 | courseCode: courseSection.courseCode,
44 | instructor: courseSection.instructor,
45 | };
46 |
47 | const courseTimeslots = { ...courseSection.schedule };
48 |
49 | for (const key of Object.keys(courseTimeslots)) {
50 | courseTimeslots[key] = {
51 | classroom: courseSection.schedule[key],
52 | course: schedule.courses.length,
53 | };
54 | }
55 |
56 | return {
57 | courses: [...schedule.courses, course],
58 | timeslots: { ...schedule.timeslots, ...courseTimeslots },
59 | };
60 | };
61 |
62 | const prepareSchedules = (excludedTimeslots, selectedCourses) => {
63 | let schedules = [];
64 |
65 | for (const selectedCourse of selectedCourses) {
66 | const newSchedules = [];
67 |
68 | const { selectedInstructor } = selectedCourse;
69 | let sections = Object.entries(selectedCourse.sections);
70 |
71 | if (selectedInstructor !== "All") {
72 | sections = sections.filter(
73 | ([, courseSection]) => courseSection.instructor === selectedInstructor
74 | );
75 | }
76 |
77 | for (const [sectionCode, courseSection] of sections) {
78 | let i = 0;
79 |
80 | courseSection.courseCode = `${selectedCourse.courseCode}-${sectionCode}`;
81 |
82 | do {
83 | const newSchedule = getNotOverlappingSections(
84 | excludedTimeslots,
85 | courseSection,
86 | schedules[i]
87 | );
88 |
89 | if (newSchedule) {
90 | newSchedules.push(newSchedule);
91 | }
92 |
93 | i += 1;
94 | } while (i < schedules.length);
95 | }
96 |
97 | schedules = newSchedules;
98 | }
99 |
100 | return schedules;
101 | };
102 |
103 | const exportScheduleAsPNG = async () => {
104 | const canvas = await html2canvas(document.body, {});
105 | const link = document.createElement("a");
106 | const date = new Date().toLocaleString();
107 |
108 | link.href = canvas.toDataURL();
109 | link.download = `Bilkent Scheduler - ${date}.png`;
110 |
111 | link.click();
112 | };
113 |
114 | export {
115 | reduceOfferings,
116 | areTimeslotsOverlapping,
117 | getNotOverlappingSections,
118 | prepareSchedules,
119 | exportScheduleAsPNG,
120 | };
121 |
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: Montserrat;
3 | font-size: 13px;
4 | margin: 0;
5 | }
6 |
7 | #root {
8 | width: calc(100% - 32px);
9 | min-height: calc(100vh - 32px);
10 | padding: 16px;
11 | }
12 |
13 | @media only screen and (max-width: 599px) {
14 | #root {
15 | display: flex;
16 | flex-direction: column-reverse;
17 | }
18 | }
19 |
20 | #container {
21 | display: flex;
22 | flex-direction: column;
23 | justify-content: center;
24 | min-height: calc(100vh - 100px);
25 | margin-bottom: 24px;
26 | }
27 |
28 | .background {
29 | -webkit-font-smoothing: antialiased;
30 | -moz-osx-font-smoothing: grayscale;
31 | background: linear-gradient(
32 | 45deg,
33 | rgb(19, 73, 95),
34 | rgb(118, 75, 226),
35 | rgb(131, 115, 198),
36 | rgb(119, 211, 185)
37 | )
38 | fixed;
39 | }
40 |
41 | #selectors {
42 | margin-bottom: 16px;
43 | padding: 16px;
44 | }
45 |
46 | #coffee-button {
47 | display: inline-block;
48 | width: calc(100% - 24px);
49 | padding: 2px 12px;
50 | color: #fff;
51 | font-size: 13px;
52 | font-weight: 500;
53 | line-height: 36px;
54 | text-decoration: none;
55 | display: flex;
56 | align-items: center;
57 | justify-content: center;
58 | }
59 |
60 | #coffee-button:hover {
61 | opacity: 0.85;
62 | }
63 |
64 | #coffee-icon {
65 | width: 20px;
66 | height: 13px;
67 | margin-right: 6px;
68 | }
69 |
70 | #coffee-icon {
71 | height: 15px;
72 | width: 22px;
73 | animation: coffee-animation 3s infinite;
74 | }
75 |
76 | #footer {
77 | display: flex;
78 | justify-content: space-between;
79 | align-items: center;
80 | }
81 |
82 | #coloring-pages-link {
83 | opacity: 0.5;
84 | }
85 |
86 | #coloring-pages-link:hover {
87 | opacity: 0.4;
88 | }
89 |
90 | #coloring-pages-link a {
91 | color: #fff;
92 | font-weight: bold;
93 | text-decoration: none;
94 | }
95 |
96 | @media only screen and (max-width: 599px) {
97 | #main {
98 | flex-direction: column-reverse;
99 | order: 2;
100 | }
101 | }
102 |
103 | #schedule-details {
104 | padding-right: 5px;
105 | }
106 |
107 | @media only screen and (max-width: 599px) {
108 | #schedule-details {
109 | margin-top: 16px;
110 | padding-right: 0;
111 | }
112 | }
113 |
114 | .paper {
115 | padding: 16px;
116 | }
117 |
118 | #schedule-details .paper {
119 | height: calc(100% - 32px);
120 | display: flex;
121 | flex-direction: column;
122 | justify-content: space-between;
123 | }
124 |
125 | #schedule-table {
126 | padding-left: 12px;
127 | }
128 |
129 | @media only screen and (max-width: 599px) {
130 | #schedule-table {
131 | padding-left: 0;
132 | }
133 | }
134 |
135 | #capture-button {
136 | margin-left: auto;
137 | }
138 |
139 | @media only screen and (max-width: 599px) {
140 | #logo {
141 | margin: 0 auto 16px auto;
142 | }
143 | }
144 |
145 | .introjs-tooltipbuttons {
146 | display: flex;
147 | justify-content: flex-end;
148 | }
149 |
150 | .introjs-tooltipbuttons .introjs-donebutton {
151 | order: 1;
152 | margin-right: 0;
153 | }
154 |
155 | @keyframes coffee-animation {
156 | 0% {
157 | transform: rotate(0) scale(1);
158 | }
159 | 50% {
160 | transform: rotate(0) scale(1.15);
161 | }
162 | 65% {
163 | transform: rotate(0) scale(1.3);
164 | }
165 | 70% {
166 | transform: rotate(0) scale(1.3);
167 | }
168 | 74% {
169 | transform: rotate(-10deg) scale(1.3);
170 | }
171 | 78% {
172 | transform: rotate(10deg) scale(1.3);
173 | }
174 | 82% {
175 | transform: rotate(-10deg) scale(1.3);
176 | }
177 | 86% {
178 | transform: rotate(10deg) scale(1.3);
179 | }
180 | 90% {
181 | transform: rotate(0) scale(1.3);
182 | }
183 | 100% {
184 | transform: scale(1);
185 | }
186 | }
187 |
--------------------------------------------------------------------------------
/public/data/semesters.json:
--------------------------------------------------------------------------------
1 | [{"year":"2025-2026","code":"20252","name":"Spring"},{"year":"2025-2026","code":"20251","name":"Fall"},{"year":"2024-2025","code":"20243","name":"Summer"},{"year":"2024-2025","code":"20242","name":"Spring"},{"year":"2024-2025","code":"20241","name":"Fall"},{"year":"2023-2024","code":"20233","name":"Summer"},{"year":"2023-2024","code":"20232","name":"Spring"},{"year":"2023-2024","code":"20231","name":"Fall"},{"year":"2022-2023","code":"20223","name":"Summer"},{"year":"2022-2023","code":"20222","name":"Spring"},{"year":"2022-2023","code":"20221","name":"Fall"},{"year":"2021-2022","code":"20213","name":"Summer"},{"year":"2021-2022","code":"20212","name":"Spring"},{"year":"2021-2022","code":"20211","name":"Fall"},{"year":"2020-2021","code":"20203","name":"Summer"},{"year":"2020-2021","code":"20202","name":"Spring"},{"year":"2020-2021","code":"20201","name":"Fall"},{"year":"2019-2020","code":"20193","name":"Summer"},{"year":"2019-2020","code":"20192","name":"Spring"},{"year":"2019-2020","code":"20191","name":"Fall"},{"year":"2018-2019","code":"20183","name":"Summer"},{"year":"2018-2019","code":"20182","name":"Spring"},{"year":"2018-2019","code":"20181","name":"Fall"},{"year":"2017-2018","code":"20173","name":"Summer"},{"year":"2017-2018","code":"20172","name":"Spring"},{"year":"2017-2018","code":"20171","name":"Fall"},{"year":"2016-2017","code":"20163","name":"Summer"},{"year":"2016-2017","code":"20162","name":"Spring"},{"year":"2016-2017","code":"20161","name":"Fall"},{"year":"2015-2016","code":"20153","name":"Summer"},{"year":"2015-2016","code":"20152","name":"Spring"},{"year":"2015-2016","code":"20151","name":"Fall"},{"year":"2014-2015","code":"20143","name":"Summer"},{"year":"2014-2015","code":"20142","name":"Spring"},{"year":"2014-2015","code":"20141","name":"Fall"},{"year":"2013-2014","code":"20133","name":"Summer"},{"year":"2013-2014","code":"20132","name":"Spring"},{"year":"2013-2014","code":"20131","name":"Fall"},{"year":"2012-2013","code":"20123","name":"Summer"},{"year":"2012-2013","code":"20122","name":"Spring"},{"year":"2012-2013","code":"20121","name":"Fall"},{"year":"2011-2012","code":"20113","name":"Summer"},{"year":"2011-2012","code":"20112","name":"Spring"},{"year":"2011-2012","code":"20111","name":"Fall"},{"year":"2010-2011","code":"20103","name":"Summer"},{"year":"2010-2011","code":"20102","name":"Spring"},{"year":"2010-2011","code":"20101","name":"Fall"},{"year":"2009-2010","code":"20093","name":"Summer"},{"year":"2009-2010","code":"20092","name":"Spring"},{"year":"2009-2010","code":"20091","name":"Fall"},{"year":"2008-2009","code":"20083","name":"Summer"},{"year":"2008-2009","code":"20082","name":"Spring"},{"year":"2008-2009","code":"20081","name":"Fall"},{"year":"2007-2008","code":"20073","name":"Summer"},{"year":"2007-2008","code":"20072","name":"Spring"},{"year":"2007-2008","code":"20071","name":"Fall"},{"year":"2006-2007","code":"20063","name":"Summer"},{"year":"2006-2007","code":"20062","name":"Spring"},{"year":"2006-2007","code":"20061","name":"Fall"},{"year":"2005-2006","code":"20053","name":"Summer"},{"year":"2005-2006","code":"20052","name":"Spring"},{"year":"2005-2006","code":"20051","name":"Fall"},{"year":"2004-2005","code":"20043","name":"Summer"},{"year":"2004-2005","code":"20042","name":"Spring"},{"year":"2004-2005","code":"20041","name":"Fall"},{"year":"2003-2004","code":"20033","name":"Summer"},{"year":"2003-2004","code":"20032","name":"Spring"},{"year":"2003-2004","code":"20031","name":"Fall"},{"year":"2002-2003","code":"20023","name":"Summer"},{"year":"2002-2003","code":"20022","name":"Spring"},{"year":"2002-2003","code":"20021","name":"Fall"},{"year":"2001-2002","code":"20013","name":"Summer"},{"year":"2001-2002","code":"20012","name":"Spring"},{"year":"2001-2002","code":"20011","name":"Fall"},{"year":"2000-2001","code":"20003","name":"Summer"},{"year":"2000-2001","code":"20002","name":"Spring"},{"year":"2000-2001","code":"20001","name":"Fall"}]
--------------------------------------------------------------------------------
/scraper/services/bilkent.service.js:
--------------------------------------------------------------------------------
1 | import reqque from "reqque";
2 | import cheerio from "cheerio";
3 | import merge from "merge-deep";
4 |
5 | const WEBSITE_URL = "http://w3.bilkent.edu.tr";
6 | const API_URL = "https://stars.bilkent.edu.tr/homepage/ajax";
7 |
8 | const fetchPages = async (pageUrls) => {
9 | console.log("Total", pageUrls.length);
10 | const pages = await reqque(
11 | pageUrls,
12 | (pageUrl) =>
13 | fetch(pageUrl).then((response) => response.ok && response.text()),
14 | {
15 | maxRetries: 10,
16 | batch: { size: { limit: 10 } },
17 | delay: { duration: { limit: 700 } },
18 | }
19 | );
20 |
21 | return pages.map(({ response }) => response);
22 | };
23 |
24 | const fetchAcademicCalendar = async () => {
25 | const response = await fetch(
26 | `${WEBSITE_URL}/bilkent/academic-calendar-2025-2026/`
27 | );
28 |
29 | if (!response.ok) {
30 | throw new Error("Fetch error (academic-calendar)");
31 | }
32 |
33 | const academicCalendarPage = await response.text();
34 | const $ = cheerio.load(academicCalendarPage);
35 |
36 | const academicCalendar = $(".tablepress tbody tr")
37 | .toArray()
38 | .map((row) => ({
39 | date: $(row).find("td:nth-child(1)").text().split(",").shift(),
40 | description: $(row).find("td:nth-child(2)").text(),
41 | }));
42 |
43 | return academicCalendar;
44 | };
45 |
46 | const fetchDepartments = async () => {
47 | const [departmentsPage] = await fetchPages([
48 | `${API_URL}/plainCourseCodes.php`,
49 | ]);
50 |
51 | const $ = cheerio.load(departmentsPage);
52 |
53 | const departments = $("#ccTable tbody tr")
54 | .toArray()
55 | .map((department) => ({
56 | code: $(department).find("td:nth-child(1)").text(),
57 | name: $(department).find("td:nth-child(2)").text(),
58 | }));
59 |
60 | return departments;
61 | };
62 |
63 | const fetchSchedules = async (sectionCodes, semesterCode) => {
64 | const pageUrls = sectionCodes.map(
65 | (sectionCode) =>
66 | `${API_URL}/schedule.php?COURSE=${sectionCode}&SEMESTER=${semesterCode}`
67 | );
68 |
69 | const schedulePages = await fetchPages(pageUrls);
70 |
71 | const schedules = schedulePages.map((offeringsPage) => {
72 | const $ = cheerio.load(offeringsPage);
73 |
74 | const timeslots = $("#schedule tbody td:not([align])")
75 | .toArray()
76 | .map((timeslot, index) => {
77 | const timeslotClass = $(timeslot).attr("class");
78 | const isTimeslotEmpty = !timeslotClass;
79 |
80 | if (isTimeslotEmpty) {
81 | return null;
82 | }
83 |
84 | const timeslotText = $(timeslot).text();
85 | const isClassroomAvailable = timeslotText.includes("-");
86 | const classroom = isClassroomAvailable ? timeslotText : "N/A";
87 | const isOnline = timeslotClass === "cl_ders_o";
88 |
89 | return {
90 | [index]: `${isOnline ? "Online" : classroom}`,
91 | };
92 | })
93 | .filter(Boolean);
94 |
95 | return { schedule: merge(...timeslots) };
96 | });
97 |
98 | return schedules;
99 | };
100 |
101 | const fetchOfferings = async (departmentCodes, semesterCode) => {
102 | const pageUrls = departmentCodes.map(
103 | (departmentCode) =>
104 | `${API_URL}/plainOfferings.php?COURSE_CODE=${departmentCode}&SEMESTER=${semesterCode}`
105 | );
106 |
107 | const offeringsPages = await fetchPages(pageUrls);
108 |
109 | const offeringsWithoutSchedules = offeringsPages.map((offeringsPage) => {
110 | const $ = cheerio.load(offeringsPage);
111 |
112 | return $("#poTable tbody tr")
113 | .toArray()
114 | .map((offering) => ({
115 | code: $(offering).find("td:nth-child(1)").text(),
116 | name: $(offering).find("td:nth-child(2)").text(),
117 | instructor: $(offering).find("td:nth-child(3)").text().trim(),
118 | }));
119 | });
120 |
121 | const schedules = await fetchSchedules(
122 | offeringsWithoutSchedules.flat().map(({ code }) => code),
123 | semesterCode
124 | );
125 |
126 | return merge(offeringsWithoutSchedules.flat(), schedules);
127 | };
128 |
129 | export { fetchAcademicCalendar, fetchDepartments, fetchOfferings };
130 |
--------------------------------------------------------------------------------
/src/serviceWorker.js:
--------------------------------------------------------------------------------
1 | // This optional code is used to register a service worker.
2 | // register() is not called by default.
3 |
4 | // This lets the app load faster on subsequent visits in production, and gives
5 | // it offline capabilities. However, it also means that developers (and users)
6 | // will only see deployed updates on subsequent visits to a page, after all the
7 | // existing tabs open on the page have been closed, since previously cached
8 | // resources are updated in the background.
9 |
10 | // To learn more about the benefits of this model and instructions on how to
11 | // opt-in, read https://bit.ly/CRA-PWA
12 |
13 | /* eslint-disable */
14 | const isLocalhost = Boolean(
15 | window.location.hostname === "localhost" ||
16 | // [::1] is the IPv6 localhost address.
17 | window.location.hostname === "[::1]" ||
18 | // 127.0.0.0/8 are considered localhost for IPv4.
19 | window.location.hostname.match(
20 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
21 | )
22 | );
23 |
24 | export function register(config) {
25 | if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) {
26 | // The URL constructor is available in all browsers that support SW.
27 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
28 | if (publicUrl.origin !== window.location.origin) {
29 | // Our service worker won't work if PUBLIC_URL is on a different origin
30 | // from what our page is served on. This might happen if a CDN is used to
31 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374
32 | return;
33 | }
34 |
35 | window.addEventListener("load", () => {
36 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
37 |
38 | if (isLocalhost) {
39 | // This is running on localhost. Let's check if a service worker still exists or not.
40 | checkValidServiceWorker(swUrl, config);
41 |
42 | // Add some additional logging to localhost, pointing developers to the
43 | // service worker/PWA documentation.
44 | navigator.serviceWorker.ready.then(() => {
45 | console.log(
46 | "This web app is being served cache-first by a service " +
47 | "worker. To learn more, visit https://bit.ly/CRA-PWA"
48 | );
49 | });
50 | } else {
51 | // Is not localhost. Just register service worker
52 | registerValidSW(swUrl, config);
53 | }
54 | });
55 | }
56 | }
57 |
58 | function registerValidSW(swUrl, config) {
59 | navigator.serviceWorker
60 | .register(swUrl)
61 | .then((registration) => {
62 | registration.onupdatefound = () => {
63 | const installingWorker = registration.installing;
64 | if (installingWorker == null) {
65 | return;
66 | }
67 | installingWorker.onstatechange = () => {
68 | if (installingWorker.state === "installed") {
69 | if (navigator.serviceWorker.controller) {
70 | // At this point, the updated precached content has been fetched,
71 | // but the previous service worker will still serve the older
72 | // content until all client tabs are closed.
73 | console.log(
74 | "New content is available and will be used when all " +
75 | "tabs for this page are closed. See https://bit.ly/CRA-PWA."
76 | );
77 |
78 | // Execute callback
79 | if (config && config.onUpdate) {
80 | config.onUpdate(registration);
81 | }
82 | } else {
83 | // At this point, everything has been precached.
84 | // It's the perfect time to display a
85 | // "Content is cached for offline use." message.
86 | console.log("Content is cached for offline use.");
87 |
88 | // Execute callback
89 | if (config && config.onSuccess) {
90 | config.onSuccess(registration);
91 | }
92 | }
93 | }
94 | };
95 | };
96 | })
97 | .catch((error) => {
98 | console.error("Error during service worker registration:", error);
99 | });
100 | }
101 |
102 | function checkValidServiceWorker(swUrl, config) {
103 | // Check if the service worker can be found. If it can't reload the page.
104 | fetch(swUrl, {
105 | headers: { "Service-Worker": "script" },
106 | })
107 | .then((response) => {
108 | // Ensure service worker exists, and that we really are getting a JS file.
109 | const contentType = response.headers.get("content-type");
110 | if (
111 | response.status === 404 ||
112 | (contentType != null && contentType.indexOf("javascript") === -1)
113 | ) {
114 | // No service worker found. Probably a different app. Reload the page.
115 | navigator.serviceWorker.ready.then((registration) => {
116 | registration.unregister().then(() => {
117 | window.location.reload();
118 | });
119 | });
120 | } else {
121 | // Service worker found. Proceed as normal.
122 | registerValidSW(swUrl, config);
123 | }
124 | })
125 | .catch(() => {
126 | console.log(
127 | "No internet connection found. App is running in offline mode."
128 | );
129 | });
130 | }
131 |
132 | export function unregister() {
133 | if ("serviceWorker" in navigator) {
134 | navigator.serviceWorker.ready.then((registration) => {
135 | registration.unregister();
136 | });
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 | import React, { useState, useRef } from "react";
2 | import { useLocalStorage, useUpdateEffect, useEffectOnce } from "react-use";
3 | import ReactGA from "react-ga4";
4 |
5 | import {
6 | Container,
7 | Grid,
8 | Paper,
9 | Icon,
10 | IconButton,
11 | Box,
12 | Link,
13 | } from "@material-ui/core";
14 | import { GitHub as GitHubIcon } from "@material-ui/icons";
15 |
16 | import SemesterSelector from "./components/SemesterSelector";
17 | import CourseSelector from "./components/CourseSelector/CourseSelector";
18 | import Courses from "./components/Courses";
19 | import InstructorSelector from "./components/InstructorSelector";
20 | import Schedule from "./components/Schedule";
21 | import Pagination from "./components/Pagination";
22 | import Logo from "./components/Logo";
23 |
24 | import {
25 | reduceOfferings,
26 | prepareSchedules,
27 | exportScheduleAsPNG,
28 | } from "./schedule";
29 |
30 | import displayUserGuide from "./guide";
31 |
32 | import "./App.css";
33 |
34 | const App = () => {
35 | const [semesters, setSemesters] = useState([]);
36 | const [selectedSemester, setSelectedSemester] = useState(null);
37 | const [offerings, setOfferings] = useState([]);
38 | const [selectedCourses, setSelectedCourses] = useState([]);
39 | const [excludedTimeslots, setExcludedTimeslots] = useState({});
40 | const [schedules, setSchedules] = useState([]);
41 | const [selectedSchedule, setSelectedSchedule] = useState(0);
42 | const [isUserGuideOpened, setIsUserGuideOpened] = useState(false);
43 |
44 | const [isInstructorSelectorOpened, setIsInstructorSelectorOpened] = useState(
45 | false
46 | );
47 | const [isUserGuideCompleted, setIsUserGuideCompleted] = useLocalStorage(
48 | "isUserGuideCompleted",
49 | false
50 | );
51 |
52 | const previousStates = useRef();
53 |
54 | const { courses, timeslots } = schedules[selectedSchedule] || {};
55 | const isThereAnyExcludedTimeSlot = !!Object.values(excludedTimeslots).length;
56 |
57 | const includeOrExcludeTimeslot = (timeslot) => {
58 | if (excludedTimeslots[timeslot]) {
59 | const tempExcludedTimeslots = { ...excludedTimeslots };
60 | delete tempExcludedTimeslots[timeslot];
61 |
62 | setExcludedTimeslots(tempExcludedTimeslots);
63 | } else {
64 | setExcludedTimeslots({ ...excludedTimeslots, [timeslot]: true });
65 | }
66 | };
67 | const removeCourse = (courseIndex) => {
68 | setSelectedCourses([
69 | ...selectedCourses.slice(0, courseIndex),
70 | ...selectedCourses.slice(courseIndex + 1),
71 | ]);
72 | };
73 |
74 | const resetStates = () => {
75 | setSelectedCourses([]);
76 | setExcludedTimeslots({});
77 | setSchedules([]);
78 | setSelectedSchedule(0);
79 | };
80 |
81 | const storeStates = () => {
82 | previousStates.current = {
83 | selectedSemester,
84 | selectedCourses,
85 | excludedTimeslots,
86 | selectedSchedule,
87 | };
88 | };
89 |
90 | const closeUserGuide = () => {
91 | setSelectedSemester(previousStates.current.selectedSemester);
92 | setSelectedCourses(previousStates.current.selectedCourses);
93 | setExcludedTimeslots(previousStates.current.excludedTimeslots);
94 | setSelectedSchedule(previousStates.current.selectedSchedule);
95 |
96 | setIsUserGuideOpened(false);
97 | setIsUserGuideCompleted(true);
98 | };
99 |
100 | const fetchSemesters = async () => {
101 | const response = await fetch(`data/semesters.json`);
102 | const data = await response.json();
103 | const [currentSemester] = data;
104 |
105 | setSemesters(data);
106 | setSelectedSemester(currentSemester);
107 | };
108 |
109 | const fetchOfferings = async () => {
110 | const response = await fetch(
111 | `data/offerings/${selectedSemester.code}.json`
112 | );
113 |
114 | const data = await response.json();
115 | const reducedOfferings = Object.entries(data).reduce(reduceOfferings, []);
116 |
117 | setOfferings(reducedOfferings);
118 | };
119 |
120 | useUpdateEffect(() => {
121 | resetStates();
122 | fetchOfferings();
123 | }, [selectedSemester]);
124 |
125 | useUpdateEffect(() => {
126 | if (offerings) {
127 | const preparedSchedules = prepareSchedules(
128 | excludedTimeslots,
129 | selectedCourses
130 | );
131 | setSchedules(preparedSchedules);
132 | setSelectedSchedule(0);
133 | }
134 | }, [offerings, excludedTimeslots, selectedCourses]);
135 |
136 | useEffectOnce(() => {
137 | fetchSemesters();
138 |
139 | if (process.env.NODE_ENV === "production") {
140 | ReactGA.initialize(process.env.REACT_APP_GA_TRACKING_ID);
141 | ReactGA.send({
142 | hitType: "pageview",
143 | page: window.location.pathname + window.location.search,
144 | });
145 | }
146 |
147 | if (!isUserGuideCompleted) {
148 | setIsUserGuideOpened(true);
149 | }
150 | });
151 |
152 | useUpdateEffect(() => {
153 | if (isUserGuideOpened && offerings.length) {
154 | storeStates();
155 |
156 | if (selectedCourses.length === 0) {
157 | setSelectedCourses([offerings[0]]);
158 | }
159 |
160 | if (!isThereAnyExcludedTimeSlot) {
161 | setExcludedTimeslots({ 26: true, 31: true, 36: true });
162 | }
163 | }
164 | }, [isUserGuideOpened, offerings]);
165 |
166 | useUpdateEffect(() => {
167 | if (schedules.length && isUserGuideOpened && isThereAnyExcludedTimeSlot) {
168 | displayUserGuide(closeUserGuide);
169 | }
170 | }, [schedules]);
171 |
172 | return (
173 | <>
174 |
175 |
176 |
177 |
178 |
185 |
186 |
187 |
194 |
195 |
196 |
202 |
207 | Buy me a coffee
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 | 0,
221 | onCourseEdit: () => setIsInstructorSelectorOpened(true),
222 | onCourseRemove: removeCourse,
223 | }}
224 | />
225 |
226 |
230 |
231 |
232 |
236 | email
237 |
238 | setIsUserGuideOpened(true)}
240 | data-html2canvas-ignore
241 | >
242 | help
243 |
244 |
250 | photo_camera
251 |
252 |
253 |
254 |
255 |
256 |
257 |
265 |
266 |
267 |
268 |
269 | setSelectedSchedule(i - 1)}
274 | data-html2canvas-ignore
275 | />
276 |
277 | setIsInstructorSelectorOpened(false)}
282 | />
283 |
284 |
285 |
303 | >
304 | );
305 | };
306 |
307 | export default App;
308 |
--------------------------------------------------------------------------------
/public/data/offerings/20013.json:
--------------------------------------------------------------------------------
1 | {"AMER":{"AMER 207":{"name":"American Texts and Contexts I","sections":{"1":{"instructor":"Edward John Lundy","schedule":{"0":"N/A","2":"N/A","3":"N/A","7":"N/A","9":"N/A","10":"N/A","15":"N/A","22":"N/A"}}}},"AMER 208":{"name":"American Texts and Contexts II","sections":{"1":{"instructor":"Muammer Şanlı","schedule":{"1":"N/A","8":"N/A","14":"N/A","16":"N/A","17":"N/A","21":"N/A","23":"N/A","24":"N/A"}}}},"AMER 374":{"name":"American Poetry","sections":{"1":{"instructor":"Muammer Şanlı","schedule":{"42":"N/A","44":"N/A","45":"N/A","49":"N/A","51":"N/A","52":"N/A"}}}},"AMER 426":{"name":"American Studies in a Global Context","sections":{"1":{"instructor":"Yasemin Alptekin-Oğuzertem","schedule":{"10":"N/A","11":"N/A","17":"N/A","18":"N/A","24":"N/A","25":"N/A"}}}},"AMER 427":{"name":"Topics in Theory for American Culture","sections":{"1":{"instructor":"Valerie Begley","schedule":{"7":"N/A","9":"N/A","14":"N/A","16":"N/A","21":"N/A","23":"N/A"}}}},"AMER 431":{"name":"American Film Noir","sections":{"1":{"instructor":"John Robert Groch","schedule":{"8":"H-235","15":"H-235","22":"H-235","38":"H-235","45":"H-235","52":"H-235"}}}},"AMER 442":{"name":"America and the Skyscraper: an Architectural History","sections":{"1":{"instructor":"Christopher Wilson","schedule":{"36":"N/A","39":"N/A","43":"N/A","46":"N/A","50":"N/A","53":"N/A"}}}},"AMER 459":{"name":"Race and Ethnicity in American Culture","sections":{"1":{"instructor":"Valerie Begley","schedule":{"35":"N/A","37":"N/A","42":"N/A","44":"N/A","49":"N/A","51":"N/A"}}}}},"BF":{"BF 131":{"name":"French Language Studies I","sections":{"1":{"instructor":"Mümtaz Kaya Sabit Özönder","schedule":{"2":"LB-102","3":"LB-102","9":"LB-102","10":"LB-102","16":"LB-102","17":"LB-102","35":"LB-102","42":"LB-102","43":"LB-102","49":"LB-102","50":"LB-102","57":"LB-102"}}}},"BF 161":{"name":"Economics I","sections":{"1":{"instructor":"Nazmi Demir","schedule":{"44":"LA-107","45":"LA-107","51":"LA-107","52":"LA-107","58":"LA-107","59":"LA-107"}}}},"BF 205":{"name":"English-Turkish Translation","sections":{"1":{"instructor":"Ayşe Yumuk Şengül","schedule":{"24":"LB-101","25":"LB-101","31":"LB-101","32":"LB-101","38":"LB-101","39":"LB-101"}}}},"BF 231":{"name":"French for Business and Professional Use I","sections":{"1":{"instructor":"Mümtaz Kaya Sabit Özönder","schedule":{"23":"LB-102","30":"LB-102","37":"LB-102","46":"LB-102","53":"LB-102","60":"LB-102"}}}},"BF 236":{"name":"Commercial French","sections":{"1":{"instructor":"Mümtaz Kaya Sabit Özönder","schedule":{"4":"LB-101","11":"LB-101","18":"LB-101","22":"LB-101","29":"LB-101","36":"LB-101"}}}},"BF 251":{"name":"Principles of Accounting I","sections":{"1":{"instructor":"Aslan Kaya","schedule":{"0":"LA-103","1":"LA-103","7":"LA-103","8":"LA-103","14":"LA-103","15":"LA-103"}}}},"BF 365":{"name":"Elements of Money and Banking","sections":{"1":{"instructor":"Nazmi Demir","schedule":{"2":"LA-107","3":"LA-107","9":"LA-107","10":"LA-107","16":"LA-107","17":"LA-107"}}}},"BF 404":{"name":"French-English Translation","sections":{"1":{"instructor":"Elizabeth Saatçi","schedule":{"21":"LA-101","28":"LA-101","35":"LA-101","43":"LA-101","50":"LA-101","57":"LA-101"}}}},"BF 461":{"name":"Corporate Finance","sections":{"1":{"instructor":"Mustafa Egeli","schedule":{"12":"N/A","19":"N/A","26":"N/A","45":"LA-103","52":"LA-103","59":"LA-103"}}}},"BF 462":{"name":"Investments","sections":{"1":{"instructor":"Sedat Çilingir","schedule":{"0":"LA-107","1":"LA-107","7":"LA-107","8":"LA-107","14":"LA-107","15":"LA-107"}}}},"BF 463":{"name":"Monetary and Financial Systems","sections":{"1":{"instructor":"Okan Üçer","schedule":{"2":"LA-103","3":"LA-103","9":"LA-103","10":"LA-103","16":"LA-103","17":"LA-103"}}}},"BF 483":{"name":"Customer Services: Marketing and the Competitive Environment","sections":{"1":{"instructor":"Pınar Gür","schedule":{"11":"LA-103","18":"LA-103","25":"LA-103","39":"LA-103","46":"LA-103","53":"LA-103"}}}}},"BIM":{"BIM 108":{"name":"Elementary Business Statistics","sections":{"1":{"instructor":"Fatin Sezgin","schedule":{"18":"RB-102","25":"RB-102","32":"RB-102","35":"RB-102","42":"RB-102","49":"RB-102"}}}}},"CS":{"CS 102":{"name":"Algorithms and Programming II","sections":{"1":{"instructor":"Uğur Güdükbay","schedule":{"8":"N/A","10":"N/A","15":"N/A","17":"N/A","22":"N/A","24":"N/A","35":"B-304","37":"B-304","42":"B-304","44":"B-304","49":"B-304","51":"B-304"}}}}},"CTIS":{"CTIS 122":{"name":"Elementary Data Structures","sections":{"1":{"instructor":"Erkan Uçar","schedule":{"9":"N/A","11":"N/A","15":"N/A","16":"N/A","17":"N/A","18":"N/A","22":"N/A","23":"N/A","24":"N/A","25":"N/A","36":"N/A","38":"N/A","43":"N/A","45":"N/A"}}}},"CTIS 124":{"name":"Advanced Algorithms","sections":{"1":{"instructor":"Güray Erus","schedule":{"0":"N/A","1":"N/A","3":"N/A","7":"N/A","8":"N/A","10":"N/A","14":"N/A","21":"N/A"}}}},"CTIS 128":{"name":"Mathematics II","sections":{"1":{"instructor":"Bülent Gündüz","schedule":{"35":"N/A","37":"N/A","42":"N/A","44":"N/A","49":"N/A","51":"N/A","56":"N/A","58":"N/A"}}}}},"ECON":{"ECON 101":{"name":"Introduction to Economics I","sections":{"1":{"instructor":"Mehmet Polat","schedule":{"7":"T-173","9":"T-173","11":"T-173","14":"T-173","16":"T-173","18":"T-173","21":"T-173","23":"T-173","25":"T-173"}},"90":{"instructor":"Mehmet Polat","schedule":{"42":"A-Z25","44":"A-Z25","46":"A-Z25","49":"A-Z25","51":"A-Z25","53":"A-Z25","56":"A-Z25","58":"A-Z25","60":"A-Z25"}}}},"ECON 102":{"name":"Introduction to Economics II","sections":{"1":{"instructor":"Mehmet Polat","schedule":{"42":"A-Z25","44":"A-Z25","46":"A-Z25","49":"A-Z25","51":"A-Z25","53":"A-Z25","56":"A-Z25","58":"A-Z25","60":"A-Z25"}},"90":{"instructor":"Mehmet Polat","schedule":{"7":"T-173","9":"T-173","11":"T-173","14":"T-173","16":"T-173","18":"T-173","21":"T-173","23":"T-173","25":"T-173"}}}},"ECON 201":{"name":"Economic Theory I","sections":{"1":{"instructor":"Savaş Alpay","schedule":{"8":"T-172","10":"T-172","15":"T-172","17":"T-172","22":"T-172","24":"T-172"}},"2":{"instructor":"Syed Fahri Mahmud","schedule":{"50":"A-Z27","52":"A-Z27","57":"A-Z27","59":"A-Z27","64":"A-Z27","66":"A-Z27"}},"90":{"instructor":"Neil Lewis Arnwine","schedule":{"8":"A-Z27","10":"A-Z27","15":"A-Z27","17":"A-Z27","22":"A-Z27","24":"A-Z27"}}}},"ECON 202":{"name":"Economic Theory II","sections":{"1":{"instructor":"Neil Lewis Arnwine","schedule":{"8":"A-Z27","10":"A-Z27","15":"A-Z27","17":"A-Z27","22":"A-Z27","24":"A-Z27"}},"2":{"instructor":"Neil Lewis Arnwine","schedule":{"43":"T-172","45":"T-172","50":"T-172","52":"T-172","57":"T-172","59":"T-172"}},"90":{"instructor":"Syed Fahri Mahmud","schedule":{"50":"A-Z27","52":"A-Z27","57":"A-Z27","59":"A-Z27","64":"A-Z27","66":"A-Z27"}}}},"ECON 221":{"name":"Introduction to Probability and Statistics I","sections":{"1":{"instructor":"Savaş Alpay","schedule":{"36":"T-173","38":"T-173","43":"T-173","45":"T-173","50":"T-173","52":"T-173"}}}},"ECON 222":{"name":"Introduction to Probability and Statistics II","sections":{"1":{"instructor":"Syed Fahri Mahmud","schedule":{"15":"A-Z25","17":"A-Z25","22":"A-Z25","24":"A-Z25","29":"A-Z25","31":"A-Z25"}}}}},"ELIT":{"ELIT 137":{"name":"English History I (to the Restoration)","sections":{"1":{"instructor":"Didem Yılmaz","schedule":{"45":"H-336","46":"H-336","52":"H-336","53":"H-336","59":"H-336","60":"H-336"}}}},"ELIT 223":{"name":"World Mythology","sections":{"1":{"instructor":"Himmet Umunç","schedule":{"3":"H-334","4":"H-334","10":"H-334","11":"H-334","17":"H-334","18":"H-334"}}}},"ELIT 242":{"name":"Introduction to Drama","sections":{"1":{"instructor":"Sita Schutt","schedule":{"28":"H-334","29":"H-334","30":"H-334","35":"H-334","36":"H-334","37":"H-334"}}}},"ELIT 270":{"name":"Poetry","sections":{"1":{"instructor":"Gül Kurtuluş","schedule":{"38":"H-334","39":"H-334","45":"H-334","46":"H-334","52":"H-334","53":"H-334"}}}},"ELIT 355":{"name":"Major Writers of the Renaissance","sections":{"1":{"instructor":"M. Hamit Çalışkan","schedule":{"0":"H-335","1":"H-335","2":"H-335","7":"H-335","8":"H-335","9":"N/A","14":"H-335"}}}},"ELIT 356":{"name":"Major Writers of the Neoclassical Period","sections":{"1":{"instructor":"M. Hamit Çalışkan","schedule":{"44":"H-335","49":"H-335","50":"H-335","51":"H-335","56":"H-335","57":"H-335","58":"H-335"}}}},"ELIT 441":{"name":"British Drama I (from the Restoration to the 1950s)","sections":{"1":{"instructor":"Gül Kurtuluş","schedule":{"42":"H-233","43":"H-233","49":"H-233","50":"H-233","56":"H-233","57":"H-233"}}}},"ELIT 456":{"name":"Major Writers of the Victorian Period","sections":{"1":{"instructor":"Himmet Umunç","schedule":{"45":"H-233","46":"H-233","52":"H-233","53":"H-233","59":"H-233","60":"H-233"}}}},"ELIT 471":{"name":"Romantic Poetry","sections":{"1":{"instructor":"Anthony Lake","schedule":{"3":"H-233","4":"H-233","10":"H-233","11":"H-233","17":"H-233","18":"H-233"}}}}},"ELS":{"ELS 204":{"name":"Advanced English IV","sections":{"1":{"instructor":"Resmiye Koç Semra Durmaz Güran","schedule":{"15":"N/A","17":"N/A","22":"N/A","24":"N/A","35":"N/A","37":"N/A","42":"N/A","44":"N/A"}}}}},"ENG":{"ENG 101":{"name":"English and Composition I","sections":{"1":{"instructor":"Mehmet Demirkaya","schedule":{"7":"N/A","8":"N/A","9":"N/A","10":"N/A","11":"N/A","14":"N/A","15":"N/A","16":"N/A","17":"N/A","18":"N/A"}}}},"ENG 102":{"name":"English and Composition II","sections":{"1":{"instructor":"Şule Berilgen","schedule":{"7":"SA-Z01","8":"SA-Z01","9":"SA-Z01","10":"SA-Z01","11":"SA-Z01","14":"SA-Z01","15":"SA-Z01","16":"SA-Z01","17":"SA-Z01","18":"SA-Z01"}},"2":{"instructor":"Fatma Tuğçe Arıkan","schedule":{"7":"SA-Z02","8":"SA-Z02","9":"SA-Z02","10":"SA-Z02","11":"SA-Z02","14":"SA-Z02","15":"SA-Z02","16":"SA-Z02","17":"SA-Z02","18":"SA-Z02"}},"3":{"instructor":"Fatma Başer","schedule":{"21":"B-Z06","22":"B-Z06","23":"B-Z06","24":"B-Z06","25":"B-Z06","28":"B-Z06","29":"B-Z06","30":"B-Z06","31":"B-Z06","32":"B-Z06"}},"4":{"instructor":"İklil Kaya Yıldırım","schedule":{"21":"B-Z08","22":"B-Z08","23":"B-Z08","24":"B-Z08","25":"B-Z08","28":"B-Z08","29":"B-Z08","30":"B-Z08","31":"B-Z08","32":"B-Z08"}}}},"ENG 403":{"name":"Business Communication","sections":{"1":{"instructor":"James Thurman","schedule":{"14":"N/A","16":"N/A","18":"N/A","21":"N/A","23":"N/A","25":"N/A"}}}}},"FA":{"FA 104":{"name":"Drawing II","sections":{"1":{"instructor":"Anna Krolikiewicz","schedule":{"9":"FF-Z07","16":"FF-Z07","23":"FF-Z07","37":"FF-Z07","44":"FF-Z07","51":"FF-Z07"}}}},"FA 131":{"name":"Technical Drawing and Lettering I","sections":{"1":{"instructor":"Alper Küçük","schedule":{"36":"FF-106","38":"FF-106","43":"FF-106","45":"FF-106","50":"FF-106","52":"FF-106","57":"FF-106","59":"FF-106"}}}},"FA 171":{"name":"Introduction to Art and Culture I","sections":{"1":{"instructor":"Markus Wilsing","schedule":{"35":"FF-101","39":"FF-101","42":"FF-101","46":"FF-101","49":"FF-101","53":"FF-101"}}}},"FA 172":{"name":"Introduction to Art and Culture II","sections":{"1":{"instructor":"Markus Wilsing","schedule":{"8":"FF-101","10":"FF-101","15":"FF-101","17":"FF-101","22":"FF-101","24":"FF-101"}}}},"FA 190":{"name":"Summer Practice I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"FA 213":{"name":"Introduction to Printmaking I","sections":{"1":{"instructor":"Zekiye Sarıkartal","schedule":{"8":"FC-117","15":"FC-117","22":"FC-117","36":"FC-117","43":"FC-117","50":"FC-117"}}}},"FA 217":{"name":"Introduction to Ceramics I","sections":{"1":{"instructor":"Ahmet Özsalar","schedule":{"7":"FE-101","9":"FE-101","14":"FE-101","16":"FE-101","21":"FE-101","23":"FE-101"}}}}},"HART":{"HART 239":{"name":"Latin I","sections":{"1":{"instructor":"Jean Greenhalgh","schedule":{}}}},"HART 240":{"name":"Latin II","sections":{"1":{"instructor":"Jean Greenhalgh","schedule":{}}}},"HART 300":{"name":"The Roman Empire Under Trajan","sections":{"1":{"instructor":"Julian Bennett","schedule":{}}}}},"IAED":{"IAED 244":{"name":"Building Performance: Physical Factors","sections":{"1":{"instructor":"Necmiye Yaprak Öz","schedule":{"7":"FF-101","9":"FF-101","14":"FF-101","16":"FF-101","21":"FF-101","23":"FF-101"}}}},"IAED 251":{"name":"Construction and Materials I","sections":{"1":{"instructor":"Necmiye Şule Aybar","schedule":{"36":"FF-101","38":"FF-101","43":"FF-101","45":"FF-101","50":"FF-101","52":"FF-101","57":"FF-101","59":"FF-101"}}}},"IAED 263":{"name":"History of Built Environment I","sections":{"1":{"instructor":"Elif Erdemir Türkkan","schedule":{"8":"FF-102","10":"FF-102","15":"FF-102","17":"FF-102","22":"FF-102","24":"FF-102"}}}},"IAED 351":{"name":"Detailing Studio","sections":{"1":{"instructor":"Tomris Yardımcı","schedule":{"36":"FF-105","38":"FF-105","43":"FF-105","45":"FF-105","50":"FF-105","52":"FF-105"}}}},"IAED 415":{"name":"Modular Interior Systems","sections":{"1":{"instructor":"Serpil Altay","schedule":{"8":"FF-105","10":"FF-105","15":"FF-105","17":"FF-105","22":"FF-105","24":"FF-105"}}}},"IAED 417":{"name":"Interior Design Documentation","sections":{"1":{"instructor":"Nilgün Çarkacı","schedule":{"7":"FF-105","9":"FF-105","14":"FF-105","16":"FF-105","21":"FF-105","23":"FF-105"}}}}},"IR":{"IR 201":{"name":"Computers in Social Sciences","sections":{"1":{"instructor":"Ayşe Semra Mumcu","schedule":{"9":"B-302","11":"B-302","16":"B-302","18":"B-302","23":"B-302","25":"B-302","32":"B-302","39":"B-302","46":"B-302","53":"B-302"}}}},"IR 213":{"name":"Middle East in Global Perspective","sections":{"1":{"instructor":"Mustafa Kibaroğlu","schedule":{"8":"B-112","15":"B-112","22":"B-112","45":"B-112","52":"B-112","59":"B-112"}}}},"IR 229":{"name":"Research Methods I","sections":{"1":{"instructor":"Wlodzimierz Korab-Karpowicz","schedule":{"35":"A-331","37":"A-331","42":"A-331","44":"A-331","49":"A-331","51":"A-331"}}}},"IR 315":{"name":"History of the Balkans","sections":{"1":{"instructor":"Hasan Ünal","schedule":{"8":"A-330","9":"A-330","15":"A-330","16":"A-330","22":"A-330","23":"A-330"}}}},"IR 318":{"name":"Contemporary Balkan Politics","sections":{"1":{"instructor":"Hasan Ünal","schedule":{"10":"A-330","11":"A-330","17":"A-330","18":"A-330","24":"A-330","25":"A-330"}}}},"IR 338":{"name":"Politics of International Economy","sections":{"1":{"instructor":"Paul Andrew Williams","schedule":{"14":"B-Z07","16":"B-Z07","21":"B-Z07","23":"B-Z07","28":"B-Z07","30":"B-Z07"}}}},"IR 424":{"name":"Issues in Strategy and Diplomacy","sections":{"1":{"instructor":"Mustafa Kibaroğlu","schedule":{"10":"B-112","17":"B-112","24":"B-112","43":"B-112","50":"B-112","57":"B-112"}}}},"IR 452":{"name":"Contemporary International Relations","sections":{"1":{"instructor":"Ayşe Gülgün Tuna","schedule":{"8":"T-173","10":"T-173","15":"T-173","17":"T-173","22":"T-173","24":"T-173"}}}},"IR 454":{"name":"International Environmental Politics","sections":{"1":{"instructor":"Ayşe Gülgün Tuna","schedule":{"36":"A-125","38":"A-125","43":"A-125","45":"A-125","50":"A-125","52":"A-125"}}}},"IR 466":{"name":"Classical International Relations Theory","sections":{"1":{"instructor":"Wlodzimierz Korab-Karpowicz","schedule":{"36":"A-331","38":"A-331","43":"A-331","45":"A-331","50":"A-331","52":"A-331"}}}}},"LAUD":{"LAUD 190":{"name":"Summer Practice I","sections":{"1":{"instructor":"Mehmet Hakan Erdoğ","schedule":{}}}}},"MAN":{"MAN 253":{"name":"Introduction to Computing","sections":{"1":{"instructor":"Aslı Üstüner","schedule":{"10":"MA-301","17":"MA-301","24":"B-302","31":"B-302","44":"MA-301","51":"MA-301"}}}},"MAN 254":{"name":"Introduction to Programming","sections":{"1":{"instructor":"Turgay Saracoğlu","schedule":{"9":"MA-301","16":"MA-301","23":"B-305","30":"B-305","36":"MA-301","43":"MA-301"}}}},"MAN 633":{"name":"Advanced Marketing","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"MATH":{"MATH 102":{"name":"Calculus II","sections":{"1":{"instructor":"Mefharet Kocatepe","schedule":{"0":"B-112","2":"B-112","4":"B-112","7":"B-112","9":"B-112","11":"B-112","14":"B-112","16":"B-112","18":"B-112"}}}},"MATH 106":{"name":"Introduction to Calculus II","sections":{"1":{"instructor":"Alexandre Goncharov","schedule":{"7":"SA-Z18","9":"SA-Z18","11":"SA-Z18","14":"SA-Z18","16":"SA-Z18","18":"SA-Z18","21":"SA-Z18","23":"SA-Z18","25":"SA-Z18"}}}},"MATH 240":{"name":"Differential Equations","sections":{"1":{"instructor":"Metin Gürses","schedule":{"0":"SB-Z03","2":"SB-Z03","4":"SB-Z03","7":"SB-Z03","9":"SB-Z03","11":"SB-Z03"}}}},"MATH 291":{"name":"Summer Project I","sections":{"1":{"instructor":"Azer Kerimov","schedule":{}},"2":{"instructor":"Alexandre Goncharov","schedule":{}}}},"MATH 391":{"name":"Summer Project II","sections":{"1":{"instructor":"Ali Sinan Sertöz","schedule":{}},"2":{"instructor":"Alexandre Klyachko","schedule":{}},"3":{"instructor":"Azer Kerimov","schedule":{}}}}},"PHYS":{"PHYS 546":{"name":"Solid State Theory II","sections":{"1":{"instructor":"Salim Çıracı","schedule":{}}}}},"TE":{"TE 504":{"name":"Educational Technology and Materials Development","sections":{"1":{"instructor":"Mesut Duran","schedule":{}}}},"TE 505":{"name":"Guidance","sections":{"1":{"instructor":"Dannelle Stevens","schedule":{}}}},"TE 516":{"name":"Special Teaching Methods in English","sections":{"1":{"instructor":"Deniz Kurtoğlu-Eken","schedule":{}}}}},"TEFL":{"TEFL 553":{"name":"Research Seminar III","sections":{"1":{"instructor":"Staff","schedule":{}}}},"TEFL 555":{"name":"Written Academic Discourse","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"THM":{"THM 164":{"name":"Calculus","sections":{"1":{"instructor":"Kamer Rodoplu","schedule":{"8":"RB-201","15":"RB-201","22":"RB-201","38":"RB-201","45":"RB-201","52":"RB-201"}}}},"THM 409":{"name":"Tourism Law","sections":{"1":{"instructor":"Cem Tarhan","schedule":{"7":"RE-203","14":"RE-203","21":"RE-203","37":"RE-203","44":"RE-203","51":"RE-203"}}}},"THM 415":{"name":"Finance","sections":{"1":{"instructor":"Zeliha İlhan Ertuna","schedule":{"8":"RE-206","15":"RE-206","22":"RE-206","38":"RE-206","45":"RE-206","52":"RE-206"}}}},"THM 417":{"name":"Quantitative Decision Techniques","sections":{"1":{"instructor":"Fatin Sezgin","schedule":{"9":"RB-202","16":"RB-202","23":"RB-202","39":"RB-202","46":"RB-202","53":"RB-202"}}}},"THM 419":{"name":"Tourism Management Applications","sections":{"1":{"instructor":"M.Teoman Alemdar","schedule":{"10":"RB-203","17":"RB-203","24":"RB-203","35":"RB-203","42":"RB-203","49":"RB-203"}}}},"THM 423":{"name":"Tourism Economics","sections":{"1":{"instructor":"Cem Tarhan","schedule":{"11":"RE-203","18":"RE-203","25":"RE-203","36":"RE-203","43":"RE-203","50":"RE-203"}}}}},"TRIN":{"TRIN 102":{"name":"Applied Linguistics","sections":{"1":{"instructor":"Abdulhak Hamit Sunel","schedule":{"36":"LA-114","38":"LA-114","43":"LA-114","45":"LA-114","50":"LA-114","52":"LA-114"}}}},"TRIN 103":{"name":"Comparative Grammar (French-Turkish)","sections":{"1":{"instructor":"Abdulhak Hamit Sunel","schedule":{"7":"LB-105","8":"LB-105","14":"LB-105","15":"LB-105","21":"LB-105","22":"LB-105"}}}},"TRIN 161":{"name":"Introduction to Translation","sections":{"1":{"instructor":"Meral Karagülle Fahrettin Arslan","schedule":{"2":"LA-114","3":"LA-114","9":"LA-114","10":"LA-114","16":"LA-114","17":"LA-114","23":"LA-114","24":"LA-114"}}}},"TRIN 335":{"name":"Note-Taking and Consecutive Interpretation","sections":{"1":{"instructor":"Fahrettin Arslan Aymil Doğan","schedule":{"8":"LA-115","9":"LA-115","10":"LA-115","15":"LA-115","16":"LA-115","17":"LA-115","22":"LA-115","23":"LA-115","24":"LA-115","36":"LA-115","43":"LA-115","50":"LA-115"}}}},"TRIN 363":{"name":"Specialized French-Turkish Translation III","sections":{"1":{"instructor":"Fahrettin Arslan","schedule":{"11":"LA-115","18":"LA-115","25":"LA-115","37":"LA-115","44":"LA-115","51":"LA-115"}}}}},"TURK":{"TURK 101":{"name":"Turkish I","sections":{"1":{"instructor":"Başak Berna Cordan","schedule":{"14":"T-162","21":"T-162","38":"T-162","45":"T-162"}}}},"TURK 102":{"name":"Turkish II","sections":{"1":{"instructor":"Sare Öz","schedule":{"14":"T-268","21":"T-268","38":"T-268","45":"T-268"}}}}}}
--------------------------------------------------------------------------------
/public/data/offerings/20003.json:
--------------------------------------------------------------------------------
1 | {"AMER":{"AMER 207":{"name":"American Texts and Contexts I","sections":{"1":{"instructor":"Himmet Umunç","schedule":{"4":"N/A","11":"N/A","31":"N/A","35":"N/A","37":"N/A","38":"N/A","42":"N/A","44":"N/A"}}}},"AMER 208":{"name":"American Texts and Contexts II","sections":{"1":{"instructor":"Himmet Umunç","schedule":{"18":"N/A","25":"N/A","29":"N/A","36":"N/A","49":"N/A","51":"N/A","56":"N/A","58":"N/A"}}}},"AMER 242":{"name":"Modern American Drama II","sections":{"1":{"instructor":"Jülide Kalınyazgan","schedule":{"50":"N/A","52":"N/A","53":"N/A","57":"N/A","59":"N/A","60":"N/A"}}}},"AMER 393":{"name":"Intellectuals and Public Culture","sections":{"1":{"instructor":"İrem Balkır","schedule":{"21":"N/A","23":"N/A","28":"N/A","30":"N/A","35":"N/A","37":"N/A"}}}},"AMER 420":{"name":"Readings in Southern Literature","sections":{"1":{"instructor":"Cecile Dianne Bunch","schedule":{"0":"N/A","2":"N/A","7":"N/A","9":"N/A","14":"N/A","16":"N/A"}}}},"AMER 427":{"name":"Topics in Theory for American Culture","sections":{"1":{"instructor":"İrem Balkır","schedule":{"42":"N/A","44":"N/A","49":"N/A","51":"N/A","56":"N/A","58":"N/A"}}}},"AMER 492":{"name":"Gender Studies in American Culture","sections":{"1":{"instructor":"Cecile Dianne Bunch","schedule":{"4":"N/A","11":"N/A","18":"N/A","32":"N/A","39":"N/A","46":"N/A"}}}}},"BF":{"BF 131":{"name":"French Language Studies I","sections":{"1":{"instructor":"Mümtaz Kaya Sabit Özönder","schedule":{"7":"LB-102","8":"LB-102","14":"LB-102","15":"LB-102","21":"LB-102","22":"LB-102","35":"LB-102","36":"LB-102","42":"LB-102","43":"LB-102","49":"LB-102","50":"LB-102"}}}},"BF 161":{"name":"Economics I","sections":{"1":{"instructor":"Arzu Aygüneş","schedule":{"51":"LA-107","52":"LA-103","58":"LA-107","59":"LA-103","65":"LA-107","66":"LA-103"}}}},"BF 231":{"name":"French for Business and Professional Use I","sections":{"1":{"instructor":"Mümtaz Kaya","schedule":{"2":"LB-102","9":"LB-102","16":"LB-102","38":"LB-102","45":"LB-102","52":"LB-102"}}}},"BF 236":{"name":"Commercial French","sections":{"1":{"instructor":"Sabit Özönder","schedule":{"10":"LB-101","17":"LB-101","24":"LB-101","30":"LB-101","37":"LB-101","44":"LB-101"}}}},"BF 251":{"name":"Principles of Accounting I","sections":{"1":{"instructor":"Aslan Kaya","schedule":{"4":"LA-103","5":"N/A","11":"LA-103","12":"N/A","18":"LA-103","19":"N/A"}}}},"BF 252":{"name":"Principles of Accounting II","sections":{"1":{"instructor":"Aslan Kaya","schedule":{"32":"LA-107","33":"N/A","39":"LA-107","40":"N/A","46":"LA-107","47":"N/A"}}}},"BF 365":{"name":"Elements of Money and Banking","sections":{"1":{"instructor":"Nazmi Demir","schedule":{"7":"LA-107","14":"LA-107","21":"LA-107","38":"LA-107","45":"LA-107","52":"LA-107"}}}},"BF 403":{"name":"English-French Translation","sections":{"1":{"instructor":"Elizabeth Saatçi","schedule":{"8":"LA-103","9":"LA-103","15":"LA-103","16":"LA-103","22":"LA-103","23":"LA-103"}}}},"BF 404":{"name":"French-English Translation","sections":{"1":{"instructor":"Elizabeth Saatçi","schedule":{"36":"LA-103","37":"LA-103","43":"LA-103","44":"LA-103","50":"LA-103","51":"LA-103"}}}},"BF 461":{"name":"Corporate Finance","sections":{"1":{"instructor":"Mustafa Egeli","schedule":{"11":"LA-107","12":"N/A","18":"LA-107","19":"N/A","25":"LA-107","26":"N/A"}}}},"BF 462":{"name":"Investments","sections":{"1":{"instructor":"Sedat Çilingir","schedule":{"10":"LA-103","17":"LA-103","24":"LA-103","39":"LA-103","46":"LA-103","53":"LA-103"}}}},"BF 463":{"name":"Monetary and Financial Systems","sections":{"1":{"instructor":"Nazmi Demir","schedule":{"3":"LA-107","10":"LA-107","17":"LA-107","35":"LA-107","42":"LA-107","49":"LA-107"}}}}},"CHEM":{"CHEM 100":{"name":"General Chemistry","sections":{"1":{"instructor":"Ulrike Salzner","schedule":{}}}},"CHEM 101":{"name":"Principles of Chemistry I","sections":{"1":{"instructor":"Ulrike Salzner","schedule":{}}}}},"CS":{"CS 102":{"name":"Algorithms and Programming II","sections":{"1":{"instructor":"Uğur Güdükbay","schedule":{"7":"N/A","9":"N/A","14":"N/A","16":"N/A","21":"N/A","23":"N/A","36":"B-302","38":"B-302","43":"B-302","45":"B-302","50":"B-302","52":"B-302","57":"B-302","59":"B-302"}}}}},"CTIS":{"CTIS 122":{"name":"Elementary Data Structures","sections":{"1":{"instructor":"Bülent Gündüz","schedule":{"1":"N/A","2":"N/A","3":"N/A","4":"N/A","8":"N/A","9":"N/A","10":"N/A","11":"N/A","15":"N/A","16":"N/A","17":"N/A","18":"N/A","22":"N/A","24":"N/A"}}}},"CTIS 202":{"name":"Object Oriented Programming II","sections":{"1":{"instructor":"Güray Erus","schedule":{"0":"N/A","1":"N/A","2":"N/A","3":"N/A","7":"N/A","8":"N/A","9":"N/A","10":"N/A","14":"N/A","15":"N/A","16":"N/A","17":"N/A","21":"N/A","23":"N/A"}}}},"CTIS 407":{"name":"Visual Programming","sections":{"1":{"instructor":"Duygu Albayrak","schedule":{"0":"N/A","7":"N/A","14":"N/A","21":"N/A","36":"N/A","37":"N/A","43":"N/A","44":"N/A"}}}}},"ECON":{"ECON 101":{"name":"Introduction to Economics I","sections":{"1":{"instructor":"Savaş Alpay","schedule":{"7":"T-173","9":"T-173","11":"T-173","14":"T-173","16":"T-173","18":"T-173","21":"T-173","23":"T-173","25":"T-173"}},"90":{"instructor":"Mehmet Polat","schedule":{"42":"T-172","44":"T-172","46":"T-172","49":"T-172","51":"T-172","53":"T-172","56":"T-172","58":"T-172","60":"T-172"}}}},"ECON 102":{"name":"Introduction to Economics II","sections":{"1":{"instructor":"Mehmet Polat","schedule":{"7":"T-172","9":"T-172","11":"T-172","14":"T-172","16":"T-172","18":"T-172","21":"T-172","23":"T-172","25":"T-172"}},"90":{"instructor":"Ahmet Fettahoğlu","schedule":{"42":"T-173","44":"T-173","46":"T-173","49":"T-173","51":"T-173","53":"T-173","56":"T-173","58":"T-173","60":"T-173"}}}},"ECON 201":{"name":"Economic Theory I","sections":{"1":{"instructor":"Syed Fahri Mahmud","schedule":{"43":"A-125","45":"A-125","50":"A-125","52":"A-125","57":"A-125","59":"A-125"}},"2":{"instructor":"Syed Fahri Mahmud","schedule":{"8":"A-125","10":"A-125","15":"A-125","17":"A-125","22":"A-125","24":"A-125"}},"90":{"instructor":"Neil Lewis Arnwine","schedule":{"8":"A-Z27","10":"A-Z27","15":"A-Z27","17":"A-Z27","22":"A-Z27","24":"A-Z27"}}}},"ECON 202":{"name":"Economic Theory II","sections":{"1":{"instructor":"Neil Lewis Arnwine","schedule":{"8":"A-Z27","10":"A-Z27","15":"A-Z27","17":"A-Z27","22":"A-Z27","24":"A-Z27"}},"2":{"instructor":"Staff","schedule":{"43":"A-Z27","45":"A-Z27","50":"A-Z27","52":"A-Z27","57":"A-Z27","59":"A-Z27"}},"90":{"instructor":"Syed Fahri Mahmud","schedule":{"43":"A-125","45":"A-125","50":"A-125","52":"A-125","57":"A-125","59":"A-125"}}}}},"ELIT":{"ELIT 114":{"name":"Critical Reading","sections":{"1":{"instructor":"Rüçhan Kayalar","schedule":{"7":"H-332","8":"H-332","9":"H-332","14":"H-332","15":"H-332","16":"H-332"}}}},"ELIT 137":{"name":"English History I (to the Restoration)","sections":{"1":{"instructor":"Birtane Karanakçı","schedule":{"49":"H-332","50":"H-332","51":"H-332","56":"H-332","57":"H-332","58":"H-332"}}}},"ELIT 138":{"name":"English History II (to Present)","sections":{"1":{"instructor":"Mine Özyurt Kılıç","schedule":{"52":"H-332","53":"H-332","59":"H-332","60":"H-332","66":"H-332","67":"H-332"}}}},"ELIT 201":{"name":"Essay Writing","sections":{"1":{"instructor":"Didem Yılmaz","schedule":{"2":"H-334","4":"H-334","9":"H-334","11":"H-334","16":"H-334","18":"H-334"}}}},"ELIT 214":{"name":"Research Techniques","sections":{"1":{"instructor":"Sema Taşkın","schedule":{"1":"H-334","3":"H-334","8":"H-334","10":"H-334","15":"H-334","17":"H-334"}}}},"ELIT 223":{"name":"World Mythology","sections":{"1":{"instructor":"Sema Taşkın","schedule":{"0":"H-334","7":"H-334","14":"H-334","30":"H-334","37":"H-334","44":"H-334"}}}},"ELIT 242":{"name":"Introduction to Drama","sections":{"1":{"instructor":"Gül Kurtuluş","schedule":{"29":"H-334","32":"H-334","36":"H-334","39":"H-334","43":"H-334","46":"H-334"}}}},"ELIT 281":{"name":"The Short Story","sections":{"1":{"instructor":"Rüçhan Kayalar","schedule":{"49":"H-334","50":"H-334","51":"H-334","56":"H-334","57":"H-334","58":"H-334"}}}},"ELIT 355":{"name":"Major Writers of the Renaissance","sections":{"1":{"instructor":"Birtane Karanakçı","schedule":{"28":"H-335","29":"H-335","30":"H-335","35":"H-335","36":"H-335","37":"H-335"}}}},"ELIT 356":{"name":"Major Writers of the Neoclassical Period","sections":{"1":{"instructor":"M. Hamit Çalışkan","schedule":{"49":"H-335","50":"H-335","51":"H-335","56":"H-335","57":"H-335","58":"H-335"}}}},"ELIT 442":{"name":"British Drama II (from the 1950s to present)","sections":{"1":{"instructor":"M. Hamit Çalışkan","schedule":{"28":"H-233","29":"H-233","30":"H-233","35":"H-233","36":"H-233","37":"H-233"}}}},"ELIT 456":{"name":"Major Writers of the Victorian Period","sections":{"1":{"instructor":"Michael B. Jasper","schedule":{"49":"H-233","50":"H-233","51":"H-233","56":"H-233","57":"H-233","58":"H-233"}}}},"ELIT 471":{"name":"Romantic Poetry","sections":{"1":{"instructor":"Anthony Lake","schedule":{"4":"H-233","11":"H-233","18":"H-233","31":"H-233","38":"H-233","45":"H-233"}}}}},"ENG":{"ENG 101":{"name":"English and Composition I","sections":{"2":{"instructor":"Fatma Tuğçe Arıkan","schedule":{"14":"N/A","15":"N/A","16":"N/A","17":"N/A","18":"N/A","21":"N/A","22":"N/A","23":"N/A","24":"N/A","25":"N/A"}},"3":{"instructor":"Şenol Bezci","schedule":{"28":"SA-Z20","29":"SA-Z20","30":"SA-Z20","31":"SA-Z20","32":"SA-Z20","35":"SA-Z20","36":"SA-Z20","37":"SA-Z20","38":"SA-Z20","39":"SA-Z20"}}}},"ENG 102":{"name":"English and Composition II","sections":{"1":{"instructor":"Ersin Soylu","schedule":{"14":"SA-Z01","15":"SA-Z01","16":"SA-Z01","17":"SA-Z01","18":"SA-Z01","21":"SA-Z01","22":"SA-Z01","23":"SA-Z01","24":"SA-Z01","25":"SA-Z01"}},"2":{"instructor":"Mehmet Demirkaya","schedule":{"14":"SA-Z02","15":"SA-Z02","16":"SA-Z02","17":"SA-Z02","18":"SA-Z02","21":"SA-Z02","22":"SA-Z02","23":"SA-Z02","24":"SA-Z02","25":"SA-Z02"}},"3":{"instructor":"Hümeyra Başol Çetin","schedule":{"28":"N/A","29":"N/A","30":"N/A","31":"N/A","32":"N/A","35":"N/A","36":"N/A","37":"N/A","38":"N/A","39":"N/A"}},"4":{"instructor":"Semih İrfaner","schedule":{"28":"SA-Z01","29":"SA-Z01","30":"SA-Z01","31":"SA-Z01","32":"SA-Z01","35":"SA-Z01","36":"SA-Z01","37":"SA-Z01","38":"SA-Z01","39":"SA-Z01"}},"5":{"instructor":"İsmail Erton","schedule":{"28":"SA-Z02","29":"SA-Z02","30":"SA-Z02","31":"SA-Z02","32":"SA-Z02","35":"SA-Z02","36":"SA-Z02","37":"SA-Z02","38":"SA-Z02","39":"SA-Z02"}}}}},"FA":{"FA 131":{"name":"Technical Drawing and Lettering I","sections":{"1":{"instructor":"Necmiye Yaprak Öz","schedule":{"35":"FF-109","38":"FF-109","42":"FF-109","45":"FF-109","49":"FF-109","52":"FF-109","56":"FF-109","59":"FF-109"}}}},"FA 132":{"name":"Technical Drawing and Lettering II","sections":{"1":{"instructor":"Alper Küçük","schedule":{"35":"FF-107","38":"FF-107","42":"FF-107","45":"FF-107","49":"FF-107","52":"FF-107","56":"FF-107","59":"FF-107"}}}},"FA 171":{"name":"Introduction to Art and Culture I","sections":{"1":{"instructor":"Christopher Wilson","schedule":{"9":"FF-Z13","16":"FF-Z13","23":"FF-Z13","39":"FF-Z13","46":"FF-Z13","53":"FF-Z13"}}}},"FA 213":{"name":"Introduction to Printmaking I","sections":{"1":{"instructor":"Zekiye Sarıkartal","schedule":{"37":"FC-117","39":"FC-117","44":"FC-117","46":"FC-117","51":"FC-117","53":"FC-117"}}}}},"HART":{"HART 352":{"name":"Monuments of Rome","sections":{"1":{"instructor":"Staff","schedule":{}}}},"HART 490":{"name":"Supervised Study","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"HCIV":{"HCIV 101":{"name":"History of Civilization I","sections":{"1":{"instructor":"David E. Thornton","schedule":{"0":"A-127","2":"A-127","7":"A-127","9":"A-127","14":"A-127","16":"A-127"}}}},"HCIV 102":{"name":"History of Civilization II","sections":{"1":{"instructor":"David E. Thornton","schedule":{"35":"A-127","37":"A-127","42":"A-127","44":"A-127","49":"A-127","51":"A-127"}}}}},"HUM":{"HUM 111":{"name":"Cultures Civilizations and Ideas I","sections":{"1":{"instructor":"Geoffrey Scott Bowe","schedule":{"8":"N/A","10":"N/A","15":"N/A","17":"N/A","22":"N/A","24":"N/A","29":"N/A","31":"N/A"}}}}},"IAED":{"IAED 244":{"name":"Building Performance: Physical Factors","sections":{"1":{"instructor":"Necmiye Yaprak Öz","schedule":{"8":"FF-101","11":"FF-101","15":"FF-101","18":"FF-101","22":"FF-101","25":"FF-101"}}}},"IAED 251":{"name":"Construction and Materials I","sections":{"1":{"instructor":"Mehmet Turhan Kayasü","schedule":{"0":"N/A","3":"N/A","7":"N/A","10":"N/A","14":"N/A","17":"N/A","21":"N/A","24":"N/A"}}}},"IAED 263":{"name":"History of Built Environment I","sections":{"1":{"instructor":"Elif Erdemir Türkkan","schedule":{"35":"FF-101","37":"FF-101","42":"FF-101","44":"FF-101","49":"FF-101","51":"FF-101"}}}},"IAED 264":{"name":"History of Built Environment II","sections":{"1":{"instructor":"Elif Erdemir Türkkan","schedule":{"36":"FF-101","38":"FF-101","43":"FF-101","45":"FF-101","50":"FF-101","52":"FF-101"}}}},"IAED 290":{"name":"Summer Practice I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"IAED 315":{"name":"Computerized Presentation Techniques","sections":{"1":{"instructor":"Tijen Sonkan Türkkan","schedule":{}}}},"IAED 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Staff","schedule":{}}}},"IAED 463":{"name":"History of Furniture","sections":{"1":{"instructor":"Serpil Altay","schedule":{"9":"FF-102","16":"FF-102","23":"FF-102","39":"FF-102","46":"FF-102","53":"FF-102"}}}}},"IE":{"IE 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"IE 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Staff","schedule":{}}}},"IE 532":{"name":"Decision Analysis","sections":{"1":{"instructor":"Staff","schedule":{}}}},"IE 578":{"name":"Location Models","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"IR":{"IR 203":{"name":"International Relations I","sections":{"1":{"instructor":"Ayşe Gülgün Tuna","schedule":{"8":"A-330","10":"A-330","15":"A-330","17":"A-330","22":"A-330","24":"A-330"}}}},"IR 204":{"name":"International Relations II","sections":{"1":{"instructor":"Ayşe Gülgün Tuna","schedule":{"36":"A-329","38":"A-329","43":"A-329","45":"A-329","50":"A-329","52":"A-329"}}}},"IR 213":{"name":"Middle East in Global Perspective","sections":{"1":{"instructor":"Mustafa Kibaroğlu","schedule":{"8":"A-329","9":"A-329","15":"A-329","16":"A-329","22":"A-329","23":"A-329"}}}},"IR 315":{"name":"History of the Balkans","sections":{"1":{"instructor":"Hasan Ünal","schedule":{"3":"A-229","4":"A-229","10":"A-229","11":"A-229","17":"A-229","18":"A-229"}}}},"IR 318":{"name":"Contemporary Balkan Politics","sections":{"1":{"instructor":"Hasan Ünal","schedule":{"0":"A-229","1":"A-229","7":"A-229","8":"A-229","14":"A-229","15":"A-229"}}}},"IR 424":{"name":"Issues in Strategy and Diplomacy","sections":{"1":{"instructor":"Mustafa Kibaroğlu","schedule":{"36":"A-229","37":"A-229","43":"A-229","44":"A-229","50":"A-229","51":"A-229"}}}}},"LAUD":{"LAUD 190":{"name":"Summer Practice I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"LAUD 390":{"name":"Summer Practice III","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"MAN":{"MAN 253":{"name":"Introduction to Computing","sections":{"1":{"instructor":"İsmail İpek","schedule":{"8":"MA-104","9":"MA-104","15":"MA-104","16":"MA-104","22":"MA-104","23":"MA-104","36":"MA-104","43":"MA-104","50":"MA-104"}}}},"MAN 254":{"name":"Introduction to Programming","sections":{"1":{"instructor":"Hilmi Öncül","schedule":{"10":"MA-105","11":"MA-105","17":"MA-105","18":"MA-105","24":"MA-105","25":"MA-105","38":"MA-105","45":"MA-105","52":"MA-105"}}}},"MAN 631":{"name":"Marketing Theory","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"MATH":{"MATH 102":{"name":"Calculus II","sections":{"1":{"instructor":"Ali Sinan Sertöz","schedule":{"0":"SA-Z04","2":"SA-Z04","4":"SA-Z04","7":"SA-Z04","9":"SA-Z04","11":"SA-Z04","14":"SA-Z04","16":"SA-Z04","18":"SA-Z04"}}}},"MATH 106":{"name":"Introduction to Calculus II","sections":{"1":{"instructor":"Alexandre Goncharov","schedule":{"7":"SA-Z18","9":"SA-Z18","11":"SA-Z18","14":"SA-Z18","16":"SA-Z18","18":"SA-Z18","21":"SA-Z18","23":"SA-Z18","25":"SA-Z18"}}}},"MATH 291":{"name":"Summer Project I","sections":{"1":{"instructor":"Ali Sinan Sertöz","schedule":{}}}},"MATH 391":{"name":"Summer Project II","sections":{"1":{"instructor":"Alexandre Klyachko","schedule":{}}}}},"MBG":{"MBG 105":{"name":"Principles of Biology","sections":{"1":{"instructor":"M. Cengiz Yakıcıer","schedule":{"35":"SB-Z10","37":"SB-Z10","42":"SB-Z10","44":"SB-Z10","49":"SB-Z10","51":"SB-Z10"}}}},"MBG 110":{"name":"Introduction to Modern Biology","sections":{"1":{"instructor":"M. Cengiz Yakıcıer","schedule":{"35":"SB-Z10","37":"SB-Z10","42":"SB-Z10","44":"SB-Z10","49":"SB-Z10","51":"SB-Z10"}}}},"MBG 615":{"name":"Recent Advances in Molecular Biology","sections":{"1":{"instructor":"Mehmet Öztürk","schedule":{}}}}},"MUS":{"MUS 776":{"name":"Composition - Solfege IV","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"TE":{"TE 504":{"name":"Educational Technology and Materials Development","sections":{"1":{"instructor":"Mesut Duran","schedule":{"0":"B-207","1":"B-207","2":"B-207","3":"B-207","4":"B-207","7":"B-207","8":"B-207","9":"B-207","10":"B-207","11":"B-207"}}}},"TE 505":{"name":"Guidance","sections":{"1":{"instructor":"Dannelle Stevens","schedule":{"14":"B-207","15":"B-207","16":"B-207","17":"B-207","18":"B-207","21":"B-207","22":"B-207","23":"B-207","24":"B-207","25":"B-207"}}}}},"TEFL":{"TEFL 553":{"name":"Research Seminar III","sections":{"1":{"instructor":"Hossein Nassaji","schedule":{}}}},"TEFL 555":{"name":"Written Academic Discourse","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"THM":{"THM 164":{"name":"Calculus","sections":{"1":{"instructor":"Kamer Rodoplu","schedule":{"8":"RB-203","15":"RB-203","22":"RB-203","38":"RB-203","45":"RB-203","52":"RB-203"}}}},"THM 403":{"name":"Organizational Behavior","sections":{"1":{"instructor":"Şermin Elmas","schedule":{"8":"RE-202","15":"RE-202","22":"RE-202","39":"RE-202","46":"RE-202","53":"RE-202"}}}},"THM 409":{"name":"Tourism Law","sections":{"1":{"instructor":"Cem Tarhan","schedule":{"7":"RB-206","14":"RB-206","21":"RB-206","37":"RB-206","44":"RB-206","51":"RB-206"}}}},"THM 415":{"name":"Finance","sections":{"1":{"instructor":"Cevat Ertuna","schedule":{"8":"RB-207","15":"RB-207","22":"RB-207","38":"RB-207","45":"RB-207","52":"RB-207"}}}},"THM 417":{"name":"Quantitative Decision Techniques","sections":{"1":{"instructor":"Fatin Sezgin","schedule":{"9":"RB-208","16":"RB-208","23":"RB-208","39":"RB-208","46":"RB-208","53":"RB-208"}}}},"THM 419":{"name":"Tourism Management Applications","sections":{"1":{"instructor":"M.Teoman Alemdar","schedule":{"10":"RB-201","17":"RB-201","24":"RB-201","35":"RB-201","42":"RB-201","49":"RB-201"}}}},"THM 423":{"name":"Tourism Economics","sections":{"1":{"instructor":"Cem Tarhan","schedule":{"11":"RB-206","18":"RB-206","25":"RB-206","36":"RB-206","43":"RB-206","50":"RB-206"}}}}},"TRIN":{"TRIN 103":{"name":"Comparative Grammar (French-Turkish)","sections":{"1":{"instructor":"Abdulhak Hamit Sunel","schedule":{"8":"LB-105","11":"LB-105","15":"LB-105","18":"LB-105","22":"LB-105","25":"LB-105"}}}},"TRIN 161":{"name":"Introduction to Translation","sections":{"1":{"instructor":"Aylin Bayrakçeken Akın Abidin Emre","schedule":{"2":"LA-114","3":"LA-114","9":"LA-114","10":"LA-114","16":"LA-114","17":"LA-114","23":"LA-114","24":"LA-114"}}}},"TRIN 265":{"name":"Translation of Economic Texts (English-Turkish-French)","sections":{"1":{"instructor":"Mine Tüzüner Abdulhak Hamit Sunel","schedule":{"35":"LA-115","37":"LA-114","42":"LA-115","44":"LA-114","49":"LA-115","51":"LA-114","56":"LA-115","58":"LA-114"}}}},"TRIN 271":{"name":"Business Communication","sections":{"1":{"instructor":"Meral Karagülle Zeynep Karaibrahimoğlu","schedule":{"2":"LA-115","9":"LA-115","16":"LA-115","23":"LA-115","36":"LA-114","43":"LA-114","50":"LA-114","57":"LA-114"}}}},"TRIN 335":{"name":"Note-Taking and Consecutive Interpretation","sections":{"1":{"instructor":"Tanju İnal Aymil Doğan","schedule":{"8":"LA-115","9":"LB-105","10":"LB-105","11":"LA-114","15":"LA-115","16":"LB-105","17":"LB-105","18":"LA-114","22":"LA-115","23":"LB-105","24":"LB-105","25":"LA-114"}}}},"TRIN 363":{"name":"Specialized French-Turkish Translation III","sections":{"1":{"instructor":"Abdulhak Hamit Sunel","schedule":{"7":"LA-115","14":"LA-115","21":"LA-115","37":"LA-115","44":"LA-115","51":"LA-115"}}}}},"TURK":{"TURK 102":{"name":"Turkish II","sections":{"1":{"instructor":"Ahmet Özer","schedule":{"14":"T-162","21":"T-162","38":"T-162","45":"T-162"}}}},"TURK 403":{"name":"Turkish Grammar I","sections":{"1":{"instructor":"Hamza Zülfikar","schedule":{"35":"B-207","36":"B-207","37":"B-207","38":"N/A","39":"N/A","42":"B-207","43":"B-207","44":"B-207","45":"N/A","46":"N/A"}}}},"TURK 404":{"name":"Turkish Grammar II","sections":{"1":{"instructor":"Zuhal Kargi Ölmez","schedule":{"35":"B-207","36":"B-207","37":"B-207","38":"N/A","39":"N/A","42":"B-207","43":"B-207","44":"B-207","45":"N/A","46":"N/A"}}}}}}
--------------------------------------------------------------------------------
/public/data/offerings/20023.json:
--------------------------------------------------------------------------------
1 | {"AMER":{"AMER 208":{"name":"American Texts and Contexts II","sections":{"1":{"instructor":"Muammer Şanlı","schedule":{"0":"N/A","2":"N/A","7":"N/A","9":"N/A","15":"N/A","17":"N/A","22":"N/A","24":"N/A"}}}},"AMER 383":{"name":"American Novel to 1900","sections":{"1":{"instructor":"Yasemin Alptekin-Oğuzertem","schedule":{"21":"N/A","23":"N/A","25":"N/A","28":"N/A","30":"N/A","32":"N/A"}}}},"AMER 384":{"name":"American Novel From 1900","sections":{"1":{"instructor":"Yasemin Alptekin-Oğuzertem","schedule":{"42":"N/A","44":"N/A","46":"N/A","49":"N/A","51":"N/A","53":"N/A"}}}},"AMER 426":{"name":"American Studies in a Global Context","sections":{"1":{"instructor":"İrem Balkır","schedule":{"29":"N/A","35":"N/A","36":"N/A","42":"N/A","43":"N/A","49":"N/A"}}}},"AMER 432":{"name":"Photography in American History","sections":{"1":{"instructor":"Catherine M. Sampsell","schedule":{"2":"N/A","3":"N/A","9":"N/A","10":"N/A","16":"N/A","17":"N/A"}}}},"AMER 442":{"name":"America and the Skyscraper: an Architectural History","sections":{"1":{"instructor":"Christopher Wilson","schedule":{"21":"N/A","23":"N/A","25":"N/A","28":"N/A","30":"N/A","32":"N/A"}}}},"AMER 459":{"name":"Race and Ethnicity in American Culture","sections":{"1":{"instructor":"Catherine M. Sampsell","schedule":{"44":"N/A","45":"N/A","51":"N/A","52":"N/A","58":"N/A","59":"N/A"}}}},"AMER 492":{"name":"Gender Studies in American Culture","sections":{"1":{"instructor":"İrem Balkır","schedule":{"0":"N/A","1":"N/A","7":"N/A","8":"N/A","14":"N/A","15":"N/A"}}}}},"BF":{"BF 131":{"name":"French Language Studies I","sections":{"1":{"instructor":"Sabit Özönder","schedule":{"2":"LB-102","3":"LB-102","9":"LB-102","10":"LB-102","16":"LB-102","17":"LB-102","35":"LB-102","36":"LB-102","42":"LB-102","43":"LB-102","49":"LB-102","50":"LB-102"}}}},"BF 161":{"name":"Economics I","sections":{"1":{"instructor":"Nazmi Demir","schedule":{"44":"LA-107","45":"LA-107","51":"LA-107","52":"LA-107","58":"LA-107","59":"LA-107"}}}},"BF 205":{"name":"English-Turkish Translation","sections":{"1":{"instructor":"Ayşe Yumuk Şengül","schedule":{"24":"LB-101","25":"LB-101","31":"LB-101","32":"LB-101","38":"LB-101","39":"LB-101"}}}},"BF 231":{"name":"French for Business and Professional Use I","sections":{"1":{"instructor":"Mümtaz Kaya","schedule":{"4":"LB-102","11":"LB-102","18":"LB-102","23":"LB-102","30":"LB-102","37":"LB-102"}}}},"BF 251":{"name":"Principles of Accounting I","sections":{"1":{"instructor":"Aslan Kaya","schedule":{"0":"LA-103","1":"LA-103","7":"LA-103","8":"LA-103","14":"LA-103","15":"LA-103"}}}},"BF 332":{"name":"French for Business and Professional Use III","sections":{"1":{"instructor":"Christine Özcan","schedule":{"1":"LB-101","8":"LB-101","15":"LB-101","44":"LB-101","51":"LB-101","58":"LB-101"}}}},"BF 365":{"name":"Elements of Money and Banking","sections":{"1":{"instructor":"Nazmi Demir","schedule":{"2":"LA-107","3":"LA-107","9":"LA-107","10":"LA-107","16":"LA-107","17":"LA-107"}}}},"BF 403":{"name":"English-French Translation","sections":{"1":{"instructor":"Elizabeth Saatçi","schedule":{"22":"LA-101","29":"LA-101","36":"LA-101","42":"LA-101","49":"LA-101","56":"LA-101"}}}},"BF 404":{"name":"French-English Translation","sections":{"1":{"instructor":"Elizabeth Saatçi","schedule":{"21":"LA-101","28":"LA-101","35":"LA-101","43":"LA-101","50":"LA-101","57":"LA-101"}}}},"BF 461":{"name":"Corporate Finance","sections":{"1":{"instructor":"Mustafa Egeli","schedule":{"0":"LB-102","7":"LB-102","12":"N/A","14":"LB-102","19":"N/A","26":"N/A"}}}},"BF 462":{"name":"Investments","sections":{"1":{"instructor":"Sedat Çilingir","schedule":{"1":"LA-107","8":"LA-107","15":"LA-107","23":"LA-107","30":"LA-107","37":"LA-107"}}}},"BF 463":{"name":"Monetary and Financial Systems","sections":{"1":{"instructor":"Şenol Babuşcu","schedule":{"42":"LA-103","43":"LA-103","49":"LA-103","50":"LA-103","56":"LA-103","57":"LA-103"}}}},"BF 483":{"name":"Customer Services: Marketing and the Competitive Environment","sections":{"1":{"instructor":"Pınar Gür","schedule":{"11":"LA-107","18":"LA-107","25":"LA-107","39":"LA-107","46":"LA-107","53":"LA-107"}}}}},"BIM":{"BIM 107":{"name":"Elements of Business Mathematics","sections":{"1":{"instructor":"Ayşegül Altaban","schedule":{"36":"RB-102","43":"RB-102","44":"RB-102","50":"RB-102","51":"RB-102","58":"RB-102","65":"RB-102"}}}},"BIM 108":{"name":"Elementary Business Statistics","sections":{"1":{"instructor":"Fatin Sezgin","schedule":{}}}},"BIM 498":{"name":"Selected Topics in Information Management","sections":{"1":{"instructor":"Arzu Sibel İkinci","schedule":{}}}}},"CS":{"CS 102":{"name":"Algorithms and Programming II","sections":{"1":{"instructor":"Uğur Güdükbay","schedule":{"8":"EB-201","10":"EB-201","15":"EB-201","17":"EB-201","22":"EB-201","24":"EB-201","42":"B-304","44":"B-202","49":"B-304","51":"B-202","56":"B-304","58":"B-202"}},"2":{"instructor":"Özlem Özgü","schedule":{"35":"EB-204","36":"N/A","37":"EB-204","38":"N/A","42":"EB-204","43":"N/A","44":"EB-204","45":"N/A","49":"EB-204","50":"N/A","51":"EB-204","52":"N/A"}}}}},"CTIS":{"CTIS 152":{"name":"Algorithms and Data Structures","sections":{"1":{"instructor":"Güray Erus","schedule":{"14":"N/A","15":"N/A","16":"N/A","17":"N/A","21":"N/A","22":"N/A","23":"N/A","24":"N/A","35":"N/A","36":"N/A","37":"N/A","38":"N/A","42":"N/A","43":"N/A","44":"N/A","45":"N/A"}},"2":{"instructor":"Erkan Uçar","schedule":{"1":"N/A","2":"N/A","3":"N/A","4":"N/A","8":"N/A","9":"N/A","10":"N/A","11":"N/A","15":"N/A","16":"N/A","17":"N/A","18":"N/A","22":"N/A","23":"N/A","24":"N/A","25":"N/A"}}}},"CTIS 154":{"name":"Discrete Mathematics II","sections":{"1":{"instructor":"Duygu Albayrak","schedule":{"0":"N/A","2":"N/A","4":"N/A","7":"N/A","9":"N/A","11":"N/A"}}}}},"ECON":{"ECON 101":{"name":"Introduction to Economics I","sections":{"1":{"instructor":"Uğur Korum","schedule":{"29":"A-Z25","30":"A-Z25","31":"A-Z25","36":"A-Z25","37":"A-Z25","38":"A-Z25"}}}},"ECON 102":{"name":"Introduction to Economics II","sections":{"1":{"instructor":"Mehmet Polat","schedule":{"57":"A-Z25","58":"A-Z25","59":"A-Z25","64":"A-Z25","65":"A-Z25","66":"A-Z25"}}}},"ECON 201":{"name":"Economic Theory I","sections":{"1":{"instructor":"Staff","schedule":{"8":"A-125","10":"A-125","15":"A-125","17":"A-125","22":"A-125","24":"A-125"}}}},"ECON 202":{"name":"Economic Theory II","sections":{"1":{"instructor":"Neil Lewis Arnwine","schedule":{"43":"A-125","45":"A-125","50":"A-125","52":"A-125","57":"A-125","59":"A-125"}}}},"ECON 221":{"name":"Introduction to Probability and Statistics I","sections":{"1":{"instructor":"Syed Fahri Mahmud","schedule":{"7":"A-125","9":"A-125","14":"A-125","16":"A-125","21":"A-125","23":"A-125"}}}},"ECON 222":{"name":"Introduction to Probability and Statistics II","sections":{"1":{"instructor":"Syed Fahri Mahmud","schedule":{"42":"A-125","44":"A-125","49":"A-125","51":"A-125","56":"A-125","58":"A-125"}}}},"ECON 581":{"name":"Structure of Turkish Economy and OECD Economies","sections":{"1":{"instructor":"Mehmet Taner Yiğit","schedule":{}}}}},"ELIT":{"ELIT 137":{"name":"English History I (to the Restoration)","sections":{"1":{"instructor":"Mine Özyurt Kılıç","schedule":{"23":"H-332","30":"H-332","45":"H-332","46":"H-332","52":"H-332","53":"H-332"}}}},"ELIT 223":{"name":"World Mythology","sections":{"1":{"instructor":"Birtane Karanakçı","schedule":{"8":"H-336","9":"H-336","15":"H-336","16":"H-336","21":"H-336","28":"H-336"}}}},"ELIT 355":{"name":"Major Writers of the Renaissance","sections":{"1":{"instructor":"Birtane Karanakçı","schedule":{"49":"H-336","50":"H-336","51":"H-336","56":"H-336","57":"H-336","58":"H-336"}}}},"ELIT 356":{"name":"Major Writers of the Neoclassical Period","sections":{"1":{"instructor":"M. Hamit Çalışkan","schedule":{"16":"H-233","22":"H-233","23":"H-233","24":"H-233","29":"H-233","30":"H-233","31":"N/A"}}}},"ELIT 438":{"name":"Selected Topics","sections":{"1":{"instructor":"Rüçhan Kayalar","schedule":{"21":"H-335","22":"H-335","23":"H-335","28":"H-335","29":"H-335","30":"H-335"}}}},"ELIT 441":{"name":"British Drama I (from the Restoration to the 1950s)","sections":{"1":{"instructor":"M. Hamit Çalışkan","schedule":{"42":"H-233","43":"H-233","44":"H-233","49":"H-233","50":"H-233","51":"N/A","56":"H-233"}}}},"ELIT 456":{"name":"Major Writers of the Victorian Period","sections":{"1":{"instructor":"Anthony Lake","schedule":{"3":"H-334","4":"H-334","10":"H-334","11":"H-334","17":"H-334","18":"H-334"}}}},"ELIT 471":{"name":"Romantic Poetry","sections":{"1":{"instructor":"Sema Taşkın","schedule":{"3":"H-335","4":"H-335","10":"H-335","11":"H-335","17":"H-335","18":"H-335"}}}},"ELIT 474":{"name":"20th Century Poetry","sections":{"1":{"instructor":"Sema Taşkın","schedule":{"0":"H-335","1":"H-335","7":"H-335","8":"H-335","14":"H-335","15":"H-335"}}}}},"ELS":{"ELS 112":{"name":"English for Academic Purposes II","sections":{"1":{"instructor":"Tuba Berk","schedule":{"14":"N/A","15":"N/A","16":"N/A","17":"N/A","18":"N/A","21":"N/A","22":"N/A","23":"N/A","24":"N/A","25":"N/A"}}}}},"ENG":{"ENG 101":{"name":"English and Composition I","sections":{"1":{"instructor":"Aynur Kadıoğlu","schedule":{"7":"SA-Z02","8":"SA-Z02","9":"SA-Z02","10":"SA-Z02","11":"SA-Z02","14":"SA-Z02","15":"SA-Z02","16":"SA-Z02","17":"SA-Z02","18":"SA-Z02"}},"3":{"instructor":"Semih İrfaner","schedule":{"28":"B-Z08","29":"B-Z08","30":"B-Z08","31":"B-Z08","32":"B-Z08","35":"B-Z08","36":"B-Z08","37":"B-Z08","38":"B-Z08","39":"B-Z08"}},"4":{"instructor":"James Thurman","schedule":{"28":"B-Z05","29":"B-Z05","30":"B-Z05","31":"B-Z05","32":"B-Z05","35":"B-Z05","36":"B-Z05","37":"B-Z05","38":"B-Z05","39":"B-Z05"}}}},"ENG 102":{"name":"English and Composition II","sections":{"1":{"instructor":"Cem Akpınar","schedule":{"7":"B-Z08","8":"B-Z08","9":"B-Z08","10":"B-Z08","11":"B-Z08","14":"B-Z08","15":"B-Z08","16":"B-Z08","17":"B-Z08","18":"B-Z08"}},"2":{"instructor":"Nazan Avcıbaşıoğlu","schedule":{"21":"N/A","22":"N/A","23":"N/A","24":"N/A","25":"N/A","28":"N/A","29":"N/A","30":"N/A","31":"N/A","32":"N/A"}},"3":{"instructor":"Şenol Bezci","schedule":{"28":"SA-Z03","29":"SA-Z03","30":"SA-Z03","31":"SA-Z03","32":"SA-Z03","35":"SA-Z03","36":"SA-Z03","37":"SA-Z03","38":"SA-Z03","39":"SA-Z03"}},"4":{"instructor":"Yeşim Kuzanlı","schedule":{"21":"SA-Z02","22":"SA-Z02","23":"SA-Z02","24":"SA-Z02","25":"SA-Z02","28":"SA-Z02","29":"SA-Z02","30":"SA-Z02","31":"SA-Z02","32":"SA-Z02"}},"5":{"instructor":"İsmail Erton","schedule":{"7":"SA-Z19","8":"SA-Z19","9":"SA-Z19","10":"SA-Z19","11":"SA-Z19","14":"SA-Z19","15":"SA-Z19","16":"SA-Z19","17":"SA-Z19","18":"SA-Z19"}},"6":{"instructor":"İklil Kaya Yıldırım","schedule":{"28":"SA-Z20","29":"SA-Z20","30":"SA-Z20","31":"SA-Z20","32":"SA-Z20","35":"SA-Z20","36":"SA-Z20","37":"SA-Z20","38":"SA-Z20","39":"SA-Z20"}}}},"ENG 403":{"name":"Business Communication","sections":{"1":{"instructor":"Hümeyra Başol Çetin","schedule":{"14":"B-Z05","16":"B-Z05","18":"B-Z05","21":"B-Z05","23":"B-Z05","25":"B-Z05"}}}}},"FA":{"FA 102":{"name":"Basic Design II","sections":{"1":{"instructor":"Sibel Ertez Ural","schedule":{"8":"FF-109","10":"FF-109","15":"FF-109","17":"FF-109","22":"FF-109","24":"FF-109","36":"FF-109","38":"FF-109","43":"FF-109","45":"FF-109","50":"FF-109","52":"FF-109","57":"FF-109","59":"FF-109"}}}},"FA 132":{"name":"Technical Drawing and Lettering II","sections":{"1":{"instructor":"Alper Küçük","schedule":{"37":"FF-109","39":"FF-109","44":"FF-109","46":"FF-109","51":"FF-109","53":"FF-109","58":"FF-109","60":"FF-109"}}}},"FA 171":{"name":"Introduction to Art and Culture I","sections":{"1":{"instructor":"Markus Wilsing","schedule":{"7":"FF-101","9":"FF-101","14":"FF-101","16":"FF-101","21":"FF-101","23":"FF-101"}}}},"FA 172":{"name":"Introduction to Art and Culture II","sections":{"1":{"instructor":"Saadet Ayşe Gül Tokol","schedule":{"8":"FA-117","10":"FA-117","15":"FA-117","17":"FA-117","22":"FA-117","24":"FA-117"}}}},"FA 213":{"name":"Introduction to Printmaking I","sections":{"1":{"instructor":"Zekiye Sarıkartal","schedule":{}}}},"FA 217":{"name":"Introduction to Ceramics I","sections":{"1":{"instructor":"Ahmet Özsalar","schedule":{}}}},"FA 290":{"name":"Summer Practice II","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"GRA":{"GRA 590":{"name":"Research Topics","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"HART":{"HART 108":{"name":"Mythology","sections":{"1":{"instructor":"Jean Greenhalgh","schedule":{}}}},"HART 460":{"name":"Readings in Roman Art and Archaeology","sections":{"1":{"instructor":"Julian Bennett","schedule":{}}}}},"HUM":{"HUM 111":{"name":"Cultures Civilizations and Ideas I","sections":{"1":{"instructor":"Geoffrey Scott Bowe","schedule":{"15":"EB-203","17":"EB-203","22":"EB-203","24":"EB-203","29":"EB-203","31":"EB-203","36":"EB-203","38":"EB-203"}},"2":{"instructor":"Mustafa Nakeeb","schedule":{"15":"EB-204","17":"EB-204","22":"EB-204","24":"EB-204","29":"EB-204","31":"EB-204","36":"EB-204","38":"EB-204"}}}},"HUM 112":{"name":"Cultures Civilizations and Ideas II","sections":{"1":{"instructor":"Mustafa Nakeeb","schedule":{"14":"EB-203","16":"EB-203","21":"EB-203","23":"EB-203","28":"EB-203","30":"EB-203","35":"EB-203","37":"EB-203"}}}}},"IAED":{"IAED 202":{"name":"Interior Design Studio II","sections":{"1":{"instructor":"Maya Öztürk","schedule":{"7":"FF-305","9":"FF-305","11":"FF-305","14":"FF-305","16":"FF-305","18":"FF-305","21":"FF-305","23":"FF-305","25":"FF-305","37":"FF-305","39":"FF-305","44":"FF-305","46":"FF-305","51":"FF-305","53":"FF-305","58":"FF-305","60":"FF-305"}}}},"IAED 244":{"name":"Building Performance: Physical Factors","sections":{"1":{"instructor":"Necmiye Yaprak Öz","schedule":{"8":"FF-102","10":"FF-102","15":"FF-102","17":"FF-102","22":"FF-102","24":"FF-102"}}}},"IAED 251":{"name":"Construction and Materials I","sections":{"1":{"instructor":"Mehmet Turhan Kayasü","schedule":{"36":"FF-201","38":"FF-201","43":"FF-201","45":"FF-201","50":"FF-201","52":"FF-201","57":"FF-201","59":"FF-201"}}}},"IAED 302":{"name":"Interior Design Studio IV","sections":{"1":{"instructor":"Necmiye Şule Aybar","schedule":{"11":"FF-105","18":"FF-105","25":"FF-105","36":"FF-105","37":"FF-105","38":"FF-105","39":"FF-105","43":"FF-105","44":"FF-105","45":"FF-105","46":"FF-105","50":"FF-105","51":"FF-105","52":"FF-105","53":"FF-105","57":"FF-105","58":"FF-105","59":"FF-105","60":"FF-105"}}}},"IAED 341":{"name":"Building Performance: Codes","sections":{"1":{"instructor":"Necmiye Yaprak Öz","schedule":{"7":"FF-102","9":"FF-102","14":"FF-102","16":"FF-102","21":"FF-102","23":"FF-102"}}}},"IAED 351":{"name":"Detailing Studio","sections":{"1":{"instructor":"Tomris Yardımcı","schedule":{"8":"FF-105","10":"FF-105","15":"FF-105","17":"FF-105","22":"FF-105","24":"FF-105"}}}},"IAED 415":{"name":"Modular Interior Systems","sections":{"1":{"instructor":"Serpil Altay","schedule":{"7":"FF-105","9":"FF-105","14":"FF-105","16":"FF-105","21":"FF-105","23":"FF-105"}}}},"IAED 417":{"name":"Interior Design Documentation","sections":{"1":{"instructor":"Nilgün Çarkacı","schedule":{"35":"FF-309","37":"FF-309","42":"FF-309","44":"FF-309","49":"FF-309","51":"FF-309"}}}}},"IE":{"IE 527":{"name":"Optimal Control","sections":{"1":{"instructor":"Staff","schedule":{"8":"EA-302","10":"EA-302","15":"EA-302","17":"EA-302","22":"EA-302","24":"EA-302"}}}},"IE 573":{"name":"Theory of Machine Scheduling","sections":{"1":{"instructor":"Bela Vizvari","schedule":{"11":"EA-302","18":"EA-302","25":"EA-302","36":"EA-302","43":"EA-302","50":"EA-302"}}}}},"IR":{"IR 201":{"name":"Computers in Social Sciences","sections":{"1":{"instructor":"Ayşe Semra Mumcu","schedule":{"14":"B-202","21":"B-202","22":"B-202","28":"B-202","29":"B-202","36":"B-202","43":"B-202","50":"B-202","57":"B-202","64":"B-202"}}}},"IR 213":{"name":"Middle East in Global Perspective","sections":{"1":{"instructor":"Mustafa Kibaroğlu","schedule":{"8":"B-Z06","10":"B-Z06","15":"B-Z06","17":"B-Z06","22":"B-Z06","24":"B-Z06"}}}},"IR 218":{"name":"Diplomatic History II","sections":{"1":{"instructor":"Sean Alexander McMeekin","schedule":{"1":"B-Z07","3":"B-Z07","8":"B-Z07","10":"B-Z07","15":"B-Z07","17":"B-Z07"}}}},"IR 229":{"name":"Research Methods I","sections":{"1":{"instructor":"Wlodzimierz Korab-Karpowicz","schedule":{"35":"B-Z07","38":"B-Z07","42":"B-Z07","45":"B-Z07","49":"B-Z07","52":"B-Z07"}}}},"IR 230":{"name":"Research Methods II","sections":{"1":{"instructor":"Wlodzimierz Korab-Karpowicz","schedule":{"37":"B-Z07","39":"B-Z07","44":"B-Z07","46":"B-Z07","51":"B-Z07","53":"B-Z07"}}}},"IR 234":{"name":"Turkish Political and Economic System","sections":{"1":{"instructor":"Ali Tekin","schedule":{"36":"A-329","38":"A-329","43":"A-329","45":"A-329","50":"A-329","52":"A-329"}}}},"IR 315":{"name":"History of the Balkans","sections":{"1":{"instructor":"Hasan Ünal","schedule":{"0":"A-329","2":"A-329","7":"A-329","9":"A-329","14":"A-329","16":"A-329"}}}},"IR 318":{"name":"Contemporary Balkan Politics","sections":{"1":{"instructor":"Hasan Ünal","schedule":{"1":"A-329","3":"A-329","8":"A-329","10":"A-329","15":"A-329","17":"A-329"}}}},"IR 338":{"name":"Politics of International Economy","sections":{"1":{"instructor":"Ali Tekin","schedule":{"16":"B-Z06","18":"B-Z06","23":"B-Z06","25":"B-Z06","30":"B-Z06","32":"B-Z06"}}}},"IR 424":{"name":"Issues in Strategy and Diplomacy","sections":{"1":{"instructor":"Mustafa Kibaroğlu","schedule":{"43":"B-Z06","45":"B-Z06","50":"B-Z06","52":"B-Z06","57":"B-Z06","59":"B-Z06"}}}}},"LAUD":{"LAUD 190":{"name":"Summer Practice I","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"MAN":{"MAN 213":{"name":"Principles of Financial Accounting","sections":{"1":{"instructor":"Süleyman Tuluğ Ok","schedule":{"11":"MA-301","15":"MA-301","18":"MA-301","22":"MA-301","29":"MA-301","49":"MA-301","56":"MA-301","63":"MA-301"}}}},"MAN 253":{"name":"Introduction to Computing","sections":{"1":{"instructor":"İsmail İpek","schedule":{"0":"N/A","1":"B-303","3":"B-303","7":"N/A","8":"B-303","10":"B-303","14":"N/A","17":"B-303","21":"N/A","24":"B-303"}}}},"MAN 254":{"name":"Introduction to Programming","sections":{"1":{"instructor":"Turgay Saracoğlu","schedule":{"44":"MA-301","46":"B-304","51":"MA-301","53":"B-304","57":"MA-301","58":"B-303","59":"MA-301","64":"MA-301","65":"B-303","66":"MA-301"}}}},"MAN 256":{"name":"Introduction to Management Science","sections":{"1":{"instructor":"Bela Vizvari","schedule":{"9":"MA-301","16":"MA-301","23":"MA-301","38":"MA-301","45":"MA-301","52":"MA-301"}}}},"MAN 262":{"name":"Organizational Behavior","sections":{"1":{"instructor":"Zahide Karakitapoğlu Aygün","schedule":{"25":"MA-301","32":"MA-301","35":"MA-301","42":"MA-301","43":"MA-301","50":"MA-301"}}}}},"MATH":{"MATH 102":{"name":"Calculus II","sections":{"1":{"instructor":"Ali Sinan Sertöz","schedule":{"0":"SA-Z04","2":"SA-Z04","4":"SA-Z04","7":"SA-Z04","9":"SA-Z04","11":"SA-Z04","14":"SA-Z04","16":"SA-Z04","18":"SA-Z04"}},"2":{"instructor":"Ali Sinan Sertöz","schedule":{"42":"SA-Z04","44":"SA-Z04","46":"SA-Z04","49":"SA-Z04","51":"SA-Z04","53":"SA-Z04","56":"SA-Z04","58":"SA-Z04","60":"SA-Z04"}}}},"MATH 106":{"name":"Introduction to Calculus II","sections":{"1":{"instructor":"Alexandre Goncharov","schedule":{"7":"SA-Z18","9":"SA-Z18","11":"SA-Z18","14":"SA-Z18","16":"SA-Z18","18":"SA-Z18","21":"SA-Z18","23":"SA-Z18","25":"SA-Z18"}}}},"MATH 240":{"name":"Differential Equations","sections":{"1":{"instructor":"Mefharet Kocatepe","schedule":{"8":"SA-Z04","10":"SA-Z04","15":"SA-Z04","17":"SA-Z04","22":"SA-Z04","24":"SA-Z04"}},"2":{"instructor":"Ayhan Altıntaş","schedule":{"8":"SA-Z18","10":"SA-Z18","15":"SA-Z18","17":"SA-Z18","22":"SA-Z18","24":"SA-Z18"}}}},"MATH 291":{"name":"Summer Project I","sections":{"2":{"instructor":"Azer Kerimov","schedule":{}},"3":{"instructor":"Laurence John Barker","schedule":{}},"4":{"instructor":"Alexandre Goncharov","schedule":{}}}},"MATH 391":{"name":"Summer Project II","sections":{"1":{"instructor":"Dilek Köksal","schedule":{}},"2":{"instructor":"Azer Kerimov","schedule":{}}}}},"PHYS":{"PHYS 102":{"name":"General Physics II","sections":{"1":{"instructor":"Staff","schedule":{"39":"N/A","43":"B-Z08","45":"B-Z08","46":"N/A","50":"B-Z08","52":"B-Z08","53":"N/A","57":"B-Z08","59":"B-Z08"}}}}},"PSYC":{"PSYC 102":{"name":"Introduction to Social Psychology","sections":{"1":{"instructor":"Bahriye Zeynep Önen","schedule":{"1":"A-127","3":"A-127","8":"A-127","10":"A-127","15":"A-127","17":"A-127"}}}}},"SOC":{"SOC 101":{"name":"Introduction to Sociology","sections":{"1":{"instructor":"Süheyla Pinar","schedule":{"0":"A-127","2":"A-127","7":"A-127","9":"A-127","14":"A-127","16":"A-127"}}}}},"TE":{"TE 504":{"name":"Educational Technology and Materials Development","sections":{"1":{"instructor":"Mesut Duran","schedule":{}}}},"TE 505":{"name":"Guidance","sections":{"1":{"instructor":"Patricia Ann Corsgreen","schedule":{"0":"N/A","2":"N/A","7":"N/A","9":"N/A","14":"N/A","16":"N/A"}}}},"TE 506":{"name":"Planning and Assessment in Teaching","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"TEFL":{"TEFL 553":{"name":"Research Seminar III","sections":{"1":{"instructor":"Julie Ann Aydınlı","schedule":{}}}},"TEFL 554":{"name":"Thesis Writing","sections":{"1":{"instructor":"William Snyder","schedule":{}}}}},"THM":{"THM 164":{"name":"Calculus","sections":{"1":{"instructor":"Kamer Rodoplu","schedule":{"36":"RE-103","38":"RE-103","43":"RE-103","45":"RE-103","50":"RE-103","52":"RE-103"}}}},"THM 245":{"name":"Purchasing and Cost Analysis","sections":{"1":{"instructor":"Esin Şenol","schedule":{"8":"RB-206","15":"RB-206","22":"RB-206","38":"RB-206","45":"RB-206","52":"RB-206"}}}},"THM 409":{"name":"Tourism Law","sections":{"1":{"instructor":"Cem Tarhan","schedule":{"7":"RE-203","14":"RE-203","21":"RE-203","37":"RE-203","44":"RE-203","51":"RE-203"}}}},"THM 415":{"name":"Finance","sections":{"1":{"instructor":"Cevat Ertuna","schedule":{"8":"RE-102","15":"RE-102","22":"RE-102","38":"RE-102","45":"RE-102","52":"RE-102"}}}},"THM 417":{"name":"Quantitative Decision Techniques","sections":{"1":{"instructor":"Fatin Sezgin","schedule":{"9":"RB-202","16":"RB-202","23":"RB-202","39":"RB-202","46":"RB-202","53":"RB-202"}}}},"THM 419":{"name":"Tourism Management Applications","sections":{"1":{"instructor":"M.Teoman Alemdar","schedule":{"10":"RB-203","17":"RB-203","24":"RB-203","35":"RB-203","42":"RB-203","49":"RB-203"}}}},"THM 423":{"name":"Tourism Economics","sections":{"1":{"instructor":"Cem Tarhan","schedule":{"11":"RE-203","18":"RE-203","25":"RE-203","36":"RE-203","43":"RE-203","50":"RE-203"}}}}},"TRIN":{"TRIN 102":{"name":"Applied Linguistics","sections":{"1":{"instructor":"Abdulhak Hamit Sunel","schedule":{"1":"LB-105","4":"LB-105","8":"LB-105","11":"LB-105","15":"LB-105","18":"LB-105"}}}},"TRIN 103":{"name":"Comparative Grammar (French-Turkish)","sections":{"1":{"instructor":"Abdulhak Hamit Sunel","schedule":{"0":"LB-105","3":"LB-105","7":"LB-105","10":"LB-105","14":"LB-105","17":"LB-105"}}}},"TRIN 267":{"name":"Sight Translation I","sections":{"1":{"instructor":"Mümtaz Kaya Şebnem Akçapar","schedule":{"2":"LA-114","9":"LA-114","11":"LA-115","16":"LA-114","18":"LA-115","25":"LA-115","38":"LA-114","39":"LA-115","45":"LA-114","46":"LA-115","52":"LA-114","53":"LA-115"}}}},"TRIN 335":{"name":"Note-Taking and Consecutive Interpretation","sections":{"1":{"instructor":"Fahrettin Arslan Ayşe Şirin Okyayuz","schedule":{"7":"LA-115","14":"LA-115","21":"LA-115","35":"LA-115","36":"LA-115","37":"LA-115","42":"LA-115","43":"LA-115","44":"LA-115","49":"LA-115","50":"LA-115","51":"LA-115"}}}}},"TURK":{"TURK 101":{"name":"Turkish I","sections":{"1":{"instructor":"Başak Berna Cordan","schedule":{"14":"T-169","21":"T-169","38":"T-169","45":"T-169"}}}},"TURK 102":{"name":"Turkish II","sections":{"1":{"instructor":"Ali Turan Görgü","schedule":{"14":"T-162","21":"T-162","38":"T-162","45":"T-162"}}}}}}
--------------------------------------------------------------------------------
/public/data/offerings/20223.json:
--------------------------------------------------------------------------------
1 | {"AMER":{"AMER 499":{"name":"Individual Study","sections":{"1":{"instructor":"Daniel Peter Johnson","schedule":{}}}}},"ARCH":{"ARCH 290":{"name":"Summer Practice I","sections":{"1":{"instructor":"Özge Selen Duran","schedule":{}}}},"ARCH 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Özge Selen Duran","schedule":{}}}},"ARCH 499":{"name":"Individual Study","sections":{"1":{"instructor":"Zühre Sü Gül","schedule":{}}}}},"CHEM":{"CHEM 102":{"name":"Principles of Chemistry II","sections":{"1":{"instructor":"Burak Ülgüt","schedule":{"3":"SA-Z04","9":"SA-Z04","10":"SA-Z04","14":"SA-Z04","21":"SA-Z04","50":"SA-Z04","51":"N/A","57":"SA-Z04","58":"N/A","72":"N/A","79":"N/A"}}}},"CHEM 213":{"name":"Analytical Chemistry Laboratory I","sections":{"1":{"instructor":"Burak Ülgüt","schedule":{"49":"N/A","56":"N/A","70":"N/A","77":"N/A"}}}}},"CI":{"CI 518":{"name":"Science of Learning","sections":{"1":{"instructor":"Armağan Ateşkan Jennie Farber Lane","schedule":{"42":"N/A","44":"N/A","49":"N/A","51":"N/A","56":"N/A","58":"N/A","65":"N/A"}}}},"CI 606":{"name":"Qualitative Research Methods","sections":{"1":{"instructor":"İlker Kalender","schedule":{"43":"N/A","45":"N/A","50":"N/A","52":"N/A","57":"N/A","59":"N/A","66":"N/A"}}}}},"CINT":{"CINT 520":{"name":"Technology and Research for Interpreting","sections":{"1":{"instructor":"Zeynep Şengel","schedule":{"3":"N/A","10":"N/A","14":"N/A","18":"N/A","21":"N/A","25":"N/A","50":"N/A","51":"N/A","57":"N/A","58":"N/A"}}}},"CINT 590":{"name":"Interpreting Seminar","sections":{"1":{"instructor":"Kutlay Bensan Ebru Kanık Yiğit Bener Ayşe Aslı Alanat Kılıç","schedule":{}}}}},"COMD":{"COMD 358":{"name":"Professional Communication ","sections":{"1":{"instructor":"Müge Mengü Hale","schedule":{"1":"FC-Z23B","8":"FC-Z23B","18":"FC-Z23B","24":"FC-Z23B","25":"FC-Z23B","51":"FC-Z23B","58":"FC-Z23B"}}}},"COMD 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Hasan Yusuf Akçura","schedule":{}}}}},"CS":{"CS 102":{"name":"Algorithms and Programming II","sections":{"1":{"instructor":"Özcan Öztürk","schedule":{"3":"EB-101","9":"EB-101","10":"EB-101","14":"EB-101","21":"EB-101","49":"B-305","50":"EB-101","53":"B-305","56":"B-305","57":"EB-101","60":"B-305","70":"B-305","74":"B-305","77":"B-305","81":"B-305"}}}},"CS 115":{"name":"Introduction to Programming in Python","sections":{"1":{"instructor":"İpek Sözen Lori Rae Russell Dağ","schedule":{"1":"G-236","8":"G-236","18":"G-B40","24":"G-B40","25":"G-B40","49":"EE-211","51":"G-B40","53":"EE-211","56":"EE-211","58":"G-B40","60":"EE-211","70":"EE-211","74":"EE-211","77":"EE-211","81":"EE-211"}}}},"CS 121":{"name":"Introduction to Computer Applications and Programming","sections":{"1":{"instructor":"Rabia Üşenmez","schedule":{"35":"B-303","37":"B-303","38":"B-303","42":"B-303","45":"B-303","52":"B-303","59":"B-303","73":"B-303","80":"B-303"}}}},"CS 125":{"name":"Introduction to Data Analysis for Social Sciences","sections":{"1":{"instructor":"Ayışığı Başak Sevdik Çallı","schedule":{"36":"B-206","39":"B-206","43":"B-206","44":"B-206","46":"B-206","53":"B-303","60":"B-303","74":"B-303","81":"B-303"}}}},"CS 202":{"name":"Fundamental Structures of Computer Science II","sections":{"1":{"instructor":"Aynur Dayanık","schedule":{"4":"EB-104","11":"EB-104","16":"EB-104","17":"EB-104","23":"EB-104","49":"EB-104","56":"EB-104"}}}},"CS 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"CS 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Staff","schedule":{}}}},"CS 413":{"name":"Software Engineering Project Management","sections":{"1":{"instructor":"Mustafa Değerli","schedule":{"1":"EB-101","8":"EB-101","18":"EB-101","24":"EB-101","25":"EB-101","51":"EB-101","58":"EB-101"}}}},"CS 499":{"name":"Individual Study","sections":{"1":{"instructor":"Uğur Doğrusöz","schedule":{}}}}},"CTIS":{"CTIS 152":{"name":"Algorithms and Data Structures","sections":{"1":{"instructor":"Serpil Tın","schedule":{"1":"C-CTISL7","3":"CE-104","4":"C-CTISL7","8":"C-CTISL7","9":"CE-104","10":"CE-104","11":"C-CTISL7","14":"CE-104","17":"C-CTISL7","21":"CE-104","24":"C-CTISL7","49":"C-CTISL7","50":"CE-104","56":"C-CTISL7","57":"CE-104"}}}},"CTIS 256":{"name":"Introduction to Backend Development","sections":{"1":{"instructor":"Serkan Genç","schedule":{"1":"C-CTISL1","8":"C-CTISL1","18":"C-CTISL1","24":"C-CTISL1","25":"C-CTISL1","51":"C-CTISL1","58":"C-CTISL1"}}}},"CTIS 261":{"name":"Fundamentals of Computer Networks","sections":{"1":{"instructor":"Hamdi Murat Yıldırım Seyid Amjad Ali","schedule":{"0":"C-CTISL3","2":"C-CTISL3","7":"C-CTISL3","15":"C-CTISL3","22":"C-CTISL3","52":"C-CTISL3","53":"C-CTISL3","59":"C-CTISL3","60":"C-CTISL3","74":"C-CTISL3","81":"C-CTISL3"}}}},"CTIS 489":{"name":"Interactive Computer Graphics Programming ","sections":{"1":{"instructor":"Serkan Genç","schedule":{"4":"C-CTISL1","11":"C-CTISL1","16":"C-CTISL1","17":"C-CTISL1","23":"C-CTISL1","49":"C-CTISL1","56":"C-CTISL1"}}}}},"ECON":{"ECON 103":{"name":"Principles of Economics","sections":{"1":{"instructor":"Güneş Karamullaoğlu","schedule":{"3":"B-204","10":"B-204","14":"B-204","18":"B-204","21":"B-204","25":"B-204","50":"B-204","51":"B-204","57":"B-204","58":"B-204"}}}},"ECON 204":{"name":"Microeconomic Theory II","sections":{"1":{"instructor":"Aleksandr Levkun","schedule":{"0":"B-Z06","2":"B-Z06","7":"B-Z06","15":"B-Z06","22":"B-Z06","52":"B-Z06","59":"B-Z06"}}}},"ECON 301":{"name":"Econometrics I","sections":{"1":{"instructor":"Mehmet Taner Yiğit","schedule":{"3":"B-Z06","10":"B-Z06","14":"B-Z06","18":"B-Z06","21":"B-Z06","25":"B-Z06","35":"B-305","42":"B-305","50":"B-Z06","51":"B-Z06","57":"B-Z06","58":"B-Z06"}}}},"ECON 399":{"name":"Summer Training ","sections":{"1":{"instructor":"Staff","schedule":{}}}},"ECON 439":{"name":"Game Theory I","sections":{"1":{"instructor":"Nuh Aygün Dalkıran","schedule":{"0":"B-Z07","2":"B-Z07","7":"B-Z07","15":"B-Z07","22":"B-Z07","52":"B-Z07","59":"B-Z07"}}}},"ECON 498":{"name":"Individual Study","sections":{"1":{"instructor":"Burçin Kısacıkoğlu","schedule":{}}}},"ECON 499":{"name":"Individual Study","sections":{"1":{"instructor":"Türkan Mine Kara","schedule":{}}}},"ECON 695":{"name":"Research Methods in Economics I","sections":{"1":{"instructor":"Nuh Aygün Dalkıran","schedule":{}}}}},"EEE":{"EEE 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"EEE 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Staff","schedule":{}}}},"EEE 431":{"name":"Digital Communications","sections":{"1":{"instructor":"Sinan Gezici","schedule":{"0":"EB-101","2":"EB-101","7":"EB-101","15":"EB-101","22":"EB-101","52":"EB-101","59":"EB-101"}}}},"EEE 446":{"name":"Control and Optimization of Stochastic Systems","sections":{"1":{"instructor":"Serdar Yüksel","schedule":{"4":"EB-103","11":"EB-103","16":"EB-103","17":"EB-103","23":"EB-103","49":"EB-103","56":"EB-103"}}}},"EEE 546":{"name":"Control and Optimization of Stochastic Systems","sections":{"1":{"instructor":"Serdar Yüksel","schedule":{"4":"EB-103","11":"EB-103","16":"EB-103","17":"EB-103","23":"EB-103","49":"EB-103","56":"EB-103"}}}}},"ELIT":{"ELIT 499":{"name":"Individual Study","sections":{"1":{"instructor":"Ayşe Çelikkol","schedule":{}}}}},"EMBA":{"EMBA 502":{"name":"EMBA Project","sections":{"1":{"instructor":"Ahmet Şensoy","schedule":{}}}},"EMBA 516":{"name":"Competitive Strategy","sections":{"1":{"instructor":"Ahmet Şensoy","schedule":{}}}}},"ENG":{"ENG 101":{"name":"English and Composition I","sections":{"1":{"instructor":"Hakan Güven","schedule":{"1":"G-Z52","3":"G-Z52","4":"G-Z52","8":"G-Z52","10":"G-Z52","11":"G-Z52","14":"G-Z52","21":"G-Z52","50":"G-Z52","51":"G-Z52","57":"G-Z52","58":"G-Z52"}}}},"ENG 102":{"name":"English and Composition II","sections":{"1":{"instructor":"Özge Ezici Çetin","schedule":{"0":"G-Z10","2":"G-Z10","7":"G-Z10","9":"G-Z10","15":"G-Z10","18":"G-Z10","22":"G-Z10","25":"G-Z10","52":"G-Z10","53":"G-Z10","59":"G-Z10","60":"G-Z10"}},"2":{"instructor":"Türküm Azmiye Cankatan","schedule":{"1":"G-Z07","3":"G-Z07","4":"G-Z07","8":"G-Z07","10":"G-Z07","11":"G-Z07","14":"G-Z07","21":"G-Z07","50":"G-Z07","51":"G-Z07","57":"G-Z07","58":"G-Z07"}},"3":{"instructor":"John William Day","schedule":{"16":"G-Z52","23":"G-Z52","35":"G-Z52","36":"G-Z52","37":"G-Z52","38":"G-Z52","39":"G-Z52","42":"G-Z52","43":"G-Z52","44":"G-Z52","45":"G-Z52","46":"G-Z52"}},"4":{"instructor":"Elif Çotuksöken","schedule":{"0":"G-Z07","2":"G-Z07","7":"G-Z07","9":"G-Z07","15":"G-Z07","18":"G-Z07","22":"G-Z07","25":"G-Z07","52":"G-Z07","53":"G-Z07","59":"G-Z07","60":"G-Z07"}},"5":{"instructor":"Laura Elizabeth Salgın","schedule":{"1":"G-Z10","3":"G-Z10","4":"G-Z10","8":"G-Z10","10":"G-Z10","11":"G-Z10","14":"G-Z10","21":"G-Z10","50":"G-Z10","51":"G-Z10","57":"G-Z10","58":"G-Z10"}},"6":{"instructor":"Ümmü Gaye Ternisien","schedule":{"16":"G-Z10","23":"G-Z10","35":"G-Z10","36":"G-Z10","37":"G-Z10","38":"G-Z10","39":"G-Z10","42":"G-Z10","43":"G-Z10","44":"G-Z10","45":"G-Z10","46":"G-Z10"}},"7":{"instructor":"Hümeyra Başol Çetin","schedule":{"16":"G-Z09","23":"G-Z09","35":"G-Z09","36":"G-Z09","37":"G-Z09","38":"G-Z09","39":"G-Z09","42":"G-Z09","43":"G-Z09","44":"G-Z09","45":"G-Z09","46":"G-Z09"}},"8":{"instructor":"Laura Elizabeth Salgın","schedule":{"16":"G-Z07","23":"G-Z07","35":"G-Z07","36":"G-Z07","37":"G-Z07","38":"G-Z07","39":"G-Z07","42":"G-Z07","43":"G-Z07","44":"G-Z07","45":"G-Z07","46":"G-Z07"}}}},"ENG 401":{"name":"Technical Report Writing and Presentation","sections":{"1":{"instructor":"Marlene Denice Elwell","schedule":{"0":"G-Z09","2":"G-Z09","7":"G-Z09","15":"G-Z09","22":"G-Z09","52":"G-Z09","59":"G-Z09"}},"2":{"instructor":"Marlene Denice Elwell","schedule":{"3":"G-Z09","9":"G-Z09","10":"G-Z09","14":"G-Z09","21":"G-Z09","50":"G-Z09","57":"G-Z09"}}}}},"FA":{"FA 132":{"name":"Design Graphics ","sections":{"1":{"instructor":"Alper Küçük","schedule":{"1":"FF-107","8":"FF-107","15":"FF-107","22":"FF-107","53":"FF-107","60":"FF-107","67":"FF-107"}}}},"FA 211":{"name":"Introduction to Painting I","sections":{"1":{"instructor":"Beata Malgorzata Zalewska Sladczyk","schedule":{"9":"FB-320","16":"FB-320","23":"FB-320","49":"FB-320","56":"FB-320","63":"FB-320"}}}},"FA 212":{"name":"Introduction to Painting II","sections":{"1":{"instructor":"Beata Malgorzata Zalewska Sladczyk","schedule":{"7":"FB-320","14":"FB-320","21":"FB-320","52":"FB-320","59":"FB-320","66":"FB-320"}}}},"FA 215":{"name":"Introduction to Sculpture I","sections":{"1":{"instructor":"Ercan Sağlam","schedule":{"8":"FC-123","15":"FC-123","22":"FC-123","53":"FC-123","60":"FC-123","67":"FC-123"}},"2":{"instructor":"Ercan Sağlam","schedule":{"11":"FC-123","18":"FC-123","25":"FC-123","51":"FC-123","58":"FC-123","65":"FC-123"}}}},"FA 217":{"name":"Introduction to Ceramics I","sections":{"1":{"instructor":"Ahmet Özsalar","schedule":{"8":"FE-101","15":"FE-101","22":"FE-101","53":"FE-101","60":"FE-101","67":"FE-101"}},"2":{"instructor":"Ahmet Özsalar","schedule":{"3":"FE-101","10":"FE-101","17":"FE-101","50":"FE-101","57":"FE-101","64":"FE-101"}}}}},"GE":{"GE 301":{"name":"Science Technology and Society","sections":{"1":{"instructor":"Robin Ann Downey","schedule":{"36":"B-204","39":"B-204","43":"B-204","44":"B-204","46":"B-204"}}}}},"HART":{"HART 221":{"name":"Great Discoveries from the Ancient World ","sections":{"1":{"instructor":"Julian Bennett","schedule":{"1":"G-154","8":"G-154","18":"G-154","24":"G-154","25":"G-154","51":"G-154","58":"G-154"}}}}},"HCIV":{"HCIV 101":{"name":"History of Civilization I","sections":{"1":{"instructor":"David E. Thornton","schedule":{"0":"B-Z01","2":"B-Z01","7":"B-Z01","15":"B-Z01","22":"B-Z01","52":"B-Z01","59":"B-Z01"}}}},"HCIV 102":{"name":"History of Civilization II","sections":{"1":{"instructor":"David E. Thornton","schedule":{"3":"B-Z07","9":"B-Z07","10":"B-Z07","14":"B-Z07","21":"B-Z07","50":"B-Z07","57":"B-Z07"}}}}},"HIST":{"HIST 200":{"name":"History of Turkey ","sections":{"1":{"instructor":"Abdürrahim Özer","schedule":{"1":"B-Z01","8":"B-Z01","18":"B-Z01","24":"B-Z01","25":"B-Z01","51":"B-Z01","58":"B-Z01"}}}}},"HUM":{"HUM 111":{"name":"Cultures Civilizations and Ideas I","sections":{"1":{"instructor":"Dragan Ilic","schedule":{"0":"G-154","2":"G-154","7":"G-154","15":"G-154","22":"G-154","52":"G-154","59":"G-154"}}}},"HUM 112":{"name":"Cultures Civilizations and Ideas II","sections":{"1":{"instructor":"Dragan Ilic","schedule":{"3":"G-154","9":"G-154","10":"G-154","14":"G-154","21":"G-154","50":"G-154","57":"G-154"}}}}},"IAED":{"IAED 290":{"name":"Summer Practice I","sections":{"1":{"instructor":"Tijen Sonkan Türkkan","schedule":{}}}},"IAED 341":{"name":"Architectural Acoustics and Fire Safety","sections":{"1":{"instructor":"Semiha Yılmazer","schedule":{"3":"FF-101","9":"FF-101","10":"FF-101","14":"FF-101","21":"FF-101","50":"FF-101","57":"FF-101"}}}},"IAED 351":{"name":"Detailing Studio","sections":{"1":{"instructor":"Murat Özdamar","schedule":{"1":"FF-106","8":"FF-106","15":"FF-106","22":"FF-106","53":"FF-106","60":"FF-106","67":"FF-106"}}}},"IAED 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Tijen Sonkan Türkkan","schedule":{}}}}},"IE":{"IE 342":{"name":"Engineering Economic Analysis","sections":{"1":{"instructor":"Emre Uzun","schedule":{"3":"EB-102","9":"EB-102","10":"EB-102","14":"EB-102","21":"EB-102","50":"EB-102","57":"EB-102"}}}},"IE 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Özlem Çavuş İyigün","schedule":{}}}},"IE 497":{"name":"Individual Study","sections":{"1":{"instructor":"Emre Uzun","schedule":{}}}}},"IELTS":{"IELTS 100":{"name":"International English Language Testing System","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"IR":{"IR 101":{"name":"Introduction to World Politics","sections":{"1":{"instructor":"Orhun Bayraktar","schedule":{"1":"B-Z07","8":"B-Z07","18":"B-Z07","24":"B-Z07","25":"B-Z07","38":"B-Z07","45":"B-Z07","51":"B-Z07","58":"B-Z07"}}}},"IR 303":{"name":"International Law ","sections":{"1":{"instructor":"Tuğba Bayar","schedule":{"3":"B-111","9":"B-111","10":"B-111","14":"B-111","21":"B-111","50":"B-111","57":"B-111"}}}},"IR 338":{"name":"Politics of International Economy","sections":{"1":{"instructor":"Seçkin Köstem","schedule":{"0":"B-111","2":"B-111","7":"B-111","15":"B-111","22":"B-111","52":"B-111","59":"B-111"}}}},"IR 399":{"name":"Summer Training","sections":{"1":{"instructor":"Staff","schedule":{}}}},"IR 439":{"name":"Turkish Foreign Policy ","sections":{"1":{"instructor":"Onur Erpul","schedule":{"4":"B-111","11":"B-111","16":"B-111","17":"B-111","23":"B-111","49":"B-111","56":"B-111"}}}}},"LAW":{"LAW 202":{"name":"Law of Obligations II (in Turkish)","sections":{"1":{"instructor":"Vedat Buz","schedule":{"1":"B-113","8":"B-113","18":"B-113","24":"B-113","25":"B-113","51":"B-113","58":"B-113"}}}},"LAW 306":{"name":"Law of Property II (in Turkish)","sections":{"1":{"instructor":"Şemsi Barış Özçelik","schedule":{"3":"B-113","9":"B-113","10":"B-113","14":"B-113","21":"B-113","50":"B-113","57":"B-113"}}}},"LAW 308":{"name":"Company Law (in Turkish)","sections":{"1":{"instructor":"Hamdi Pınar","schedule":{"4":"B-114","11":"B-114","16":"B-114","17":"B-114","23":"B-114","49":"B-114","56":"B-114"}}}},"LAW 358":{"name":"Criminal Law Special Provisions (in Turkish)","sections":{"1":{"instructor":"Haluk Toroslu","schedule":{"4":"B-203","11":"B-203","16":"B-203","17":"B-203","23":"B-203","49":"B-203","56":"B-203"}}}},"LAW 403":{"name":"Inheritance Law (in Turkish)","sections":{"1":{"instructor":"Özgür Güvenç","schedule":{"1":"B-203","8":"B-203","18":"B-203","24":"B-203","25":"B-203","51":"B-203","58":"B-203"}}}},"LAW 406":{"name":"International Commercial Arbitration","sections":{"1":{"instructor":"Gülüm Özçelik","schedule":{"35":"V-01","37":"V-01","38":"V-01","42":"V-01","45":"V-01"}}}},"LAW 410":{"name":"Enforcement and Bankruptcy Law (in Turkish)","sections":{"1":{"instructor":"Emel Hanağası","schedule":{"0":"B-203","2":"B-203","7":"B-203","15":"B-203","22":"B-203","52":"B-203","59":"B-203"}}}},"LAW 411":{"name":"Criminal Procedure (in Turkish)","sections":{"1":{"instructor":"Devrim Güngör","schedule":{"3":"B-114","9":"B-114","10":"B-114","14":"B-114","21":"B-114","50":"B-114","57":"B-114"}}}}},"LNG":{"LNG 111":{"name":"Spanish I","sections":{"1":{"instructor":"Yağmur Cevger","schedule":{"3":"G-Z55","10":"G-Z55","14":"G-Z55","18":"G-Z55","21":"G-Z55","25":"G-Z55","50":"G-Z55","51":"G-Z55","57":"G-Z55","58":"G-Z55"}}}},"LNG 131":{"name":"German I","sections":{"1":{"instructor":"Esra Çalt","schedule":{"3":"G-Z53","10":"G-Z53","14":"G-Z53","18":"G-Z53","21":"G-Z53","25":"G-Z53","50":"G-Z53","51":"G-Z53","57":"G-Z53","58":"G-Z53"}}}}},"MAN":{"MAN 102":{"name":"Introduction to Business II","sections":{"1":{"instructor":"Özgür Tolga Baycan","schedule":{"3":"B-305","9":"B-305","10":"B-305","14":"B-305","21":"B-305","50":"B-305","57":"B-305"}}}},"MAN 256":{"name":"Introduction to Management Science","sections":{"1":{"instructor":"Bo Wei","schedule":{"4":"MA-302","11":"MA-302","16":"MA-302","17":"MA-302","23":"MA-302","49":"MA-302","56":"MA-302"}}}},"MAN 335":{"name":"Fundamentals of Marketing","sections":{"1":{"instructor":"Ahmet Ekici","schedule":{"0":"MA-302","2":"MA-302","7":"MA-302","15":"MA-302","22":"MA-302","52":"MA-302","59":"MA-302"}}}},"MAN 341":{"name":"Production Management","sections":{"1":{"instructor":"Bo Wei","schedule":{"1":"MA-302","8":"MA-302","18":"MA-302","24":"MA-302","25":"MA-302","51":"MA-302","58":"MA-302"}}}},"MAN 399":{"name":"Summer Practice","sections":{"1":{"instructor":"Özgür Tolga Baycan","schedule":{}}}},"MAN 436":{"name":"Services Marketing","sections":{"1":{"instructor":"Ahmet Ekici","schedule":{"3":"MA-302","9":"MA-302","10":"MA-302","14":"MA-302","21":"MA-302","50":"MA-302","57":"MA-302"}}}},"MAN 498":{"name":"Individual Study","sections":{"1":{"instructor":"Aydın Örsan Örge","schedule":{}},"2":{"instructor":"Selda Sevin","schedule":{}}}}},"MATH":{"MATH 101":{"name":"Calculus I","sections":{"1":{"instructor":"Ahmet Muhtar Güloğlu","schedule":{"1":"B-Z08","4":"B-Z08","8":"B-Z08","11":"B-Z08","16":"B-Z08","17":"B-Z08","23":"B-Z08","24":"B-Z08","49":"B-Z08","56":"B-Z08"}}}},"MATH 102":{"name":"Calculus II","sections":{"1":{"instructor":"Mehmet Okan Tekman","schedule":{"3":"B-Z08","10":"B-Z08","14":"B-Z08","18":"B-Z08","21":"B-Z08","25":"B-Z08","50":"B-Z08","51":"B-Z08","57":"B-Z08","58":"B-Z08"}},"2":{"instructor":"Özgün Ünlü","schedule":{"1":"SB-Z03","4":"SB-Z03","8":"SB-Z03","11":"SB-Z03","16":"SB-Z03","17":"SB-Z03","23":"SB-Z03","24":"SB-Z03","49":"SB-Z03","56":"SB-Z03"}}}},"MATH 106":{"name":"Introduction to Calculus II","sections":{"1":{"instructor":"Bülent Ünal","schedule":{"3":"B-206","10":"B-206","14":"B-206","18":"B-206","21":"B-206","25":"B-206","50":"B-206","51":"B-206","57":"B-206","58":"B-206"}},"2":{"instructor":"Natalia Zheltukhina","schedule":{"1":"SA-Z18","4":"SA-Z18","8":"SA-Z18","11":"SA-Z18","16":"SA-Z18","17":"SA-Z18","23":"SA-Z18","24":"SA-Z18","49":"SA-Z18","56":"SA-Z18"}}}},"MATH 225":{"name":"Linear Algebra and Differential Equations","sections":{"1":{"instructor":"Yosum Kurtulmaz","schedule":{"1":"B-204","4":"B-204","8":"B-204","11":"B-204","16":"B-204","17":"B-204","23":"B-204","24":"B-204","49":"B-204","56":"B-204"}}}},"MATH 241":{"name":"Engineering Mathematics I","sections":{"1":{"instructor":"Nil Şahin","schedule":{"0":"EB-103","2":"EB-103","7":"EB-103","9":"EB-103","15":"EB-103","22":"EB-103","52":"EB-103","53":"EB-103","59":"EB-103","60":"EB-103"}}}},"MATH 242":{"name":"Engineering Mathematics II","sections":{"1":{"instructor":"Nil Şahin","schedule":{"1":"EB-203","4":"EB-203","8":"EB-203","11":"EB-203","16":"EB-203","17":"EB-203","23":"EB-203","24":"EB-203","49":"EB-203","56":"EB-203"}}}},"MATH 264":{"name":"Statistics for Social Sciences","sections":{"1":{"instructor":"İnci Apaydın","schedule":{"4":"SA-Z01","11":"SA-Z01","16":"SA-Z01","17":"SA-Z01","23":"SA-Z01","49":"SA-Z01","56":"SA-Z01"}}}},"MATH 291":{"name":"Summer Project I","sections":{"1":{"instructor":"Gökhan Yıldırım","schedule":{}}}},"MATH 391":{"name":"Summer Project II","sections":{"1":{"instructor":"Gökhan Yıldırım","schedule":{}}}},"MATH 399":{"name":"Summer Practice","sections":{"1":{"instructor":"Hamza Yeşilyurt","schedule":{}}}},"MATH 498":{"name":"Individual Study","sections":{"1":{"instructor":"Aurelian Gheondea","schedule":{}}}},"MATH 499":{"name":"Individual Study","sections":{"1":{"instructor":"Güliz Bolat","schedule":{}}}}},"MBG":{"MBG 291":{"name":"Summer Practice I","sections":{"1":{"instructor":"Özhan Öçal","schedule":{}}}},"MBG 391":{"name":"Summer Practice II","sections":{"1":{"instructor":"Özhan Öçal","schedule":{}}}}},"ME":{"ME 299":{"name":"Summer Practice I","sections":{"1":{"instructor":"Şakir Baytaroğlu","schedule":{}}}},"ME 399":{"name":"Summer Practice II","sections":{"1":{"instructor":"Şakir Baytaroğlu","schedule":{}}}},"ME 486":{"name":"Design Project II","sections":{"1":{"instructor":"Barbaros Çetin Onur Özcan","schedule":{"4":"EB-101","11":"EB-101","16":"EB-101","17":"EB-101","23":"EB-101","49":"EB-101","56":"EB-101"}}}}},"MSC":{"MSC 110":{"name":"The Culture and Basics of Music Making","sections":{"1":{"instructor":"Aylin Yılmaz","schedule":{"3":"G-136","9":"G-136","10":"G-136","14":"G-136","21":"G-136","50":"G-136","57":"G-136"}}}},"MSC 412":{"name":"Composition VIII: Graduation Project","sections":{"1":{"instructor":"Onur Türkmen","schedule":{}}}}},"PHIL":{"PHIL 243":{"name":"Social and Political Philosophy I","sections":{"1":{"instructor":"İklil Kaya Yıldırım Yehezkel S. Berkovski","schedule":{"0":"B-112","2":"B-112","4":"B-Z06","7":"B-112","11":"B-Z06","15":"B-112","16":"B-Z06","17":"B-Z06","22":"B-112","23":"B-Z06","49":"B-Z06","52":"B-112","56":"B-Z06","59":"B-112"}}}},"PHIL 244":{"name":"Social and Political Philosophy II","sections":{"1":{"instructor":"Yehezkel S. Berkovski Jeffrey Michael Doonan","schedule":{"1":"G-B40","3":"G-B40","8":"G-B40","9":"G-B40","10":"G-B40","14":"G-B40","18":"B-112","21":"G-B40","24":"B-112","25":"B-112","50":"B-112","51":"B-112","57":"B-112","58":"B-112"}}}}},"PHYS":{"PHYS 101":{"name":"General Physics I","sections":{"1":{"instructor":"Oğuz Gülseren","schedule":{"3":"SA-Z18","9":"SA-Z18","10":"SA-Z18","14":"SA-Z18","21":"SA-Z18","50":"SA-Z18","52":"N/A","57":"SA-Z18","59":"N/A","73":"N/A","80":"N/A"}}}},"PHYS 102":{"name":"General Physics II","sections":{"1":{"instructor":"Seymur Jahangirov","schedule":{"0":"SB-Z03","2":"SB-Z03","7":"SB-Z03","15":"SB-Z03","22":"SB-Z03","51":"N/A","52":"SB-Z03","58":"N/A","59":"SB-Z03","72":"N/A","79":"N/A"}},"2":{"instructor":"Ceren Sibel Sayın","schedule":{"1":"SA-Z01","8":"SA-Z01","18":"SA-Z01","24":"SA-Z01","25":"SA-Z01","50":"N/A","51":"SA-Z01","57":"N/A","58":"SA-Z01","71":"N/A","78":"N/A"}}}},"PHYS 291":{"name":"Summer Practice","sections":{"1":{"instructor":"Onur Tokel","schedule":{}}}}},"POLS":{"POLS 101":{"name":"Introduction to Political Science I","sections":{"1":{"instructor":"John James Alexander","schedule":{"1":"B-111","8":"B-111","18":"B-111","24":"B-111","25":"B-111","51":"B-111","58":"B-111"}}}},"POLS 399":{"name":"Summer Training","sections":{"1":{"instructor":"Staff","schedule":{}}}},"POLS 483":{"name":"Liberalism and Socialism: Past and Present","sections":{"1":{"instructor":"John James Alexander","schedule":{"4":"MA-101","11":"MA-101","16":"MA-101","17":"MA-101","23":"MA-101","49":"MA-101","56":"MA-101"}}}}},"PREP":{"PREP 151":{"name":"Pre- faculty","sections":{"501":{"instructor":"Seçil Chouseinoglu Canbaz Joseph Henry Louis Smith Ozan Ekici","schedule":{}},"502":{"instructor":"Emine Zafer Nizam Ozan Ekici","schedule":{}}}},"PREP 160":{"name":"PAE Practice Course ","sections":{"501":{"instructor":"Müge Dağlı Harun Dişlioğlu","schedule":{}},"502":{"instructor":"Emine Geçgil Rachel Elizabeth Campbell","schedule":{}},"503":{"instructor":"Duygu Yılmaz Simon James Harvey Brunker","schedule":{}},"504":{"instructor":"Bilal İnci Ecem İşbilir Rachel Elizabeth Campbell","schedule":{}}}}},"PSYC":{"PSYC 100":{"name":"Introduction to Psychology","sections":{"1":{"instructor":"Ceren Gürdere","schedule":{"4":"B-112","11":"B-112","16":"B-112","17":"B-112","23":"B-112","49":"B-112","56":"B-112"}}}},"PSYC 205":{"name":"Statistics II","sections":{"1":{"instructor":"Sezer Kadayıfçılar","schedule":{"4":"G-136","11":"G-136","16":"G-136","17":"G-136","23":"G-136","49":"G-136","56":"G-136"}}}},"PSYC 399":{"name":"Summer Training","sections":{"1":{"instructor":"Emine Ulaşan Özgüle","schedule":{}}}},"PSYC 495":{"name":"Individual Study","sections":{"1":{"instructor":"Ausaf Ahmed Farooqui","schedule":{}}}}},"SFL":{"SFL 392":{"name":"Common European Framework of Reference Level B2","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"TRIN":{"TRIN 399":{"name":"Common European Framework","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"TURK":{"TURK 101":{"name":"Turkish I","sections":{"1":{"instructor":"Sedef Kendir Kurttekin","schedule":{}}}},"TURK 102":{"name":"Turkish II","sections":{"1":{"instructor":"Adem Gergöy","schedule":{}},"2":{"instructor":"Sedef Kendir Kurttekin","schedule":{}}}}}}
--------------------------------------------------------------------------------
/public/data/offerings/20243.json:
--------------------------------------------------------------------------------
1 | {"AMER":{"AMER 294":{"name":"American History II","sections":{"1":{"instructor":"Kenneth Weisbrode","schedule":{"2":"B-203","9":"B-203","14":"B-203","21":"B-203","52":"B-203","59":"B-203"}}}},"AMER 406":{"name":"Senior Project","sections":{"1":{"instructor":"Daniel Peter Johnson","schedule":{}}}}},"ARCH":{"ARCH 290":{"name":"Summer Practice I","sections":{"1":{"instructor":"Özge Selen Duran","schedule":{}}}},"ARCH 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Özge Selen Duran","schedule":{}}}}},"CHEM":{"CHEM 102":{"name":"Principles of Chemistry II","sections":{"1":{"instructor":"Ömer Dağ","schedule":{"4":"SB-Z03","11":"SB-Z03","16":"SB-Z03","23":"SB-Z03","49":"SB-Z03","50":"N/A","56":"SB-Z03","57":"N/A","64":"N/A","71":"N/A"}}}},"CHEM 399":{"name":"Summer Practice","sections":{"1":{"instructor":"Bilge Baytekin","schedule":{}}}}},"CINT":{"CINT 520":{"name":"Technology and Research for Interpreting","sections":{"1":{"instructor":"Zeynep Şengel","schedule":{"42":"N/A","43":"N/A","49":"N/A","50":"N/A","56":"N/A","57":"N/A"}}}},"CINT 590":{"name":"Interpreting Seminar","sections":{"1":{"instructor":"Kutlay Bensan Ebru Kanık Yiğit Bener Ayşe Aslı Alanat Kılıç","schedule":{"7":"N/A","8":"N/A","9":"N/A","10":"N/A","14":"N/A","15":"N/A","16":"N/A","17":"N/A","21":"N/A","22":"N/A","23":"N/A","24":"N/A"}}}}},"COMD":{"COMD 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Hasan Yusuf Akçura","schedule":{}}}}},"CS":{"CS 102":{"name":"Algorithms and Programming II","sections":{"1":{"instructor":"Lori Rae Russell Dağ","schedule":{"2":"B-Z01","9":"B-Z01","14":"B-Z01","21":"B-Z01","51":"FF-208","52":"B-Z01","53":"FF-208","58":"FF-208","59":"B-Z01","60":"FF-208","65":"FF-208","67":"FF-208","72":"FF-208","74":"FF-208"}}}},"CS 115":{"name":"Introduction to Programming in Python","sections":{"1":{"instructor":"İpek Sözen Ayışığı Başak Sevdik Çallı","schedule":{"0":"B-109","7":"B-109","17":"B-109","24":"B-109","49":"B-201","50":"B-109","51":"B-201","56":"B-201","57":"B-109","58":"B-201","63":"B-201","65":"B-201","70":"B-201","72":"B-201"}}}},"CS 121":{"name":"Introduction to Computer Applications and Programming","sections":{"1":{"instructor":"Sibel Uğurlubilek","schedule":{"36":"FF-207","38":"FF-207","43":"FF-207","45":"FF-207","52":"FF-207","59":"FF-207","66":"FF-207","73":"FF-207"}}}},"CS 125":{"name":"Introduction to Data Analysis for Social Sciences","sections":{"1":{"instructor":"Rabia Üşenmez","schedule":{"36":"B-Z08","38":"B-Z08","43":"B-Z08","45":"B-Z08","52":"B-201","59":"B-201","66":"B-201","73":"B-201"}}}},"CS 202":{"name":"Fundamental Structures of Computer Science II","sections":{"1":{"instructor":"Aynur Dayanık","schedule":{"0":"B-Z04","7":"B-Z04","17":"B-Z04","24":"B-Z04","50":"B-Z04","57":"B-Z04"}}}},"CS 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"CS 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Staff","schedule":{}}}},"CS 499":{"name":"Individual Study","sections":{"1":{"instructor":"Özgür Ulusoy","schedule":{}},"2":{"instructor":"Hamdi Dibeklioğlu","schedule":{}}}}},"CTIS":{"CTIS 152":{"name":"Algorithms and Data Structures","sections":{"1":{"instructor":"Seyid Amjad Ali","schedule":{"0":"CE-Z04","7":"CE-Z04","17":"CE-Z04","24":"CE-Z04","35":"C-CTISL7","36":"C-CTISL7","37":"C-CTISL7","38":"C-CTISL7","42":"C-CTISL7","43":"C-CTISL7","44":"C-CTISL7","45":"C-CTISL7","50":"CE-Z04","57":"CE-Z04"}}}},"CTIS 256":{"name":"Introduction to Backend Development","sections":{"1":{"instructor":"Serkan Genç","schedule":{"1":"C-CTISL7","8":"C-CTISL7","18":"C-CTISL7","25":"C-CTISL7","51":"C-CTISL7","58":"C-CTISL7"}}}},"CTIS 259":{"name":"Database Management Systems and Applications","sections":{"1":{"instructor":"Nimet Ceren Serim","schedule":{"0":"C-CTISL4","2":"CE-104","7":"C-CTISL4","9":"CE-104","14":"CE-104","17":"C-CTISL4","21":"CE-104","24":"C-CTISL4","50":"C-CTISL4","52":"CE-104","57":"C-CTISL4","59":"CE-104"}}}},"CTIS 359":{"name":"Principles of Software Engineering","sections":{"1":{"instructor":"Oumout Chousein Oglou","schedule":{"4":"CE-Z04","11":"CE-Z04","16":"CE-Z04","23":"CE-Z04","49":"CE-Z04","56":"CE-Z04"}}}},"CTIS 488":{"name":"Data Analysis","sections":{"1":{"instructor":"Seyid Amjad Ali","schedule":{"2":"CE-Z04","9":"CE-Z04","14":"CE-Z04","21":"CE-Z04","52":"CE-Z04","59":"CE-Z04"}}}}},"ECON":{"ECON 107":{"name":"Principles of Microeconomics","sections":{"1":{"instructor":"Çağla Ökten","schedule":{"0":"B-Z06","7":"B-Z06","17":"B-Z06","24":"B-Z06","50":"B-Z06","57":"B-Z06"}}}},"ECON 203":{"name":"Microeconomic Theory I","sections":{"1":{"instructor":"Kevin Edward Hasker","schedule":{"1":"B-Z05","8":"B-Z05","18":"B-Z05","25":"B-Z05","51":"B-Z05","58":"B-Z05"}}}},"ECON 225":{"name":"Mathematics for Economists","sections":{"1":{"instructor":"Mustafa Kerem Yüksel","schedule":{"0":"B-Z07","7":"B-Z07","17":"B-Z07","24":"B-Z07","50":"B-Z07","57":"B-Z07"}}}},"ECON 301":{"name":"Econometrics I","sections":{"1":{"instructor":"Mehmet Taner Yiğit","schedule":{"35":"B-108","36":"B-108","37":"B-108","38":"B-108","42":"B-108","43":"B-108","44":"B-108","45":"B-108"}}}},"ECON 399":{"name":"Summer Training ","sections":{"1":{"instructor":"Mustafa Eray Yücel","schedule":{}}}},"ECON 439":{"name":"Game Theory I","sections":{"1":{"instructor":"Nuh Aygün Dalkıran","schedule":{"1":"B-Z06","8":"B-Z06","18":"B-Z06","25":"B-Z06","51":"B-Z06","58":"B-Z06"}}}},"ECON 458":{"name":"Labor Economics","sections":{"1":{"instructor":"Çağla Ökten","schedule":{"2":"B-Z06","9":"B-Z06","14":"B-Z06","21":"B-Z06","52":"B-Z06","59":"B-Z06"}}}}},"EEE":{"EEE 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"EEE 321":{"name":"Signals and Systems","sections":{"1":{"instructor":"Mehmet Alper Kutay","schedule":{"3":"EA-Z01","10":"EA-Z01","15":"EA-Z01","22":"EA-Z01","49":"EE-211","53":"EA-Z01","56":"EE-211","60":"EA-Z01","63":"EE-211","70":"EE-211"}}}},"EEE 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Staff","schedule":{}}}},"EEE 446":{"name":"Control and Optimization of Stochastic Systems","sections":{"1":{"instructor":"Serdar Yüksel","schedule":{"35":"EA-Z01","36":"EA-Z01","37":"EA-Z01","38":"EA-Z01","42":"EA-Z01","43":"EA-Z01","44":"EA-Z01","45":"EA-Z01"}}}},"EEE 499":{"name":"Individual Study","sections":{"1":{"instructor":"Vakur Behçet Ertürk","schedule":{}},"2":{"instructor":"Aykut Koç","schedule":{}}}},"EEE 546":{"name":"Control and Optimization of Stochastic Systems","sections":{"1":{"instructor":"Serdar Yüksel","schedule":{"35":"EA-Z01","36":"EA-Z01","37":"EA-Z01","38":"EA-Z01","42":"EA-Z01","43":"EA-Z01","44":"EA-Z01","45":"EA-Z01"}}}}},"ELIT":{"ELIT 290":{"name":"Summer Training I","sections":{"1":{"instructor":"Jonathan Coleman Williams","schedule":{}}}},"ELIT 390":{"name":"Summer Training II","sections":{"1":{"instructor":"Jonathan Coleman Williams","schedule":{}}}},"ELIT 499":{"name":"Individual Study","sections":{"1":{"instructor":"Attila Viragh","schedule":{}},"2":{"instructor":"Ayşe Çelikkol","schedule":{}}}}},"EMBA":{"EMBA 502":{"name":"EMBA Project","sections":{"1":{"instructor":"Aydın Örsan Örge","schedule":{}}}},"EMBA 516":{"name":"Competitive Strategy","sections":{"1":{"instructor":"Aydın Örsan Örge","schedule":{}}}}},"ENG":{"ENG 101":{"name":"English and Composition I","sections":{"1":{"instructor":"Sara Liviero","schedule":{"2":"B-Z07","3":"B-Z07","9":"B-Z07","10":"B-Z07","14":"B-Z07","15":"B-Z07","21":"B-Z07","22":"B-Z07","52":"B-Z07","59":"B-Z07"}}}},"ENG 102":{"name":"English and Composition II","sections":{"1":{"instructor":"Elif Hande Özer","schedule":{"2":"B-107","3":"B-107","9":"B-107","10":"B-107","14":"B-107","15":"B-107","21":"B-107","22":"B-107","52":"B-107","59":"B-107"}},"2":{"instructor":"Hümeyra Başol Çetin","schedule":{"35":"B-103","36":"B-103","37":"B-103","38":"B-103","39":"B-103","42":"B-103","43":"B-103","44":"B-103","45":"B-103","46":"B-103"}},"3":{"instructor":"Robert McNamara Loomis","schedule":{"2":"B-204","3":"B-204","9":"B-204","10":"B-204","14":"B-204","15":"B-204","21":"B-204","22":"B-204","52":"B-204","59":"B-204"}},"4":{"instructor":"Türküm Cankatan","schedule":{"0":"B-106","1":"B-Z08","7":"B-106","8":"B-Z08","17":"B-204","24":"B-204","50":"B-106","51":"B-Z08","57":"B-106","58":"B-Z08"}},"6":{"instructor":"Hakan Güven","schedule":{"0":"B-206","1":"B-206","7":"B-206","8":"B-206","17":"B-206","24":"B-206","50":"B-206","51":"B-206","57":"B-206","58":"B-206"}}}},"ENG 401":{"name":"Technical Report Writing and Presentation","sections":{"1":{"instructor":"Bengü Yurtseven","schedule":{"2":"B-Z05","9":"B-Z05","14":"B-Z05","21":"B-Z05","52":"B-Z05","59":"B-Z05"}},"2":{"instructor":"Bengü Yurtseven","schedule":{"0":"B-108","7":"B-108","17":"B-108","24":"B-108","50":"B-108","57":"B-108"}}}}},"FA":{"FA 132":{"name":"Design Graphics ","sections":{"1":{"instructor":"Alper Küçük","schedule":{"8":"FF-312","15":"FF-312","22":"FF-312","53":"FF-312","60":"FF-312","67":"FF-312"}}}},"FA 171":{"name":"Introduction to Art, Design and Culture I","sections":{"1":{"instructor":"Ekin Bayrak","schedule":{"2":"FF-110","9":"FF-110","14":"FF-110","21":"FF-110","52":"FF-110","59":"FF-110"}}}},"FA 211":{"name":"Introduction to Painting I","sections":{"1":{"instructor":"Beata Malgorzata Zalewska Sladczyk","schedule":{"9":"FB-320","16":"FB-320","23":"FB-320","49":"FB-320","56":"FB-320","63":"FB-320"}}}},"FA 212":{"name":"Introduction to Painting II","sections":{"1":{"instructor":"Beata Malgorzata Zalewska Sladczyk","schedule":{"7":"FB-320","14":"FB-320","21":"FB-320","52":"FB-320","59":"FB-320","66":"FB-320"}}}},"FA 215":{"name":"Introduction to Sculpture I","sections":{"1":{"instructor":"Ercan Sağlam","schedule":{"8":"FC-123","15":"FC-123","22":"FC-123","53":"FC-123","60":"FC-123","67":"FC-123"}},"2":{"instructor":"Ercan Sağlam","schedule":{"11":"FC-123","18":"FC-123","25":"FC-123","51":"FC-123","58":"FC-123","65":"FC-123"}}}},"FA 217":{"name":"Introduction to Ceramics I","sections":{"1":{"instructor":"Elvan Serin","schedule":{"8":"FE-101","15":"FE-101","22":"FE-101","53":"FE-101","60":"FE-101","67":"FE-101"}}}}},"GE":{"GE 301":{"name":"Science Technology and Society","sections":{"1":{"instructor":"Emine Öncüler Yayalar","schedule":{"35":"EA-Z03","37":"EA-Z03","42":"EA-Z03","44":"EA-Z03"}}}},"GE 401":{"name":"Innovative Design and Entrepreneurship I","sections":{"1":{"instructor":"Yiğit Karpat","schedule":{}}}}},"HCIV":{"HCIV 101":{"name":"History of Civilization I","sections":{"1":{"instructor":"Filip Malesevic","schedule":{"0":"B-105","7":"B-105","17":"B-105","24":"B-105","50":"B-105","57":"B-105"}}}},"HCIV 102":{"name":"History of Civilization II","sections":{"1":{"instructor":"Filip Malesevic","schedule":{"2":"B-104","9":"B-104","14":"B-104","21":"B-104","52":"B-104","59":"B-104"}}}}},"HIST":{"HIST 200":{"name":"History of Turkey ","sections":{"1":{"instructor":"İbrahim Mert Öztürk","schedule":{"1":"B-Z07","8":"B-Z07","18":"B-Z07","25":"B-Z07","51":"B-Z07","58":"B-Z07"}}}}},"HUM":{"HUM 111":{"name":"Cultures Civilizations and Ideas I","sections":{"1":{"instructor":"Costantino Costantini","schedule":{"2":"B-206","9":"B-206","14":"B-206","21":"B-206","52":"B-206","59":"B-206"}},"2":{"instructor":"Mustafa Nakeeb","schedule":{"1":"B-106","8":"B-106","18":"B-106","25":"B-106","51":"B-106","58":"B-106"}},"3":{"instructor":"Mustafa Nakeeb","schedule":{"3":"B-Z04","10":"B-Z04","15":"B-Z04","22":"B-Z04","53":"B-Z04","60":"B-Z04"}}}},"HUM 112":{"name":"Cultures Civilizations and Ideas II","sections":{"1":{"instructor":"Brian David McPhee","schedule":{"3":"B-Z08","10":"B-Z08","15":"B-Z08","22":"B-Z08","53":"B-Z08","60":"B-Z08"}},"2":{"instructor":"Costantino Costantini","schedule":{"1":"B-Z01","8":"B-Z01","18":"B-Z01","25":"B-Z01","51":"B-Z01","58":"B-Z01"}}}}},"IAED":{"IAED 290":{"name":"Summer Practice I","sections":{"1":{"instructor":"Tijen Sonkan Türkkan","schedule":{}}}},"IAED 341":{"name":"Architectural Acoustics","sections":{"1":{"instructor":"Semiha Yılmazer","schedule":{"2":"FF-101","9":"FF-101","14":"FF-101","21":"FF-101","52":"FF-101","59":"FF-101"}}}},"IAED 351":{"name":"Detailing Studio","sections":{"1":{"instructor":"Murat Özdamar","schedule":{"8":"FF-106","15":"FF-106","22":"FF-106","53":"FF-106","60":"FF-106","67":"FF-106"}}}},"IAED 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Tijen Sonkan Türkkan","schedule":{}}}}},"IE":{"IE 342":{"name":"Engineering Economic Analysis","sections":{"1":{"instructor":"Emre Uzun","schedule":{"2":"EA-Z01","9":"EA-Z01","14":"EA-Z01","21":"EA-Z01","52":"EA-Z01","59":"EA-Z01"}}}},"IE 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Özlem Çavuş İyigün","schedule":{}}}},"IE 499":{"name":"Individual Study","sections":{"1":{"instructor":"Ayşe Selin Kocaman","schedule":{}}}}},"IELTS":{"IELTS 100":{"name":"International English Language Testing System","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"IR":{"IR 399":{"name":"Summer Training","sections":{"1":{"instructor":"Ekrem Taha Başer","schedule":{}}}},"IR 4116":{"name":"International Logistics","sections":{"1":{"instructor":"İsmail Hakkı Doğankaya","schedule":{"1":"B-109","8":"B-109","18":"B-109","25":"B-109","51":"B-109","58":"B-109"}}}},"IR 4991":{"name":"Individual Study","sections":{"1":{"instructor":"Seçkin Köstem","schedule":{}},"2":{"instructor":"Tuğba Bayar","schedule":{}}}}},"LAW":{"LAW 202":{"name":"Law of Obligations II (in Turkish)","sections":{"1":{"instructor":"Mehmet Emir Göka","schedule":{"1":"V-01","8":"V-01","18":"V-01","25":"V-01","51":"V-01","58":"V-01"}}}},"LAW 302":{"name":"Civil Procedure II (in Turkish)","sections":{"1":{"instructor":"Aybüke Basım","schedule":{"3":"B-Z03","10":"B-Z03","15":"B-Z03","22":"B-Z03","53":"B-Z03","60":"B-Z03"}}}},"LAW 304":{"name":"Private International Law (in Turkish)","sections":{"1":{"instructor":"Gülüm Özçelik","schedule":{"0":"B-203","7":"B-203","17":"B-203","24":"B-203","50":"B-203","57":"B-203"}}}},"LAW 305":{"name":"Law of Property I (in Turkish)","sections":{"1":{"instructor":"Şemsi Barış Özçelik","schedule":{"1":"B-203","8":"B-203","18":"B-203","25":"B-203","51":"B-203","58":"B-203"}}}},"LAW 306":{"name":"Law of Property II (in Turkish)","sections":{"1":{"instructor":"Şemsi Barış Özçelik","schedule":{"4":"B-203","11":"B-203","16":"B-203","23":"B-203","49":"B-203","56":"B-203"}}}},"LAW 358":{"name":"Criminal Law Special Provisions (in Turkish)","sections":{"1":{"instructor":"Yaprak Öntan","schedule":{"3":"B-104","10":"B-104","15":"B-104","22":"B-104","53":"B-104","60":"B-104"}}}},"LAW 401":{"name":"Law of Negotiable Instruments (in Turkish)","sections":{"1":{"instructor":"Ufuk Tekin","schedule":{"1":"B-102","8":"B-102","18":"B-102","25":"B-102","51":"B-102","58":"B-102"}}}},"LAW 403":{"name":"Inheritance Law (in Turkish)","sections":{"1":{"instructor":"Eren Özdemir","schedule":{"2":"B-102","9":"B-102","14":"B-102","21":"B-102","52":"B-102","59":"B-102"}}}},"LAW 406":{"name":"International Commercial Arbitration","sections":{"1":{"instructor":"Gülüm Özçelik","schedule":{"36":"B-203","38":"B-203","43":"B-203","45":"B-203"}}}},"LAW 410":{"name":"Enforcement and Bankruptcy Law (in Turkish)","sections":{"1":{"instructor":"Aybüke Basım","schedule":{"4":"B-Z03","11":"B-Z03","16":"B-Z03","23":"B-Z03","49":"B-Z03","56":"B-Z03"}}}},"LAW 411":{"name":"Criminal Procedure (in Turkish)","sections":{"1":{"instructor":"Devrim Güngör","schedule":{"0":"B-103","7":"B-103","17":"B-103","24":"B-103","50":"B-103","57":"B-103"}}}},"LAW 499":{"name":"Individual Study","sections":{"1":{"instructor":"Elvin Evrim Dalkılıç","schedule":{}},"2":{"instructor":"Elvin Evrim Dalkılıç","schedule":{}}}}},"LNG":{"LNG 111":{"name":"Spanish I","sections":{"1":{"instructor":"Hüseyin Güngör Şahin","schedule":{"35":"B-106","36":"B-106","37":"B-106","38":"B-106","42":"B-106","43":"B-106","44":"B-106","45":"B-106"}}}},"LNG 121":{"name":"French I","sections":{"1":{"instructor":"Betül Bostan","schedule":{"35":"B-207","36":"B-207","37":"B-207","38":"B-207","42":"B-207","43":"B-207","44":"B-207","45":"B-207"}}}},"LNG 131":{"name":"German I","sections":{"1":{"instructor":"Pierre Yves Vandermeersch","schedule":{"35":"B-102","36":"B-102","37":"B-102","38":"B-102","42":"B-102","43":"B-102","44":"B-102","45":"B-102"}}}}},"MAN":{"MAN 102":{"name":"Introduction to Business II","sections":{"1":{"instructor":"Özgür Tolga Baycan","schedule":{"1":"EE-211","8":"EE-211","18":"EE-211","25":"EE-211","51":"EE-211","58":"EE-211"}}}},"MAN 335":{"name":"Fundamentals of Marketing","sections":{"1":{"instructor":"Ahmet Ekici","schedule":{"2":"MA-202","9":"MA-202","14":"MA-202","21":"MA-202","52":"MA-202","59":"MA-202"}}}},"MAN 361":{"name":"Organization Theory","sections":{"1":{"instructor":"Rasim Serdar Kurdoğlu","schedule":{"1":"MA-202","8":"MA-202","18":"MA-202","25":"MA-202","51":"MA-202","58":"MA-202"}}}},"MAN 399":{"name":"Summer Practice","sections":{"1":{"instructor":"Zeynep Önder","schedule":{}}}},"MAN 436":{"name":"Services Marketing","sections":{"1":{"instructor":"Ahmet Ekici","schedule":{"0":"MA-202","7":"MA-202","17":"MA-202","24":"MA-202","50":"MA-202","57":"MA-202"}}}},"MAN 498":{"name":"Individual Study","sections":{"1":{"instructor":"Feray Tunçalp","schedule":{}},"2":{"instructor":"Banu Sultanoğlu","schedule":{}},"3":{"instructor":"Atilla Onuklu","schedule":{}}}}},"MATH":{"MATH 101":{"name":"Calculus I","sections":{"1":{"instructor":"Ahmet Muhtar Güloğlu","schedule":{"0":"SA-Z18","7":"SA-Z18","17":"SA-Z18","24":"SA-Z18","39":"SA-Z18","46":"SA-Z18","50":"SA-Z18","57":"SA-Z18"}}}},"MATH 102":{"name":"Calculus II","sections":{"1":{"instructor":"Kadri İlker Berktav","schedule":{"0":"B-Z08","7":"B-Z08","17":"B-Z08","24":"B-Z08","39":"B-Z08","46":"B-Z08","50":"B-Z08","57":"B-Z08"}},"2":{"instructor":"Mehmet Okan Tekman","schedule":{"35":"B-Z07","36":"B-Z07","37":"B-Z07","38":"B-Z07","42":"B-Z07","43":"B-Z07","44":"B-Z07","45":"B-Z07"}}}},"MATH 105":{"name":"Introduction to Calculus I","sections":{"1":{"instructor":"Merve Seçgin","schedule":{"2":"B-106","9":"B-106","14":"B-106","21":"B-106","39":"B-206","46":"B-206","52":"B-Z08","59":"B-Z08"}}}},"MATH 106":{"name":"Introduction to Calculus II","sections":{"1":{"instructor":"Nurdan Kar","schedule":{"2":"B-Z08","9":"B-Z08","14":"B-Z08","21":"B-Z08","39":"B-Z01","46":"B-Z01","52":"B-106","59":"B-106"}},"2":{"instructor":"Mustafa Kerem Yüksel","schedule":{"35":"B-Z01","36":"B-Z01","37":"B-Z01","38":"B-Z01","42":"B-Z01","43":"B-Z01","44":"B-Z01","45":"B-Z01"}}}},"MATH 132":{"name":"Discrete and Combinatorial Mathematics","sections":{"1":{"instructor":"Hamza Yeşilyurt","schedule":{"3":"B-Z01","10":"B-Z01","15":"B-Z01","22":"B-Z01","53":"B-Z01","60":"B-Z01"}}}},"MATH 225":{"name":"Linear Algebra and Differential Equations","sections":{"2":{"instructor":"Özgün Ünlü","schedule":{"35":"SA-Z18","36":"SA-Z18","37":"SA-Z18","38":"SA-Z18","42":"SA-Z18","43":"SA-Z18","44":"SA-Z18","45":"SA-Z18"}}}},"MATH 241":{"name":"Engineering Mathematics I","sections":{"1":{"instructor":"Nil Şahin","schedule":{"2":"EE-412","9":"EE-412","14":"EE-412","21":"EE-412","39":"EE-412","46":"EE-412","52":"EE-412","59":"EE-412"}}}},"MATH 242":{"name":"Engineering Mathematics II","sections":{"1":{"instructor":"Nil Şahin","schedule":{"35":"EE-412","36":"EE-412","37":"EE-412","38":"EE-412","42":"EE-412","43":"EE-412","44":"EE-412","45":"EE-412"}}}},"MATH 264":{"name":"Statistics for Social Sciences","sections":{"1":{"instructor":"İnci Apaydın","schedule":{"3":"SA-Z18","10":"SA-Z18","15":"SA-Z18","22":"SA-Z18","53":"SA-Z18","60":"SA-Z18"}}}},"MATH 291":{"name":"Summer Project I","sections":{"1":{"instructor":"Deniz Yılmaz","schedule":{}}}},"MATH 391":{"name":"Summer Project II","sections":{"1":{"instructor":"Deniz Yılmaz","schedule":{}}}},"MATH 399":{"name":"Summer Practice","sections":{"1":{"instructor":"Hamza Yeşilyurt","schedule":{}}}},"MATH 499":{"name":"Individual Study","sections":{"1":{"instructor":"Aleksander Degtyarev","schedule":{}}}}},"MBG":{"MBG 291":{"name":"Summer Practice I","sections":{"1":{"instructor":"Özhan Öçal","schedule":{}}}},"MBG 391":{"name":"Summer Practice II","sections":{"1":{"instructor":"Özhan Öçal","schedule":{}}}}},"ME":{"ME 299":{"name":"Summer Practice I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"ME 399":{"name":"Summer Practice II","sections":{"1":{"instructor":"Şakir Baytaroğlu","schedule":{}}}}},"MSC":{"MSC 411":{"name":"Composition VII","sections":{"1":{"instructor":"Onur Türkmen","schedule":{}}}}},"PHIL":{"PHIL 243":{"name":"Social and Political Philosophy I","sections":{"1":{"instructor":"Yehezkel S. Berkovski Laura Elizabeth Salgın","schedule":{"1":"B-Z04","2":"B-Z04","8":"B-Z04","9":"B-Z04","14":"B-Z04","18":"B-Z04","21":"B-Z04","25":"B-Z04","51":"B-Z04","52":"B-Z04","58":"B-Z04","59":"B-Z04"}},"2":{"instructor":"Yehezkel S. Berkovski Laura Elizabeth Salgın","schedule":{"1":"B-105","2":"B-105","8":"B-105","9":"B-105","14":"B-105","18":"B-105","21":"B-105","25":"B-105","51":"B-105","52":"B-105","58":"B-105","59":"B-105"}}}},"PHIL 244":{"name":"Social and Political Philosophy II","sections":{"1":{"instructor":"Jennifer Lyn Schroeder James Kinkaid III","schedule":{"1":"B-103","2":"B-103","8":"B-103","9":"B-103","14":"B-103","18":"B-103","21":"B-103","25":"B-103","51":"B-103","52":"B-103","58":"B-103","59":"B-103"}},"2":{"instructor":"Jennifer Lyn Schroeder James Kinkaid III","schedule":{"1":"B-108","2":"B-108","8":"B-108","9":"B-108","14":"B-108","18":"B-108","21":"B-108","25":"B-108","51":"B-108","52":"B-108","58":"B-108","59":"B-108"}}}},"PHIL 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Daniel Mark Wolt","schedule":{}}}},"PHIL 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Daniel Mark Wolt","schedule":{}}}},"PHIL 499":{"name":"Individual Study","sections":{"1":{"instructor":"Nazım Keven","schedule":{}}}}},"PHYS":{"PHYS 101":{"name":"General Physics I","sections":{"1":{"instructor":"Oğuz Gülseren","schedule":{"2":"SA-Z18","9":"SA-Z18","14":"SA-Z18","21":"SA-Z18","52":"SA-Z18","53":"N/A","59":"SA-Z18","60":"N/A","67":"N/A"}}}},"PHYS 102":{"name":"General Physics II","sections":{"1":{"instructor":"Bilal Tanatar","schedule":{"2":"SB-Z03","9":"SB-Z03","14":"SB-Z03","21":"SB-Z03","52":"SB-Z03","53":"N/A","59":"SB-Z03","60":"N/A","67":"N/A"}}}},"PHYS 498":{"name":"Individual Study","sections":{"1":{"instructor":"Mehmet Özgür Oktel","schedule":{}},"2":{"instructor":"Bilal Tanatar","schedule":{}}}}},"POLS":{"POLS 101":{"name":"Politics I: What is it?","sections":{"1":{"instructor":"Başak İnce","schedule":{"3":"B-Z06","10":"B-Z06","15":"B-Z06","22":"B-Z06","53":"B-Z06","60":"B-Z06"}}}},"POLS 104":{"name":"Politics II: How Does It Work?","sections":{"1":{"instructor":"Kerem Yıldırım","schedule":{"4":"B-104","11":"B-104","16":"B-104","23":"B-104","49":"B-104","56":"B-104"}}}},"POLS 399":{"name":"Summer Training","sections":{"1":{"instructor":"Zeki Sarıgil","schedule":{}}}},"POLS 421":{"name":"Issues in Modern Political Thought","sections":{"1":{"instructor":"John James Alexander","schedule":{"3":"B-105","10":"B-105","15":"B-105","22":"B-105","53":"B-105","60":"B-105"}}}},"POLS 483":{"name":"Liberalism and Socialism: Past and Present","sections":{"1":{"instructor":"John James Alexander","schedule":{"4":"B-Z06","11":"B-Z06","16":"B-Z06","23":"B-Z06","49":"B-Z06","56":"B-Z06"}}}}},"PREP":{"PREP 141":{"name":"Upper-intermediate","sections":{"501":{"instructor":"Bilge Çöllüoğlu Yakar Ecem İşbilir Matthew Bryce Allen","schedule":{}},"502":{"instructor":"Özlem Sydney Turgut Serhan Bulanık","schedule":{}}}},"PREP 151":{"name":"Pre- faculty","sections":{"501":{"instructor":"Müge Dağlı Çiğdem Fıçıcı Lindsey Josephina Bishop-Allen","schedule":{}},"502":{"instructor":"Ayşe Funda Gökçe Richard John Wallace","schedule":{}},"503":{"instructor":"Saliha Gürbüzdal Arlene Patricia Lahey","schedule":{}},"504":{"instructor":"Müge Dağlı Azra Uslu Anthony James Scott","schedule":{}}}},"PREP 160":{"name":"PAE Practice Course ","sections":{"501":{"instructor":"Nurdan Yeşil Müge Erten Tajia Dawn Moertle","schedule":{}},"502":{"instructor":"Nurdan Yeşil Seçil Chousein Oglu Canbaz İpek Hüyüklü","schedule":{}},"503":{"instructor":"Seçil Koçal Ebru Atakurt Füsun Taşkesen","schedule":{}},"504":{"instructor":"Funda Kamanlı Gülcan Kuyumcu James Dean Tressler","schedule":{}},"505":{"instructor":"Steven Hobson Alena Iriskulova Bilal İnci","schedule":{}},"506":{"instructor":"Dilek Bilgiç Gülcan Kuyumcu Ozan Ekici","schedule":{}},"507":{"instructor":"Gökçen Işık Tajia Dawn Moertle James Dean Tressler","schedule":{}},"508":{"instructor":"Efe Burak Yakar Nihan Kılıç Joseph Henry Louis Smith","schedule":{}},"509":{"instructor":"Emine Geçgil Alena Iriskulova Alexandra Heeg Polzin","schedule":{}},"510":{"instructor":"Ayşe Özmen Özdemir Seda Özdoğan Simon James Harvey Brunker Joseph Salvatore Aversano","schedule":{}},"511":{"instructor":"Gökşen Çetin Esra Tünay Joseph Henry Louis Smith","schedule":{}}}}},"PSYC":{"PSYC 399":{"name":"Summer Training","sections":{"1":{"instructor":"Emine Ulaşan Özgüle","schedule":{}}}}},"TRIN":{"TRIN 390":{"name":"Summer Practice","sections":{"1":{"instructor":"Cahide Ekiz","schedule":{}}}},"TRIN 399":{"name":"Common European Framework","sections":{"1":{"instructor":"Duygu Duman","schedule":{}}}}},"TURK":{"TURK 101":{"name":"Turkish I","sections":{"1":{"instructor":"Adem Gergöy","schedule":{}}}},"TURK 102":{"name":"Turkish II","sections":{"1":{"instructor":"Burcu Taşkıran","schedule":{}}}}}}
--------------------------------------------------------------------------------
/public/data/offerings/20213.json:
--------------------------------------------------------------------------------
1 | {"AMER":{"AMER 290":{"name":"Summer Training I","sections":{"1":{"instructor":"Emine Lale Demirtürk","schedule":{}}}},"AMER 390":{"name":"Summer Training II","sections":{"1":{"instructor":"Emine Lale Demirtürk","schedule":{}}}}},"ARCH":{"ARCH 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Özge Selen Duran","schedule":{}}}}},"CHEM":{"CHEM 102":{"name":"Principles of Chemistry II","sections":{"1":{"instructor":"Emrah Özensoy","schedule":{"2":"SB-Z03","9":"SB-Z03","14":"SB-Z03","21":"SB-Z03","50":"N/A","52":"SB-Z03","57":"N/A","59":"SB-Z03","64":"N/A","71":"N/A"}}}},"CHEM 399":{"name":"Summer Practice","sections":{"1":{"instructor":"Bilge Baytekin","schedule":{}}}}},"CI":{"CI 511":{"name":"Curriculum in an International Context","sections":{"1":{"instructor":"Armağan Ateşkan","schedule":{"0":"G-254","7":"G-254","17":"G-254","24":"G-254","50":"G-254","57":"G-254"}}}},"CI 513":{"name":"Statistics","sections":{"1":{"instructor":"İlker Kalender","schedule":{"57":"G-B55","59":"G-B55","64":"G-B55","66":"G-B55","71":"G-B55","73":"G-B55"}}}},"CI 532":{"name":"Written Academic Discourse ","sections":{"1":{"instructor":"Jennie Farber Lane","schedule":{"2":"G-254","9":"G-254","14":"G-254","21":"G-254","52":"G-254","59":"G-254"}}}},"CI 608":{"name":"Current Trends and Issues in Educational Technology","sections":{"1":{"instructor":"Erdat Çataloğlu","schedule":{"57":"G-255","59":"G-255","64":"G-255","66":"G-255","71":"G-255","73":"G-255"}}}},"CI 617":{"name":"Academic Writing in Education","sections":{"1":{"instructor":"Anita Nicole Alexander","schedule":{"57":"N/A","59":"N/A","64":"N/A","66":"N/A","71":"N/A","73":"N/A"}}}}},"CINT":{"CINT 513":{"name":"Advanced Simultaneous Interpreting I","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"COMD":{"COMD 354":{"name":"Game Design and Research","sections":{"1":{"instructor":"Levent Y. İnce","schedule":{"9":"FB-114","16":"FB-114","23":"FB-114","49":"FB-114","56":"FB-114","63":"FB-114"}}}},"COMD 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Hasan Yusuf Akçura","schedule":{}}}},"COMD 498":{"name":"Individual Study","sections":{"1":{"instructor":"Funda Şenova Tunalı","schedule":{}}}}},"CS":{"CS 102":{"name":"Algorithms and Programming II","sections":{"1":{"instructor":"Lori Rae Russell Dağ","schedule":{"1":"B-Z08","8":"B-Z08","18":"B-Z08","25":"B-Z08","50":"B-201","51":"B-Z08","53":"B-201","57":"B-201","58":"B-Z08","60":"B-201","64":"B-201","67":"B-201","71":"B-201","74":"B-201"}}}},"CS 115":{"name":"Introduction to Programming in Python","sections":{"1":{"instructor":"İpek Sözen","schedule":{"3":"B-Z08","10":"B-Z08","15":"B-Z08","22":"B-Z08","49":"B-304","52":"B-304","53":"B-Z08","56":"B-304","59":"B-304","60":"B-Z08","63":"B-304","66":"B-304","70":"B-304","73":"B-304"}}}},"CS 121":{"name":"Introduction to Computer Applications and Programming","sections":{"1":{"instructor":"Rabia Üşenmez","schedule":{"36":"B-303","38":"B-303","43":"B-303","45":"B-303","52":"B-303","59":"B-303","66":"B-303","73":"B-303"}}}},"CS 125":{"name":"Introduction to Data Analysis for Social Sciences","sections":{"1":{"instructor":"Ayışığı Başak Sevdik Çallı","schedule":{"35":"B-Z02","37":"B-Z02","42":"B-Z02","44":"B-Z02","51":"B-303","58":"B-303","65":"B-303","72":"B-303"}}}},"CS 201":{"name":"Fundamental Structures of Computer Science I","sections":{"1":{"instructor":"Aynur Dayanık","schedule":{"1":"B-Z01","8":"B-Z01","18":"B-Z01","25":"B-Z01","51":"B-Z01","58":"B-Z01"}}}},"CS 202":{"name":"Fundamental Structures of Computer Science II","sections":{"1":{"instructor":"Aynur Dayanık","schedule":{"2":"B-Z01","9":"B-Z01","14":"B-Z01","21":"B-Z01","52":"B-Z01","59":"B-Z01"}}}},"CS 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"CS 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Staff","schedule":{}}}},"CS 413":{"name":"Software Engineering Project Management","sections":{"1":{"instructor":"Beyhan Akporay","schedule":{"4":"B-Z02","11":"B-Z02","16":"B-Z02","23":"B-Z02","49":"B-Z02","56":"B-Z02"}}}},"CS 499":{"name":"Individual Study","sections":{"1":{"instructor":"Can Alkan","schedule":{}}}}},"CTIS":{"CTIS 152":{"name":"Algorithms and Data Structures","sections":{"1":{"instructor":"Okyay Say","schedule":{"2":"C-CTISL7","4":"C-216","9":"C-CTISL7","11":"C-216","14":"C-CTISL7","16":"C-216","21":"C-CTISL7","23":"C-216","39":"C-CTISL7","46":"C-CTISL7","49":"C-216","52":"C-CTISL7","56":"C-216","59":"C-CTISL7"}}}},"CTIS 256":{"name":"Introduction to Backend Development","sections":{"1":{"instructor":"Serkan Genç","schedule":{"1":"C-CTISL1","8":"C-CTISL1","18":"C-CTISL1","25":"C-CTISL1","51":"C-CTISL1","58":"C-CTISL1"}}}},"CTIS 417":{"name":"Software Design Patterns","sections":{"1":{"instructor":"Cüneyt Sevgi","schedule":{"0":"CE-106","7":"CE-106","17":"CE-106","24":"CE-106","50":"CE-106","57":"CE-106"}}}},"CTIS 499":{"name":"Individual Study","sections":{"1":{"instructor":"Nimet Ceren Serim","schedule":{}},"2":{"instructor":"Serkan Genç","schedule":{}}}}},"ECON":{"ECON 103":{"name":"Principles of Economics","sections":{"1":{"instructor":"Nazende Özkaramete Coşkun","schedule":{"35":"B-Z06","36":"B-Z06","37":"B-Z06","38":"B-Z06","42":"B-Z06","43":"B-Z06","44":"B-Z06","45":"B-Z06"}}}},"ECON 399":{"name":"Summer Training ","sections":{"1":{"instructor":"Staff","schedule":{}}}},"ECON 439":{"name":"Game Theory I","sections":{"1":{"instructor":"Talat Şenocak","schedule":{"3":"B-111","10":"B-111","15":"B-111","22":"B-111","53":"B-111","60":"B-111"}}}},"ECON 499":{"name":"Individual Study","sections":{"1":{"instructor":"Hüseyin Çağrı Sağlam","schedule":{}},"2":{"instructor":"Tarık Kara","schedule":{}}}}},"EEE":{"EEE 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Staff","schedule":{}}}},"EEE 321":{"name":"Signals and Systems","sections":{"1":{"instructor":"Mehmet Alper Kutay","schedule":{"0":"B-Z08","7":"B-Z08","17":"B-Z08","24":"B-Z08","50":"B-Z08","52":"EE-211","57":"B-Z08","59":"EE-211","66":"EE-211","73":"EE-211"}}}},"EEE 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Staff","schedule":{}}}},"EEE 431":{"name":"Telecommunications I","sections":{"1":{"instructor":"Sinan Gezici","schedule":{"1":"EB-203","8":"EB-203","18":"EB-203","25":"EB-203","51":"EB-203","58":"EB-203"}}}},"EEE 446":{"name":"Control and Optimization of Stochastic Systems","sections":{"1":{"instructor":"Serdar Yüksel","schedule":{"3":"EB-203","10":"EB-203","15":"EB-203","16":"EB-203","22":"EB-203","23":"EB-203","39":"EB-203","46":"EB-203"}}}},"EEE 448":{"name":"Reinforcement Learning and Dynamic Programming","sections":{"1":{"instructor":"Milad Malekipirbazari","schedule":{"0":"B-Z02","7":"B-Z02","17":"B-Z02","24":"B-Z02","50":"B-Z02","57":"B-Z02"}}}},"EEE 546":{"name":"Control and Optimization of Stochastic Systems","sections":{"1":{"instructor":"Serdar Yüksel","schedule":{"3":"EB-203","10":"EB-203","15":"EB-203","16":"EB-203","22":"EB-203","23":"EB-203","39":"EB-203","46":"EB-203"}}}},"EEE 548":{"name":"Reinforcement Learning and Dynamic Programming","sections":{"1":{"instructor":"Milad Malekipirbazari","schedule":{"0":"B-Z02","7":"B-Z02","17":"B-Z02","24":"B-Z02","50":"B-Z02","57":"B-Z02"}}}}},"ELIT":{"ELIT 290":{"name":"Summer Training I","sections":{"1":{"instructor":"Ayşe Çelikkol","schedule":{}}}},"ELIT 390":{"name":"Summer Training II","sections":{"1":{"instructor":"Ayşe Çelikkol","schedule":{}}}},"ELIT 499":{"name":"Individual Study","sections":{"1":{"instructor":"Jonathan Coleman Williams","schedule":{}}}}},"ENG":{"ENG 101":{"name":"English and Composition I","sections":{"1":{"instructor":"Hakan Güven Laura Elizabeth Salgın","schedule":{"2":"B-106","3":"B-106","9":"B-106","10":"B-106","14":"B-106","15":"B-106","21":"B-106","22":"B-106","52":"B-106","59":"B-106"}}}},"ENG 102":{"name":"English and Composition II","sections":{"1":{"instructor":"Hümeyra Başol Çetin","schedule":{"0":"B-106","1":"B-106","7":"B-106","8":"B-106","17":"B-106","24":"B-106","50":"B-106","51":"B-106","57":"B-106","58":"B-106"}},"2":{"instructor":"İklil Kaya Yıldırım","schedule":{"2":"G-B07","3":"G-B07","9":"G-B07","10":"G-B07","14":"G-B07","15":"G-B07","21":"G-B07","22":"G-B07","52":"G-B07","59":"G-B07"}},"3":{"instructor":"Ümmü Gaye Ternisien","schedule":{"35":"B-106","36":"B-106","37":"B-106","38":"B-106","39":"B-106","42":"B-106","43":"B-106","44":"B-106","45":"B-106","46":"B-106"}},"4":{"instructor":"Hakan Güven","schedule":{"2":"G-152","3":"G-152","9":"G-152","10":"G-152","14":"G-152","15":"G-152","21":"G-152","22":"G-152","52":"G-152","59":"G-152"}},"5":{"instructor":"Hümeyra Başol Çetin","schedule":{"2":"G-110","3":"G-110","9":"G-110","10":"G-110","14":"G-110","15":"G-110","21":"G-110","22":"G-110","52":"G-110","59":"G-110"}},"6":{"instructor":"İklil Kaya Yıldırım","schedule":{"35":"B-206","36":"B-206","37":"B-206","38":"B-206","39":"B-206","42":"B-206","43":"B-206","44":"B-206","45":"B-206","46":"B-206"}},"7":{"instructor":"Elif Çotuksöken","schedule":{"0":"G-B07","1":"G-B07","7":"G-B07","8":"G-B07","17":"G-B07","24":"G-B07","50":"G-B07","51":"G-B07","57":"G-B07","58":"G-B07"}}}},"ENG 401":{"name":"Technical Report Writing and Presentation","sections":{"1":{"instructor":"Marlene Denice Elwell","schedule":{"2":"G-Z38","9":"G-Z38","14":"G-Z38","21":"G-Z38","52":"G-Z38","59":"G-Z38"}},"2":{"instructor":"Marlene Denice Elwell","schedule":{"0":"G-Z38","7":"G-Z38","17":"G-Z38","24":"G-Z38","50":"G-Z38","57":"G-Z38"}}}}},"FA":{"FA 211":{"name":"Introduction to Painting I","sections":{"1":{"instructor":"Beata Malgorzata Zalewska Sladczyk","schedule":{"9":"FB-320","16":"FB-320","23":"FB-320","49":"FB-320","56":"FB-320","63":"FB-320"}},"2":{"instructor":"Beata Malgorzata Zalewska Sladczyk","schedule":{"7":"FB-320","14":"FB-320","21":"FB-320","52":"FB-320","59":"FB-320","66":"FB-320"}}}},"FA 215":{"name":"Introduction to Sculpture I","sections":{"1":{"instructor":"Ercan Sağlam","schedule":{"8":"FC-123","15":"FC-123","22":"FC-123","53":"FC-123","60":"FC-123","67":"FC-123"}},"2":{"instructor":"Ercan Sağlam","schedule":{"11":"FC-123","18":"FC-123","25":"FC-123","51":"FC-123","58":"FC-123","65":"FC-123"}}}},"FA 217":{"name":"Introduction to Ceramics I","sections":{"1":{"instructor":"Ahmet Özsalar","schedule":{"8":"FE-101","15":"FE-101","22":"FE-101","53":"FE-101","60":"FE-101","67":"FE-101"}},"2":{"instructor":"Ahmet Özsalar","schedule":{"10":"FE-101","17":"FE-101","24":"FE-101","50":"FE-101","57":"FE-101","64":"FE-101"}}}}},"GE":{"GE 301":{"name":"Science Technology and Society","sections":{"1":{"instructor":"Robin Ann Downey","schedule":{"36":"EB-202","38":"EB-202","43":"EB-202","45":"EB-202"}}}}},"GRA":{"GRA 210":{"name":"Web Design","sections":{"1":{"instructor":"Erhan Tunalı","schedule":{"9":"FB-321","16":"FB-321","23":"FB-321","49":"FB-321","56":"FB-321","63":"FB-321"}}}},"GRA 217":{"name":"Motion Graphics","sections":{"1":{"instructor":"Oğuz Akın","schedule":{"10":"FB-314","17":"FB-314","24":"FB-314","50":"FB-314","57":"FB-314","64":"FB-314"}}}}},"HART":{"HART 221":{"name":"Great Discoveries from the Ancient World ","sections":{"1":{"instructor":"Julian Bennett","schedule":{"1":"G-Z52","8":"G-Z52","18":"G-Z52","25":"G-Z52","51":"G-Z52","58":"G-Z52"}}}},"HART 399":{"name":"Summer Practice I","sections":{"1":{"instructor":"Dominique Tezgör Kassab","schedule":{}}}},"HART 401":{"name":"Summer Practice II","sections":{"1":{"instructor":"Dominique Tezgör Kassab","schedule":{}}}},"HART 415":{"name":"Ceramics for Field Archaeologists","sections":{"1":{"instructor":"Müge Durusu Tanrıöver","schedule":{}}}},"HART 531":{"name":"Ceramics for Field Archaeologists","sections":{"1":{"instructor":"Müge Durusu Tanrıöver","schedule":{}}}}},"HCIV":{"HCIV 101":{"name":"History of Civilization I","sections":{"1":{"instructor":"Fevzi Burhan Ayaz","schedule":{"0":"B-Z06","7":"B-Z06","17":"B-Z06","24":"B-Z06","50":"B-Z06","57":"B-Z06"}}}},"HCIV 102":{"name":"History of Civilization II","sections":{"1":{"instructor":"Fevzi Burhan Ayaz","schedule":{"3":"B-112","10":"B-112","15":"B-112","22":"B-112","53":"B-112","60":"B-112"}}}}},"HIST":{"HIST 200":{"name":"History of Turkey ","sections":{"1":{"instructor":"İbrahim Mert Öztürk","schedule":{"1":"B-111","8":"B-111","18":"B-111","25":"B-111","51":"B-111","58":"B-111"}}}}},"HUM":{"HUM 111":{"name":"Cultures Civilizations and Ideas I","sections":{"1":{"instructor":"Paul Elliot Kimball","schedule":{"2":"B-Z05","9":"B-Z05","14":"B-Z05","21":"B-Z05","52":"B-Z05","59":"B-Z05"}},"2":{"instructor":"Paul Elliot Kimball","schedule":{"1":"B-Z05","8":"B-Z05","18":"B-Z05","25":"B-Z05","51":"B-Z05","58":"B-Z05"}}}},"HUM 112":{"name":"Cultures Civilizations and Ideas II","sections":{"1":{"instructor":"Michael Kurt Ozment","schedule":{"1":"G-Z54","8":"G-Z54","18":"G-Z54","25":"G-Z54","51":"G-Z54","58":"G-Z54"}},"2":{"instructor":"Michael Kurt Ozment","schedule":{"3":"G-Z54","10":"G-Z54","15":"G-Z54","22":"G-Z54","53":"G-Z54","60":"G-Z54"}}}}},"IAED":{"IAED 290":{"name":"Summer Practice I","sections":{"1":{"instructor":"Tijen Sonkan Türkkan","schedule":{}}}},"IAED 351":{"name":"Detailing Studio","sections":{"1":{"instructor":"Murat Özdamar","schedule":{"8":"FA-220","15":"FA-220","22":"FA-220","53":"FA-220","60":"FA-220","67":"FA-220"}}}},"IAED 390":{"name":"Summer Practice II","sections":{"1":{"instructor":"Tijen Sonkan Türkkan","schedule":{}}}}},"IE":{"IE 299":{"name":"Summer Training I","sections":{"1":{"instructor":"Nil Şahin","schedule":{}}}},"IE 342":{"name":"Engineering Economic Analysis","sections":{"1":{"instructor":"Milad Malekipirbazari","schedule":{"2":"EA-302","9":"EA-302","14":"EA-302","21":"EA-302","52":"EA-302","59":"EA-302"}}}},"IE 399":{"name":"Summer Training II","sections":{"1":{"instructor":"Bahar Yetiş","schedule":{}}}},"IE 456":{"name":"Reinforcement Learning and Dynamic Programming ","sections":{"1":{"instructor":"Milad Malekipirbazari","schedule":{"0":"B-Z05","7":"B-Z05","17":"B-Z05","24":"B-Z05","50":"B-Z05","57":"B-Z05"}}}},"IE 499":{"name":"Individual Study","sections":{"1":{"instructor":"Savaş Dayanık","schedule":{}}}},"IE 556":{"name":"Reinforcement Learning and Dynamic Programming","sections":{"1":{"instructor":"Milad Malekipirbazari","schedule":{"0":"B-Z02","7":"B-Z02","17":"B-Z02","24":"B-Z02","50":"B-Z02","57":"B-Z02"}}}}},"IELTS":{"IELTS 100":{"name":"International English Language Testing System","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"IR":{"IR 303":{"name":"International Law ","sections":{"1":{"instructor":"Tuğba Bayar","schedule":{"2":"B-Z06","9":"B-Z06","14":"B-Z06","21":"B-Z06","52":"B-Z06","59":"B-Z06"}}}},"IR 399":{"name":"Summer Training","sections":{"1":{"instructor":"Seçkin Köstem","schedule":{}}}},"IR 439":{"name":"Turkish Foreign Policy ","sections":{"1":{"instructor":"Onur Erpul","schedule":{"3":"B-Z06","10":"B-Z06","15":"B-Z06","22":"B-Z06","53":"B-Z06","60":"B-Z06"}}}},"IR 488":{"name":"Security and Strategy","sections":{"1":{"instructor":"Onur Erpul","schedule":{"1":"B-Z06","8":"B-Z06","18":"B-Z06","25":"B-Z06","51":"B-Z06","58":"B-Z06"}}}}},"LAUD":{"LAUD 390":{"name":"Summer Practice III","sections":{"1":{"instructor":"Bülent Batuman","schedule":{}}}}},"LAW":{"LAW 105":{"name":"Civil Law: Introductory Provisions and Natural Persons","sections":{"1":{"instructor":"Mehmet Ali Erten","schedule":{"3":"B-203","10":"B-203","15":"B-203","22":"B-203","53":"B-203","60":"B-203"}}}},"LAW 202":{"name":"Law of Obligations II","sections":{"1":{"instructor":"Vedat Buz","schedule":{"3":"B-113","10":"B-113","15":"B-113","22":"B-113","53":"B-113","60":"B-113"}}}},"LAW 204":{"name":"Criminal Law II","sections":{"1":{"instructor":"Fatma Umay Genç","schedule":{"2":"B-114","9":"B-114","14":"B-114","21":"B-114","52":"B-114","59":"B-114"}}}},"LAW 302":{"name":"Civil Procedure II","sections":{"1":{"instructor":"Alim Taşkın","schedule":{"0":"B-203","7":"B-203","17":"B-203","24":"B-203","50":"B-203","57":"B-203"}}}},"LAW 305":{"name":"Law of Property I","sections":{"1":{"instructor":"Şemsi Barış Özçelik","schedule":{"4":"B-203","11":"B-203","16":"B-203","23":"B-203","49":"B-203","56":"B-203"}}}},"LAW 306":{"name":"Law of Property II","sections":{"1":{"instructor":"Şemsi Barış Özçelik","schedule":{"1":"B-203","8":"B-203","18":"B-203","25":"B-203","51":"B-203","58":"B-203"}}}},"LAW 309":{"name":"Law of Obligations Special Provisions","sections":{"1":{"instructor":"Pınar Altınok Ormancı","schedule":{"2":"B-113","9":"B-113","14":"B-113","21":"B-113","52":"B-113","59":"B-113"}}}},"LAW 358":{"name":"Criminal Law Special Provisions","sections":{"1":{"instructor":"Fatma Umay Genç","schedule":{"4":"B-113","11":"B-113","16":"B-113","23":"B-113","49":"B-113","56":"B-113"}}}},"LAW 403":{"name":"Inheritance Law","sections":{"1":{"instructor":"Gamze Turan Başara","schedule":{"1":"B-114","8":"B-114","18":"B-114","25":"B-114","51":"B-114","58":"B-114"}}}},"LAW 406":{"name":"International Commercial Arbitration","sections":{"1":{"instructor":"Gülüm Özçelik","schedule":{"36":"B-113","38":"B-113","43":"B-113","45":"B-113"}}}},"LAW 410":{"name":"Enforcement and Bankruptcy Law","sections":{"1":{"instructor":"Emel Hanağası","schedule":{"2":"B-203","9":"B-203","14":"B-203","21":"B-203","52":"B-203","59":"B-203"}}}},"LAW 411":{"name":"Criminal Procedure ","sections":{"1":{"instructor":"Devrim Güngör","schedule":{"0":"B-114","7":"B-114","17":"B-114","24":"B-114","50":"B-114","57":"B-114"}}}}},"LNG":{"LNG 111":{"name":"Spanish I","sections":{"1":{"instructor":"Mariela Del Carmen Aguirre Fidan","schedule":{"35":"G-Z55","36":"G-Z55","37":"G-Z55","38":"G-Z55","42":"G-Z55","43":"G-Z55","44":"G-Z55","45":"G-Z55"}}}},"LNG 121":{"name":"French I","sections":{"1":{"instructor":"Hasan Morkoç","schedule":{"35":"G-Z52","36":"G-Z52","37":"G-Z52","38":"G-Z52","42":"G-Z52","43":"G-Z52","44":"G-Z52","45":"G-Z52"}}}},"LNG 131":{"name":"German I","sections":{"1":{"instructor":"Nurhan Turgut","schedule":{"35":"G-Z53","36":"G-Z53","37":"G-Z53","38":"G-Z53","42":"G-Z53","43":"G-Z53","44":"G-Z53","45":"G-Z53"}}}}},"MAN":{"MAN 102":{"name":"Introduction to Business II","sections":{"1":{"instructor":"Özgür Tolga Baycan","schedule":{"4":"B-305","11":"B-305","16":"B-305","23":"B-305","49":"B-305","56":"B-305"}}}},"MAN 256":{"name":"Introduction to Management Science","sections":{"1":{"instructor":"Bo Wei","schedule":{"1":"MA-105","8":"MA-105","18":"MA-105","25":"MA-105","51":"MA-105","58":"MA-105"}}}},"MAN 335":{"name":"Fundamentals of Marketing","sections":{"1":{"instructor":"Ahmet Ekici","schedule":{"2":"MA-201","9":"MA-201","14":"MA-201","21":"MA-201","52":"MA-201","59":"MA-201"}}}},"MAN 399":{"name":"Summer Practice","sections":{"1":{"instructor":"Özgür Tolga Baycan","schedule":{}}}},"MAN 436":{"name":"Services Marketing","sections":{"1":{"instructor":"Ahmet Ekici","schedule":{"0":"MA-201","7":"MA-201","17":"MA-201","24":"MA-201","50":"MA-201","57":"MA-201"}}}}},"MATH":{"MATH 102":{"name":"Calculus II","sections":{"1":{"instructor":"Mehmet Okan Tekman","schedule":{"35":"V-02","36":"V-02","37":"V-02","38":"V-02","42":"V-02","43":"V-02","44":"V-02","45":"V-02"}},"2":{"instructor":"Hamza Yeşilyurt","schedule":{"2":"SA-Z18","9":"SA-Z18","14":"SA-Z18","21":"SA-Z18","39":"SA-Z18","46":"SA-Z18","52":"SA-Z18","59":"SA-Z18"}},"3":{"instructor":"Ahmet Muhtar Güloğlu","schedule":{"0":"SB-Z03","7":"SB-Z03","17":"SB-Z03","24":"SB-Z03","39":"SB-Z03","46":"SB-Z03","50":"SB-Z03","57":"SB-Z03"}}}},"MATH 241":{"name":"Engineering Mathematics I","sections":{"1":{"instructor":"Nil Şahin","schedule":{"2":"EB-204","9":"EB-204","14":"EB-204","21":"EB-204","39":"EB-204","46":"EB-204","52":"EB-204","59":"EB-204"}}}},"MATH 242":{"name":"Engineering Mathematics II","sections":{"1":{"instructor":"Nil Şahin","schedule":{"35":"EB-204","36":"EB-204","37":"EB-204","38":"EB-204","42":"EB-204","43":"EB-204","44":"EB-204","45":"EB-204"}}}},"MATH 291":{"name":"Summer Project I","sections":{"1":{"instructor":"Özgün Ünlü","schedule":{}}}},"MATH 498":{"name":"Individual Study","sections":{"1":{"instructor":"Anargyros Katsampekis","schedule":{}}}},"MATH 499":{"name":"Individual Study","sections":{"1":{"instructor":"Alexandre Goncharov","schedule":{}}}}},"MBG":{"MBG 391":{"name":"Summer Practice II","sections":{"1":{"instructor":"Özhan Öçal","schedule":{}}}}},"ME":{"ME 299":{"name":"Summer Practice I","sections":{"1":{"instructor":"Şakir Baytaroğlu","schedule":{}}}},"ME 399":{"name":"Summer Practice II","sections":{"1":{"instructor":"Şakir Baytaroğlu","schedule":{}}}},"ME 499":{"name":"Individual Study","sections":{"1":{"instructor":"Barbaros Çetin","schedule":{}},"2":{"instructor":"Şerif Faruk Arınç","schedule":{}}}}},"PHIL":{"PHIL 243":{"name":"Social and Political Philosophy I","sections":{"1":{"instructor":"Yehezkel S. Berkovski John William Day","schedule":{"1":"G-107","2":"G-107","8":"G-107","9":"G-107","14":"G-107","18":"G-107","21":"G-107","25":"G-107","51":"G-107","52":"G-107","58":"G-107","59":"G-107"}},"2":{"instructor":"Yehezkel S. Berkovski John William Day","schedule":{"1":"G-106","2":"G-106","8":"G-106","9":"G-106","14":"G-106","18":"G-106","21":"G-106","25":"G-106","51":"G-106","52":"G-106","58":"G-106","59":"G-106"}}}},"PHIL 244":{"name":"Social and Political Philosophy II","sections":{"1":{"instructor":"Istvan Albert Aranyosi Jeffrey Michael Doonan","schedule":{"1":"G-110","2":"G-B40","8":"G-110","9":"G-B40","14":"G-B40","18":"G-110","21":"G-B40","25":"G-110","51":"G-110","52":"G-B40","58":"G-110","59":"G-B40"}},"2":{"instructor":"Jeffrey Michael Doonan Tufan Kıymaz","schedule":{"1":"G-B40","2":"G-109","8":"G-B40","9":"G-109","14":"G-109","18":"G-B40","21":"G-109","25":"G-B40","51":"G-B40","52":"G-109","58":"G-B40","59":"G-109"}}}}},"PHYS":{"PHYS 101":{"name":"General Physics I","sections":{"1":{"instructor":"Bilal Tanatar","schedule":{"3":"SB-Z03","10":"SB-Z03","15":"SB-Z03","22":"SB-Z03","38":"N/A","45":"N/A","52":"N/A","53":"SB-Z03","60":"SB-Z03"}}}},"PHYS 102":{"name":"General Physics II","sections":{"1":{"instructor":"Seymur Jahangirov","schedule":{"1":"SB-Z03","8":"SB-Z03","18":"SB-Z03","25":"SB-Z03","38":"N/A","45":"N/A","51":"SB-Z03","52":"N/A","58":"SB-Z03"}},"2":{"instructor":"Ceren Sibel Sayın","schedule":{"2":"SA-Z01","9":"SA-Z01","14":"SA-Z01","21":"SA-Z01","37":"N/A","44":"N/A","51":"N/A","52":"SA-Z01","59":"SA-Z01"}}}},"PHYS 291":{"name":"Summer Practice","sections":{"1":{"instructor":"Onur Tokel","schedule":{}}}},"PHYS 491":{"name":"Senior Project I","sections":{"1":{"instructor":"Oğuz Gülseren","schedule":{}}}}},"POLS":{"POLS 101":{"name":"Introduction to Political Science I","sections":{"1":{"instructor":"John James Alexander","schedule":{"0":"B-Z07","7":"B-Z07","17":"B-Z07","24":"B-Z07","50":"B-Z07","57":"B-Z07"}}}},"POLS 104":{"name":"Introduction to Political Science II","sections":{"1":{"instructor":"Pınar Akdeniz","schedule":{"4":"B-Z07","11":"B-Z07","16":"B-Z07","23":"B-Z07","49":"B-Z07","56":"B-Z07"}}}},"POLS 399":{"name":"Summer Training","sections":{"1":{"instructor":"Staff","schedule":{}}}},"POLS 483":{"name":"Liberalism and Socialism: Past and Present","sections":{"1":{"instructor":"John James Alexander","schedule":{"2":"B-Z07","9":"B-Z07","14":"B-Z07","21":"B-Z07","52":"B-Z07","59":"B-Z07"}}}},"POLS 498":{"name":"Individual, Society and Violence","sections":{"1":{"instructor":"Esra Dilek","schedule":{"1":"B-Z07","8":"B-Z07","18":"B-Z07","25":"B-Z07","51":"B-Z07","58":"B-Z07"}}}}},"PREP":{"PREP 131":{"name":"Intermediate ","sections":{"501":{"instructor":"Fidan Bahar Altaş Meltem Deniz Moran","schedule":{}},"502":{"instructor":"Bilge Çöllüoğlu Yakar Hülya Can Fidan Bahar Altaş","schedule":{}}}},"PREP 141":{"name":"Upper-intermediate","sections":{"501":{"instructor":"Seda Özdoğan Hülya Can","schedule":{}},"502":{"instructor":"Ecem İşbilir İrem Arıcan","schedule":{}}}},"PREP 151":{"name":"Pre- faculty","sections":{"501":{"instructor":"Zeynep Kireçci Samime Çelik Aktaş Micaela Kim Richter","schedule":{}},"502":{"instructor":"Samime Çelik Aktaş Ozan Ekici","schedule":{}},"503":{"instructor":"Gökçen Işık Bilal İnci","schedule":{}}}},"PREP 160":{"name":"PAE Practice Course ","sections":{"501":{"instructor":"Nurdan Yeşil Ayşe Funda Gökçe Jessica Mary Killaspy","schedule":{}},"502":{"instructor":"Ebru Atakurt Ayşegül Utku Anthony James Scott","schedule":{}},"503":{"instructor":"Ayşe Özmen Özdemir Seçil Chouseinoglu Canbaz Suphi Burak Üskent","schedule":{}},"504":{"instructor":"Neşe Ayşe Çelik Füsun Taşkesen Daniel Jack Williamson","schedule":{}},"505":{"instructor":"Ebru Emine Ecer Gülcan Kuyumcu Daniel Jack Williamson","schedule":{}}}}},"PSYC":{"PSYC 100":{"name":"Introduction to Psychology","sections":{"1":{"instructor":"Kaan Kerman","schedule":{"0":"B-111","7":"B-111","17":"B-111","24":"B-111","50":"B-111","57":"B-111"}}}},"PSYC 205":{"name":"Statistics II","sections":{"1":{"instructor":"Sezer Kadayıfçılar","schedule":{"0":"G-136","7":"G-136","17":"G-136","24":"G-136","50":"G-136","57":"G-136"}}}},"PSYC 399":{"name":"Summer Training","sections":{"1":{"instructor":"Selin Salman Engin","schedule":{}}}}},"SFL":{"SFL 392":{"name":"Common European Framework of Reference Level B2","sections":{"1":{"instructor":"Staff","schedule":{}}}}},"SOC":{"SOC 101":{"name":"Introduction to Sociology","sections":{"1":{"instructor":"Esra Dilek","schedule":{"3":"B-Z07","10":"B-Z07","15":"B-Z07","22":"B-Z07","53":"B-Z07","60":"B-Z07"}}}}},"TRIN":{"TRIN 390":{"name":"Summer Practice","sections":{"1":{"instructor":"Staff","schedule":{}}}},"TRIN 499":{"name":"Individual Study","sections":{"1":{"instructor":"Füsun Ataseven","schedule":{}}}}},"TURK":{"TURK 102":{"name":"Turkish II","sections":{"1":{"instructor":"Adem Gergöy","schedule":{}},"2":{"instructor":"Adem Gergöy","schedule":{}}}}}}
--------------------------------------------------------------------------------