Introduction to Computer Science YMT113 · Fall 2026 Assoc. Prof. Ferhat Uçar

Syllabus · YMT113

About the course

Introduction to Computer Science is a first course in computing for beginners with no prior programming experience, built on Harvard University's CS50 curriculum. Starting from how computers represent information, you learn to think algorithmically and to program in C, the language under every operating system, browser and database. You then meet arrays, algorithms, memory, data structures, Python, artificial intelligence, SQL and the web, and you finish by building and demoing a software project of your own.

Instructor
Assoc. Prof. Ferhat Uçar
Class
Monday 13:15–17:00 (official slot)
Lecture
13:30–14:45
Lab
from 15:00 onwards
Room
B101 / YM LAB
Program
UOLP (International Joint Degree Program), taught in English
Language
English
Prerequisites
None. No prior programming is assumed; curiosity and a browser are enough.
Based on
Harvard CS50x 2026 (edX enrollment provided)

Contact & channels

Reach me

Join the WhatsApp channel for announcements, check my calendar before you drop by, and book an office-hours slot for questions or your project.

  • WhatsApp channel

    Quick announcements and reminders land here first. Everyone is expected to join.

    QR code: WhatsApp channel
  • Instagram · @dr.ferhatucar

    Short, useful posts on AI, software and what we do in class.

    QR code: Instagram · @dr.ferhatucar
  • Public work calendar

    My weekly schedule: classes, meetings and when I am available.

    QR code: Public work calendar
  • Office hours booking

    Questions, your project or advice: pick a time that suits you.

    QR code: Office hours booking

Philosophy

Where you end up relative to yourself

What ultimately matters in this course is not where you end up relative to your classmates but where you end up relative to yourself when you began. We learn by doing: every Monday is one lecture and one lab, every lab is code you write and tests that check it instantly, and every idea is tied to something real, from the chip in your phone to the app you used this morning.

Learning outcomes

What you will be able to do

  1. LO1

    Explain how computers represent numbers, text, images and instructions as bits, and describe the input → algorithm → output model of computation.

    W1W2

  2. LO2

    Write, compile and debug C programs with variables, conditionals, loops, functions, arrays and strings.

    W3W4

  3. LO3

    Implement and compare searching and sorting algorithms and reason about running time with Big O.

    W5

  4. LO4

    Use pointers and dynamic memory in C, read hexadecimal, and explain how strings, files and images live in memory.

    W6

  5. LO5

    Build linked lists, hash tables and trees, and choose a data structure for a given problem.

    W7

  6. LO6

    Translate C programs into Python and use libraries to solve practical problems quickly.

    W9

  7. LO7

    Describe how machine learning and large language models work, prompt them effectively, and recognize their limits.

    W10

  8. LO8

    Design relational tables and query them with SQL, and explain SQL injection.

    W11

  9. LO9

    Explain how the Internet and the web work (IP, TCP, DNS, HTTP) and build a small interactive page with HTML, CSS and JavaScript.

    W12W13

  10. LO10

    Apply basic security hygiene and human-centered design principles, and present a working software project with a clean Git history.

    W13W14W15

Grading

How your grade is built

Midterm exam

40%

In-class written exam in week 8. The official date is announced by the faculty.

Final

60%

Final grade = 85% final exam + 15% semester project.

Inside the final (60%)

Final exam 85%Semester project 15%

The project therefore counts for 9% of your overall course grade. Project details →

Weekly labs are autograded for instant feedback. They are the practice ground for the exams and the project, and completion is tracked. How labs work →

Policies

The fine print

Late work
Assignments submitted after the due date are penalized 10% per day, including weekends. Nothing is accepted more than five days late unless a documented medical or personal emergency is provided.
Academic integrity
Cheating, plagiarism and submitting someone else's work as your own lead to disciplinary action, which can include a failing grade and university sanctions. Reading others' code to learn is fine; submitting it is not.
AI tools
You may use AI assistants (including CS50's duck at cs50.ai) to explain concepts, find bugs and generate practice problems. You may not submit code you cannot explain line by line. In labs and the project demo you will be asked to walk through your work.
Attendance and participation
Regular attendance is crucial: the lab needs you in the room. If you cannot attend, email the instructor in advance.
Electronics
Laptops and phones are for course work only. Anything that distracts others is not allowed.
Communication
Official course communication is by email. Urgent announcements also go to the WhatsApp channel.
Accommodations
If you need an accommodation for a disability or any other reason, contact the instructor as early as possible.