CS 전공/책, 자료들2008. 2. 22. 22:29



http://www.cs.uiuc.edu/calendar/videoarchive.php 에 보면 UIUC에서 Distinguished academic lecture들을 서비스를 한다. 이중에서 Jennifer Widom 아줌마의 Stream Data Management System에 대한 강의.
요새는 서울대 컴퓨터공학부(http://cse.snu.ac.kr)에서도 비슷한 서비스를 하고 있다.

알고 싶은 의지만 있으면, 배움의 소스는 참 많음을 알수 있다. 문제는... 귀찮다는 거지 ㅡ,.ㅡ

* 연사 소개 전까지 몇분간 소리가 안납니다. 오디오가 나간것이 아님.


Posted by Bart
CS 전공/생각?2007. 12. 11. 03:34
서울대 재료 공학과 황농문 교수의 몰입적 사고 TP(PDF)

정말 좋은 내용이기에 추천합니다.

특히, SBS 스페셜 89회-몰입 최고의 나를 만난다. 편을 같이 보는게 좋을 듯 하네요.

'CS 전공 > 생각?' 카테고리의 다른 글

IEEE TKDE 리뷰  (3) 2008.06.23
[퍼온글]나의 꿈 - 문병로  (0) 2008.04.13
좋은 연구를 위해 필요한 것들..  (1) 2007.11.20
"we regret to inform you that ~ "  (2) 2007.11.13
SCI&SCIE  (0) 2007.11.09
Posted by Bart
CS 전공/리뷰2007. 11. 28. 00:21

TKDE 10 월호에 XML 어쩌고 하는 논문이 있길래, 궁금해서 봐보았다.
어차피 XML 쪽은 내가 하는 일하고도 관련이 있고, 또 예전에 XML DBMS 개발하는 일도 해보았고,
현재도 이상하게 얽혀있는 관계라서..

NCSU에 있는 애가 쓴 건데, 여태까지 나온 XML 관련 테크닉들을 survey 한 거다. 아하.. TKDE 같은 데서도 Survey 페이퍼를 받는가 보구나 하면서 훑어보니... 이 친구 레퍼런스를 125개를 달았다. 자잘한 건 다 치우고, 굵직한 페이퍼들만 짚고 넘어가는데 125개란다. 그 만큼 이 분야에 얼마나 많은 사람들이 달려붙어서 깃발꽂기를  하고 있었는지 짐작이 간다. (우리는 왜 남의 동네 구경으로 보고 있었지? 시작한 건 거의 가장 처음이었으면서.)
레퍼런스의 한 1/4는 읽어본 것으로 짐작하고, 나머지 반은 이름은 보았던거, 그 외는 전혀 생소한 것들이다. 참 볼 페이퍼들 많다.

이분야도 이제 거의 정리가 되가는 듯 싶은데, 아직 할 수 있는 것이 몇 개 보이긴 하다. 하지만, 지금 일에 치여 손도 못대고 있다는거...

그나저나 상용 DBMS들은 이제 모두 Reverse Path Materialization + Dewey encoding로 굳혀졌구나.
 

'CS 전공 > 리뷰' 카테고리의 다른 글

DBMS on New Hardware  (9) 2009.11.22
Memory Hierarchy, Memory Wall and Memory Mountain  (10) 2009.09.28
최근의 DB 연구 경향  (1) 2009.08.20
Claremont Report  (0) 2008.09.10
ASU의 Yi Chen 교수의 대학원 강의:Data on the Web  (0) 2008.03.25
Posted by Bart
CS 전공/생각?2007. 11. 20. 23:22

좋은 연구를 위해서 필요한 것들이 무엇인지 요사이 진지하게 생각해 보고 있다.
결론은 아래의 것들이 아닐까 싶다.

1) 시간
   가장 중요한 것은 시간인 듯 싶다.
   충분한 사전 조사와 proceeding들 좀 보는데 필요한 시간, 코딩하고 실험하는데 충분한 시간, 논문 쓰기에 충분한 시간
   심사 결과 기다릴 때까지 별 타격을 받지 않을 만한 시간, 그리고 시간. 

