Location | Contact Info |
---|---|
π« Office: Not on campus Fall 2023 | π Phone: 301-613-9130 |
π Office Hours: By appointment | βοΈ Email: rharvey@loyno.edu |
This course introduces students to the world of internet and networked systems development. Concepts related to distributed systems development; concurrent and asynchronous processing; process communications and network transport protocols; distributed application architecture and design; deployment, monitoring and debugging of internet-based systems will be covered.
This course explores the concepts and technologies that are used in modern Internet systems, and provides the necessary skills and knowledge of software technologies needed for creating Internet/Web services. It is designed to expose students to web content presentation and generation technologies, programming, and building multi-tiered client/server web applications.
One of:
To be successful in this course, students are expected to have practical experience building multi-file/multi-component software projects. In particular, students should be comfortable working with data structures, designing classes and class interfaces, and writing software modules that form part of a larger, multi-file application.
Students will experience the design and construction of internet-based systems through hands-on interaction with course material. The course will provide students with a basis of theory upon which to reflect upon experiences: designing and building server-side systems that must communicate with client systems via internet protocols; designing and building client systems that operate and interact with the server system concurrently and asynchronously; debugging process timing and network failure issues; and understanding the network designs and protocols that enable the modern internet.
Upon completion of this course, students should be able to:
π The Illustrated Network: How TCP/IP Works in a Modern Network, 2nd Edition, by Walter Goralski. Morgan Kaufmann/Elsevier, 2017. ISBN 978-0-12-811027-0.
You DO need to obtain a copy of this book, at least for the semester. The Monroe Library has been able to provide a digital copy of the book. You should be able to access that via the library catalog. If you have trouble, you can contact the library staff for help.
This book is also available for sale online for between $70 and $90, and is a fantastic reference for this content for the future.
π Eloquent Javascript, 3rd Edition, by Marijn Haverbeke. Marijn Haverbeke, 2018. ISBN 978-15-932795-0-9.
Companion website: https://eloquentjavascript.net/.
This version of the book is available for free online. You DO NOT need to buy this book. In addition, the online version is interactive, allowing you to try out code and explore the output while you read.
A print version is available from No Starch Press. If you would like to purchase the book, you can get there from the book website.
π Designing Distributed Systems, 1st Edition, by Brendan Burns. O'Reilly Media, 2018. ISBN 978-14-919836-4-5.
Companion website: http://shop.oreilly.com/product/0636920072768.do.
This book will be a good reference for the project, particularly if you choose to use a container-based architecture to build your API and web components.
You DO NOT need to buy this book, but it is a good reference if you can afford it.
π Distributed Systems, 3rd Edition, by Maarten van Steen and Andrew S. Tanenbaum. Maarten van Steen, 2017. ISBN 978-15-430573-8-6 (print), 978-90-815406-2-9 (digital).
Companion website: https://www.distributed-systems.net/index.php/books/distributed-systems-3rd-edition-2017/.
This book is available free online, and will only be used as reference. You DO NOT need to buy this book.
π Building the Web of Things, 1st Edition, by Dominique Guinard and Vlad Trifa. Manning Publications, 2016. ISBN 978-16-172926-8-2.
Companion website: https://webofthings.org/book/.
You do NOT need to buy this book. This book is available for sale online for about $35.
This book is a good resource if you are interested in Internet of Things and hardware-integrated internet software. Most of this content will NOT be covered this semester in class.
During this course, you will build a multi-component internet system using some of the concepts learned through lecture and demo.
The project entails creating two key components:
Several time periods during class this semester are set aside for demonstrations, homework help, or lab exploration. These are opportunities for you to see how such projects are built, ask questions about issues you are having on your own project, or tell your peers about problems youβve experienced while working on your project and how you overcame them. These sessions will be enough time to clarify the required functionality for each assignment with instructor/faculty assistance, get started on project work or assignments, and get help on problems you are experiencing while working on projects or assignments. However, these sessions likely will not be enough to complete the project. Please expect to dedicate time outside of class to working on the project on your own.
All programming for the project will be done using JavaScript. The required βtextbookβ Eloquent JavaScript, 3rd Ed. (see Textbooks above) is a great interactive online resource that allows you to play with the code examples from within the browser to get a feel for how the code works. It teaches modern JavaScript coding style and syntax, which is what weβll use during the majority of this course.
JavaScript was originally meant for the web browser. However, it is now used often in various non-browser ways. For this project, weβll use the following JavaScript based tools:
During this course, we will be learning to use a variety of basic Linux command line tools (that are available on almost every installation of Linux) to inspect the networks of the Internet and how our computers interact with them.
In some cases, these are not enough, and we want to inspect the packet-level data being transmitted through the network. In such cases, there are a few useful tools you can use.
Although not strictly related to the project, you may find some of these tools useful in debugging what you build.
tshark
, the command-line version of Wireshark. This was originally named βEtherealβ, with command-line version tethereal
.libpcap
, which is part of the tcpdump
command line packet analyzer. Somewhat harder to use, it provides raw capture capability for cases where Wireshark is not enough. (Your instructor has not found any cases like this yet.)nmap
command line tool, provides facilities for scanning networks and systems for security vulnerabilities.During this course, we will use Wireshark during demos to explore the protocol layers of internet message packets when we dive into the details of the various protocols.
Be creative and make your project yours. Youβll have fun, and youβll create something you can be proud to show off to your classmates and even to potential employers!
Weβll use the final exam period to host a celebration of our project work. Youβll have the chance to show off what you did and talk about why itβs important to you, and weβll cheer each other on as we do.
During this course, you will also be keeping a journal with at least weekly reflections on your experiences, including but not limited to the following topics:
Journal entries will be due at the end of the day every Monday (i.e., just before midnight Central time), with the exception of the first entry, which youβll do during the first class period. Journal entries must be submitted using the REFLECT assignments in Canvas. Be sure to write your entry into the Reflection assignment with the appropriate due date.
Additional journal entries beyond those required weekly may be helpful as you capture your thoughts and information about your learning that may be useful in determining what grade you believe you earned. You can add those by resubmitting any already submitted Reflection assignment with additional content. Be sure to date the new entry at the beginning so itβs obvious that itβs a new entry.
At the midpoint and at the end of the semester, you will be required to write short (5-10 pages) personal reflection essays based on your reflection journaling examining the following questions:
These papers are due:
Papers must be submitted in PDF format through the Canvas assignment, which uses plaigiarism detection. Unless you have arranged with me ahead of time due to some unforeseen circumstance, essays emailed to me or transmitted by some other mechanism result in you forfeiting your ability to weigh in on your grade for that portion of the course, meaning that my decision, based on what I know of your work so far, will be final.
Each of your grade proposals, so long as they are well-defended with specific personal reflections, will be the primary consideration for your grade at the midterm and for your final grade in the course respectively.
In order to ensure your grade proposal is well-defended, you will want to focus on the following:
Content. In order to effectively argue for a passing grade, your paper must address all the above questions. Reflection essays may explore other topics related to these questions if they are relevant to demonstrating your learning or defending your grade proposal, but if the listed questions are not addressed, this will significantly weaken your argument. In preparation for this, you may wish to address at least one of those questions in each journal entry, and not address the same question each week.
Depth of Personal Reflection. Your paper and journal entries should show depth of reflection. Learning often means struggling not only with new concepts and ideas, but also with your own habits and perceptions. Spend enough time thinking about this and reflecting on these questions that you are able to feel that struggle. Your argument for your grade will be much more convincing if you have put in this work and are able to discuss it.
Correctness. In addition to content, the correctness of your writing (spelling, grammar, punctuation, word choice, etc.), and the readability and formatting of your submitted paper (font choice, margins, line length, spacing, etc.), are important factors in making a convincing written defense. Papers that are difficult to read result in fragmented understanding of your argument and disrupt the ideas you are trying to communicate. Please be careful in your writing and be sure to proofread before submitting.
Grading in this course is non-traditional. While you will be receiving direct feedback on the assignment and project work you do, your reflection journal entries, and your participation in class, you will not be receiving numeric or letter grades for each individual assignment or class period. Instead, I will set your mid-term and final letter grades based on the outcome of the following two-step process.
Step 1. You propose your grade in Reflection Essays. You will have two opportunities, one at mid-term and one at the end of the course, to propose what letter grade you feel youβve earned in the course and to defend it based on your effort, learning, accomplishments, and reflections. These proposals will be submitted in the form of reflection papers, as detailed above in Assessments.
Step 2. I assess your proposal and either accept or adjust. When I receive your proposal, I will use your proposed grade if:
However, I will adjust your proposed grade up or down as needed if I believe that any of the following are true:
In the case where an adjustment is needed, I will discuss that with you in a one-on-one conversation scheduled as soon as possible outside of classtime (usually within office hours).
Early Feedback Opportunity. If you are concerned about whether you have earned a specific grade or how to defend a grade proposal, you are welcome to talk with me about what you plan to propose while working on your reflection paper, and I can help guide you on what might be compelling in defense of that grade. This must be done early in the assignment period and not at the last minute. If you wait until the last minute, I may not be able to accomodate a meeting prior to having to submit grades.
The following schedule of topics and activities represents the best estimation of the semester schedule based on available information at the time of writing. Dates and activities are subject to change in response to needs that come up during the semester. You will be notified in class and/or via Canvas or text message about any adjustments to the schedule.
Week β’ Session | Date | What You Need to Know |
---|---|---|
August 2023 | ||
Course Week 1 β Aug 20 - 26, 2023 | ||
W1 β’ π |
Tue 08/22 |
Readings & Preparation: |
W1 β’ S1:a |
Tue 08/22 |
Class Format:
Topics:
Assigned Today:
|
W1 β’ S1:b |
Tue 08/22 |
Class Format:
Topics:
Assigned Today:
|
W1 β’ π |
Tue 08/22 |
Assigned Today:
|
Course Week 2 β Aug 27 - Sep 2, 2023 | ||
W2 β’ π |
Mon 08/28 |
Due Today:
|
W2 β’ π |
Tue 08/29 |
Readings & Preparation: |
W2 β’ S2:a |
Tue 08/29 |
Class Format:
Topics:
|
W2 β’ S2:b |
Tue 08/29 |
Class Format:
Topics:
|
W2 β’ π |
Tue 08/29 |
Assigned Today:
|
September 2023 | ||
Course Week 3 β Sep 3 - 9, 2023 | ||
W3 β’ π |
Mon 09/04 |
Due Today:
|
W3 β’ π |
Tue 09/05 |
Readings & Preparation:
Due Today:
|
W3 β’ S3:a |
Tue 09/05 |
Class Format:
Topics:
|
W3 β’ S3:b |
Tue 09/05 |
Class Format:
Topics:
|
W3 β’ π |
Tue 09/05 |
Assigned Today:
|
Course Week 4 β Sep 10 - 16, 2023 | ||
W4 β’ π |
Mon 09/11 |
Due Today:
|
W4 β’ π |
Tue 09/12 |
Readings & Preparation: Due Today:
|
W4 β’ S4:a |
Tue 09/12 |
Class Format:
Topics:
|
W4 β’ S4:b |
Tue 09/12 |
Class Format:
Topics:
|
W4 β’ π |
Tue 09/12 |
Assigned Today:
|
Course Week 5 β Sep 17 - 23, 2023 | ||
W5 β’ π |
Mon 09/18 |
Due Today:
|
W5 β’ π |
Tue 09/19 |
Readings & Preparation: |
W5 β’ S5:a |
Tue 09/19 |
Class Format:
Topics:
|
W5 β’ S5:b |
Tue 09/19 |
Class Format:
Topics:
|
W5 β’ π |
Tue 09/19 |
Assigned Today:
|
Course Week 6 β Sep 24 - 30, 2023 | ||
W6 β’ π |
Mon 09/25 |
Due Today:
|
W6 β’ π |
Tue 09/26 |
Readings & Preparation:
Due Today:
|
W6 β’ S6:a |
Tue 09/26 |
Class Format:
Topics:
|
W6 β’ S6:b |
Tue 09/26 |
Class Format:
Topics:
|
W6 β’ π |
Tue 09/26 |
Assigned Today:
|
October 2023 | ||
Course Week 7 β Oct 1 - 7, 2023 | ||
W7 β’ π |
Mon 10/02 |
Due Today:
|
W7 β’ π |
Tue 10/03 |
Readings & Preparation: Due Today:
|
W7 β’ S7:a |
Tue 10/03 |
Class Format:
Topics:
|
W7 β’ S7:b |
Tue 10/03 |
Class Format:
Topics:
|
W7 β’ π |
Tue 10/03 |
Assigned Today:
|
W7 β’ π |
Fri 10/06 |
Due Today:
|
Course Week 8 β Oct 8 - 14, 2023 | ||
W8 β’ π |
Tue 10/10 |
NO CLASS - FALL BREAK |
Course Week 9 β Oct 15 - 21, 2023 | ||
W9 β’ π |
Mon 10/16 |
Due Today:
|
W9 β’ π |
Tue 10/17 |
Readings & Preparation: Due Today:
|
W9 β’ S8:a |
Tue 10/17 |
Class Format:
Topics:
|
W9 β’ S8:b |
Tue 10/17 |
Class Format:
Topics:
|
W9 β’ π |
Tue 10/17 |
Assigned Today:
|
Course Week 10 β Oct 22 - 28, 2023 | ||
W10 β’ π |
Mon 10/23 |
Due Today:
|
W10 β’ π |
Tue 10/24 |
Readings & Preparation: Due Today:
|
W10 β’ S9:a |
Tue 10/24 |
Class Format:
Topics:
|
W10 β’ S9:b |
Tue 10/24 |
Class Format:
Topics:
|
W10 β’ π |
Tue 10/24 |
Assigned Today:
|
Course Week 11 β Oct 29 - Nov 4, 2023 | ||
W11 β’ π |
Mon 10/30 |
Due Today:
|
W11 β’ π |
Tue 10/31 |
Readings & Preparation:
Due Today:
|
W11 β’ S10:a |
Tue 10/31 |
Class Format:
Topics:
|
W11 β’ S10:b |
Tue 10/31 |
Class Format:
Topics:
|
W11 β’ π |
Tue 10/31 |
Assigned Today:
|
November 2023 | ||
Course Week 12 β Nov 5 - 11, 2023 | ||
W12 β’ π |
Tue 11/07 |
NO CLASS - ELECTION DAY: GO VOTE! |
Course Week 13 β Nov 12 - 18, 2023 | ||
W13 β’ π |
Mon 11/13 |
Due Today:
|
W13 β’ π |
Tue 11/14 |
Readings & Preparation: Due Today:
|
W13 β’ S11:a |
Tue 11/14 |
Class Format:
Topics:
|
W13 β’ S11:b |
Tue 11/14 |
Class Format:
Topics:
|
W13 β’ π |
Tue 11/14 |
Assigned Today:
|
Course Week H β Nov 19 - 25, 2023 | ||
WH β’ π |
Mon 11/20 |
Due Today:
|
WH β’ π |
Tue 11/21 |
Readings & Preparation: Due Today:
|
WH β’ S12:a |
Tue 11/21 |
Class Format:
Topics:
|
WH β’ S12:b |
Tue 11/21 |
Class Format:
Topics:
|
WH β’ π |
Tue 11/21 |
Assigned Today:
|
Course Week 14 β Nov 26 - Dec 2, 2023 | ||
W14 β’ π |
Mon 11/27 |
Due Today:
|
W14 β’ π |
Tue 11/28 |
Readings & Preparation: Due Today:
|
W14 β’ S13:a |
Tue 11/28 |
Class Format:
Topics:
|
W14 β’ S13:b |
Tue 11/28 |
Class Format:
Topics:
|
W14 β’ π |
Tue 11/28 |
Assigned Today:
|
December 2023 | ||
Course Week 15 β Dec 3 - 9, 2023 | ||
W15 β’ π |
Mon 12/04 |
Due Today:
|
W15 β’ π |
Tue 12/05 |
Readings & Preparation:
Due Today:
|
W15 β’ S14:a |
Tue 12/05 |
Class Format:
Topics:
|
W15 β’ S14:b |
Tue 12/05 |
Class Format:
Topics:
|
W15 β’ π |
Tue 12/05 |
Assigned Today:
|
Course Week 16 β Dec 10 - 16, 2023 | ||
W16 β’ π |
Tue 12/12 |
Readings & Preparation:
|
W16 β’ SF |
Tue 12/12 |
Class Format:
Topics:
|
W16 β’ π |
Fri 12/15 |
Due Today:
|
Please maintain an atmosphere of respect toward others.
By this point in your degree program, you should be able to manage your time appropriately and professionally. I expect you to be in class and to participate during every class period. Attendance is required and promptness is appreciated.
If there is a reason you must be absent, please arrange with the instructor in advance so that you can receive instruction for how to keep up with the material. Any absence not arranged with the instructor and approved in advance will result in a loss of the daily classtime participation grade if applicable, or count against you in consideration of your grade proposal otherwise. (See grading policy above.)
Absences from class will be excused only in accordance with the University Attendance Policy's required circumstances.
Please come to class on time and remain until class is dismissed.
Cell phones must be turned off during class, unless being used to test project work or participate in class meetings.
Students must check their Loyola email at least daily.
As a professional, if you miss a deadline, there are consequences.
In this class, your instructor is available and happy to help you with any road blocks you encounter in the assigned work. Please start on the assignments early, and ask for help if you need it. Although we are using non-standard grading, instances of unfinished work or of work not turned in before the deadline reflect poorly on your ability to perform the skills you're learning, and will result in a lower grade at the midterm and/or final.
For the project, you should treat assignment deadlines as professional project deadlines. Please do your best to complete all requirements before the deadline.
Notify the instructor as soon as you are aware of a delay in completion of project work. In many cases, your instructor may be able to assist you in getting past the difficult point in the completion of the assignment.
Even if you are not finished, please turn in what you have completed before the deadline.
If you wish to turn in another version following the deadline, you may do so at any time.
For all other classroom activities, late work will not be accepted, subject to the exceptions below. This is because, for assignments, we will be moving on to other topics and must keep pace to finish the material during the semester. For journals, the timing of the reflection is important to you getting a clear picture of your learning process.
The only exceptions to this classroom policy are for absences which fall under the University Attendance Policy.
Under that policy, excused absences require written documentation prior to the absence. Some excused absences related to health or mental health conditions may require documentation through the Office of Student Affairs or the Office of Disability Services.
In most cases, appropriate documentation consists of an email to the instructor prior to the start of class, but preferably more than 4 hours prior. Please email the instructor as soon as you know you will need to be absent.
Failure to appropriately document such absences will reflect poorly on your learning process, and may affect your grade.
In a professional setting, there are significant consequences for dishonesty and lack of integrity, including legal consequences, market reaction, and employer discipline or termination of employment.
As your instructor for this course, I have gone out of my way to ensure that you have a great opportunity to learn the course material in both theoretical and concrete ways. Your part in this learning effort is to do your own original work and give appropriate credit for legitimate help you have received.
In keeping with this, students are expected to maintain the highest standards of academic and professional integrity. Behavior that violates these standards is not acceptable.
Some examples of unacceptable behavior in this course are:
Cheating on quizzes or examinations, plagiarism, improper acknowledgment of sources in essays, and the use of a single essay or paper in more than one course without permission are considered very serious offenses and shall be grounds for disciplinary action as outlined in the current bulletin. Agreement between the student and the faculty member that a violation has occurred, or no response from the student, will result in the assignment of a lower grade or an F to the test or assignment, or in the case of a serious violation, a lower grade or F for the course.
Dishonesty breaks trust, and will be taken very seriously.
In this course, if I suspect you are in violation of the University policy on Academic Honesty and Plagiarism in any way, whether on required assignments, exams, project work, extra credit assignments, or anything else related to this course, I will impose the highest penalty allowed.
For your benefit, the University policy on Academic Honesty and Plagiarism is available in the University Bulletin at https://bulletin.loyno.edu/regulations/academic-honesty-and-plagiarism, including procedures associated with processing violations of the policy. Please read it and be familiar with it, as you will be responsible for ensuring your own compliance with it.
https://academicaffairs.loyno.edu/sites/default/files/fall_2023_syllabus_part_ii_1.pdf