Division of Computing BSc Computing CSY2026 Modern Networks Date of Issue: 17/02/2017 Date for Submission: 28/04 2017 (23:59 by e-submission) Agreed Date for late submission: Student Name: Student ID: Module Tutor: Signed: Espen Svennevik Student s Signature: This assignment is weighted as 50% of the Module's assessment Assessment Feedback Aspect A B C D F Part A. Explanation of Java UDP. Explanation of C# UDP. Explanation of Java TCP. Explanation of C# TCP. Part B. Java UDP Server/C# Client C# TCP Server/Java Client Java & C# Multicast [45%] [15%] Part C. Java UDP P2P modifications [30%] C# UDP P2P modifications Java TCP modifications C# TCP modifications Report Quality. [10%]
Specific aspects of the assignment that the marker likes: Specific aspects of the assignment that need more work: Tutor s Signature: Date: Grade : The University of Northampton s Policy on Plagiarism & Mitigating Circumstances will be strictly implemented. By submitting this signed assignment you are asserting that this submission is entirely your own individual work.
Modern Networks Assignment 1 - CSY2026 Finish Date: 28 th April, 2017 By e-submission by 23:59 Aims & Objectives To enable the student to understand and extend Distributed Computing applications, using the Java programming language and C#.NET utilising the Transmission Control Protocol (TCP) as well as User Datagram Protocol (UDP). Brief: Part 1. Q1. Produce and explain a console based Java program which sends a UDP packet to the port number 4567 at IP address 194.81.104.123 Q2. Produce and explain a console based Java program which receives the UDP packet sent by Q1. Q3. Modify the two Java programs produced in Q1 and Q2 to run on an actual computer using two console windows. Show and explain your modifications and produce a screenshot as evidence of your programs running. Q4. Produce and explain a console based C# program which sends a UDP packet to the port number 4567 at IP address 194.81.104.123 Q5. Produce and explain a console based C# program which receives the UDP packet sent by Q4. Q6. Modify the two C# programs produced in Q4 and Q5 to run on an actual computer using two console windows. Show and explain your modifications and produce a screenshot as evidence of your programs running. Q7. Produce and explain a console based Java program which sends a TCP packet to the port number 2345 at IP address 194.81.104.234 Q8. Produce and explain a console based Java program which receives the TCP packet sent by Q7. Q9. Modify the two JAVA programs in Q7 and Q8 to run on an actual computer using two console windows. Show and explain your modifications and produce a screenshot as evidence of your programs running. Q10. Produce and explain a console based C# program which sends a TCP packet to the port number 4321 at IP address 194.81.104.141 Q11. Produce and explain a console based C# program which receives the TCP packet sent in the question above. Q12. Modify the two programs in Q10 and Q11 to run on a single computer using two console windows. Show and explain your modifications and produce a screenshot as evidence of your programs running.
Part 2. Q13. Modify the C# program in Q4 so it can send a UDP packet to the Java program in Q2. Q14. Modify the Java program in Q7 so it can send a TCP packet to the C# program in Q11. Q15. Modify either the programs in Q13 or Q14 to run on an actual computer using two console windows. Show and explain your modifications and produce a screenshot as evidence of your programs running. Q16. Show the JAVA UDP Multicast application exchanging messages with the C# UDP multicast application. Part 3 Q17. Modify the JAVA UDP peer-to-peer application to include text fields for port numbers (local and remote) and the IP address (remote). Explain how these modifications works. Show two instances of this application exchanging messages. Q18. Create a C# UDP peer-to-peer application, by modifying the C# UDP client to include text fields for port numbers (local and remote) and the IP address (remote). Explain how these modifications works. Show two instances of this application exchanging messages. Q19. Modify the JAVA TCP client so it has text fields for a username, server IP address and server port number. Show two instances of this application exchanging messages through the multi-threaded JAVA TCP server. The username should be prepended to the message sent. Explain how you implemented your modifications. Q20. Modify the C# TCP client so it has text fields for a username, server IP address and server port number. Show two instances of this application exchanging messages through the multi-threaded C# TCP server. The username should be prepended to the message sent. Explain how you implemented your modifications. Deliverables A report needs to submitted to TurnitIn by 23:59 on 28 th April, 2017. Your report should include the following sections: 1. Part 1: Explanation of Java and C# TCP and UDP implementation. 2. Part 2: Multiplatform chat using Java and C#. 3. Part 3: Modifications to chat applications. 4. Appendices. This should include annotated source code of your modifications. Please note that the work you produce must be your own and you may be asked for a viva. EJS
Grading Criteria: The Standard Front Sheet gives a clear indication of how the grade for this assignment is achieved. In general the following criteria will act as a guide to what you should expect: A bare pass (D) will involve explaining a majority of the questions asked, to a satisfactory level, and have added some extra features. A good pass (B to C) will require you to explain all the questions, and demonstrating a good level of understanding, and adding some significant extra features. A very good pass (A) will be awarded if you explain all the questions asked, and demonstrating an excellent level of understanding, and adding extra features which enhance the user experience significantly. See also the assessment matrix. Learning objectives This assessment corresponds to the following Learning Objectives as detailed in the Module Specification document: Knowledge and Understanding c. Understand and explain the principles of mobile device programming to a satisfactory level. Subject specific skills d. Satisfactorily evaluate and use networks, in both fixed and mobile contexts, that are used for device programming. e. Evaluate and appraise the use of modern networks used in fixed and mobile contexts to an adequate level. f. Design and implement programs for use on modern networks. Key Skills g. Competently identify relevant sources of information h. Communication. Write clearly about complex subjects in a form adequate to the purpose. i. Managed Learning: Satisfactorily make, justify and implement decisions following evaluation of options. j. Problem solving: Develop skills to satisfactorily design and implement appropriate software and systems.
Personal Development & Key Skills (for your PDP) This assignment provides an opportunity to add to your personal development portfolio as indicated below: Key Skill Y/N 1 Managing the Learning Process: Ability to evaluate learning styles, identify strategies for approaching study tasks, manage and organise oneself taking responsibility for decision-making, target-setting and delivery of action. 2 Communication Skills: The ability to express, discuss and present knowledge, ideas and viewpoints to a variety of audiences with confidence and clarity. 3 Groupwork: The ability to work harmoniously and productively as a member of a group in a variety of roles, demonstrating an awareness of group dynamics, appropriate inter personal and interactional skills. 4 Information Skills: The ability to identify information needs, access and evaluate a range of relevant sources, organise and use information efficiently and effectively for both academic and professional purposes. 5 Problem Solving: The ability to identify problems and to apply concepts, principles and techniques in order to generate solutions, choose between alternatives and take appropriate action. 6 Use of IT: The ability to effectively use key information technology and appropriate software to assist in the learning process through research and retrieval, communication and manipulation of information in various forms. 7 Application of number: The ability to understand, interpret and use numerical and graphical information accurately and effectively. Remember to consult and completing your Key Skills Checklist or Skills Development Plan as appropriate, to help you to identify current strengths and how you can build on these, as well as highlight areas that need improving. At the end of each year you can complete a new skills checklist/plan, based on your learning experiences. Year 1: http://pdp.northampton.ac.uk/year1_files/docs/key%20skills%20checklist.doc Year 2: http://pdp.northampton.ac.uk/year2_files/docs/stage2skillsdevelopmentplan.doc Year 3 http://pdp.northampton.ac.uk/year3_files/docs/skill%20development%20plan%20year %203%20generic.doc