2) 돈
   두 번째는 돈이다. 솔직히 이 바닥은 다른 분야랑 상관없이 연구에 필요한 기자재가 조촐하다.
   무슨 시약이 필요하나, 폐기물 처리가 필요하나. 머신이 있어야 하나....  전기만 들어오고, 인터넷 되고, 모니터에 PC만 있으면 된다.
   하지만, 인건비, 즉 먹고 사는데 필요한 돈은 있어야겠다. 어느 정도라 말하기는 어렵지만, 다른 분야와 비교해 어느정도 꿀리지 않고, 경력이나, 가방끈 길이를 좀 재줄 정도의 돈은 있으면 좋겠다.  나이가 먹을수록 돈은 점점 무시하기 어려운 문제가 되어간다.

3) 조력자 또는 조언자
  현재 가장 필요로 하는 요소이다. 모든 문제는 사람으로부터 나온다는데.... 맞는 말이다.
  서로의 생각을 공유하고, 모르는 것을 알려주고 잘못 안 것을 수정해주고, 새로 나온 것들을 서로 얘기해 볼 수 있는 사람. 논문 리뷰하고 수정해주거나 ,연구 방향에 코멘트 좀 달아 줄 수 있는 사람 이런게 가장 필요하다.

 뭐 스페이스나 접근성 소위 다 뭉뚱그려 연구환경이라고 말할 수 있는 것이  여러가지있겠지만, 이 세가지는 꼭 갖춰져야 한다는 생각이 요새 부쩍 늘고 있다. 
지금 있는 곳은 돈 때문에 시간과 조력자를 놓치게 하는 느낌이 든다.  내가 도움을 주고 받을 수 있는 사람이 여기에 없다.

외롭다.

'CS 전공 > 생각?' 카테고리의 다른 글

IEEE TKDE 리뷰  (3) 2008.06.23
[퍼온글]나의 꿈 - 문병로  (0) 2008.04.13
몰입적 사고  (0) 2007.12.11
"we regret to inform you that ~ "  (2) 2007.11.13
SCI&SCIE  (0) 2007.11.09
Posted by Bart
CS 전공/생각?2007. 11. 13. 17:59

오늘 새벽까지 기다렸다 받아본 e-mail을 보니,  Thanks for submitting your paper to XXXX 2008. we regret to inform you that your paper has not been accepted ~~~~  어쩌구 ㅡ.ㅜ 제출한 논문이 떨어졌다는 얘기다.ㅜ.ㅜ

막판에 시간에 쫒겨 논문 작성된 꼴이 좀 용두사미이 되긴 하였지만, 개념 정리는 잘되어 있어서 나름 떨어질거란 생각은 안했었는데..
 short paper라도 될 것으로 예상했건만 결과는  Reject 1, Weak reject 2 란다.

좋은 평가도 있기는 했다. "Interesting Approach and the result looks promising"

reviewer들에게 지적된 점들을 풀이하면,

1. 실험 데이터의 양이 논문의 우수성을 평가하기에는 적고, 이 때문에 관련 연구와 비교하여 어떠한 점이 우수한지 정확히 파악하기 어렵다 정도.

2. 문법적 오류들이 있어 읽기 어려우니 교정이 필요(내 작문 실력이 많이 늘었다고 나름 생각했었는데, native들은 아직 읽기 힘든가 보지. 끙. 처음에 외국 학회 논문 냈을 때 too many typos and lingo란 답변 듣고 이후로는 문법 오류 어쩌구 한적은 없었는데... ㅠㅠ)

3.  발견한 단점과 한계점들에 대한 직접적인 문제의 제기와 여기에 대한 내 연구의 기대효과에 더 초점을 맞추어서 작성하길 바란다.

그외 의견으로는 scientific paper에서 "we believe~"와 같은 표현은 쓰지 말아라. 

뭐 여기에 대해서는 동의한다.

동의하기힘든 부분은;

