Skip to content

Commit

Permalink
Revert "Update: ITP"
Browse files Browse the repository at this point in the history
This reverts commit 4245bc7.
  • Loading branch information
Huni0819 committed Nov 6, 2023
1 parent 4245bc7 commit ac720e6
Show file tree
Hide file tree
Showing 492 changed files with 46,003 additions and 14 deletions.
18 changes: 4 additions & 14 deletions Chapter1/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,8 @@

== Overview: The Mental Landscape +


[width=25%]
|===
| Name

| link:./seungjo[정승조]

| link:./jeongwoo[이정우]

| link:./yongjun[유용준]

| link:./damho[이담호]

| link:./jaehun[장재훈]
=== 📂 Team Member
[cols="5*^", %autowidth]
|===
| link:./seungjo[정승조] | link:./jeongwoo[이정우] | link:./yongjun[유용준] |link:./damho[이담호] |link:./jaehun[장재훈]
|===
274 changes: 274 additions & 0 deletions Chapter1/damho/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,274 @@
=== Chapter 1

The CPU and main memory are only two out of many components in a real computer system

**실제 컴퓨터 시스템에서 CPU와 메인 메모리는 많은 구성 요소들 중 두개에 불과하다**

comparatively

→ 비교적

permanent

→ 영구적인

somehow

→ 어떻게든

deal with

→ 처리하다

typically

→ 일반적으로

sort

→ 종류

direct

→ 지시하다

fairly

→ 꽤

turn out

→ 나타나다

**polling**

→ 데이터가 들어왔는지 주기적으로 체크하여 파악함. 들어왔으면 그 데이터를 제공함.

**interrupt**

→ polling의 단점을 보완. interrupt handler.

by putting aside whatever it is doing

→ 그것이 하던일을 제쳐두고

predetermined

→ 미리 계산된

make up

→ 만들어서 구성하는 느낌

necessary

→ 필요한, 필수적인

restore

→ 복구하다, 복원하다

**asynchronous**

→ 비동기식

only if

→ ~해야만

on the scale of speed at which the CPU operates

→ cpu가 작동하는 속도의 기준에서

multi tasking

time sharing

synchronous 동기

이어지는, 예측되는

asynchronous 비동기

이어지지 않는, 예측할 수 없는

**thread**

→ Each of the individual tasks that the CPU is working on

MACHINE LANGUAGE

→ 기계어

**Interpreter**

→ Intstruction-by-Instruction로 변환함. 통역느낌

**Compiler**

→ 한 번에 다 변경. 번역느낌

**data** - variables, types

**instruction** - control structures, subroutines

**a variable has a type that indicates what sort of data it can hold**

make a distinction

→ 구별을 하다

assignment statement

→ 변수에 값을 저장하는

input/output command

→ input command = 데이터를 가져오거나 받기 위한 명령, output command = 다른 방향으로 데이터를 보내기 위한 명령

building block

→ 기본 구성 요소

run out of

→ 부족, 부족해지다, 떨어지다

**control structure**

→ 제어 구조. flow of control 을 변경할 수 있는 특별한 명령어

→ loop 와 branch가 있음

→ loop : sequence of instructions를 계속(반복)할 수 있도록 함

→ branch : 프로그램이 실행될 때 발생하는 조건에 따라 컴퓨터가 둘 이상의 서로 다른 동작 과정을 결정할 수 있게 함

**subroutine**

→ 함수 느낌

→ 동일한, 한 가지 목적을 가지고 수행되는 명령어들의 집합

**Variables, types, loops, branches, and subroutines are the basis of what might be called "traditional programming.”**

methodology

→방법론

**structured programming**(top-down programming) 하향식 설계

→ 1970년대, 80년대의 프로그래밍 방법론

→ 큰 문제를 여러 작은 문제로 분해하고 작업. 작은 문제들을 또 분해하여 작업. 결국, 더 이상 분해하지 않고 바로 해결할 수 있는 문제들로 되어 해결 가능하게 됨.

문제점

