Computer Science🖥️
-
[week4]File I/OComputer Science🖥️/System Programming 2021. 12. 6. 10:53
1. What is File? Linux file은 byte의 나열이다. // kernel, HW partition 등 모두 file로 표현이 된다. All I/O devices 은 파일로 표현된다. - /dev/sda1 (hard disk partition) - /dev/tty2 (terminal) //ctrl + alt + F1~F7 (termianl 이동 단축키) 2. File Types 각 파일은 시스템 안에서의 역할을 가리키는 type을 갖고 있다. - Regular file: 임의의 데이터를 담는 파일 - Directory: 관련된 파일의 그룹을 만들어 가리키는 그룹의 index - Socket: another machine에서 프로세스로 소통하기 위해 필요한 것 1) Regular file ..
-
[week3] Shell script & MakefileComputer Science🖥️/System Programming 2021. 12. 6. 08:33
1. What is Shell? : user와 os 사이의 Interface program - window command prompt와 유사하다 - bash version: $/bin/bash -version (bash shell version 확인 명령어) 2. Redirection & Pipes (shell script를 위한 명령어) File descriptor(fd) : open file에 대한 식별 번호 - 프로세스가 file이나 device에 접근하기 위해 사용된다. - standard fd(0~2는 기본 설정) stdin(0): standard input // keyboard stdout(1): standard output //terminal stderr(2): standard error o..
-
동적 프로그래밍(Dynamic Programming)Computer Science🖥️/Algorithm 2021. 10. 15. 14:26
1. Dynamic Programming 이란? - 알고리즘을 디자인 하기 위한 전략 - 큰 문제를 작은 문제로 나누어 푸는 문제 (동적 프로그래밍이란 이름 때문에 동적으로 이루어지는지 찾아볼 필요 x, 그저 멋있는 이름을 붙였다는 원작자) 1.1 Divide and Conquer (분할 정복)과 비슷? : 작은 문제로 나누어 푼다는 점에서 비슷한 면이 있지만 결정적 차이점은 바로, 작은 문제가 중복을 일으키는지 아닌지 이다. 분할 정복은 단지 작은 문제로 나누어 푸는 것이기 때문에 작은 문제에 반복이 일어나지 않는 것이 특징이지만, 동적 프로그래밍은 작은 문제들이 반복되는 것(답이 바뀌지 않음) 을 이용해 풀어나가는 방법이다. 1.2 Dynamic Programming 방법 - 모든 작은 문제들은 한번..
-
[JAVAProgramming] 다형성(Polymorphism)Computer Science🖥️ 2021. 10. 9. 00:43
다형성(polymorphism) 다형성이란 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미한다. 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 구현하는 것. ex) Dog (parent, super class) Police Dog(child, sub class) Dog dog1 = new PoliceDog(); - 부모 클래스 타입의 참조 변수가 사용할 멤버의 개수
-
1주차 프로그래밍 언어란?Computer Science🖥️/Programming Language 2021. 9. 24. 20:51
Programming Languages & Related Issues Introduction to Programming Languages Review for Computing Architecture & Environments 1. Language and programming language - Language : 사람 사이에서 소통하기 위한 도구. - Programming Language : 컴퓨터를 제어하기위해 사용자들 사이에서의 프로토콜. & 기계 간 통신을 위한 도구. - Definition of formal language : formal language 란 수학적으로 정확한 구성 규칙을 가진 언어이며 더 정확하겐 일부 알파벳들의 단어 집합이다. 예를 들어 문자 a, b, c로 구성된 알파벳을 취..
-
[1주차]Introduction to AIComputer Science🖥️/Artificial Intelligence 2021. 9. 10. 02:50
1. AI 란? : 지능적인 행동을 할 수 있는 컴퓨터와 컴퓨터 소프트웨어를 어떻게 생성할지 고민하는 수업. 2. Machine learning - 인공지능의 하위 필드 - 패턴 인식과 계산적인 학습 이론에 대한 연구 - 데이터를 통해 자동으로 규칙을 배우게(the ability to learn) 하는 프로그램을 만드는 것 - Supervised Learning, Unsupervised Learning 3. AI 의 공식적 탄생: Dartmouth, 1956 4. AI as Designing Rational Agents - Agent 는 인지하고 행동하는 개체(entity) - A rational agent 는 예상 효용(expected utility)를 극대화하는 행동을 선택한다 - sensors, a..
-
sort, sorted 의 차이Computer Science🖥️/Python 2021. 8. 1. 01:01
정렬이 필요할 때 sort 를 쓰다가 우연히 sorted 를 보고 차이점을 비교하기 위해 써본다. sort() - 해당 리스트를 그 자리에서 (in-place)정렬하고 목록 인덱스를 변경하며 None을 반환한다. a = [5, 2, 3, 1, 4] a.sort() >>>[1, 2, 3, 4, 5] a >>>[1, 2, 3, 4, 5] sorted() - new로 정렬된 목록을 반환하며, 원래 목록은 영향을 받지 않는다. a = [5, 2, 3, 1, 4] sorted(a) >>>[1, 2, 3, 4, 5] a >>>[5, 2, 3, 1, 4] - sorted() 는 list뿐 아니라 반복 가능한 모든 작업에 적용 가능하다.(iterable) - iterable 객체인 문자열, 튜플, 딕셔너리, 제너레이터..
-
파이썬 배열(array)은 listComputer Science🖥️/Python 2021. 6. 12. 04:42
친구가 파이썬 과제중 나에게 배열에 대해 물어보길래 이렇게 쓰게 됐다. 내가 알기로 파이썬의 배열 개념은 list, tuple 인데 본인은 array를 쓴다고 했기 때문. 알고보니 Numpy를 써서 그랬던 것이었다. 많은 숫자 데이터를 하나의 변수에 넣고 관리 할 경우 리스트는 속도가 느리고 메모리 차지가 많아 단점이 된다. 따라서 아래와 같은 배열(array)의 특성상 리스트 보다 비교적 적은 메모리로 많은 데이터를 빠르게 처리할 수 있다. 1. 모든 원소가 같은 자료형 2. 원소의 갯수 불변 파이썬 자체적으로는 배열 자료형을 제공하지 않는다. 따라서 배열을 구현한 다른 패키지를 임포트해야한다. 파이썬에서 배열을 사용하기 위한 표준 패키지는 넘파이(NumPy)다. 넘파이는 수치해석용 파이썬 패키지이다...