4. 왜 내 방식이 웹 서비스의 이점들이 제거되고, open UDDI 이용과 비교할 때 낫지 않다고 평가되었냐는 점. (솔직히 reviewer가 자세히 설명해 주었으면 좋겠다. 이 말 뜻 만으로는 무슨 얘기인지 파악하기가 어렵다구 ㅡ.ㅡ^ )
 
5. 내 방식이 rdb의 keyword search 방식을 이용하는데, 이것이 현재 challenging인데 여기에 대한 detail한 언급이 없다는 것.


결론 내리면, 이건 요렇게 수정하라는 뜻이렸다.?
실험 수와 데이터 지금보다 늘려서 여러 부문에서 결과를 보여주도록 하고, 타 연구들과도 실험 측정을 통해 직접적인 비교를 해서 논문의 공헌도를 파악하기 쉽게 해달라겠지.

5.의 경우에는 왜 짚고 넘어갔는지 모르겠다. 연구 범위가 아닌 것에 왜 디테일을 요구했는지.  초반이나, 각주로 이부분은 연구범위가 아니다를 언급하면 피해갈 수 있을까.

그리고 아으~ 2.번 문제..  예전에 도와줄 수 있다고 해줬던 Christle한테 연락하면 좀 도와줄까?


 

 
 

'CS 전공 > 생각?' 카테고리의 다른 글

IEEE TKDE 리뷰  (3) 2008.06.23
[퍼온글]나의 꿈 - 문병로  (0) 2008.04.13
몰입적 사고  (0) 2007.12.11
좋은 연구를 위해 필요한 것들..  (1) 2007.11.20
SCI&SCIE  (0) 2007.11.09
Posted by Bart
CS 전공/학회와 정보2007. 11. 12. 21:09

Thomson에서 서비스하고 있는 SCI, SCI Expanded 로 분류된 journal들의 목록을 보여줍니다.


몇몇 폐단들이 있긴 하나, 국내에서 연구 실적을 체크하는데 있어 먼저 해당 논문이 SCI인지, SCIE인지를 보게 되지요.

특정 학회의 저널이 SCI로 분류되어 있는지를 확인할 때 사용하시면 되겠습니다.


또한 각 저널들에 대한 impacting factor(인용 지수)는 아래의 주소에서 찾아볼 수 있습니다.


http://jcr01.isiknowledge.com/JCR/JCR?SID=B5Klj7g51fFDFGfPAJJ

첨부하는 파일은 IF 지수를 찾는 방법을 소개하는 ppt 파일임.

 

 

Posted by Bart
CS 전공/학회와 정보2007. 11. 12. 21:07

이 자료는 포항공과대학교에서 작성한 것으로 BK21 사업단에게 정보제공 차원에서 제공하기 위해 작성되었던 글입니다. 첨부파일(HWP)을 다운로드 하여 보시기 바랍니다. 

Posted by Bart
CS 전공/학회와 정보2007. 11. 12. 21:05

해외 사이트들

1.ACM Digital Library http://portal.acm.org/dl.cfm

 *사용 형태 :유료


2. IEEE Xplorer http://ieeexplore.ieee.org 

 * 사용 형태: 유료


3. Citeseer.IST http://citeseer.ist.psu.edu/

 * PSU에서 운영 중인 논문 검색 사이트입니다. 많은 검색 기능을 제공하며, 인용 논문에 대한 이용 횟수나 추적, comment 들도 제공합니다.  사용자가 등록한 홈페이지로부터 논문 파일을 가져갑니다.  가끔씩 과부하로 인해 접속이 불가능할 수 있습니다.

 * 사용 형태: 무료


4. DBLP http://www.informatik.uni-trier.de/~ley/db/

  *Michael Ley가 운영하는 논문 서지 정보 제공 사이트입니다. 논문 파일 자체를 제공하지는 않지만, 논문의 출처와 제목, 저자들을 색인하여 제공하며, 개최된 Conf. 별, 저자별 논문 목록을 제공합니다. 주로 DB쪽에 관련된 학회들에 대한 서지 정보를 제공합니다.

  

