{"id":19,"date":"2006-02-16T19:03:24","date_gmt":"2006-02-17T01:03:24","guid":{"rendered":"http:\/\/www.p14nd4.com\/blog\/2006\/02\/16\/programming-assignments\/"},"modified":"2025-11-03T21:35:39","modified_gmt":"2025-11-04T03:35:39","slug":"programming-assignments","status":"publish","type":"post","link":"http:\/\/www.p14nd4.com\/blog\/2006\/02\/16\/programming-assignments\/","title":{"rendered":"Programming Assignments"},"content":{"rendered":"<p>Well, my final full semester has started, which includes a fairly <a href=\"\/umnp2p\/schedule-spring06.html\" title=\"Spring 2006 Class Schedule\">grueling schedule<\/a> totaling 20 credits of 4000-5000 level csci courses. Crazy? Yes. Am I going to do well in all my classes? No. Am I going to take a year or two off my life through sleep deprivation? Probably. Regardless, I&#8217;m taking some classes that are finally of potential interest to me. The University of Minnesota B.S. Computer Science program requires that students declare an <q>upper division emphasis,<\/q> which I kind of made up on a whim the night I realized I had to register for my classes. If you clicked the link above, you know that three of my classes are network and\/or internet programming (which happens to probably be my area of most interest), so my emphasis was named something along the lines of <q>Internet\/Information Services.<\/q><\/p>\n<p>Anyway, the two <i>network<\/i> programming courses I&#8217;m in have just released their [first] big programming assignments for the semester, both of which are kind of interesting, and I dare say I might even be excited to work on them. If you counted, you&#8217;ll notice that still leaves me with four other classes about which I have not expressed any excitement. Three of those aren&#8217;t <i>bad<\/i> per se, just not necessarily exciting to me. The fourth is Data Mining. My feelings on that class can be easily summarized as follows:<\/p>\n<blockquote><p>:-(<\/p><\/blockquote>\n<p>&#8230;But I digress. Getting back to my main motivation for this post, which was to talk about these two programming assignments.<\/p>\n<h3>Csci4211 &#8211; Introduction to Computer Networks<\/h3>\n<p>The full assignment is defined <a href=\"http:\/\/www-users.itlabs.umn.edu\/classes\/Spring-2006\/csci4211\/P2PM\/P2PM.htm\" rel=\"external\" title=\"Csci4211 Programming Assignment\">here<\/a>, if you&#8217;re eager enough to actually read about it yourself. The assignment is titled <q>Peer-to-Peer (P2P) File Sharing System with Messaging,<\/q> which is fairly self explanatory. To understate the situation, it&#8217;s not going to wipe out Kazaa or BitTorrent any time soon, as it will be written for a command-line\/console interface (no <acronym title=\"Graphical User Interface\">GUI<\/acronym>), and (based on my brief scan of the assignment) can only actually exchange files between directly connected nodes (there&#8217;s no central server).<\/p>\n<h3>Inet4021 &#8211; Network Programming<\/h3>\n<p>Dammit. I hibernated my computer and lost the paragraph I&#8217;d already written about this assignment. Surely this time around will be less exciting than the first; I apologize. That said, I&#8217;ll proceed. The assignment is only available in .doc format <a href=\"http:\/\/www-users.itlabs.umn.edu\/classes\/Spring-2006\/inet4021\/lab3.doc\" title=\"Inet4021 Lab03\" rel=\"external\">here<\/a>, which you probably don&#8217;t want to go to the trouble of downloading and opening, so I&#8217;ll summarize. The assignment is boringly titled <q>Lab #3,<\/q> which isn&#8217;t of much use to you, but the primary objective is: <q>Based on <a href=\"http:\/\/www.ietf.org\/rfc\/rfc1945.txt\" title=\"RFC 1945\" rel=\"external\">RFC 1945,<\/a> you will need to write an HTTP client that meets the 1.0 specification.<\/q> For the less technically oriented individuals out there, an <q>HTTP client<\/q> is more commonly known as a web browser (such as Internet Explorer). This ain&#8217;t yo&#8217; momma&#8217;s web browser, though&#8230; Don&#8217;t expect pretty graphics, flash animations, or anything fun like that &#8230; a closer comparison would be <a href=\"http:\/\/www.gnu.org\/software\/wget\/\" title=\"wget\" rel=\"external\">wget<\/a>, though this is even less advanced than that. I think a more fitting description would be a URL document grabber. It&#8217;s approximately equivilent to going to Start -&gt; Run -&gt; cmd, and typing:<\/p>\n<blockquote><p><code>telnet www.umn.edu 80<br \/>GET \/ HTTP\/1.0<\/p>\n<p><em>[Press enter twice]<\/em><\/code><\/p><\/blockquote>\n<p>This returns the following, which is approximately what I understand this program is supposed to output:<\/p>\n<blockquote><p><code>HTTP\/1.1 302 Found<br \/>\nDate: Fri, 17 Feb 2006 00:23:25 GMT<br \/>\nServer: Apache\/1.3.33 (Unix) mod_fastcgi\/2.2.12 mod_ssl\/2.8.23 OpenSSL\/0.9.7g<br \/>\nLocation: http:\/\/www1.umn.edu\/twincities\/index.php<br \/>\nConnection: close<br \/>\nContent-Type: text\/html; charset=iso-8859-1<\/p>\n<p>&lt;!DOCTYPE HTML PUBLIC <q>-\/\/IETF\/\/DTD HTML 2.0\/\/EN<\/q>&gt;<br \/>\n&lt;HTML&gt;&lt;HEAD&gt;<br \/>\n&lt;TITLE&gt;302 Found&lt;\/TITLE&gt;<br \/>\n&lt;\/HEAD&gt;&lt;BODY&gt;<br \/>\n&lt;H1&gt;Found&lt;\/H1&gt;<br \/>\nThe document has moved &lt;A HREF=<q>http:\/\/www1.umn.edu\/twincities\/index.php<\/q>&gt;here&lt;\/A&gt;.&lt;P&gt;<br \/>\n&lt;HR&gt;<br \/>\n&lt;ADDRESS&gt;Apache\/1.3.33 Server at www.umn.edu Port 80&lt;\/ADDRESS&gt;<br \/>\n&lt;\/BODY&gt;&lt;\/HTML&gt;<\/code><\/p><\/blockquote>\n<p>To continue my line of reference from above, this client certainly isn&#8217;t going to blow Internet Explorer out of the water. Considering my <q>dream job<\/q> (take that very lightly) is working for <a href=\"http:\/\/my.opera.com\/omega_drh\/affiliate\/\" title=\"Opera Software ASA\" rel=\"external\">Opera Software ASA<\/a>, this project is of particular interest to me. I actually kind of wish it was a more extensive project (though, don&#8217;t quote me on that in three weeks when it&#8217;s due, and I haven&#8217;t started yet).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, my final full semester has started, which includes a fairly grueling schedule totaling 20 credits of 4000-5000 level csci courses. Crazy? Yes. Am I going to do well in all my classes? No. Am I going to take a year or two off my life through sleep deprivation? Probably. Regardless, I&#8217;m taking some classes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-19","post","type-post","status-publish","format-standard","hentry","category-technical"],"_links":{"self":[{"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/posts\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":1,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/posts\/19\/revisions"}],"predecessor-version":[{"id":347,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/posts\/19\/revisions\/347"}],"wp:attachment":[{"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/media?parent=19"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/categories?post=19"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/tags?post=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}