Table of Contents
Course Content
This course covers the networking stack using a top-down approach. We start with some networking principles, then traverse the networking stack, skipping over the physical layer, and cover some special topics related to networking.
Course Makeup
This course is made up of three major components:
-
Labs. Labs will generally be due every week on Fridays. Occasionally, you get an extra week for a lab when you are implementing a new concept. Labs are turned in through Github. For every lab, there is also a feedback component. This feedback gives you a chance to tell me what you liked and did not like about the lab so that I can improve the labs for future years. Writing good code, and not code that works, is an important part of this class. To help facilitate better code craftsmanship, you will be meeting with randomly selected groups a few times throughout the semester. This meeting will give you a chance to talk about the problems you faced and show each other how you implemented the lab. The point of this exercise is to learn from each other. These craftsmanship meetings will be a small part of your grade.
-
Homeworks. Homeworks are due one week after the unit’s material is covered. They will cover information from the lecture and book. They will typically consist of problems from the textbook and a Wireshark lab, where you get hands-on experience with protocols using Wireshark. The Wireshark labs can be pretty tedious, so rather than submitting endless screenshots and meaningless packet information, you will be doing the Wireshark labs based on the honor system. Do the Wireshark lab and indicate that you have done them on your homework—that’s the only proof I need.
-
Exams. There are two midterms and a comprehensive final.
Goals
This is a networking class, so the major goal is to get you familiar with networking principles, how to send data reliably and securely, and a good understanding of how the Internet works. However, I am taking a two-prong approach to this class. Along the way of learning the fundamentals of networking, I want you to gain valuable computer systems-level experience. This part of the course is accomplished through the labs. In the labs, you will be exposed to socket programming, file I/O, writing good command-line tools, and concurrency techniques.
How to Succeed in this Class
-
Come to class. A lot of good information and context is shared in class. Since I post the slides, you will be tempted to think that you don’t need to come. I promise—you do.
-
Take notes. If you are going to be in class, take notes. Better yet, write out your notes. Taking notes will help you retain information from lecture and give you something personalize to refer to when you are doing the homework and studying for tests.
-
Start the labs early. The labs are the hardest part of the class. They are designed to be challenging and to stretch you. If you start them early, you will have time to ask questions and get help.
-
Ask questions. If you don’t understand something, ask. I am here to help you learn. I have generous office hours, and I am happy to help you any way I can.
Grade Breakdown
| Component | % of Grade |
|---|---|
| Labs | 40 |
| Homeworks | 15 |
| Midterms | 22 |
| Final | 20 |
| Participation | 3 |
Communication
All communication will be done over Teams. Teams is intended to be used for announcements, questions, and facilitate student communication. If you have a question, ask it on Teams so that everyone can benefit from seeing the question and answer.
Attendance and Participation
This is a senior-level class, and I expect senior-level participation. I expect all students to attend every lecture and be engaged in the lecture. Asking and answering questions in class is essential. When you are in a lecture, I expect your attention, so students should not be on their phones or doing non-class related things on laptops.
Late Policy
Don’t be late. 20% of the assignment grade will be subtracted for each day late, not including weekends.
Source Code Sharing
No source code should be shared between students. Students can work on assignments together, but no direct or indirect copying from another student is allowed. Students should not send their source code to other students to look at, even as a reference. This class will use a code similarity checker to determine if students are copying code. If it is determined that code was copied, both students will receive a zero for the assignment.
Policies
AI Policy
As professionals in the fields of Electrical & Computer Engineering and Cybersecurity, it is essential to gain experience using Artificial Intelligence (AI) technologies, which have improved dramatically in recent decades. At the same time, using AI in some educational contexts can undermine educational goals and intellectual growth. This policy is intended to add clarity concerning the use of AI in EC EN and IT&C classes at BYU. It should be treated as the default policy for all such classes, unless it is superseded by the instructor of a course who specifically provides exceptions or exclusions for particular assignments.
If an instructor does not provide any specific guidance related to the use of AI in their class, then this policy will be in effect.
Guiding Principles
-
Artificial Intelligence is a tool, like many others, that can be used for good and bad. As BYU students, we should focus our attention on how we can ethically use AI to accomplish worthwhile goals.
-
Using AI effectively (e.g., generate AI prompts that are useful) is an important skill that should be developed. Understanding the limitations of AI including the potential for results to include false statements, bias, and copyright infringement is a critical part of using AI effectively.
-
Learning is a process wherein our minds and spirits are changed as we develop new understandings, attitudes, and skills through deep engagement with content and experiences. AI can be used to enhance or circumvent learning, depending on how it is used and the type of learning occurring.
Rules regarding the inappropriate use of AI in EC EN and IT&C coursework
-
AI should never be used when an instructor explicitly asks students not to use it.
-
AI should not be used in any cases where an exam or assignment is “closed book” (i.e., they prohibit the use of resources such textbooks, the Internet, talking to others, etc.).
-
When using AI for written work that is “open book” (e.g., papers, coding projects, lab reports, take-home exams), any AI content should be cited. For example, if you use AI-generated language it should be put into quotes and the AI engine and text prompt should be listed. If you are paraphrasing AI-generated content, then you should indicate that you are paraphrasing in a citation, similar to how you would if you were paraphrasing another published resource. If you are using an AI code-generation tool that recommends code blocks, then a code comment should be added that clarifies the significant portions of the code were AI-generated.
-
AI-generated answers should not be used when it will circumvent students’ learning. For example, submitting AI-generated personal reflections, book reports, lab reports, or other assignments intended to promote meta-cognition and engagement with content is not allowed.
-
If there is ever a question about whether AI should be used or not, the student should ask the instructor.
Examples of appropriate use of AI in EC EN and IT&C Coursework (for cases that do not violate the rules above)
-
AI can be used to help brainstorm ideas. For example, a capstone team may use AI to help generate potential names for their project.
-
AI can be used to help understand code syntax and provide examples. For example, AI coding tools can give examples of CSS rules, which can then be integrated (as appropriate) into coding projects for a class.
-
AI can be used, with caution, for gaining an overview of certain topics. For example, a student may create a prompt that gives an overview of a technology and use-cases for it. Of course, you should treat it like most Internet content and validate what is provided, since it may have inaccuracies or misleading examples.
-
AI can be used to enhance class projects. For example, a UX designer may generate fake text and images that are used in a prototype of a new product. In such cases, the content source should be cited.
Repercussions for violations of this policy
It is our hope that BYU students will strive to follow this policy and discuss potential gray areas with faculty. In cases where students have violated the policy, the instructor of the specific class will determine the appropriate response which may include (a) giving them a warning and making sure they understand the policy, (b) reporting them to the honor code office, (c) giving them a reduced grade on an assignment or in a class.
COVID-19 Statement
Students who feel sick, including exhibiting symptoms commonly associated with COVID 19 (fever; cough; shortness of breath/difficulty breathing; chills; muscle pain; sore throat; new loss of taste or smell; etc.) should not attend class and should work with their instructor to develop a study plan for the duration of the illness.
Honor Code
In keeping with the principles of the BYU Honor Code, students are expected to be honest in all of their academic work. Academic honesty means, most fundamentally, that any work you present as your own must in fact be your own work and not that of another. Violations of this principle may result in a failing grade in the course and additional disciplinary action by the university. Students are also expected to adhere to the Dress and Grooming Standards. Adherence demonstrates respect for yourself and others and ensures an effective learning and working environment. It is the university’s expectation, and every instructor’s expectation in class, that each student will abide by all Honor Code standards. Please call the Honor Code Office at 422-2847 if you have questions about those standards.
Preventing & Responding to Sexual Misconduct
In accordance with Title IX of the Education Amendments of 1972, Brigham Young University prohibits unlawful sex discrimination against any participant in its education programs or activities. The university also prohibits sexual harassment-including sexual violence-committed by or against students, university employees, and visitors to campus. As outlined in university policy, sexual harassment, dating violence, domestic violence, sexual assault, and stalking are considered forms of “Sexual Misconduct” prohibited by the university.
University policy requires all university employees in a teaching, managerial, or supervisory role to report all incidents of Sexual Misconduct that come to their attention in any way, including but not limited to face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Incidents of Sexual Misconduct should be reported to the Title IX Coordinator at t9coordinator@byu.edu or (801) 422-8692. Reports may also be submitted through EthicsPoint at https://titleix.byu.edu/report or 1-888-238-1062 (24-hours a day).
BYU offers confidential resources for those affected by Sexual Misconduct, including the university’s Victim Advocate, as well as a number of non-confidential resources and services that may be helpful. Additional information about Title IX, the university’s Sexual Misconduct Policy, reporting requirements, and resources can be found at http://titleix.byu.edu or by contacting the university’s Title IX Coordinator.
Student Disability
Brigham Young University is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. A disability is a physical or mental impairment that substantially limits one or more major life activities. Whether an impairment is substantially limiting depends on its nature and severity, its duration or expected duration, and its permanent or expected permanent or long-term impact. Examples include vision or hearing impairments, physical disabilities, chronic illnesses, emotional disorders (e.g., depression, anxiety), learning disorders, and attention disorders (e.g., ADHD). If you have a disability which impairs your ability to complete this course successfully, please contact the University Accessibility Center (UAC), 2170 WSC or 801-422-2767 to request a reasonable accommodation. The UAC can also assess students for learning, attention, and emotional concerns. If you feel you have been unlawfully discriminated against on the basis of disability, please contact the Equal Employment Office at 801-422-5895, D-285 ASB for help.
Academic Honesty
The first injunction of the Honor Code is the call to “be honest.” Students come to the university not only to improve their minds, gain knowledge, and develop skills that will assist them in their life’s work, but also to build character. “President David O. McKay taught that character is the highest aim of education” (The Aims of a BYU Education, p.6). It is the purpose of the BYU Academic Honesty Policy to assist in fulfilling that aim. BYU students should seek to be totally honest in their dealings with others. They should complete their own work and be evaluated based upon that work. They should avoid academic dishonesty and misconduct in all its forms, including but not limited to plagiarism, fabrication or falsification, cheating, and other academic misconduct.