1 of 51

Object-Oriented Programming

Prof. Seungtaek Choi

2 of 51

Today

  • Course overview
  • Python Basics
  • Git/GitHub Basics

3 of 51

Course Overview (1)

  • Course title: 객체지향프로그래밍
  • Instructor (before midterm exam): Prof. Seungtaek Choi (최승택)
    • Office: 교수회관 435호
    • Email: seungtaek.choi@hufs.ac.kr
  • Instructor (after midterm exam): Prof. Yeachan Kim (김예찬)
    • Office: 교수회관 520호
    • Email: yeachan@hufs.ac.kr

4 of 51

Course Overview (2)

  • Grading (tentative)
    • Midterm exam (35%)
    • Final exam (35%)
    • Attendance and Participation (10%)
    • Assignments (20%)

5 of 51

Course Overview (3)

  • Lecture materials will be uploaded via the lecture page!

6 of 51

Make lecture as interactive as possible

  • Lecture materials will be interactively improved
    • So, please feel free to ask any question
  • Curriculum can also be updated based on feedback
    • So, please feel free to request any support regarding …
      • Python
      • Coding
      • Software Development
      • Practice AI?

7 of 51

Course Policies

  • Collaboration
    • may collaborate with anyone
    • required to write code independently and write names of all collaborators on submission
    • we will may run a code similarity program on all problem sets

8 of 51

Course Policies (2)

  • You are welcome to use AI—but use it to build your own ability, not just to get the assignment done. If you skip doing the work yourself, the exams will be very tough.
  • Learn by reading others’ code through PR reviews or merged PRs: ask about intent, discuss, and absorb ideas. Still, attempt the assignment yourself first; that struggle is what hardens your foundations for the future.
  • Always credit any help (people, AI, external code, etc.) in your PR description or inline comments.
  • If you’re curious about anything, please ask—on GitHub Issues or the eClass Q&A/Open board—and don’t hide your questions so that your knowledge can help your classmates, too.

9 of 51

What are anticipated

  • To build Python/OOP knowledge of concepts.
  • To strengthen Python programming skills daily.
  • To develop OOP-focused problem solving ability.

10 of 51

Setup for Python Practice

  • Editor: Cursor, VS Code, …
  • Python 3.11+ with conda
  • Git

11 of 51

Prepare with AI (1)

  • Ask to AI
    • This would greatly improve your understanding in this class!

12 of 51

Prepare with AI (2)

13 of 51

Python Basics (1)

14 of 51

Why Python? (1)

15 of 51

Why Python? (1)

  • Python reads like natural language.
    • It’s easy to learn syntax.

Can you “read” this?

16 of 51

Why Python? (1)

  • Python reads like natural language.
    • It’s easy to learn syntax.

But C++...

17 of 51

Why Python? (2)

  • Python is easy to use external libraries. (w/ large community)

18 of 51

Compiler Language vs. Interpreted Language (1)

Interpreted Language

Compiler Language

19 of 51

Compiler Language vs. Interpreted Language (2)

Compiler Language

Binary Executable

20 of 51

Compiler Language vs. Interpreted Language (3)

Interpreted Language

21 of 51

Compiler Language vs. Interpreted Language (3)

Interpreted Language

22 of 51

Compiler Language vs. Interpreted Language (3)

Interpreted Language

23 of 51

Compiler Language vs. Interpreted Language (4)

  • Jupyter notebook

24 of 51

Practice (1): Python Setup

  • Let’s install Python (only Windows users)

25 of 51

Practice (1): Python Setup

  • Run “python”

26 of 51

Practice (1): Python Setup

  • Run “python”

>>>: REPL

(Read Evaluate Print Loop)

27 of 51

Practice (1): Python Setup

  • Run Python “script” file

28 of 51

Practice (2): Jupyter Notebook

  • Google Colab (Recommended): https://colab.google/

Shift + Enter

29 of 51

Practice (3): Cursor

  • Cursor (Recommended): https://cursor.com/home

30 of 51

Git/GitHub Basics

31 of 51

Or, How to Submit Assignment!

32 of 51

Lecture Repository

  • Link: https://github.com/HUFS-LAI-Seungtaek/HUFS-LAI-OOP-2025-2
  • You need to …
    • 1. fork lecture repository
    • 2. commit your files to “your” repository
    • 3. submit PR to lecture repository

33 of 51

What is Git?

  • Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

34 of 51

What is GitHub?

  • GitHub is a cloud-based platform built on the "Git" version control system that provides tools for developers to store, manage, share, and collaborate on code and other files.

35 of 51

Basics of Git

  • Repository is a version-controlled project space that stores your files, branches, and full change history.
  • Branch is an independent line of development – a named timeline of commits within a repo.
  • Commit is a saved snapshot of changes with a message, author, and timestamp.

main

main

HUFS-LAI-Seungtaek/HUFS-LAI-OOP-2025-2:main

hist0613/HUFS-LAI-OOP-2025-2:main

main+1

main.py

main+2

test.py

main+2

main+1

36 of 51

Fork repository

37 of 51

Fork repository

38 of 51

Repo is copied under your account.

39 of 51

Add a file

40 of 51

Add a file

41 of 51

Add a file

members/{학생이름}.md

42 of 51

43 of 51

Introduce yourself

44 of 51

Commit the change (your file)

45 of 51

Back to “your” repo

46 of 51

Submit PR to lecture repository

47 of 51

Submit PR to lecture repository

48 of 51

Submit PR to lecture repository

49 of 51

1st Assignment!

  • Assignment #1: Write your introduction and submit PR
    • Deadline: Sep 10th (1 week)
    • Practice your Git and GitHub
    • Feel free to react each other’s introduction (that’s also review!)

50 of 51

Recap

  • Course Overview
  • Python Basics (1)
  • Git/GitHub Basics
  • Assignment #1

51 of 51

Next

  • More Python Basics