5. DBWORLD http://www.cs.wisc.edu/dbworld/

   * 학회 개최 안내 및 교수, Post Doc. 연구원 모집 등 전산 분야의 소식들을 전하는 메일링리스트입니다.  기본적으로 DB, 데이터 처리 쪽에 관련된 학회에 대한 소식들이 많습니다.

 *사용 형태: 무료, 메일링 리스트

6. The Collection of Computer Science Bibliographies,
 
7. Annotated Computer Vision Bibliography 

8. Google scholar

9. Microsoft Academic Search
 
국내 사이트들

1. http://cseric.cau.ac.kr/new_Cseric/main.asp

   컴퓨터연구정보센터에서 운영하는 연구 문헌 서비스입니다.

   가입 후 검색할 수 있으며, 제공되는 PDF 논문 파일은 다운로드가 불가하고 프린트 만이 가능합니다.

   * 검색가능한 논문: 정보과학회, 정보처리학회, 퍼지 및 지능시스템학회, 공학교육학회, 컴퓨터산업교육기술학회, 한국공간정보시스템 학회 논문지 (구 한국개방형GIS학회)

   *사용 형태: 무료


2. http://society.kisti.re.kr/index.jsp

  KISTI 과학기술학회마을로 공학 분야를 포함한 여러 분야의 학회 논문지를 검색할 수 있는 곳입니다. 가입 후 이용.

  *사용 형태: 무료


3. http://www.riss4u.net/index.jsp

 한국교육학술정보원에서 제공하는 전국대학소장 논문 검색 서비스입니다. 도서관에서 보유하는 해외원문 논문들과 학위 논문들을 검색할 수 있습니다. ID가입 필요.

  *사용 형태: 무료


4. http://www.dbpia.co.kr/ 

 기본적으로 유료인 검색 서비스이나, 학교 학내망을 이용시에는 무료로 이용이 가능할 수 있는 논문 검색 사이트입니다.

 공학 외 다른 분야의 논문지도 취급합니다.

  *사용 형태: 무료+유료


5. http://www.papersearch.net/

 공학 외 다른 분야의 논문지들도 취급합니다.

  *사용 형태: 유료

이외에 각 대학 도서관 중 KERIS의 해외 DB를 국가 라이선스로 서비스 받고 있는 곳들이 있습니다.
 -Safari Tech Books Online
 -ACM Portal
 -Scopus 등등

Posted by Bart
CS 전공/논문 쓰기2007. 11. 12. 20:52

PSEUDOCODE STANDARD

Pseudocode is a kind of structured english for describing algorithms. It allows the designer to focus on the logic of the algorithm without being distracted by details of language syntax.  At the same time, the pseudocode needs to be complete.  It describe the entire logic of the algorithm so that implementation becomes a rote mechanical task of translating line by line into source code.

In general the vocabulary used in the pseudocode should be the vocabulary of the problem domain, not of the implementation domain.  The pseudocode is a narrative for someone who knows the requirements (problem domain) and is trying to learn how the solution is organized.  E.g.,

Extract the next word from the line (good)
set word to get next token (poor)

Append the file extension to the name (good)
name = name + extension (poor)

FOR all the characters in the name (good)
FOR character = first to last (ok)

Note that the logic must be decomposed to the level of a single loop or decision. Thus "Search the list and find the customer with highest balance" is too vague because it takes a loop AND a nested decision to implement it. It's okay to use "Find" or "Lookup" if there's a predefined function for it such as String.indexOf().

Each textbook and each individual designer may have their own personal style of pseudocode. Pseudocode is not a rigorous notation, since it is read by other people, not by the computer. There is no universal "standard" for the industry, but for instructional purposes it is helpful if we all follow a similar style. The format below is recommended for expressing your solutions in our class.

The "structured" part of pseudocode is a notation for representing six specific structured programming constructs: SEQUENCE, WHILE, IF-THEN-ELSE, REPEAT-UNTIL, FOR, and CASE. Each of these constructs can be embedded inside any other construct. These constructs represent the logic, or flow of control in an algorithm.

