SWE2007: Software Experiment 2 (Fall 2016)

[Assignments]

Programming Assignment #2 (Deadline: 10/30 11:59PM)

  • 채점은 모두 I/O redirection 으로 이루어집니다. 직접 키보드로 테스트하신 후 내지 마시고, input file을 생성하셔서 테스트해보시기 바랍니다.
    • ex) $ vim input
          "god created"
          :q
          $ ./keywordSearcher genesis < input
  • sprintf, scanf 사용하지 마세요. int2str를 활용하시기 바랍니다.
  • 입,출력은 전부 read, write 사용하시기 바랍니다.
    • fgetc, fgets, getchar 등등 사용하지 마세요.
  • 1 samuel 과 같이 성서 이름에 space가 있는 경우, space 대신 _ 를 넣기로 합니다,
    • 예를 들어, 1 samuel 의 경우, 1_samuel로 입력하도록 하겠습니다. txt 파일 역시 1_samuel.txt로 하도록 하겠습니다.
  • 출력할 때, 성서 간 순서는 성서를 추가한 순서대로 출력하시고, 한 성서 안에서의 순서는 장,절 순서대로 오름차순으로 출력하시기 바랍니다.
    • ex) ./keywordSearcher genesis daniel
         :add nahum
         :add mattew
         :delete genesis                 하고 난 다음의 경우,

         daniel:1:1
         daniel:1:31
         ...
         nahum:1:1
         nahum:1:2
         nahum:1:21
         nahum:2:1
         ...
         mattew:1:1
         mattew:1:2
         ...
  • Done 과 같은 디버깅용 구문을 확실히 지우시기 바랍니다. :add나 :delete 시 어떤 문장도 프린트하지 마세요.
  • 채점은 IO redirection 으로 합니다. 따라서 본인이 테스트하고 싶은 문장들을 file에 넣고 I/O redirection으로 제대로 출력하는지 확인해 보시면 정확하게 확인하실 수 있습니다.
  • 채점 시 segmentation fault가 나는 경우는 맞는 결과를 출력한다고 하더라도 해당 testcase에 대해 0점 처리하겠습니다.
  • 10/20 17:30 부로 skeleton file에 약간의 수정이 있습니다. 기존의 skeleton file의 main.c에서 printf("> "); 만 지워주시면 됩니다. 이 전에 다운로드 받으셔서 과제하시고 계신 분들은 그 구문만 삭제해주시면 됩니다.
  • 대,소문자 유의하시기 바랍니다. genesis.txt에 "Apple" 이라는 단어가 있었다면, keywordSearcher에서 apple이라고 쳐도 검색되어야 합니다.

Programming Assignment #1 (Deadline: 10/5 11:59PM)

  • sprintf, scanf 사용하시면 안됩니다. int2str를 활용하시기 바랍니다.
  • 1 samuel 과 같이 성서 이름에 space가 있는 경우, space 대신 _ 를 넣기로 합니다,
    • 예를 들어, 1 samuel 의 경우, 1_samuel로 입력하도록 하겠습니다. txt 파일 역시 1_samuel.txt로 하도록 하겠습니다.

9/29 File I/O : hello.tar.gz


Programming Assignment #0 (Deadline: 9/21 11:59PM)

  • 24일 2:00 A.M. 기준 점수표입니다.
  • 점수는 제 시간에 제출하신분들의 점수입니다. 어제 점수변동이 있으셨던 분들은 수정하신 걸로 간주, 1day delay에 점수를 입력하였습니다.
  • Delay 하신 분들의 점수는, delay 하신 날짜의 점수에 * 0.x 를 합니다. 가령, 1day delay에 점수가 80점인 경우, 최종 점수는 80 * 0.8 = 64 점이 됩니다.
  • 이상있거나 질문 있으신분들은 swe2007.2016@gmail.com 으로 메일 주세요.
  • skeleton code
  • test script
    • 1. 위 test script를 여러분이 제출하실 .tar.gz 파일과 같은 디렉토리에 복사해줍니다.
    • 2. 그 후 아래의 커맨드를 입력해줍니다.
    • $ tar xvzf test_PA0_swe2007.tar.gz
    • $ ./script.sh [여러분의번호]
    • ex) $ ./script.sh 8
    • 3. 가장 마지막에 Hello world가 뜨면 성공한 것으로, 그대로 제출하시면 됩니다.
    • 문서의 7.Hand In instruction을 반드시 참고하셔서, 본인이 제출하시는 압축 파일에 screenshot 파일이 반드시 들어가도록 주의하시기 바랍니다.
  • Submission Status (9/22 00:06 P.M.)
    • No Delay : 전유정, 최동규, 김중선, 김경록, 한상훈, 주영준, 이태기, 이진욱, 진범진, 김동영, 황성현, 정민섭, 이동은, 이수연, 장유진, 손민지, 정동언, 강주한, 주영준, 문태근, 노태현, 이승수, 한성혜, 이재현, 김기윤, 조석준, 윤수현
  • NOTICE (9/8) : DO NOT REMOVE 'const' in my_string.c and my_string.h
  • NOTICE (9/9) : 여러분들은 my_string.c의 {} 안의 return ~~ 부분을 지우고, 여러분들의 코드로 채워주시면 됩니다.
  • NOTICE (9/9) : 문서의 vertification 항목에 여러분들의 코드를 디버깅할 수 있는 방법을 소개하였습니다. test.c 에는 #include "my_string.h" 를 넣으시고, 컴파일할 때 gcc -O2 test.c my_string.h my_string.c 와 같이 컴파일 하시면 같이 컴파일할 수 있습니다.
  • NOTICE (9/10) : 제출하실 format은 문서의 7번을 참고하시기 바랍니다. (7. Hand In instruction 참고)
  • NOTICE (9/10) : Test script가 업로드 되었습니다.
  • NOTICE (9/19) : 컴파일 시 warning은 점수에 영향을 주진 않습니다. 다만 컴파일러가 괜히 warning을 출력하는 것이 아니니, 이왕이면 최대한 줄여보시고, 관련해서 공부하시면 좋을 것 같습니다.
  • NOTICE (9/19) : stdlib.h를 include 하셔도 됩니다.
  • NOTICE (9/19) : 채점 스크립트를 약간 수정했습니다. 19일 4:12 P.M. 기준으로 재 다운로드 받으시기 바랍니다.
  • NOTICE (9/22) : 점수는 수업시간에 공개될 예정입니다.