合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

        代寫INFS 2042 Data Structures

        時間:2023-11-14  來源:  作者:hfw.cc 我要糾錯



        INFS 2042 Data    Structures Advanced
        Assignment    2 – Contact    Tracing
        UniSA    STEM
        The    University of    South    Australia
        2023
        Originally written    by    Brandon    Matthews
        Modified by    Daniel    Ablett,    and    Gun    Lee
        Warning: This material has been reproduced and communicated to you by or on behalf of the University of South
        Australia in accordance with section 113P of the Copyright Act 1968 (Act). The material in this communication may be
        subject to copyright under the Act. Any further reproduction or communication of this material by you may be the
        subject of copyright protection under the Act.
        2
        1. Introduction
        To     track  and  reduce     the     spread  of  a     disease     during     an     epidemic  or     pandemic  situation  it     is  critical  that    
        authorities and health    experts    can    trace who has    been in    contact    with    whom,    when    the    contact    occurred    and    
        where.    This    is    known    as    contact    tracing. Efficiently searching potentially    millions    of    people    and    where    they    
        have been will require    an    efficient    way    to    store and navigate    through    the    data.
        In    this    assignment, you    are    tasked    with    building a basic contact    tracing    system.    You    must    use your    knowledge    
        of    data    structures and    search algorithms    to    efficiently store and process    large    quantities    of    contact    tracing    data.
        You    are    not restricted    to    the    data    structures and    algorithms    explored    in    this    course.    You    may    also    make    use    of    
        structures    and    algorithms    from the    Data Structures    Essentials    course.
        2. Requirements
        Your client    has    provided    you    with    a    strict    set    of    system    requirements    that    the    program    must    meet.    How    you    
        achieve  those  requirements  and  which     algorithms     or     data  structures     you     use     are     up     to     you.     You  must    
        implement  the  program in     Java  using    OpenJDK  11     or     newer.     You  should    also    aim     to    make  the  program as    
        efficient    as    possible.    For    example,    exhaustively    searching    lists    in    nested    loops    would    not    be    the    most efficient    
        implementation in    many    cases.
        Generally,    it is    easier    to    design    with    optimisation    in mind.    When    using    the    following    data    structures:    Binary    
        Search     Tree,     Self-Balancing     Search     Tree,     Graph,     Skip  List,  Blockchain,     Hash     Map,     Hash     Set     etc. you     must    
        implement    the    data    structure    yourself.    It    is    expected    that    a selection of    these    structures    will    be    required    to    
        meet    the    client    requirements    as    efficiently    as    possible.
        You    may    use    provided    data    structures in    Java libraries    (such    as    Linked    List,    Queue,    Stack    etc.)    only    if    they    are    
        not a    part    of    the    content    covered    in    this    course    to    support    the    implementation    of    other    structures    and    store    
        data    where    necessary. Be    wary    of     functions  that are    built into     provided data structures,    if you do     use     them    
        ensure    you    consider    their    performance    impact.
        You    are    also    required    to    provide    supporting    documentation,    in    this,    you    must    explain    each    data    structure    you    
        used,    what    they    were    used    for    and    why. This includes cases    where    you    have    used    Java’s    built-in    data structures.
        Consider    your implementation    in    the    context    of    a    real    contact    tracing    application.    The    data    provided    for    this    
        assignment,    as    described below,    is    for    40    people,    with    80    visits    to    6    locations.    In    a    real    application    we likely    
        have millions    of    people,    with    tens    or    hundreds    of    millions    of    visits to    hundreds    of    thousands    of    locations. Your    
        implementation should    be    efficient    for    storage    and    processing of    large amounts of    data.
        Remember,    it is    not    enough    that    your    system    implements    the    requirements,    it    must    implement    them    
        efficiently.
        3
        2.1    System    Requirements
        Below    are    a    set    of    requirements    for    the    operation of    the    program    as    provided    by    your    client.    
        • The    system    administrator    would    like    the    ability    to    load    existing    data    from    the    provided    .csv    files.    The    
        code    to    read    the    files    is already provided by    the    client however they have not implemented a method    
        to    store    the    data.    
        • In    addition,    public    health officials need    the    ability    to    add    a    new    Person,    Location    or    Visit    to    the    data.    
        The     client     has     provided  the     input  command     parsing     code  to     support     this     however     they     have     not    
        implemented    the    functionality.    
        • Public    health    officials    need the    ability    to    search    for    a Person    by    name.    This    should    show    them    all    details    
        about    the    person.    This    includes    listing    all    visits    the    Person    has    made.
        o Hint:    This    would    require    an    efficient    means    of    searching    for    the    Person    and    all    Visits    in    which    
        the    Person    has    visited    any    Location.
        o If    a    startDate    and    endDate    are    provided, this    should    also    filter the    list    of    Visits to    only    include    
        those    between    these    times.
        • Public    health    officials    need  the    ability     to    search     for    a Location by    name.    This    should show     them all    
        details    about    the    location.    This    includes    listing    all    people    that    have    visited    the    location.
        o If    a    startDate    and    endDate    are    provided, this    should    also    filter the    list    of    Visits    to    only    include    
        those between these times.
        • The public    health    officials    would like the ability    to    produce    a    list    of    potential    contacts    up    to    (n)    levels    
        away from    a    given    person    (including known    contacts).
        o If    n    =    1,    the    list    will    contain    only    direct    contacts    of    the    given    person.    
        o If    n    =    2,    the    list    will    contain    all    direct    contacts    (n=1)    of    the    given    person    and    all    contacts    of    
        those    contacts    (n=2).    
        o If    n=r,    the    list    will    contain    all    n=1    to    n=r-1    contacts    of    the    given    person    and    all    contacts    of    those    
        contacts    (n=r).
        o Hint:    This    would    require    an    efficient    method    of    identifying    contacts    of    a    given    person    based    
        on    their    visits.
        • Public    health    officials    also    need    the    ability    to    specify    if    the    person    is    a    new    Active    Case    (i.e., they    have    
        become    infected    with    the    virus).    
        o When    an    Active    Case is    added,    they    also    need to    see    an    estimation of    where,    when and    from    
        whom     the     person    likely  contracted     the     virus.  Your     program     should     output     the    most likely    
        contact    source    including    the    location    and    time    of    contact.    Note:    The    most    likely    contact    source    
        is    the    pair    of    people    with    the    highest    Chance    of    Spread    (C)    as    defined    later    in    this    document.
        o If    a     new    Active     Case  has  no    immediate     contacts     that    are    also    an    Active     Case,     the     program    
        should    instead    find    the    nearest    or    most likely Active    Case.    That is,    the    existing    Active    Case    for    
        which    each    contact    between    them and    the    new    Active    Case have the    highest    total    Chance    of    
        Spread    (C).
        o Hint:     This  would     require     a    method  for identifying  the     person     from  which     the     visit  during    
        which    the    person    most    likely    contracted    the    virus.
        • The public    health    officials    would    like    to    output    a    trace    of    the    transmission    of    the    virus from    its original    
        source    to    a    target    person.    In    this    process    this    trace    should    ensure    the    date    each    person    along    the    path    
        was    infected    is    correct    by    verifying    the    start    date    of    their    infection    is    the    day    after    the    contact    with    the    
        highest    Chance    of    Spread    (C). In    a    ‘real    world’    data    set    this    would    be    useful    for    identifying    different    
        branches    of    the    virus as    it    spreads    and    tracing    the    virus    back    to    its    original    source.
        o Hint:    this    would require    a    method    for    tracing    the    path    through    each    person    backwards    from    
        the    given    person    until no    previous    source    case    can    be    found    (in    the    provided    data).
        • The    public    health officials would    like    to    be    able    to    produce    a    list    of    all    active    cases.
        • The    program    must be    robust    and    user    friendly,    so    it does    not    crash    but    print proper    messages.
        4
        2.2    Supporting    Documentation
        You    must     provide     a     document  to     support     your  program  design     and     demonstrate     your  program meets  the 
        requirements.    This    must    include:
        • One-page    summary of    your program    design    and    the    reasoning    behind    your    design    decision.
        Explain    all    data    structures and    algorithms    you    used,    what    they    were    used    for,    and    your    reasoning    for    
        selecting    them.    (e.g.,    estimate    of overall    performance,    space    and    time-efficiency)
        • Sample    outputs    from    your    program. (no    page    limit)
        This    is    to    demonstrate    that    your    program    meets    the    requirements.    Provide    headings    to    clarify    what    
        requirement    does    the    provided    sample    output    demonstrates.
        3. Data    and    Code
        For    simplicity,    a limited    data    set    is    provided. A    person    is    only    considered    infectious    if    they    are    currently    an    
        active    case    and    only    the    dates    between    which they    are    infections    is    recorded.    All    of    the    data    is    artificial    data    
        that    has    been    procedurally    generated.    A    person    is    only    considered    an    active    case    if    they    have    an    activeStartDate,    
        and    they    either    don’t    have    an    activeEndDate    or    the    activeEndDate    is    after    the    “current    date”.
        3.1    Provided    Data    Format
        The    data    in    the    provided    CSV    files    are    structured    as    follows:
        • Person.csv    – A    list    of    people    where    each    person    has:
        o name
        § The  person’s     full     name,  or  the     purposes  of     this     assignment     you     can     assume     the    
        person’s    full    name    is    unique    within    the    data    set
        o activeStartDate
        § The    date    after    the    person is    estimated    to    have contracted    the    virus    the    virus    (empty    
        if    they    have    not    contracted    the    virus)
        o activeEndDate
        § The     date  the     person     stopped     being     contagious     (or    is    estimated     to     stop    if    after     the    
        “current    date”).
        • Location    – A    list    of    locations    where    each    location has:
        o name
        § The    location’s    name,    or    the    purposes    of    this    assignment    you    can    assume    the    person’s    
        full    name    is    unique    within    the    data    set
        • Visit    – A    list    of    visits    by    a    person    to    a    location    where    each    visit    has:
        o personName
        § Name    of    the    person    that    visited    the    location
        o locationName
        § Name    of    the    location    the    person    visited
        o date
        § Date    of    the    visit
        o entryTime
        § Time    the    person    entered    the    location
        o exitTime
        § Time    the    person    exited    the    location
        5
        3.2    Provided    Code
        The    client has provided the    basic interface commands    they    wish to    use    to    handle    the    data.    You    are    free    to    add    
        commands    for    your    testing    purposes    if    you    wish, however you must keep    the    commands    listed    here    the    same.    
        The     provided  base  code     handles     the     parsing     of     these     commands     and     provides     some     supporting     types     and    
        functions. It    is    recommended that    you    retain    the    command    functionality    and    build    upon    it,    however    you    are    
        free    to    modify    the    base    code    however    you    want/need to    meet the    requirements. See    testfiles/test.txt    in    
        the    provided    code    for    a    set    of    example    commands.
        The    program    is    configured    with    an    artificial    “CURRENT_DATE”    variable    that    relates    to    the    provided    data    files.    
        You    should    use    whenever    referring    to    the    current    date. This is    configured    by    an    initialization    command    in    the    
        test    files.
        For    simplicity,    a    limited    data    set    is    provided. A    person    is    only    considered    infectious    if    they    are    currently    an    
        active    case    and    only    the    dates    between    which    they    are    infections    is    recorded.    All    of    the    data    is    artificial    data    
        that    has    been procedurally    generated. A    person    is    only    considered    an    active    case    if    they    have    an    activeStartDate,    
        and    they    either    don’t    have an    activeEndDate or    the    activeEndDate is    after    the    “current    date”.
        Command Purpose Parameters
        INIT Initializes    the    program    and    sets    the    
        artificial    CURRENT_DATE
        currentDate    – the    artificial    current    date     for    
        the    program
        LOAD_DATA Loads     data     from     the     provided    
        People,     Locations  and     Visits     CSV    
        files
        peoplePath    – path    to    people    csv
        locationPath    – path    to    location    csv
        visitPath    – path    to    visit    csv
        ADD_PERSON Adds    a    new    person personName    – name    of    the    person    to    add
        ADD_LOCATION Adds    a    new    location locationName    – name    of    the    location    to    add
        ADD_VISIT Adds a    new    visit personName    – name    of    the    person
        locationName – name    of    the    location
        date    – date    of    the    visit
        entryTime    – time    visit    started
        exitTime    – time    visit    ended
        GET_PERSON Finds    the    Person    by    name    and    lists    
        all     visits     (or    a     filtered    list    of     visits    
        between    startDate    and    endDate)
        personName    – name    of    the    person    to    get
        startDate (optional)    – filter    visit    list    by    this    
        start    time
        endDate     (optional)     – filter     visit    list     by     this    
        end    time
        GET_LOCATION Finds     the     Location     by     name     and    
        lists     all     visits     (or     a     filtered     list     of    
        visits     between     startDate     and    
        endDate)
        locationName    – name    of    the    location    to    get
        startDate    (optional)    – filter    visit    list    by    this    
        start    time
        endDate     (optional)     – filter     visit    list     by     this    
        end    time
        LIST_CONTACTS Finds    the    Person    by    name    and    lists    
        all     contacts     within     (n)     contacts     of    
        the    given    person.    i.e.    n=1    is    direct    
        contact,    n=2    is    contact    with    an    n=1    
        contact     …     n=N     is     contact     with     an    
        n=N-1    contact.
        personName    – person    to    get    contacts    of
        n    – number    of    levels    of    contact
        CURRENTLY_ACTIVE Lists    all    currently    active    people.
        6
        NEW_CASE Sets    the    given    Person    to    now    be    an    
        active     case     and     the     date     and     time    
        they     tested     positive.     Also     outputs    
        the    most    likely    infection    source    for    
        the     target     and     updates     the    
        activeStartDate     for     the     person     (1    
        day    after    the    contact    took    place),    if    
        no     viable     contact     is     detected,     sets    
        the     activeStartDate     to     the    
        CURRENT_DATE     variable     in    
        DateHelpers.
        personName    – name    of    the    person    to    make    a    
        new    case
        TRACE_PATH Traces     the     path     that     the     virus    
        travelled     from     person     to     person    
        until    it    reaches    the    target.
        personName    – name    of     the    person     to     trace    
        the    vius    transmission    for
        3.3    Calculating    the    Chance    of    Spread
        For    this    assignment,    we    have an    imaginary    virus    that    has    a    high    chance    of    spreading    and    becomes    detectable    
        and    contagious    the    following day.    That is.    if John is    detected    as    an    active    case    on    5/1/2021,    they    must    have    
        caught    the    virus    some    day    before 5/1/2021
        For    this    virus the    chance    of    contact    between    an    active    case    and    another    person    resulting    in    a    spread    to    that    
        person    is    based    on    the    overlap    in    time    spent by    two    people    at    a given    location,    the    time    since    the    active    case    
        contracted the virus and the    incubation time.    The    chance    is    the    percentage of    one    hour spent in    contact    (in    the    
        same location).
        Let    D    be    the    time    spent    by    two    people    in    the    same    location    (in    minutes)
        The    Chance    of    Spread    (C)    is:
          = # !
        "# × 100'
        Note    that    C cannot    be    less    than    0%    or    greater    than    100%.
        3.4    Running    the    Provided    Code
        To    run    the    provided    code you    will    need to    pass    it    the    path    to    the    test    file    as    a    program    argument    through    the    
        “Run     Configuration”     in     eclipse.     The     default     included     test     file     is     at     the     relative     location     “testfiles/test.txt”.    
        Throughout    development    it    may    help    to    create    your    own    test    files    and    data    sets    that    you    can    use    to    help    with    
        implementation    of    specific    functions.    If    you    are    using your own test    file,    make    sure    you    update    the    “Arguments”    
        under    the    “Run Configuration”    in eclipse. Note    that    a    different    test    file    may    be    used    for    marking.
        7
        4.     Submission    Details
        All    assignments    must    be    submitted    via    the    learnonline    submission    system    through    the    course    webpage.    
        You    must submit    two    files, a    report    and    a    zip    file    containing your programming    solution.
        Report
        Submit    a single    pdf    file    with    the    name    emailID.pdf (replace    emailID with    your    own!)    as    outlined    in    section    2.2
        Code
        Make sure you add your name    and    email    ID    into    the    comments    on    all    of    the Java    file    you    have modified. Create    
        a single    zip    file    with    the    name    emailID.zip. When    unzipped    it    should    contain    a    functional    eclipse    project.    You    
        may    work on    the    project    in another IDE however you must ensure    it    works    as    an    eclipse    project as    it    will be    
        marked    based    on    eclipse.
        8
        Late    Submissions and    Extensions
        Late     submissions     will     be     penalised  by     scaling     the     marks     by     70%     unless     with     pre-approved     extension.    
        Application     for    extension should    be    lodged     through     the    course    website    and    it    requires    a    document    proving    
        acceptable reasons    for    extension (e.g.,    medical    certificate,    or    a letter from    your    work    supervisor). Please    check    
        the    course    outline    available    on    the    course    website    for    further    details    on    late    submission    and    extensions.
        Academic    Misconduct
        Students    must be    aware of    the    academic    misconduct    guidelines    available    from    the    University    of    South    Australia    
        website.     Deliberate  academic     misconduct     such     as     plagiarism     is     subject     to     penalties.     Information     about    
        Academic    integrity    can    be    found    in    Section    9    of    the    Assessment    policies    and    procedures    manual    at:
        https://i.unisa.edu.au/policies-and-procedures/codes/assessment-policies/
        All     of     the     assignments     are     compared     using     special     tools  designed     to     look     for     similarities     between     Java    
        programs. The    plagiarism    checking    programs    do    not    just    compare    the    actual    Java    code,    but    instead    perform    
        comparisons    on    the    code    after    it    has    been    compiled.    Performing    cosmetic    changes    such    as    reformatting    code,    
        renaming variables,    or reordering    code    may    fool    a    human    under    casual    inspection    but    will    still    be    detected    by    
        the    plagiarism checker as    being    similar. Beware    that    if    you    use    generative    AI    tools,    this    may    result    in    another    
        person    using    the    same    tool    submitting    solutions    with    high    similarities.
        Any    assignments    found to    be    in    violation    of    the    university’s    rules    on    academic    misconduct    will    become    subject    
        of    Academic    Integrity    investigation    which    will    decide    the    penalty.    Furthermore,    you    may    also    fail    the    course
        and/or    receive    an    official    note    in    your    academic    transcript.    
        The    best    way    to    avoid being    penalised for    plagiarism is    to    not    cheat    on    your    assignment.    Do    not    share    your    
        code  with  anyone,  do     not     let     anyone     else     do     your     assignment     for     you,     and     do     not     leave     your     computer    
        unattended     or     share     your     password     with     anyone.     If you     are     working     with     friends     it     is     ok     to     discuss     the    
        assignment and possible ways of solving    it,    but    you    should    not    share your code.    Sharing    code    with    others    is    still    
        considered    academic    misconduct.    The    golden    rule     for    working    on     your    assignments    is    never show    another    
        student    the    material    you    intend    on    handing    up.
        9
        5.    Assessment    Criteria
        • Program    Code    (70%)
        o Runs    without    any    errors    or    crashing    (5%)
        o Meets    Client    Requirements    (40%)
        o Quality    of    Implementation    and    Code    (25%)
        § Is    the    code well-structured    and    logical?
        § Is    the    code readable?
        § Have    efficient control-flow    elements    been used    (while    loops,    for    loops)?
        § Sufficient    comments. Also,    name    and    email ID    must    be    added in    comments.
        § Code    reusability    and    DRY    (don’t    repeat    yourself)
        • Report (30%)
        o Logical  reasoning  for Data Structure    and    Algorithm     selection    is     documented    in     supporting    
        documentation.    (25%)
        § Choices of    data    structure    and    algorithm
        § Efficient usage    of    space
        § Efficient computation    time
        o Provided sample outputs    are    relevant    to    the    requirements.    (5%)

        請加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

        掃一掃在手機打開當前頁
      1. 上一篇:代寫CS170編程、代做Java程序設計
      2. 下一篇:代做 CSE 3341Core Interpreter
      3. 無相關信息
        合肥生活資訊

        合肥圖文信息
        挖掘機濾芯提升發動機性能
        挖掘機濾芯提升發動機性能
        戴納斯帝壁掛爐全國售后服務電話24小時官網400(全國服務熱線)
        戴納斯帝壁掛爐全國售后服務電話24小時官網
        菲斯曼壁掛爐全國統一400售后維修服務電話24小時服務熱線
        菲斯曼壁掛爐全國統一400售后維修服務電話2
        美的熱水器售后服務技術咨詢電話全國24小時客服熱線
        美的熱水器售后服務技術咨詢電話全國24小時
        海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
        海信羅馬假日洗衣機亮相AWE 復古美學與現代
        合肥機場巴士4號線
        合肥機場巴士4號線
        合肥機場巴士3號線
        合肥機場巴士3號線
        合肥機場巴士2號線
        合肥機場巴士2號線
      4. 幣安app官網下載 短信驗證碼

        關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

        Copyright © 2024 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
        ICP備06013414號-3 公安備 42010502001045

        主站蜘蛛池模板: 亚洲大尺度无码无码专线一区 | 久热国产精品视频一区二区三区 | 日韩在线一区视频| www一区二区www免费| 亚洲av无一区二区三区| 青青青国产精品一区二区| 全国精品一区二区在线观看| 乱码人妻一区二区三区| 一区二区和激情视频| 日韩精品一区二区三区老鸭窝| 无码人妻精品一区二区三区66 | 国产精品电影一区| 91亚洲一区二区在线观看不卡| 夜夜嗨AV一区二区三区| 国产在线视频一区| 日韩一区二区三区不卡视频| 亚洲视频一区在线| 亚洲日本久久一区二区va| 国产伦精品一区二区三区女| 一区二区三区午夜视频| 亚洲一区二区久久| 一区二区不卡在线| 国产精品99精品一区二区三区| 午夜福利无码一区二区| 成人免费视频一区二区三区| 国产肥熟女视频一区二区三区| 日本精品一区二区三本中文| 日本一区二区三区在线视频观看免费| 国产一区二区三区在线观看影院 | 变态拳头交视频一区二区| 国产一区三区二区中文在线| 国产精品一区二区久久不卡 | 99久久无码一区人妻a黑| 亚洲一区二区三区在线观看网站 | 日本成人一区二区三区| 久久精品免费一区二区| 国产精品一区二区四区| 国产精品99无码一区二区| 日韩免费视频一区二区| 精品人伦一区二区三区潘金莲| 亚洲A∨精品一区二区三区下载|