It has been proven that three basic constructs for flow of control are sufficient to implement any "proper" algorithm.

SEQUENCE is a linear progression where one task is performed sequentially after another.
WHILE is a loop (repetition) with a simple conditional test at its beginning.
IF-THEN-ELSE is a decision (selection) in which a choice is made between two alternative courses of action.


Although these constructs are sufficient, it is often useful to include three more constructs:
 

REPEAT-UNTIL is a loop with a simple conditional test at the bottom.
CASE is a multiway branch (decision) based on the value of an expression. CASE is a generalization of IF-THEN-ELSE.
FOR is a "counting" loop.
SEQUENCE

Sequential control is indicated by writing one action after another, each action on a line by itself, and all actions aligned with the same indent. The actions are performed in the sequence (top to bottom) that they are written.

Example (non-computer)

Brush teeth
Wash face
Comb hair
Smile in mirror
Example
READ height of rectangle
READ width of rectangle
COMPUTE area as height times width
Common Action Keywords
Several keywords are often used to indicate common input, output, and processing operations.
Input: READ, OBTAIN, GET
Output: PRINT, DISPLAY, SHOW
Compute: COMPUTE, CALCULATE, DETERMINE
Initialize: SET, INIT
Add one: INCREMENT, BUMP
IF-THEN-ELSE

Binary choice on a given Boolean condition is indicated by the use of four keywords: IF, THEN, ELSE, and ENDIF. The general form is:

IF condition THEN
sequence 1
ELSE
sequence 2
ENDIF
The ELSE keyword and "sequence 2" are optional. If the condition is true, sequence 1 is performed, otherwise sequence 2 is performed.

Example

IF HoursWorked > NormalMax THEN
Display overtime message
ELSE
Display regular time message
ENDIF
WHILE

The WHILE construct is used to specify a loop with a test at the top. The beginning and ending of the loop are indicated by two keywords WHILE and ENDWHILE. The general form is:

WHILE condition
sequence
ENDWHILE
The loop is entered only if the condition is true. The "sequence" is performed for each iteration. At the conclusion of each iteration, the condition is evaluated and the loop continues as long as the condition is true.

Example

WHILE Population < Limit
Compute Population as Population + Births - Deaths
ENDWHILE

Example

WHILE employee.type NOT EQUAL manager AND personCount < numEmployees
INCREMENT personCount
CALL employeeList.getPerson with personCount RETURNING employee
ENDWHILE
CASE

A CASE construct indicates a multiway branch based on conditions that are mutually exclusive. Four keywords, CASE, OF, OTHERS, and ENDCASE, and conditions are used to indicate the various alternatives. The general form is:

CASE expression OF
condition 1 : sequence 1
condition 2 : sequence 2
...
condition n : sequence n
OTHERS:
default sequence
ENDCASE

The OTHERS clause with its default sequence is optional. Conditions are normally numbers or characters

indicating the value of "expression", but they can be English statements or some other notation that specifies the condition under which the given sequence is to be performed. A certain sequence may be associated with more than one condition.

Example

        CASE  Title  OF
                Mr      : Print "Mister"
                Mrs     : Print "Missus"
                Miss    : Print "Miss"
                Ms      : Print "Mizz"
                Dr      : Print "Doctor"
        ENDCASE

Example

        CASE  grade  OF
                A       : points = 4
                B       : points = 3
                C       : points = 2
                D       : points = 1
                F       : points = 0
        ENDCASE

REPEAT-UNTIL

This loop is similar to the WHILE loop except that the test is performed at the bottom of the loop instead of at the top. Two keywords, REPEAT and UNTIL are used. The general form is:

REPEAT
sequence
UNTIL condition
The "sequence" in this type of loop is always performed at least once, because the test is peformed after the sequence is executed. At the conclusion of each iteration, the condition is evaluated, and the loop repeats if the condition is false. The loop terminates when the condition becomes true.
 

