CSC458/2209 - Assignments - Problem Sets
For problem sets 1 and 2, we will grade each question in a 0-2 scale. You will get a 0 if nothing is turned in; 1 when you have some understanding of the problem; and 2 when you demonstrate a strong understanding of the problem. Keep your answers concise, and clear. Note the late submission policy described in the course information sheet.
Problem Set # 1
- 10% of the overall mark.
- Due date: Oct 13, 9:00PM EST
- Submission guidelines:
        - The assignment should be submitted electronically (on MarkUs) as a single file.
- The filename must be ps1.pdf. Anything other than that will not be accepted by the system.
- Note that, if you resubmit your assignment, the previous file will be overwritten.
 
- Textbook problems (5th edition):
- Chapter 1: 3,11, 19, 20
- Chapter 2: 6, 40, 42
- Chapter 3: 4, 21
Problem Set # 2
- 10% of the overall mark.
- Due date: Nov 25, 09:00PM EST
- Submission guidelines:
        - The assignment should be submitted electronically (on MarkUs) as a single file.
- The filename must be ps2.pdf. Anything other than that will not be accepted by the system.
- Note that, if you resubmit your assignment, the previous file will be overwritten.
 
- Textbook problems (5th edition):
- Chapter 3: 55, 64
- Chapter 4: 9
- Chapter 5: 12, 25, 39
- Chapter 6: 5, 17
CSC458/2209 - Assignments - Programming Assignments
Programming Assignment 1
For this assignment, we will use MiniNet to create a virtual network to build a simple router.
- Assignment description.
- 15% of the overall mark.
- Due date: Oct 20Oct 23, 9:00PM EST.
- When you submit your assignment on MarkUs, we will run a subset of marking script tests and give you feedback. Starting from Oct 10th, you can submit up to 8 times each day.
- Make sure to check out guidelines for programming assignments before starting.
- You can find examples of good and bad programming practices here.
- This assignment is to be done in groups of two or three students. Feel free to use Piazza to find teammates.
- You will need to know (or learn!) socket programming for this assignment. This is covered in tutorial # 1. You can find some useful links about socket programming here.
- Submission guidelines: The assignment should be tested on teaching lab machines and submitted electronically. Please compress and submit the whole contents of the router folder as a single file on MarkUs as a single file.
        - MarkUs
- Use your teaching lab credentials to log in.
- The file name must be pa1.tar.gz.
- Note that, if you resubmit your assignment, the previous file will be overwritten.
- Please see the deliverables section in the Programming Assignment Guidelines for information on what should be included in the submission.
 
Programming Assignment 2
For this assignment, we will explore the impact of router buffer sizes on network performance.
- Assignment description.
- 15% of the overall mark.
- Due date: Dec 2, 9:00PM EST.
- Please note that the assignment is to be completed individually.
- Submission guidelines: Please compress and submit the whole contents of the router folder as a single file on MarkUs as a single file.
        - MarkUs
- Use your teaching lab credentials to login.
- The file name must be pa2.tar.gz.
        - Please cd into your assignment folder and tar the whole folder into a tar.gz file.
- Then, name your code as pa2.tar.gz and upload to your markus repository.
- No other format or structure will be accepted.
- Do not submit multiple tar.gz files into your repository.
 
- Note that, if you resubmit your assignment, the previous file will be overwritten.
- Please see the description page for details on what you need to submit.
 
References and Resources
- "Unix Network Programming" by Stevens is the reference of choice for programming the Unix sockets API. There will also be a review session before the first assignment is due which will provide an introduction to socket programming. 
- "TCP/IP Volume 1: The Protocols", also by Stevens, is an excellent reference to the specification and common implementations of TCP/IP and some of the related protocols. Although this book is not a required course text, it is an excellent reference. Some of the assignments refer to chapters in this book for additional reading.