The Internet has become an indispensable part of our life, especially after the global pandemic. As its consumers, we might often take its existence and utility for granted.
But how does this global communication infrastructure really work?
This course will provide students with an understanding of the principles and practical artifacts by which the Internet and other computer networks are designed and operated today. The course will combine conceptual understanding with hands-on programming exercises and activities.
Questions we will discuss include the following and more:Section 1:
Section 2:
Section 3:
Section 4:
This course will use Canvas and Piazza. You should be signed up for Piazza automatically through your enrollment on Canvas.
Lecture materials and a full class schedule will be available on the syllabus page.
All course announcements will occur on Canvas.
Your final course will be based on the following components:
This course uses absolute grading thresholds; there is no curve.
Any materials due on a specific day are due at 11:59 pm Eastern Time on that day.
The schedule of the problem sets, programming projects, and lectures are available in the syllabus page.Schedules are tentative and subject to change.
There will be two mid-terms and one final exam. You are allowed a single letter-paper cheat sheet for referencing during these exams. The sheet must be prepared (handwritten or typed) by you. The mid-terms will be in class during lecture hour. The final exam will be be held during the University-designated slot over the finals period.
Problem sets will be due the week before each major exam of the course. They will include questions from the majority of the material covered for the forthcoming exam and may serve as a reference for the kinds of questions you may expect on the exam. Problem sets are released and handed in on Canvas.
For exams, problem sets, and project report responses, please keep your answers clear and concise. You will receive 25% of the credit for any question which you leave blank or clearly write "I don't know". Vague and rambling answers will receive zero credit. Calculators are allowed.
There are five programming projects. You will work in teams of 2 and have roughly 2--3 weeks to finish each project. Under extenuating circumstances, you can change teams, but normally we expect you to stick to the same partner over the semester. The projects will mostly use the Python3 language and Linux shell scripting. You will be using a Linux environment we provide access to for all the programming assignments. Projects are released and handed in on Canvas. A programming solution and a write-up (questions detailed under each project) will be required for each project.
We will provide instructions for packaging and handing in your programming projects. You must follow these instructions exactly. If we cannot run your programs, you will lose a significant portion of points. If you hand in a programming assignment late, you will lose a significant fraction of points.
Per-lecture quizzes are due at the end of the day before the next lecture. They should ideally take just 5--10 minutes of your time, but you are provided 30 minutes. We will consider the 20 highest scores among all quizzes (there are 26 lectures and quizzes in total). Lecture quizzes are open book and you may freely consult the materials provided in class (lectures, textbooks, etc.). However, you may not search for answers on the Internet. Lecture quizzes are handed in on Canvas.
In general, late submissions to any component of the course are disallowed unless exempt by medical or religious reasons allowable by the University or the explicit permission of the faculty instructor.
This course welcomes open discussion and intellectual collaboration. For example, you can get help on Piazza and email from the instructors and your peers.
You are free, in fact, encouraged, to collaborate on problem sets and projects. However, all answers, code, and any work submitted in this course must be your (or your team's) own. You must fully understand and provide your own solutions, rather than blindly incorporate the solutions from discussion or references. You are also explicitly forbidden from looking at another team's code or solution code from other sources (e.g., from GitHub or CourseHero).
Further, please acknowledge any external sources you referred to with clear and specific attribution (e.g., "spoke to X and consulted resource Y [hyperlink] about implementing feature Z"). Each problem set and programming project will include a prompt to state who you collaborated with and which resources, possibly on the Internet, that you consulted. You must be as accurate and complete as possible.
Copying software solutions from the web, including from Stack Overflow, GitHub, or generative AI systems (chatGPT, copilot, ...) is considered cheating. Posting questions or solutions to quizzes and programming homeworks to GitHub or question-answering services like Chegg or public course archives like CourseHero will be considered a violation of Rutgers and CS Academic Integrity Policy.
In particular, please do not post the solutions to the programming assignments on GitHub. There are many ways to beef up your software portfolio to attract employers. Come talk to me for suggestions on doing this without violating academic integrity. Posting solution code publicly in searchable form (e.g. on public GitHub) is a violation of the academic integrity policy for this course.
We will run software to detect plagiarism on all material submitted by students. Ignorance of academic integrity policies is not excusable; please ask us if you are ever in doubt. When you work in a team, and add your name to a submitted piece of software, you accept responsibility for the integrity of how the software was put together. You may not simply shift the blame to your teammate.
Collaborating on written exams and lecture questions is a violation of Rutgers integrity policy.
You are required to abide strictly by the Rutgers New Brunswick academic integrity policy and also the Rutgers Computer Science integrity policy.We will use sophisticated software to detect plagiarism. Any violations will be reported to the University's office of student conduct. Ignorance of integrity policies is not excusable if you are found in violation. If you are in doubt, please ask the course staff.
Rutgers University takes academic dishonesty very seriously. By enrolling in this course, you assume responsibility for familiarizing yourself with the Academic Integrity Policy and the possible penalties (including suspension and expulsion) for violating the policy. As per the policy, all suspected violations will be reported to the Office of Student Conduct. Academic dishonesty includes (but is not limited to):
If you are ever in doubt, consult your instructor.
Lateness: In general, late submissions to any component of the course are disallowed unless exempt by medical or religious reasons allowable by the University or the explicit permission of the faculty instructor.
Other support resources:
Last updated: 2024-12-15 11:38:38 -0500 [validate xhtml]