FOR

This loop is a specialized construct for iterating a specific number of times, often called a "counting" loop.  Two keywords, FOR and ENDFOR are used. The general form is:

FOR iteration bounds
sequence
ENDFOR
In cases where the loop constraints can be obviously inferred it is best to describe the loop using problem domain vocabulary.

Example

FOR each month of the year (good)
FOR month = 1 to 12 (ok)

FOR each employee in the list (good)
FOR empno = 1 to listsize (ok)


NESTED CONSTRUCTS

The constructs can be embedded within each other, and this is made clear by use of indenting. Nested constructs should be clearly indented from their surrounding constructs.

Example

SET total to zero
REPEAT
READ Temperature
IF Temperature > Freezing THEN
    INCREMENT total
END IF
UNTIL Temperature < zero
Print total
In the above example, the IF construct is nested within the REPEAT construct, and therefore is indented.
 
 

INVOKING SUBPROCEDURES

Use the CALL keyword. For example:

CALL AvgAge with StudentAges
CALL Swap with CurrentItem and TargetItem
CALL Account.debit with CheckAmount
CALL getBalance RETURNING aBalance
CALL SquareRoot with orbitHeight RETURNING nominalOrbit

EXCEPTION HANDLING

    BEGIN
        statements
    EXCEPTION
        WHEN exception type
            statements to handle exception
        WHEN another exception type
            statements to handle exception
    END



Sample Pseudocode

"Adequate"

FOR X = 1 to 10

    FOR Y = 1 to 10
        IF gameBoard[X][Y] = 0
            Do nothing
        ELSE
            CALL theCall(X, Y) (recursive method)
            increment counter                 
        END IF
    END FOR
END FOR

"Better"

Set moveCount to 1
FOR each row on the board
    FOR each column on the board
        IF gameBoard position (row, column) is occupied THEN
            CALL findAdjacentTiles with row, column
            INCREMENT moveCount
        END IF
    END FOR
END FOR

(Note: the logic is restructured to omit the "do nothing" clause)


"Not So Good"

FOR all the number at the back of the array
    SET Temp equal the addition of each number
    IF > 9 THEN
        get the remainder of the number divided by 10 to that index
        and carry the "1"
    Decrement one
Do it again for numbers before the decimal
 

"Good Enough (not perfect)"

SET Carry to 0
FOR each DigitPosition in Number from least significant to most significant

    COMPUTE Total as sum of FirstNum[DigitPosition] and SecondNum[DigitPosition] and Carry  

    IF Total > 10 THEN
        SET Carry to 1
        SUBTRACT 10 from Total
    ELSE
        SET Carry to 0
    END IF

    STORE Total in Result[DigitPosition]

END LOOP  

IF Carry = 1 THEN
    RAISE Overflow exception
END IF
 



"Pretty Good"  This example shows how pseudocode is written as comments in the source file. Note that the double slashes are indented.

public boolean moveRobot (Robot aRobot)
{
    //IF robot has no obstacle in front THEN
        // Call Move robot
        // Add the move command to the command history
        // RETURN true
    //ELSE
        // RETURN false without moving the robot
    //END IF
}

Example Java Implementation

  • source code statements are interleaved with pseudocode.
  • comments that correspond exactly to source code are removed during coding.

public boolean moveRobot (Robot aRobot)
{
    //IF robot has no obstacle in front THEN
    if (aRobot.isFrontClear())
    {
        // Call Move robot
        aRobot.move();
        // Add the move command to the command history
        cmdHistory.add(RobotAction.MOVE);
        return true;
    }
    else // don't move the robot
    {
        return false;
    }//END IF
}
 



Document History
Date Author Change
12/2/03
JD
Added Exception Handling and more examples
2/21/03 JD Added "problem domain vocabulary" paragraph.
Modified FOR loop explanation.

출처: www.csc.calpoly.edu/~jdalbey/SWE/pdl_std.html

Posted by Bart
CS 전공/논문 쓰기2007. 11. 12. 20:51

