For course schedule, click here .
Course Logistics
Monday, Wednesday, Friday 12:00 PM - 12:50 PM
Location: Reid Hall 202
Instructor
Reese Pearsall
Email: reese.pearsall@montana.edu
Discord: @reese[underscore]p
Office Hours: Monday, Wednesday, Thursday, Friday 1:00 - 2:00 PM
Office: Barnard Hall 361
If my door is ever open, you can stop by. You can also email me to arrange a time to meet outside of office hours.
I can also meet via Webex if needed. Email me to arrange a time
Teaching Assistant and Grader
- Justin Mau
- Email: justindmau@gmail.com
- GitHub: jdmau72
- Office Hours: Monday, 3:00-5:00 pm
- Location: Barnard Hall 259
Textbook (Optional)
Other fees
- We will be using Amazon Web Service (AWS) for an assignment this semester. Utilizing such a cloud service requires a (very) small amount of money. You may need a valid credit/debit card to use implement, deploy, and test a cloud application we will develop in this class.
Class Communication
- Discord server link
- I will be using Discord to make announcements, answer any questions, discuss course material, and help debug issues. Please do not overshare answers or solutions in the public channels
- I am literally always on Discord, so you always shoot me a DM whenever.
CSCI 466 Code Github Repository
Other Resources
Catalog Description
- Credits: 3
- Prerequisite: CSCI 232- Data Structures and Algorithms
- Description: A computer network is an ecosystem of physical links and communication protocols that allow digital communications between distant computers. Networking technologies are a foundation for distributed systems, such as the Internet, and the Web. This course will investigate the fundamentals of network system design and explore some of the emerging trends in network communications including cloud computing and wide area wireless communications.
Note from Reese: Before taking this class, you should feel comfortable with writing programs of basic and moderate complexity in Python. You should also have a basic understanding of Git (clone, commit, add, push, pull, fetch, etc).
Course Outcomes
By the end of this course, students should be be able to:
- List the network layers and explain their function in end-to-end communications
- Explain the functions of various Network protocols (HTTP, DNS, TCP/IP, BGP, etc)
- Design and implement network application
- Analyze network traffic
- Understand important security mechanisms in networks
- Understand what the cloud is and how to implement and deploy a simple cloud application
Grading
40% - Programming Assignments (5 @ 8% each)
30% - Labs (5 @ 6% each)
20% - Quizzes (online) (6 quizzes, lowest quiz grade gets dropped @ 4% each)
10% - Final Quiz (in person)
Grading Breakdown
Programming Assignments (40%)- There will be 5 programming assignments throughout the semester. These assignments generally take more time to complete and involve creating a program of moderate complexity. Python is recommended, but you can use any language you'd like.
Assignments will be submitted via GitHub, and you will also record a short demo of your program. You can work with up to 2 partners, but one partner is recommended.
Labs (30%)- There will be 5 Wireshark labs assigned during the semester. You will use Wireshark to analyze real network traffic and record your observations. Labs will be submitted to D2L as a PDF. You are allowed to work with one (1) partner.
Quizzes (20%)- Every other week, there will be a quiz. Quizzes will be administered through D2L. The quiz will be open for about between 8AM and 5PM, and you only have one attempt. Once you start the quiz, you will
not be timed, although you need to finish the quiz before the quiz window closes. The quizzes should only take 15-20 minutes, and the quizzes will test you on topics we discuss during lecture. Quizzes are open-notes.
Final Quiz (10%)- There will be a final quiz at the end of the semester. This quiz will be in person, and will take place the week before finls week. There will only be two questions on the final quiz. The first question will ask you to name each layer of the OSI model and list the important responsibilities of each layer. The second question is a secret, but it will require cumulative knowledge from the entire semester. You are
not allowed to use any notes or a cheat sheet.
Grading Scale
- 93+: A
- 90+: A-
- 87+: B+
- 83+: B
- 80+: B-
- 77+: C+
- 73+: C
- 70+: C-
- 67+: D+
- 63: D
- 60: D-
Q: Do you curve exams or final grades?
A: Maybe, but probably not. If exams or final grades are lower than I anticipated, then I may apply a curve. For final grades, if you are within 1% of the next letter grade, I will bump you up.
Late Assignment Policy
You will be given 1 virtual late pass. Late passes allow you to submit a program or lab up to 48 hours late with NO penalty-- no excuse required.
To use a late pass, you must indicate in your submission that you are electing to use a late pass (e.g. in a comment on your submission in D2L).
Note that you cannot change this decision later. You cannot use a late pass on the last programming assignment (PA5)
If you do not use a late pass, the penalties for late submissions are as follows:
- < 24 hours: 25%
- < 48 Hours 50%
- > 48 hours: no credit.
Getting Help and Succeeding
You should not wait until the last night to do a programming assignment or lab. Because this is a senior level class, you should feel comfortable with debugging your programs. Reese will not hold your hand through every single step of an assignment and I should not have to help with basic python errors.
Collaboration Policy
All students should read the
MSU
Student Conduct Code.
On labs, you are allowed to work with one partner. On programming assignments, you may work up to groups of three, but groups of two are preferred. You can always work alone if you prefer that.
When it comes to Python assignments, you may
- Work with the other people on your team if teams are allowed.
- Share ideas with people in other teams.
- Help other teams troubleshoot problems.
You may NOT
- Share code you write with other teams.
- Submit code that someone on your team did not write.
- Modify another team's solution and claim it as your own.
Failure to abide by these rules will result in an "F"
for the course and being reported to the Dean of Students.
Plagiarism
You may not copy or modify solutions that are not your own (e.g. from the Internet, classmate, ...) for any graded material. Copying and pasting very small snippets of code is acceptable, however copying/pasting or stealing entire solutions from an external source is prohibited. I know how to use the Google and I have a Chegg membership, so If you find something, I will too! It is easy for me to tell if you copy and pasted code from the Internet, so please do not engage in such academic misconduct. If you do use code from the internet, please include a reference as a comment. If I find a student engaging in plagiarism, I will have to report you to the Dean of Students.
Generative AI
You are not allowed to use generative AI to help you write code, or to solve assignment answers. You are allowed to use generative AI for debugging code.
Copyright
Course Materials: The syllabus, course lectures and presentations, and any course materials provided throughout this term are protected by U.S. copyright laws. Students enrolled in the course may use them for their own research and educational purposes. However, reproducing, selling or otherwise distributing these materials without written permission of the copyright owner is expressly prohibited, including providing materials to commercial platforms such as Chegg or CourseHero. Doing so may constitute a violation of U.S. copyright law as well as MSU’s Code of Student Conduct.