→ 시간이 지남에 따라 data structure 설계도 subroutine, control structure 설계만큼 중요하다는 것을 알게되었는데 이 방법론은 data structure 설계를 적절하게 고려하지 않음

→ 또한 이 방법론은 문제마다 고유한 설계를 생성하는 경향이 있어 엄청난 수정 작업을 하지 않고서는 재사용이 불가능 함

bottom-up design 상향식 설계

information hiding

polymorphism

→ different objects can respond to the same message in different ways

→ 다른 객체들이 같은 메세지에 다른 방법으로 응답할 수 있다.

=== QUIZ

**Question 1:**

One of the components of a computer is its *CPU.* What is a CPU and what role does it play in a computer?

**Answer 1:**

CPU란 중앙처리장치로 컴퓨터에서 명령어들을 처리하는 역할을 한다. PC가 가르키는 곳의 명령어를 수행하고 컴퓨터 구성요소들에게 명령을 내려 명령어를 수행하도록 한다.

**Question 2:**

Explain what is meant by an "asynchronous event." Give some examples.

**Answer 2:**

asynchronous event는 연속적으로 수행되지 않아서 예측할 수 없는 event를 의미한다. 따라서 언제 event들이 발생할지 알 수 없기 때문에 interrupt를 이용해 asynchronous event를 처리한다.

**Question 3:**

What is the difference between a "compiler" and an "interpreter"?

**Answer 3:**

compiler는 프로그램을 한 번에 기계어로 바꾸는 것을 말하고, interpreter는 한 줄, 한 줄을 native code로 변환한다.

**Question 4:**

Explain the difference between *high-level languages* and *machine language.*

**Answer 4:**

high-level languages는 인간이 읽고 쓰기 쉬운 언어로 컴퓨터가 실행할 수 없는 언어이다.

machine language는 컴퓨터가 처리할 수 있는 언어로 2진수로 구성된다.

**Question 5:**

If you have the source code for a Java program, and you want to run that program, you will need both a *compiler* and an *interpreter.* What does the Java compiler do, and what does the Java interpreter do?

**Answer 5:**

Java compiler는 Java를 바이트 코드로 변환하여 런타임에 JVM이 실행할 수 있는 코드로 변환한다.

Java interpreter는 변환된 바이트 코드를 런타임에 기계어로 변환한다.

**Question 6:**

What is a *subroutine?*

**Answer 6:**

한 목적을 가지고 모인 명령어들의 집합. subroutine name을 적어주어 정의

함수와 다른점을 모르겠음

**Question 7:**

Java is an object-oriented programming language. What is an *object*?
**Answer 7:**

object란 data와 subroutines를 포함하는 모듈의 한 종류이다.

내부의 state를 가지고, message에 반응한다.

**Question 8:**

What is a *variable?* (There are four different ideas associated with variables in Java. Try to mention all four aspects in your answer. Hint: One of the aspects is the variable's name.)

**Answer 8:**

Variable’s name, type, address(memory), value

**Question 9:**

Java is a "platform-independent language." What does this mean?

**Answer 9:**

OS에 맞는 JVM만 깔려있다면 어떤 OS에서 작성되어도 바이트 코드로 변환되고 같은 동작을 할 수 있도록 한다.

**Question 10:**

What is the "Internet"? Give some examples of how it is used. (What kind of services does it provide?)

**Answer 10:** 인터넷이란 모든 컴퓨터들이 연결하여 통신할 수 있는 하나의 거대한 통신망이다.

IP : Internet Protocol. 데이터가 어떻게 물리적으로 한 컴퓨터에서 다른 컴퓨터로 전송되어야 하는지 명시.

TCP : Transmission Control Protocol. IP를 사용하여 전송된 데이터가 오류 없이 전체적으로 수신되도록 보장.

HTTP : 월드 와이드 웹의 토대이며 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는 데 사용.

SMTP : 이메일 메세지를 컴퓨터에서 다른 컴퓨터로 보내기 위해 사용.
Loading

0 comments on commit ac720e6

Please sign in to comment.