Computer Theory에 관련한 논문들을 읽어보다가, 여러 생소한 용어들이 눈에 보이기에 정리를 해봅니다.  왜 논문 보면 간혹 lemma 1. proposition 이런 단어들이 눈에 뜨이지요? 이러한 용어가 무엇을 뜻하는지 모르고  그냥 넘어갔는지는 않았는지요?


알아두면 논문을 이해하거나 자신의 이론을 풀어 쓰는데에 유용하겠지요.


1) Axiom- 공리(): (이론의 기초로서 가정한 명제)

 하나의 이론에서 증명 없이 바르다고 하는 명제, 즉 조건 없이 전제된 명제, 논리학에서는 무증명명제()라고도 한다.

 

2) definition - 정의(): (기호()에 대하여 그 수학적 의미를 규정한 것)

 즉, 논의의 대상을 보편적인 것으로 하기 위해, 사용되는 용어 또는 기호의 의미를 확실하게 규정한 문장이나 식()을 그 용어의 정의라고 한다. 이를테면, ‘한 내각의 크기가 직각인 삼각형을 직각삼각형이라 한다’는 직각삼각형의 정의이다.


3) theorem - 정리 (수학적으로 참인 명제 )  

즉, 공리()와 정의()로부터 증명()에 의해 정리가 유도되며, 이미 증명된 이들 정리와 공리 또는 정의를 추론()의 근거로 하여 다음 정리가 옳다는 것을 확인한다. 증명된 정리는 그 체계의 토대로서는 바른 것(참인 것)이지만 보편적인 것은 아니다. 이를테면, 유클리드기하학에서는 ‘삼각형의 내각의 합은 2직각이다’가 정리로서 성립되지만, 비유클리드기하학의 하나인 로바체프스키기하학에서는 ‘삼각형의 내각의 합은 2직각보다 작다’는 것이 성립되며, 리만기하학에서는 ‘삼각형의 내각의 합은 2직각보다 크다’는 것이 성립한다.

즉, 정리는 일군()의 공리계()를 기초로 한, 하나의 체계에 대해서만 성립한다. 어떤 정리에서 직접 유도된 것을 그 정리의 계()라고 한다. 예컨대, 그 정리가 특별한 경우로서 성립하는 때도 그 정리의 계가 된다. 또, 한 체계 중에서 공리 ·정의 이외의 명제는 모두 정리이지만, 특히 그 중의 중요한 것만 가리켜 정리라고 하는 경우도 있다. 그리고 유명한 것에는 고유의 이름을 취한 것도 있다. 예를 들면, 인명을 붙인 피타고라스의 정리, 파스칼의 정리, 메넬라우스의 정리 등과 내용에서 이름을 딴 삼수선()의 정리, 대수학의 기본정리, 미적분학의 평균값정리 등이 있다. 일반적으로 정리는 P and Q and… → R and S and…와 같은 꼴로 기술되며, P and Q and…를 이 정리의 가설 또는 가정, R and S and…를 종결 또는 결론이라고 한다.


  4) lemma - 보조정리 (어떤 정리를 증명하는 데 쓸 목적으로 증명된 명제)

   보제()라고도 한다. 예를 들면 ‘sin x의 도함수는 cos x이다’라는 정리를 보통의 방법으로 증명할 때 사용되는 0<x<π/2이면 sin x<x<tan x,

등은 보조정리라 할 수 있다.

보통 보조정리는 한 정리를 증명하기 위하여 사용되지만 경우에 따라 다른 많은 증명에 사용되기도 한다. 그런 경우 그와 같은 보조정리도 정리라 할 수 있으나, 그대로 보조정리라는 이름으로 이용된다. 유명한 것으로는 ‘졸레의 보조정리’, 함수론의 ‘슈바르츠의 보조정리’ 등이 있다. df


5) corollary- 따름 정리 :  수학용어로서 정리에서 직접 파생된 명제, 계()라고도 한다.

 1개의 정리에서 바로 유도되는 사실로서 이용가치가 많은 것을 명제의 꼴로 나타낸 것을 원래의 정리의 따름정리 또는 계라 한다.


