Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System
|
|
- Joseph Atkinson
- 5 years ago
- Views:
Transcription
1 Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System Prof. Gil Zussman due: Wed. 10/24/2012, 23:55 EST 1 Introduction In this programming assignment, you are required to implement a simple online bidding system (think ebay) using the UDP protocol. The users of this system include sellers and customers. Sellers can post item entries on the Server and all customers can view the item list. If a customer is interested in one of the items, he can directly contact the seller to request more information or to place a bid. The system should use the common client-server model, which means you have to write two different programs - server end and client end. Sellers and customers all act as clients, and the server keeps track of all information such as client information, item list and off-line messages. Clients should also be able to send messages to each other, so that a customer can contact a seller directly. The functionalities and specifications of the program are described in detail below. This assignment is meant to be done on your own; do not collaborate with others as this is cheating! Please start early, and read the entire homework before you start! 2 Functionalities The whole bidding system can be broadly classified into five functions. Each function involves either the client part or the server part or a combination of both. The different functionalities and their respective parts in both the server and the client are explained in depth in the upcoming sections. Notice that while the writeup is long, each functionality only contains one or two commands, and the long descriptions are for providing clarity. 2.1 Sign In & Sign Out After the server starts, the clients should connect to the server and sign in with a username (As a simple version, we do not require passwords). A client can only get access to server information when it has signed in. It should send commands to the server to manually sign in or sign out. Server starts: The server should be started using the following command: $ sobs -s <server-port> The command takes two arguments, specifying that we want to run the server and the port number the server is going to listen on. The port number should be an integer value in the range Proper errors should be prompted if the given port number is out of range. The server does not have to display anything after it has been started. We will not put any requirements on the output of the server, as we assume that the server program will run as a daemon on a remote machine, and we could evaluate your program only through the client output. You can let the server display anything you like to help you debug your programs. Client starts: 1
2 The client has to communicate with the server using the IP address and the port number of the server. $ sobs -c <server-ip> <server-port> This command requires three arguments described as follows: -c indicates to run as a client. <server-ip> and <server-port> are the server information (assume all clients by default know the server information). If the server is running in the same machine with your client, the <server-ip> could be or localhost, otherwise, it should be the IP address of the server machine. <server-port> should be the same number as is passed in when starting the server. You should check if <server-ip> is a legal IP address and if <server-port> is an integer value in the range If not, print an error message and simply exit the program. If all arguments are taken in a proper format, a prompt should be displayed: sobs> Note that we do not need to explicitly specify the port number for a client. You program should automatically pick any current available one. [HINT] You can do this by simply passing a 0 to function bind (C/Python) or to the socket class constructor (Java). To exit or close a client use: sobs> ctrl + c Assume a client once exited does not return. Sign in & sign out commands A client should send a command to sign in before it can use the system. To sign in, the client should support the command: sobs> register <user-name> <user-name> is the ID that represents a particular seller or customer. As a simple system, we assume that there will be no malicious clients. You do not have to consider security cases such as forgery. And you should only guarantee that the <user-name> is a string of less than 64 bytes. A string longer than 64 bytes can be simply truncated. When a client signs in, it should send all the client information to the server, including <user-name>, the IP address and port number of the client program. The server should maintain a list of client information (three items for each entry) with <user-name> as the entry ID. If the <user-name> already exists in that list, the server simply replaces that entry with the new information (A client may have forgot to sign out last time). If the <user-name> is new, the server just makes a new one with that name. The server will send back ACK (acknowledgement) after receiving the information. ACK can be anything, but we recommend that it should be a welcome message. When the ACK arrives, your client program should display the message: sobs> [Welcome <user-name>, you have successfully signed in.] To sign out, the client should support the command: sobs> deregister When getting the ACK, it displays: sobs> [You have successfully signed out. Bye!] After signing out, a client can NOT send any packets (except sign-in command) to the server or receive any packets from the server. It can only send and receive messages after signing in again. Local client information 2
3 There are cases where clients directly communicate with each other (packets not going through the server), such as when a customer wants to contact a seller directly to query information or to buy a item. Therefore, your client programs have to maintain a local copy of all the client information from the server. Hence each time the client signs in or signs out, the server will broadcast the client information table to all the currently online clients. After receiving the client information table broadcasted, clients need to update their corresponding local table. And when the local table has been successfully updated, the client should display the message : sobs> [Client table updated.] 2.2 Sell an Item Once the clients are set up and registered with the server, the next step is to implement the sale feature. Clients should be able to send a message to the server to post a new item up for bidding. The seller will also indicate to the server how many transactions to process before automatically selling the item. Think of this as an easier form of a time limit. The server will be maintaining a table of all of the items that are currently available for bidding and how many transactions each has left before it is sold to the highest bidder. Client: The client has to provide the server the name of the item for sale, how many transactions to allow, what price (in cents) to start the bidding at, and for what price (in cents) to sell the item immediately. sobs> sell <item-name> <transaction-limit> <starting-bid> <buy-now> <description> This command requires three arguments described as follows: <item-name> is the name of the item for sale. It should be a string with no whitespace. A string longer than 64 bytes (max length) can be simply truncated. <transaction-limit> is the number of times the item may be bid on before the server should sell the item to the highest bidder. It should be a positive integer value. For example if it is set to 2, then the first bid raises the current bid by the specified amount. When a user completes the second bid on the item the server will sell that item to him/her. <starting-bid> is the initial bidding price in an integer number of cents that the item should be initially listed at. <buy-now> is the price at which another client could immediately buy the item. It s an integer number of cents. <description> is the detailed description of the item. It is the last argument and could contain long sentences with whitespaces. The max length is 1024 bytes. You can truncate the string, if it is longer than the max length. After sending the message to the server, the client can expect a response from the server as described below in the Server section. The client should display the response: sobs> [<server-response>] Server: The server is responsible for acknowledging submission of an item for sale. The server needs to maintain an ID number for each item added to the items for sale table. The number starts from 1, and only increments by 1 when there is a new item. You do not have to decrease the number if any item (including the last one) is deleted. And we assume that the item number will never grow greater than MAX INT. Then the server should add the item and its corresponding information to its table and respond to the client with: <item-name> added with number <item-num> 3
4 If the server finds that there is something wrong with the arguments, it should not add anything to its table and respond to the client with: Error: arguments 2.3 Get Items For Sale At this point the clients should be able to send items to the server to put them up for bidding. The other clients need a way to ask the server what is for sale. You will now be implementing a way for clients to ask the server for either all of the items currently for sale or for just a specific item. Client: Clients (both customers and sellers) can send requests to the server for updated information of all on-sale items: sobs> info [item-num] This command has only one optional argument, which is the number of the item that the client wants information about. If there is no [item-num], information of all items on the server will be returned. A customer can see the whole list so as to choose interesting items among them. But a client may prefer to specify a particular [item-num], because he/she may only want to see the information for a specific item he/she is interested in. Server: 4
5 The server will be receiving the info command from the clients. It is then responsible for replying to the client with an appropriate response. If the client sent the info command with no extra argument the server should reply with a listing of all items currently listed for sale. The response message should look like as follows: <item-num> <item-name> <seller-name> <current-bid> <buy-now> <description> <item-num> <item-name> <seller-name> <current-bid> <buy-now> <description>... Each line should contain all the public item informtion including the number and the name of the item, the <seller-name> which is the <user-name> of the client who is selling it, and the current bid (in cents), the buynow price (in cents), and lastly the description of the item. Notice that the <transaction-limit> should not be shown in this response message. If the server was asked for all items (by sending just info) and the server has NO items yet listed it should respond as follows: Error: empty If the client sent the info [item-num] command with an item s number and the item EXISTS in the server s table, then the server should respond with one line: <item-num> <item-name> <seller-name> <current-bid> <buy-now> <description> If the client sent the info [item-num] command with an item s number and the item DOES NOT EXIST in the server s table, then the server should respond with one line: Error: <item-num> not found 2.4 Place Bid Your system should now be set up such that your clients can list items to be sold with the server as well as find out what items are on sale from the server. We now want to add the ability to allow a client to place a bid on an item. A customer may bid however much he/she likes on any item (except his/her own items) and may not bid twice in a row for the same item. What this means is if customer A is already the highest bidder on item 5, he/she may not bid on item 5 until a new customer is the highest bidder on item 5. Also note that the customer is allowed to bid over the direct buy amount. It is the customer s responsibility to contact the seller directly if it wants to purchase an item at the <buy-now> price. 5
6 Client: The client needs to indicate to the server which item it would like to bid on as well as how much it would like to bid. Clients will specify their bids as an integer number of cents that they would like to pay ABOVE the current bid price. The command should look as follows: sobs> bid <item-num> <amount> An example bid command could read as $ bid and this would mean that the client would like to bid 100 cents over the current bid for the item number 5. So if the item s current bid price was 500 (five dollars) its new bid price after this message should be 600 (six dollars). After sending this message to the server, the client can expect a response from the server as described in the following server section. The client should display the response in such format: sobs> [<server-response>] Server: The server needs to edit the current bid prices for the item that was bid on once it receives the bid message. It is also responsible for reporting any errors back to the client, such as if the item specified does not exist. If the client is already the highest bidder on the item, he/she is not allowed to bid more than once in a row. The server should respond to a client who is doing this with: Error: duplicate bid If the client has bid on an item that he/she has put up for sale the server should not count the bid and reply with the message: Error: owner If the item exists and the client has correctly specified the bid with a higher price, the server should add the bid to the current bid price and also store the username of the client with that item as the current highest bidder. It will then respond to the client with one line: <item-num> <item-name> <new-current-bid> It the item the client specified does not exist the server should respond with the line: Error: <item-num> not found If the bid price that the client is trying to place is negative, the server should not change the current bid and should reply: Error: negative bid If the server finds that there is anything wrong with the command arguments, it should not change anything in its table and respond to the client with: Error: arguments Also, the server has to maintain the number of bids that have been placed on each item. After a bid is successfully placed, the server needs to increment that number. When the number has reached the transaction limit, the server should regard it as the last bid for that item, and the customer that places the last bid should win. The server then sends messages to both the seller and the customer who wins: To the seller: sold <item-num> <item-name> <purchase-price> To the customer who wins: purchased <item-num> <item-name> <purchase-price> If the server times out when sending messages to clients, it needs to store the message in a list of off-line messages and send to the client next time it signs in. [HINT] The off-line messages can be simply identified by the <user-name>. You can see more instructions about off-line messages in Section - Direct Buy. 6
7 The following figure lays out the process. 2.5 Direct Buy As the seller has provided the buy-now price, a customer can send a direct-buy command to a seller to request an item. The command should be sent directly to the seller s client program, without notifying the server. The seller s client will then send a direct-sell command to the server and the server notifies the customer that it has successfully bought the item. We design the direct-buy process like this in order to test the client-to-client programming. 7
8 Client: A customer can directly send the buy command to seller, which is another client: sobs> buy <seller-name> <item-num> The first argument is the <user-name> of the seller. You should obtain the IP address and port number of the seller from the local client information table, and then send the message directly to the seller s client program without notifiying the server. When a seller s client program receives the direct-buy commands, it should display: sobs> [<customer-name> wants to buy your <item-num>.] The <customer-name> is the <user-name> of the customer s client. Then, the seller s client program replies with an ACK indicating the request has been successfully delivered. When the customer s client program receives the ACK, it should display: sobs> [<seller-name> has received your request.] If the the <seller-name> is not found in the client information list or the direct-buy command times out 5 times, the customer should assume that the seller is currently offline and send another command directly to the server instead (please find the details in the next section - Off-line Buy). The seller s client program can then automatically send a command to the server indicating that the item will be directly sold to that customer: sobs> direct <item-num> <customer-name> After receiving the ACK, the client displays: sobs> [<server-response>] Server: After receiving the direct-sell command, the server should delete the item from the item list and send the success message to the corresponding customer: purchased <item-num> <item-name> <purchase-price> ACK should be sent back to the seller: sold <item-num> <item-name> <purchase-price> If the item is not found the server item list, the server should respond to the seller with an errror: Error: <item-num> not found If the server fails to contact the customer after 5 tries, it deletes the client information from the client list and stores the message in the off-line message list. Whenever a client signs in, the server should search the off-line message list to see if there are off-line messages for that client. Then, it should send all the off-line messages to that client. The flow diagram of Direct-Buy is shown in the next section together with Offline-Buy. 2.6 Off-line Buy When a customer wants to send a direct-buy request to the seller, but the seller is currently not available, the client should send the direct-buy request to the server first as an offline-buy request, and the server will do the transaction and notify the seller when it signs in again. Client: A client sends the direct-buy request to the server in two cases: -When the seller does not appear in its local list of client information. (could happen when the seller signs out after advertising an item.) -When there is a time-out on a message sent to the seller. 8
9 The message sent to the server as an off-line buy command should be the same with what the seller will send to the server: sobs> direct <item-num> <customer-name> The server should respond with the same behavior described in the previous section. On receiving ACK from the server, the following status message should be displayed in the customer s client: sobs> [<seller-name> is currently offline. Request forwarded to the server.] Server: Same with the previous section. 3 General Requirements All data structures and packet formats can be designed by yourself. We only require you to fulfill the client behaviors and displays as described above. 9
10 Whenever a client receives a message from the server, it should display the message with the following format: sobs> [<server-message>] The system should be stable enough. You should give error messages if something abnormal happens instead of simply crashing the system. The error message should be in format: sobs> [Error: <error-message>] Every time when a client sends commands, the client should wait for an ACK within 500 msecs. If it does not receive an ACK, the client should retry for 5 times. If they all fail, the client should stop trying and display some error message. Whenever the server sends messages to the client, it should also wait for an ACK within 500 msecs. If it does not receive, the server should retry for 5 times. If they all fail, the server should assume that the client has signed out, and then delete the client from the client information list and store the message in the off-line message list. Loss of ACK can be simply ignored in this assignment. 4 Testing Before submitting your work, please do test your programs thoroughly. Your bidding application should at least work with One instance of the program in server mode. Three instances of the program in client mode. An example (illustrative, not comprehensive) is provided below - SERVER: $ sobs -s Client1: $ sobs -c sobs> register matt sobs> [Welcome matt, you have successfully signed in.] sobs> [Client Table Updated.] sobs> info sobs> [Error: empty] sobs> sell frying_pan A nonstick frying pan with a diameter of 10in sobs> [frying_pan added with number 1] sobs> info sobs> [1 frying_pan matt A nonstick frying pan with a diameter of 10in ] sobs> sell drawing A lovely hand drawn picture of a mountain range sobs> [drawing added with number 2] sobs> info sobs> [ 1 frying_pan matt A nonstick frying pan with a diameter of 10in 2 drawing matt A lovely hand drawn picture of a mountain range ] sobs> sell frying pan A small frying pan with diameter of 5in sobs> [Error: arguments] sobs> deregister 10
11 sobs> [You have successfully signed out, bye!] Client2: $sobs -c sobs> register John sobs> [Welcome John, you have successfully signed in.] sobs> [Client Table Updated.] sobs> info 3 sobs> [Error: 3 not found] sobs> info sobs> [ 1 frying_pan matt A nonstick frying pan with a diameter of 10in 2 drawing matt A lovely hand drawn picture of a mountain range ] sobs> bid sobs> [purchased 1 frying_pan 1100] sobs> bid sobs> [Error: negative bid] sobs> sell pencil A half used, partially chewed #2 pencil. sobs> [pencil added with number 3] sobs> info sobs> [ 2 drawing matt A lovely hand drawn picture of a mountain range 3 pencil John A half used, partially chewed #2 pencil. ] sobs> deregister sobs> [You have successfully signed out, bye!] Client1: $ sobs -c sobs> register matt sobs> [Welcome matt, you have successfully signed in.] sobs> [Client Table Updated.] sobs> [sold 1 frying_pan 1100] sobs> info sobs> [ 2 drawing matt A lovely hand drawn picture of a mountain range 3 pencil John A half used, partially chewed #2 pencil. ] sobs> buy John sobs> [John is currently offile. Request forwarded to the server.] sobs> [purchased 3 pencil 300] sobs> deregister sobs> [You have successfully signed out, bye!] Client2: $ sobs -c sobs> register John sobs> [Welcome John, you have successfully signed in.] sobs> [Client Table Updated.] sobs> [sold 3 pencil 300] sobs> deregister sobs> [You have successfully signed out, bye!] 11
12 5 Submission Instructions Please use C, Java, or Python for developing the chat application. All are available at CS department CLIC or EE ILAB. Your submission package should include the following deliverables. Make sure that your program compiles and runs on these machines before you submit the package. README: The file contains the project documentation, program features, usage scenarios, brief explanation of algorithms or data structures used, and the description of any additional features/functions you implemented. Makefile: This file is used to build your application. If you have written the programs in C (Unix), the output file name should be UdpSobs. If you used Java, the file name should be UdpSobs.class. You do not need a Makefile if you used Python. Your source code. test.txt: This file should contain some output samples on several test cases. This would help others to understand how your programs work in each test scenario. It is optional to include this, as part of your README document. The submission should be made via Courseworks. Zip all the deliverables mentioned above, and name the zip file as <your UNI><CLIC or ILAB>PA1.zip (e.g. gz2136ilabpa1.zip for Professor Zussman). Upload the file in the Courseworks, under Assignments -> Programming Assignment 1. In the grading of your work, we will take the following points into account. The documentation clearly describes your work and the test result. The source code is complied properly by using the Makefile and generate appropriate output files. The programs run properly, including 1) take appropriate commands and arguments, 2) handle different situations and support required functions, and 3) display necessary status messages. Happy Coding and Good luck!! 12
Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Chat Application
Fall 2011 - CSEE W4119 Computer Networks Programming Assignment 1 - Simple Chat Application Prof. Gil Zussman due: 10/26/2011, 11 AM, EST 1 Introduction This programming assignment is to implement a simple
More informationCS 351 Design of Large Programs Java and Socket Communication
CS 351 Design of Large Programs Java and Socket Communication Instructor: Joel Castellanos e-mail: joel@unm.edu 4/6/2017 Transmission Control Protocol The Transmission Control Protocol (TCP) is one of
More informationNew York University Computer Science Department Courant Institute of Mathematical Sciences
New York University Computer Science Department Courant Institute of Mathematical Sciences Course Title: Data Communications & Networks Course Number: g22.2662-001 Instructor: Jean-Claude Franchitti Session:
More informationProject 2 Reliable Transport
Project 2 Reliable Transport UC Berkeley CS 168, Fall 2014 Version 1.0 Due: 11:59am (noon), November 2nd, 2014 In this project, you will build a simple reliable transport protocol, BEARS TP (BTP). Your
More informationProject Description MyBay Project
Project Description MyBay Project University of British Columbia Okanagan COSC 304 - Fall 2007 Team Members: Ali Hatami Jennifer Johnstone Nicholas Blackwell 11/28/2007 1 COSC 304 MyEBAY.DOC TABLE OF CONTENTS
More informationInstructions for Interactive Bidding
Instructions for Interactive Email Bidding The following instructions will guide a bidder through successfully submitting a PDF interactive bid. When properly executed the interactive email bid (also called
More informationCS 2316 Homework 9b GT Thrift Shop Due: Wednesday, April 20 th, before 11:55 PM Out of 100 points. Premise
CS 2316 Homework 9b GT Thrift Shop Due: Wednesday, April 20 th, before 11:55 PM Out of 100 points Files to submit: 1. HW9b.py 2. any image files (.gif ) used in database This is an INDIVIDUAL assignment!
More informationAssignments 3 & 4. COMP248/Winter Assignment 3 & 4 Page 1 of 7
Concordia University Comp 248 Winter 2016 Introduction to Programming Combined Assignments 3 & 4 - Due by 11:59 PM Sunday March 20, 2016 Assignments 3 & 4 Purpose: The purpose of these assignments is to
More information1 Getting Familiar with Datagrams (2 Points)
Assignment 3 Start: 24 October 26 End: 3 November 26 Objectives In this assignment, you will get some experience with UDP communication. To highlight that UDP is connection-less and thus, the delivery
More informationCSCI 102 Fall 2010 Exam #1
Name: USC Username: CSCI 102 Fall 2010 Exam #1 Problems Problem #1 (14 points) Problem #2 (15 points) Problem #3 (20 points) Problem #4 (16 points) Problem #5 (35 points) Total (100 points) Problem 1 Short
More informationA WEB BASED OFFICE MARKET. CS 297 Project Report Presented to Dr. Christopher Pollett San José State University
A WEB BASED OFFICE MARKET CS 297 Project Report Presented to Dr. Christopher Pollett San José State University By Manodivya Kathiravan May 2016 INTRODUCTION This report describes preliminary work toward
More informationThe Specification of Project-1
The Specification of Project-1 EE122 Introduction to Communication Networks, Fall 2002 Weidong Cui, Karthik Lakshminarayanan, Khian Hao Lim Revision : 1.23 1 Overview In this project, you will build a
More informationCS 344/444 Spring 2008 Project 2 A simple P2P file sharing system April 3, 2008 V0.2
CS 344/444 Spring 2008 Project 2 A simple P2P file sharing system April 3, 2008 V0.2 1 Introduction For this project you will write a P2P file sharing application named HiP2P running on the N800 Tablet.
More informationCOMP/ELEC 429/556 Project 2: Reliable File Transfer Protocol
COMP/ELEC 429/556 Project 2: Reliable File Transfer Protocol Assigned: Thu, 28 September Due: 11:55pm, Tue, 24 October 1 Description The objective of this project is to give you hands-on experience with
More informationCS 447 : Networks and Data Communications Programming Assignment #02 Total Points: 150
CS 447 : Networks and Data Communications Programming Assignment #02 Total Points: 150 Assigned Date : Tuesday, October 23, 2018 Due Date : Tuesday, November 06, 2018 @ 12:29:59 p.m. Overview Your second
More informationINF3190 Mandatory Assignment:
INF3190 Mandatory Assignment: Formally: This assignment must be completed individually. The submission must be approved prior to submission of the Home Exam 1. To pass the submission must meet the requirements
More informationCS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool
CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool Due: Monday 17 February. Electronic copy due at 10:30 A.M., Optional paper copy may be
More informationCS 2110 Fall Instructions. 1 Installing the code. Homework 4 Paint Program. 0.1 Grading, Partners, Academic Integrity, Help
CS 2110 Fall 2012 Homework 4 Paint Program Due: Wednesday, 12 November, 11:59PM In this assignment, you will write parts of a simple paint program. Some of the functionality you will implement is: 1. Freehand
More information1LIVE CHESS BOOK User Manual
1LIVE CHESS BOOK User Manual Q.1] System Requirements - The software works on windows 7, windows 8, and windows 10 platform. - Please ensure that your speaker of PC/ Laptop is in proper working condition,
More informationCollector and Dealer Software - CAD 3.1
Collector and Dealer Software - CAD 3.1 Your Registration Number Thank you for purchasing CAD! To ensure that you can receive proper support, we have already registered your copy with the serial number
More informationCOMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager
COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager Points Possible: 100 Submission via Canvas No collaboration among groups. Students in one group should NOT share any project
More informationA Software System for Secure Computer Aided Exams
A Software System for Secure Computer Aided Exams Prof. Dr. E. Başar Computer Engineering Department Eastern Mediterranean University G.Magusa, Mersin 10 / TURKEY B. Genç Computer Engineering Department
More informationCIS 505: Software Systems
CIS 505: Software Systems Fall 2017 Assignment 3: Chat server Due on November 3rd, 2017, at 10:00pm EDT 1 Overview For this assignment, you will implement a simple replicated chat server that uses multicast
More informationCS 374 Fall 2014 Homework 2 Due Tuesday, September 16, 2014 at noon
CS 374 Fall 2014 Homework 2 Due Tuesday, September 16, 2014 at noon Groups of up to three students may submit common solutions for each problem in this homework and in all future homeworks You are responsible
More informationLab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018
Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018 Due: Tuesday, September 18, 11:59 pm Collaboration Policy: Level 1 (review full policy for details) Group Policy: Individual This lab will give you experience
More informationProgramming Standards: You must conform to good programming/documentation standards. Some specifics:
CS3114 (Spring 2011) PROGRAMMING ASSIGNMENT #3 Due Thursday, April 7 @ 11:00 PM for 100 points Early bonus date: Wednesday, April 6 @ 11:00 PM for a 10 point bonus Initial Schedule due Thursday, March
More informationCS344/444 Spring 2007 Project 1 Instant Messaging Client and Server
CS344/444 Spring 2007 Project 1 Instant Messaging Client and Server Sandeep Sarat Andreas Terzis February 19, 2007 1 Introduction For your first project you will have to write a client and a server for
More informationEECE.2160: ECE Application Programming
Fall 2017 Programming Assignment #10: Doubly-Linked Lists Due Monday, 12/18/17, 11:59:59 PM (Extra credit ( 5 pts on final average), no late submissions or resubmissions) 1. Introduction This assignment
More informationControl Flow: Loop Statements
Control Flow: Loop Statements A loop repeatedly executes a of sub-statements, called the loop body. Python provides two kinds of loop statements: a for-loop and a while-loop. This exercise gives you practice
More informationProject 1 - Battleship Game
Project 1 - Battleship Game Minimal Submission Due: Friday, December 22 th, 2006 Revision History Final Project Due: Sunday, January 21 th, 2007 Dec 7th, 2006, v1.0: Initial revision for faculty review.
More informationCS 463 Project 1 Imperative/OOP Fractals
CS 463 Project 1 Imperative/OOP Fractals The goal of a couple of our projects is to compare a simple project across different programming paradigms. This semester, we will calculate the Mandelbrot Set
More informationBidstation with Square Beta Program How to run a silent auction event using Bidstation and Square a beginner s guide
Introduction If you ve never run a silent auction before, this guide can be a helpful resource for envisioning and planning your event. It provides a general description of how to run a silent auction
More informationCSE434 Computer Networks (FALL, 2009) Programming Assignment 3 Due: Wed, December 2, 2009
CSE434 Computer Networks (FALL, 2009) Programming Assignment 3 Due: Wed, December 2, 2009 Submission Procedure: No late submissions will be accepted. Submit a softcopy before the class to su.kim.asu@gmail.com.
More informationICSI 516 Fall 2018 Project 1 Due October 26th at 11:59PM via Blackboard
ICSI 516 Fall 2018 Project 1 Due October 26th at 11:59PM via Blackboard Objectives: There are a number of objectives to this assignment. The first is to make sure you have some experience developing a
More informationMOBILE BIDDING GUIDE 2019 DINNER & AUCTION. Saturday, March 23, 2019 EMBASSY SUITES SEATTLE. wingluke.org/2019auction
2019 DINNER & AUCTION Saturday, March 23, 2019 EMBASSY SUITES SEATTLE wingluke.org/2019auction MOBILE BIDDING GUIDE KEEP YOUR EYES PEELED MOBILE BIDDING WILL GO LIVE ON FEBRUARY 15, 2019. Scope out auction
More informationVendor Registration and Training
Vendor Registration and Training Bid Express Registration Guide Bid Express Vendor Guide February 2015 Prepared By Address: 5700 SW 34th Street, Suite 1235, Gainesville, Florida 32608-5371 Web: www.infotechfl.com
More informationCMSC 201 Spring 2017 Homework 4 Lists (and Loops and Strings)
CMSC 201 Spring 2017 Homework 4 Lists (and Loops and Strings) Assignment: Homework 4 Lists (and Loops and Strings) Due Date: Friday, March 3rd, 2017 by 8:59:59 PM Value: 40 points Collaboration: For Homework
More informationGMU SWE 443 Software Architecture Spring Lab 2: Implicit-invocation System. Sousa Discuss Feb 23, due March 8
GMU SWE 443 Software Architecture Spring 2012 Lab 2: Implicit-invocation System Sousa Discuss Feb 23, due March 8 This lab is to be done individually. If there is something you don t understand, or if
More informationNational Seeds Corporation Limited
BIDDER REGISTRATION MANUAL Click to the Registration link shown on the website https://indiaseeds.eproc.in Step1: Fill the details 1. Enter your USER Id (6 to 15 character) 2. Enter your Password (8 to
More informationCS451 - Assignment 3 Perceptron Learning Algorithm
CS451 - Assignment 3 Perceptron Learning Algorithm Due: Sunday, September 29 by 11:59pm For this assignment we will be implementing some of the perceptron learning algorithm variations and comparing both
More informationHow to Add and Edit Vehicles on OVE.com. For the best experience please turn on your sound.
How to Add and Edit Vehicles on OVE.com For the best experience please turn on your sound. Learn how to add and edit inventory, pictures, and prices, as well as preview your listings. Login or Sign Up
More informationInitial Coding Guidelines
Initial Coding Guidelines ITK 168 (Lim) This handout specifies coding guidelines for programs in ITK 168. You are expected to follow these guidelines precisely for all lecture programs, and for lab programs.
More informationHomework 1: Programming Component Routing Packets Within a Structured Peer-to-Peer (P2P) Network Overlay VERSION 1.1
Homework 1: Programming Component Routing Packets Within a Structured Peer-to-Peer (P2P) Network Overlay VERSION 1.1 DUE DATE: Wednesday February 14 th, 2018 @ 5:00 pm Objectives & Overview The objective
More informationP2P Programming Assignment
P2P Programming Assignment Overview This project is to implement a Peer-to-Peer (P2P) networking project similar to a simplified Napster. You will provide a centralized server to handle cataloging the
More informationThe following are the requirements for the password server client program named pass.cpp:
COP 4530/CGS5425: Data Structures, Algorithms, and Generic Programming Florida State University, Dept. of Comp. Sci., Fall 2006 Instructor: Breno de Medeiros TA: Ling Toh Assignment 4: HashTables Goals:
More informationProgramming Assignment 5 (100 Points) START EARLY!
Programming Assignment 5 (100 Points) Due: 11:59PM Thursday, November 2 START EARLY! Mining is arduous and dangerous work. Miners need to be taught how to mine minerals in the most efficient manner possible.
More informationUnited Nations Development Programme
United Nations Development Programme etendering Bidder Training Guide Release No. 2 November 2013 TABLE OF CONTENTS: etendering Supplier Training Guide... 0 Common Definitions:... 2 Business Process...
More informationUniversity of Gujrat Lahore Sub Campus
University of Gujrat Lahore Sub Campus Assignment # 4 Advance Programming Techniques (CS 303) BS Computer Science Fall 2018 Date Issue: 05-12-2018 Due Date: 14-12-2018 (Friday) before 09:00 PM Instructions:
More informationHomework 3 CSC/ECE , Fall, 2016
Homework 3 CSC/ECE 573-001, Fall, 2016 Every question requires response in one or more of the following ways. If the question, in part or whole, requires textual response, include your response to it in
More informationCMPSCI 187 / Spring 2015 Hangman
CMPSCI 187 / Spring 2015 Hangman Due on February 12, 2015, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 CMPSCI 187 / Spring 2015 Hangman Contents Overview
More informationKing Abdulaziz University Faculty of Computing and Information Technology Computer Science Department
King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department CPCS204, 1 st Term 2014 Program 2: FCIT Baqalah Assigned: Thursday, September 26 th, 2013 Due: Wednesday,
More informationKing Abdulaziz University Faculty of Computing and Information Technology Computer Science Department
King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department CPCS202, 1 st Term 2016 (Fall 2015) Program 5: FCIT Grade Management System Assigned: Thursday, December
More informationComputer Security Spring 2010 Paxson/Wagner HW 4. Due Thursday April 15, 5:00pm
CS 161 Computer Security Spring 2010 Paxson/Wagner HW 4 Due Thursday April 15, 5:00pm Instructions: Submit your solution by Thursday, April 15, 5:00pm electronically. Write up your answers in either PDF
More informationProgram Assignment 2
Program Assignment 2 CMSC 417 Fall 2014 September 16, 2014 1 Deadline September 30, 2014. 2 Objective In this assignment you will write the server program which will communicate using sockets with the
More informationKing Abdulaziz University Faculty of Computing and Information Technology Computer Science Department
King Abdulaziz University Faculty of Computing and Information Technology Computer Science Department CPCS204, 1 st Term 2014 Program 1: FCIT Baqalah Assigned: Monday, February 10 th, 2014 Due: Thursday,
More informationCS 385 Operating Systems Fall 2011 Homework Assignment 5 Process Synchronization and Communications
CS 385 Operating Systems Fall 2011 Homework Assignment 5 Process Synchronization and Communications Due: Friday December 2 at 8:00 P.M. via Blackboard Overall Assignment Man Pages For this assignment,
More informationComputer Science E-50a: Introduction to Computer Science Using Java, I Handout #7 part 2
Computer Science E-50a: Introduction to Computer Science Using Java, I Handout #7 part 2 part 2 These problems are due prior to the start of lecture on Monday night, March 31. Part A The Reading You may
More informationProgramming Assignment 3
UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 3550 Section 002 Communication Networks Spring 2018 Programming Assignment 3 Introduction Having created a TCP client in programming assignment 2, it s
More informationThe Norwegian text is authoritative, this translation is provided for your convenience.
Contents 1 INF3190 Home exam 2 in English 1 1.1 Formalities............................ 1 1.2 Exercise.............................. 1 1.2.1 Details........................... 2 1.2.2 You shall deliver
More informationHwk 1: UNIX, C Programming, and Memory Management
Hwk : UNIX, C Programming, and Memory Management This homework may require the following equipment: C compiler Note that the homework is graded. For any questions, please contact us at sista@groupes.epfl.ch..
More informationOOP-8-DLList-1-HW.docx CSCI 2320 Initials Page 1
OOP-8-DLList-1-HW.docx CSCI 2320 Initials Page 1 If this lab is an Individual assignment, you must do all coded programs on your own. You may ask others for help on the language syntax, but you must organize
More informationMurrays Online Auction Portal (
Murrays Online Auction Portal (http://murraysonline.net/) Software User Manual (SUM) Ver. 1.0.2, Dated.13th Aug 2015 For MURRAY & CO., By Compucrafters India Private Limited 1 Abstract This document is
More informationCSE 1325 Project Description
CSE 1325 Summer 2016 Object-Oriented and Event-driven Programming (Using Java) Instructor: Soumyava Das Project III Assigned On: 7/12/2016 Due on: 7/25/2016 (before 11:59pm) Submit by: Blackboard (1 folder
More informationEvil Hangman Project
Evil Hangman Project Program Description: Evil Hangman is a program that actively cheats at Hangman. Instead of choosing a single word that the player tries to guess, the program maintains a set of words
More informationCS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis
CS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis Handout written by Julie Zelenski with edits by Keith Schwarz. The Goal In the first programming project, you will get
More informationCS 051 Homework Laboratory #2
CS 051 Homework Laboratory #2 Dirty Laundry Objective: To gain experience using conditionals. The Scenario. One thing many students have to figure out for the first time when they come to college is how
More informationCS 1653: Applied Cryptography and Network Security Fall Term Project, Phase 2
CS 1653: Applied Cryptography and Network Security Fall 2017 Term Project, Phase 2 Assigned: Tuesday, September 12 Due: Tuesday, October 3, 11:59 PM 1 Background Over the course of this semester, we will
More informationFall 2016 COP 3223H Program #4: Ads, flags and debates! Due date: Please consult WebCourses for your section
Fall 2016 COP 3223H Program #4: Ads, flags and debates! Due date: Please consult WebCourses for your section Objectives 1. To learn C syntax to solve problems that utilize assignment statements. 2. To
More informationCS 455/655 Computer Networks Fall Programming Assignment 1: Implementing a Social Media App Due: Thursday, October 5 th, 2017 (1pm)
CS 455/655 Computer Networks Fall 2017 Programming Assignment 1: Implementing a Social Media App Due: Thursday, October 5 th, 2017 (1pm) To be completed individually. Please review Academic Honesty noted
More informationHOW TO BUY AND SELL ON CRAIGSLIST
HOW TO BUY AND SELL ON CRAIGSLIST WHAT IS IT? Classified advertisements website that helps people... Buy or sell items locally Buy or sell services locally Find places to live Find jobs and more! CRAIGSLIST
More informationSoda Machine Laboratory
Soda Machine Laboratory Introduction This laboratory is intended to give you experience working with multiple queue structures in a familiar real-world setting. The given application models a soda machine
More informationKRONOCARD EBAY CONNECTOR
KRONOCARD EBAY CONNECTOR This document refers to Kronocard version 0.9.24 CONTENT 1 NOTES... 3 1.1 Changes... 3 2 Introduction... 3 3 Initial Setup / Configuration... 4 3.1 ebay Authorization... 4 3.1.1
More informationDue: Tuesday 29 November by 11:00pm Worth: 8%
CSC 180 H1F Project # 3 General Instructions Fall 2016 Due: Tuesday 29 November by 11:00pm Worth: 8% Submitting your assignment You must hand in your work electronically, using the MarkUs system. Log in
More informationECE 650 Systems Programming & Engineering. Spring 2018
ECE 650 Systems Programming & Engineering Spring 2018 Networking Transport Layer Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) TCP/IP Model 2 Transport Layer Problem solved:
More informationTips from the experts: How to waste a lot of time on this assignment
Com S 227 Spring 2018 Assignment 1 100 points Due Date: Friday, September 14, 11:59 pm (midnight) Late deadline (25% penalty): Monday, September 17, 11:59 pm General information This assignment is to be
More informationerfq Quoting Training Manual Version 3.1
e Training Manual Version 3.1 Aeroxchange Customer Support US Only 1-866-237-6243 International +1-972-556-8545 support@aeroxchange.com CONTENTS QUOTE SUBMITTING PROCESS... 3 LOG ON TO AEROXCHANGE...3
More informationIntroduction. Requirements. Internet Connection Microsoft Windows 98 or above Microsoft Internet Explorer Version 5.5 or above
Ver 1.3 15/jun/2006 Table of Contents Introduction 3 Requirements 3 Registration 4 Login 4 Bidding 5 Placing a Bid 7 Confirmation of your Bid 7 Successful Bid 8 Unsuccessful Bid 9 Outbid Notice 9 Closing
More informationQuestion 1: knn classification [100 points]
CS 540: Introduction to Artificial Intelligence Homework Assignment # 8 Assigned: 11/13 Due: 11/20 before class Question 1: knn classification [100 points] For this problem, you will be building a k-nn
More informationMaster Node Setup Guide
Introduction Welcome to this step by step guide that will take you through the process of creating your own Masternode. This guide is aimed at the casual Windows 10 PC user who has purchased Satoshi Coin
More informationLaboratory Activity 5: First Look at Classes
Laboratory Activity 5: First Look at Classes 1 Introduction The software company that you have been working for has asked you to developing a program that will be used by a Car Dealer. As the first stage
More informationStudent Guide INTRODUCTION TO ONLINE RESOURCES
Student Guide INTRODUCTION TO ONLINE RESOURCES Date: 08. June. 2017 By: Technical Support Team STUDENT GUIDE southwales.unicaf.org 1)Introduction...4 2)Student Panel (SIS)...4 2.1)Student Panel (SIS) Login...4
More informationCSC 3300 Homework 3 Security & Languages
CSC 3300 Homework 3 Security & Languages Description Homework 3 has two parts. Part 1 is an exercise in database security. In particular, Part 1 has practice problems in which your will add constraints
More informationCS 211 Programming Practicum Fall 2018
Due: Wednesday, 11/7/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will
More informationCarnegie Mellon University Department of Computer Science /615 - Database Applications C. Faloutsos & A. Pavlo, Fall 2015
Carnegie Mellon University Department of Computer Science 15-415/615 - Database Applications C. Faloutsos & A. Pavlo, Fall 2015 Homework 3 (by Anna Etzel) Due: hard and e-copy at 3:00pm, on Wednesday,
More informationCS1132 Spring 2016 Assignment 2 Due Apr 20th
CS1132 Spring 2016 Assignment 2 Due Apr 20th Adhere to the Code of Academic Integrity. You may discuss background issues and general strategies with others and seek help from course staff, but the implementations
More informationCS : Programming for Non-majors, Fall 2018 Programming Project #2: Census Due by 10:20am Wednesday September
CS 1313 010: Programming for Non-majors, Fall 2018 Programming Project #2: Census Due by 10:20am Wednesday September 19 2018 This second assignment will introduce you to designing, developing, testing
More informationThis homework is due by 11:59:59 PM on Thursday, October 12, 2017.
CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Homework 2 (document version 1.3) Process Creation and Inter-Process Communication (IPC) in C Overview This homework is due by 11:59:59
More informationLab Assignment 3 for ECE374
Lab Assignment 3 for ECE374 Posted: 02/25/18 Due: 03/08/18 In this lab, we ll take a quick look at the UDP and TCP transport protocol. Whenever possible you should hand in a Wireshark screenshot that you
More informationCIS 110 Introduction To Computer Programming. February 29, 2012 Midterm
CIS 110 Introduction To Computer Programming February 29, 2012 Midterm Name: Recitation # (e.g. 201): Pennkey (e.g. bjbrown): My signature below certifies that I have complied with the University of Pennsylvania
More informationCS1132 Fall 2009 Assignment 1. 1 The Monty Hall Dillemma. 1.1 Programming the game
CS1132 Fall 2009 Assignment 1 Adhere to the Code of Academic Integrity. You may discuss background issues and general solution strategies with others and seek help from course staff, but the homework you
More informationCIS 110 Fall 2016 Introduction to Computer Programming 13 Oct 2016 Midterm Exam
Name: CIS 110 Fall 2016 Introduction to Computer Programming 13 Oct 2016 Midterm Exam Recitation # (e.g., 201): Pennkey (e.g., eeaton): My signature below certifies that I have complied with the University
More informationHomework 1. Hadachi&Lind October 25, Deadline for doing homework is 3 weeks starting from now due date is:
Homework 1 Hadachi&Lind October 25, 2017 Must Read: 1. Deadline for doing homework is 3 weeks starting from now 2017.10.25 due date is: 2017.11.15 5:59:59 EET 2. For any delay in submitting the homework
More informationProgramming Assignment 8 ( 100 Points )
Programming Assignment 8 ( 100 Points ) Due: 11:59pm Wednesday, November 22 Start early Start often! README ( 10 points ) You are required to provide a text file named README, NOT Readme.txt, README.pdf,
More informationProject #1: Tracing, System Calls, and Processes
Project #1: Tracing, System Calls, and Processes Objectives In this project, you will learn about system calls, process control and several different techniques for tracing and instrumenting process behaviors.
More informationFishnet Assignment 1: Distance Vector Routing Due: May 13, 2002.
Fishnet Assignment 1: Distance Vector Routing Due: May 13, 2002. In this assignment, you will work in teams of one to four (try to form you own group; if you can t find one, you can either work alone,
More informationCMPSCI 187 / Spring 2015 Hanoi
Due on Thursday, March 12, 2015, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 Contents Overview 3 Learning Goals.................................................
More informationQUIZ. Can you find 5 errors in this code?
QUIZ Can you find 5 errors in this code? QUIZ What (if anything) is wrong with this code? public: ; int Constructor argument need! QUIZ What is meant by saying that a variable hides another? I.e. have
More informationCS4516 Advanced Computer Networks. Program 1 {February 4, 2013} 70 points
Program 1 {February 4, 2013} 70 points Disaster Victim Location Database Using Selective Repeat in the Data Link Layer Due: Sunday, February 10, 2013 at 11:59 p.m. This assignment consists of two components:
More informationEmbedded System Design and Modeling EE382N.23, Fall 2017
Embedded System Design and Modeling EE382N.23, Fall 2017 Homework #1 Design Languages Assigned: September 6, 2017 Due: September 18, 2017 September 20, 2017 Instructions: Please submit your solutions via
More informationFall 2013 Program/Homework Assignment #2 (100 points) -(Corrected Version)
CSE 11 START EARLY! Fall 2013 Program/Homework Assignment #2 (100 points) -(Corrected Version) Due: 11 October 2013 at 11pm (2300) Book Exercises Cover Chapters: 3-4 This is a combination of written responses
More information