------------------------- Week 01 Notes for CST8165 ------------------------- -Ian! D. Allen - idallen@idallen.ca Remember - knowing how to find out an answer is more important than memorizing the answer. Learn to fish! RTFM! (Read The Fine Manual) Home Page and Course Outline Find the Winter 2007 CST8165 course home page via Blackboard or via: http://teaching.idallen.com/cst8165/07w/ Make sure you find the page for this term, not last term! Bookmark it. I do not keep any course files on Blackboard. Read the course home page carefully, including the parts about plagiarism and course notes. Note the important dates. Write down *on paper* the location of the Alternate Web Notes. Read the Course Outline, including the parts about tests and lab attendance. Ensure that you are registered in both the lecture section of the course (010) and only one of the two Lab sections (011 or 012). Find and look at my Timetable. Know how to set up an office appointment with me by email. Review the Course Outline: cst8165-07w.pdf EMail and Web-based EMail archives EMail is a critical component of course delivery for this course. Forward your Algonquin email (see the link on the course home page). Test to make sure that your forwarded Algonquin email works! Send yourself a test message. You must have a working Algonquin EMail address for this course (that you can forward elsewhere). You must read your course email regularly, either in your mailbox or via the web archives. For class online discussion I'm using a Course Mailing List, available as a link on the top left of the Course Home Page. Please post questions related to course content to this mailing list. (Please answer the questions if you know the answer!) Do not send me private email questions about course content; post course questions to the mailing list so I can answer them there. Attendance Attendance is also critical to course success. If you know the material and don't need to come to classes, ask for a Prior Learning Assessment. If you paid to be here, please be here. Lab attendance is recorded - make sure you're signed in each week. Taking Notes You will need to take notes in class. Not everything I say ends up in these online files. If you have a question about course content, the first thing I will ask is to see your notes, to see what you wrote down about the topic. (Often the answer is there!) Textbook There is no assigned textbook. The Internet is your (cheap) friend. I will post URL references for much of the course material. Workload The overall term workload sometimes overwhelms students who try to leave everything to the last minute. You need to put in approximately an extra hour per day, per course, to keep up. There aren't enough hours in a day to catch up in mid-term. Timeliness Late assignments are penalized, usually resulting in a mark of zero. The due date for an assignment is given in the assignment. Read each assignment to know the due date. Preparation Lab time is precious. Most lab exercises are time-limited and will require you to have done advance preparation. If you haven't read the material and done the preparation, you won't finish on time. Linux Working Environment The material taught and used in this course is intended to be portable; you can use most any Linux machine to write and test your code. The final test run must be on the machine given in the assignment specification. This might be one of the Lab Linux machines, or it might be a different machine. Read carefully. Off-hours Lab Access You are encouraged to use the lab outside of assigned lab hours (perhaps even by remote SSH). The hours of operation are posted on the door. You may ask other instructors if you may work quietly at the back of their classes. Remote Access For Windows users, the "ssh" protocol is available in such programs as "ewan" and "PuTTY", which you can download for free from the Internet. Do a Google search for: putty download You need to use the Algonquin VPN to get to the T127 Linux Lab; but, be aware that this VPN is not a split-tunnel and *all* your Internet traffic will pass through it. http://algonquincollege.com/its/ http://algonquincollege.com/its/support/connecthome/index.htm Running Linux at Home You may download and install most any Linux distribution at home for free. Most any distribution will be support the material taught in this course. Many Linux distributions (e.g. Knoppix, Mandrake Live, Ubuntu) will boot directly from a CDROM and run entirely in memory, bypassing the need to do any disk installation at all. Be aware that when you shut down such an in-memory system, everything is lost - save any important files on real disk first. Linux User Groups See the Ottawa Canada Linux User Group (OCLUG): http://www.oclug.on.ca/ They meet on the first Tuesday of every month. Plagiarism http://www.cbc.ca/story/sports/national/2004/11/24/Sports/taylor041124 "The lead sports columnist of the Winnipeg Free Press has resigned after he was accused of plagiarizing parts of an article published earlier this month." You must attribute the source of material you use that isn't yours. You earn marks for the new material that you write, not code that comes from other sources. Check that you can login to machines in the T127 Linux Lab: Your initial password is/was: just2day Change it. Remember it. I cannot reset passwords; see Dick Campbell down the hall. Review VIM: You will need to know how to use the VIM text editor to modify files under Unix/Linux. Review the VIM tutorial mentioned in this Notes file: vi_basics.txt The VI (VIM) Editor - Basics * At most Linux shell prompts you can type: vimtutor See file vi_basics.txt in the course notes for details. See the vi_refcard reference card in the course notes. Comments on lab work - read the whole question before starting to answer it - the hints are at the end of the question - don't use casts to solve C declaration problems; fix the declaration - casts hide errors - how do you search for text in a web page? - how does wget work? - when inserting the SO_REUSEADDR code, how do you know what arguments to pass? do you define your own variables or use the variables already in your code? - blanks and blank lines affect Makefile operation - target command lines must start with a TAB, not blanks - don't have lines with trailing blanks below a target - separate targets by empty lines - in VIM ":set list" will show tabs and trailing blanks - ":set nolist" to turn it off Unix and the Internet: - the Internet is not just the WWW (HTTP) - but Algonquin College blocks most non-HTTP traffic - in particular, the SMTP port (25) is blocked to external sites - blocks are "drop packet", not "refuse packet" types; they time out - WWW slashes are "forward" slashes because the WWW grew up on Unix machines. DOS/Windows came much later. - Be aware of the history and importance of Open Source in the development of the Internet and its protocols (e.g. RFC). - Internet development was Open Source: - Internet Engineering Task Force (IETF): "Rough consensus and running code." "When I was studying Physics the quickest way to end an argument was to show the explanation in mathematics (albeit a lot of handwaving mathematics!). Most software developers on the otherhand do not grok math, however they surely do grok code. Therefore if you could explain your arguments through code then you would have improved your odds of getting your message through." http://www.manageability.org/blog/stuff/rest-explained-in-code/view "Be liberal in what you accept, and conservative in what you send" (Jon Postel, TCP/IP developer) "If we were all conservative in what we do, then we wouldn't do much that is new, or different. This would seem to retard progress. Of course, the same would be true in protocols so perhaps we need a "where possible" qualifier." http://www.aaronsw.com/weblog/000776 - text-based Internet protocols pre-date XML (everything is text in Unix) - Unix was full of tools to deal with text - an ethereal dump of protocol is often very readable - open-source discussions occur with source code samples - FLOSS (Free/Libre Open Source Software) - Tim Berners-Lee doesn't get royalties for your web site Find Lab #1 as lab01.txt in the course notes.