6) proposition -명제(題) : (전통적 논리학에서 판단을 언어로 표현한 것)

  예컨대 ‘개는 동물이다’는 명제이다. 현대 논리학에서는 진위()를 물어보는 뜻이 담긴 글을 명제문()이라 한다. 유명론적() 경향이 있는 철학자 중에는 언어 표현 그 자체와는 다른 독립된 의미의 존재를 인정하는 데 회의적인 사람도 있다. 일상어로 쓰인 글에는 언어의 사용 방법이 양의적()이기 때문에 명제문인지 아닌지 문제가 되고, 명제문이라 하더라도 그 내용이 확실하지 않은 경우가 있다. 그러나 논리기호()로 쓴 글은 이러한 점에서 애매한 것이 전혀 없다. 이것을 명제식()이라고 한다. 진리()임을 강조하는 글을 명제라고 할 때도 있다


7) proof - 증명(明)

 p이면 q이다’라는 합성명제()에서 명제 p를 전제(가설 또는 가정), 명제 q를 결론(종결)이라 하고, 참(truthfullness)인 전제에서 유효한 추론()에 의해 결론을 이끌어내는 것을 증명이라고 한다. 여기서 유효한 추론이란 전제가 참이면 결론도 참인 추론을 말한다. 증명의 대부분은, p → r → q, p → r → s → q 와 같이 전제에서 출발하여 유효한 추론에 따라 연역()해 나가는 것이 보통이다. 이와 같은 증명을 직접증명이라고 한다. 이를테면, ‘a,b가 수일 때, a=b이면 a2=b2이다’의 경우, 전제 p는 a=b, 결론 q는 a2=b2이며, 증명은 다음과 같이 이루어진다. a=b → a=b, a=b → aa=bb → a2=b2 또, 다음과 같이 증명해도 무방하다. a=b → a-b=0 → (a-b)(a+b)=0 → a2-b2=0 → a2=b2

위의 직접증명에 대해, 합성명제 ‘p이면 q이다’(보통 조건명제 또는 간단히 조건이라고 한다)가 참임을 증명하는 데, 이와 동치인 합성명제 ‘∼q → ∼p이다’가 참임을 증명하는 간접증명이 있다. 여기에는 귀류법과 전환법() 등이 있다


8) theory - 이론(論)사물에 관한 지식을 논리적인 연관에 의하여 하나의 체계로 이루어 놓은 것

 

 학문이라면 거기에는 반드시 이론이 있다. 일단 이론이 형성되면 그 이론의 논리적인 결론을 끌어냄으로써 미지()의 영역에 관해서도 효과있는 예상을 하는 경우가 흔히 있다. 그러나 사물에 관한 새로운 지식으로 인하여 이론 적용에 한계가 생기는 수가 있다. 이런 경우 이론에 구애되어 사실을 무시하는 일이 허다하나 이것은 큰 잘못이다.

이론 중에서 근본적인 전제가 있는 것, 또는 자료()에 관한 보고 사항 중에서 그대로 인정해야 할 것은 공리()가 된다. 다음의 명제는 공리로부터 연역()되는 정리()가 된다. 이와 같은 논리적인 연결을 철저히 정리하면 공리론()을 얻게 된다. 여기서 이를 논리기호()로 표시하면 형식화()된 이론이 형성된다.

여기까지 정리하면 동일한 이론이 전혀 다른 복수의 사상()에 적용될 수도 있다는 것이 분명해지는 경우가 있다. 이론이 적용되는 현상() 또는 그 구조를 논리학이나 수학에서는 그 이론의 모델이라고 한다. 그러나 경험과학()에서는 이와는 반대로 하나의 현상을 설명하는 이론을 그 현상의 모델이라고 할 때가 많다. 학문 연구 과정에서 논리적 전개에 치중하는 것을 이론면(), 사상()과의 대결에 치중하는 것을 실험면()에 관한 연구라 하여 구별한다

 

Posted by Bart