Course Description:
This course covers networking fundamentals, network security, network applications, mobile and wireless computing. The course focuses on network programming, including sockets and web programming concepts.
Course Objectives/Outcomes:
-
Master socket programming and transport layer services
-
Understand web programming concepts (This does not mean to develop web applications).
-
Be familiar with network architecture and OSI network model
-
Be familiar with internetworking, routing, and congestion control
-
Be familiar with link layer access control concepts
-
Be familiar with applied cryptography and other network security concepts
-
Be exposed to wireless and mobile networking, multimedia networking, and
network management
Co-requisites:
- CEN 4010 (Soft. Eng). This means that Net-Centric must be taken at the same time with Soft. Eng.
Prerequisites:
- COP 4338 (Programming III)
- Students must be familiar with data structures.
- Students must be proficient in programming. This course will briefly cover Python language but students are expected to be self-sufficient when it comes to programming. Students will be able to use Python, C, or C++ for their projects unless specified by the assignment. Students are expected to know C (from Programming III).
- Students should have basic skills of using Linux and its command line tools (shell, gcc, etc.)
Final Exam:
U01: TBA ; U02: TBA
Electronic Equipment During Class:
While I'm fine if you use electronics for class, I reserved the right to ask you to put any electronics away either in a one by one case or the entire class. In other words, you are an adult and I want you to utilized electronics devices to aid your learning but if I think it is a distraction, then I will ask you to place them away. This is specially true for phones during class.
As a default rule, I do ask you to remain from having your cell phone in display and keep it on vibrate mode only (or off). I also ask you to refrain from recording audio or video (or both) during class without prior permission from the instructor. If you make notes with your tablet or computer, you can let me know, in order for me to be aware of that.
Assignments:
This is a course that requires understanding of theory and provides hands-on projects. In other words we will emphasize hands-on experience as well as theory. Therefore, a level of programming maturity is needed to be able to be self sufficient with the projects and during exams.
I do ask you to reserve the time needed for this class depending on your own understanding of yourself. In general, I think a good rule of thumb is to reserved 10 hours (outside of class) to study while sufficient time for projects. There may be weeks you may need to adjust this. One student may only need 10 hours in total while another one may need 20-30 hours. Given that you have taken many classes by now, I do trust that you will manage your time wisely.
There will a set of projects/assignments to complete. Details and due dates will be posted in the Moodle course system. Project deliverables must be submitted through the Moodle system (no emails -- any email sent with a project will not be graded). All class-related questions should be sent to the instructor fortega@cs.fiu.edu with a subject line starting with the keyword “[CNT-4713 Uxx]”. (Where xx is your section). Please always identified yourself with the section and be specific about your question.
Language for Assignments:
Unless noted in course, the only languages allowed in this course is either Python, C, or C++. In some instances, the language will be specified. No other language unless specified by the instructor should be used. In the exam, you may answer either in Python, C, or C++. However, the instructor may ask you to use the same language you used for the assignment if needed. I do recommend to use Python, as it shorter and easier for exams.
Instructor's name anf information (including office hours), see main course
page
Status of Syllabus: Current (Last Updated: Jan. 9th, 2017 at 12:11pm).
Semester: Spring 2017
Time and Location:
- Section U1: ECS 143 - MW 17:00 to 18:15.
- Section U2: ECS 143 - MW 18:25 to 19:40.
- Always remember your section
Required Textbook(s)
-
Computer Networking. A Top-Down Approach by Kurose and Rose. Seventh Edition. Publisher: Pearson. (CNTDA). ISBN : 978-0133594140
Additional Textbooks
- Introducing Python: Modern Computing in Simple Packages by Lubanovic [IP] (or if you are experienced in Python, you can use Fluent Python by Luciano Ramalho). (IP)
- Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition). [UNP]
- TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition) (Addison-Wesley Professional Computing Series) [TCP-I]
Tentative Outline/Topics
For a detailed schedule, please go to schedule.
The following topics is a tentative outline. However, we will follow the book and emphasis on the topics required for this class with the emphasis on Computer Science. This also means that I may add or drop topics as needed. It is best that you look at the schedule and the outline provided serves as a guide of possible topics (but not definitive). This outline also does not provide order. For that, look at the schedule.
- Python
- Variables
- Blocks
- Contol Structures
- Methods
- Introduction
- Internet
- Network
- Delay, Loss, Throughput
- Protocol Layers
- Security
- History
- Wireshark
- Application Layer
- Network Applications
- Web and HTTP
- FTP
- SMTP
- DNS
- P2P
- Socket Programming
- Socket Programming using Phython
- socket
- sendto
- recvfrom
- bind
- listen
- send
- recv
- accept
- close
- Web Programming Concepts (Understanding HTTP but not necessarily creating a web application)
- Request Headers
- Response Headers
- GET
- Query String
- Parse Query String
- POST
- HTML Form
- Parse Query String
- Status Codes
- Redirect
- Transport Layer
- Services
- Multiplexing and Demultiplexing
- UDP
- Reliable Data Transfer
- TCP
- Congestion Control
- TCP Congestion Control
- Network Layer
- Service Models
- Virtual Circuit and Datagram Networks
- Router
- IP
- Routing Algorithms
- Internet Routing
- Broadcast and Multicast Routing
- Link Layer
- Services
- Error Detection and Correction
- Multiple Access Links and Protocols
- Switched LAN
- Data Center Networking
- Review protocols and messages in a web request
- Security
- Symmetric and Asymmetric Cryptography
- Integrity
- Authentication
- Confidentiality
- Securing Wireless LANs
- Firewalls and IDS
- Mobile Networks
- Wireless
- WiFi
- Cellular
- Management
- Mobile IP
- Multimedia
- Multimedia Applications
- Streaming Video
- VOIP
- Real-Time Conversation Protocols
- Support
- Management
- Software Defined Networking
- Controller
- Northbound and Southbound
About Grading
Please note that FIU starting Fall 2016 does not longer have C-,D+,D-. That means that right after a letter grade C, you will earn a D, and then an F.
Grading:
Final Exam (in-class): 30%
Mid-Term (in-class): 25%
Quizzes (in-class): 10% (6 to 8 quizzes, you can drop lowest quiz).
Labs (e.g., Wireshark and Programming): 5%
Programming Assignments: 30% (FTP Client/Server: 15%, Adv. Socket Assignment:15%).
Extra Credit: +5% (Programming Assignment Ch. 9 -- See Instructor or Moodle for more Information.)
or
+5% (Sniffer using raw sockets with GUI interface and nmap capabilities -- see moodle for more info)
NOT BOTH -- either one
Extra Credit 2: +1% Software Defined Networking Lab with Video
Additional Extra Credit: You may earn points for helping your peers in Moodle forums. You are not give answers but you can help and guide them to help them.
Book Exercises will be assigned but they will no be collected or graded. However, they are part of
the class and they may appear in the exams or quizzes.
Grading Scale:
- A: 93+
- A-: 90
- B+: 87
- B: 84
- B-: 80
- C+: 75
- C: 70
- D: 60
- F: 59 and below
Note: I may modified the scale if needed, but it will in your favor. For example, while A usually will stay in 93, I may lower A- to 89. This is done at the end and no information is provided during the process, since it happens after the final exam (except when time allows to inform all of you via Moodle). Of course, you can come to my office after the semester and find out or after finals.
Performance measures that will be considered for grading
In most cases, the questions in exams are not multiple-choice. Therefore, if the answer is not clear, the
instructor will use judgment and experience to determined the evaluation of such answer. The instructor's
judgement is used for all questions, projects, and exams. The judgment is based on the expected answer,
experience of the instructor, and understanding of the level that this class is set. In particular, this class
is a 4000 level course, which had already many courses taken, including Data Structures and Programming III.
Therefore, the instructor expects a maturity level and this is considered during the evaluation.
About assignments and projects
Information will be provided via Moodle and/or class. Some guidelines are provided here in the syllabus.
Late assignments received a 10% deduction. Late assignments are accepted up to 24 hours from deadline. Late assignments received between 24 to 48 hours (if moodle is enabled), it will received 15% deduction. No assignments will be accepted after that.
Course Policies
Attendance: Attendance is not graded but it may be taken. Missing classes may affect your grade if we have graded activities.
Academic Misconduct: For work submitted, it is expected that each student will submit their own original work. Any evidence of duplication, cheating or plagiarism will result at least a failing grade for the course.
Deadlines: see Moodle
To get assistance, always email me before you come to my office to make sure I'm not with another student or doing some other work. See my office hours.
Students are encouraged to ask questions and to discuss course topics with the instructor and with each other.
DO NOT send assignments by email. Use Moodle for all communications and assignment submissions. Sending via email will only cause confusion. This is even true when Moodle closes and students will send emails with their assignment. Do not send me attachments via email, unless if I ask you for it.
Instructor reserves right to change course materials or dates as necessary.
Exam Policies
Make sure to complete the assigned work in order to do well in the exam.
No discussion is permitted during the exams.
Part of the exam is understanding the question.
Instructor is not compelled to give credit for something he cannot read or follow logically.
No make-ups. In the case of verifiable emergency, the instructor will make an assessment on how to proceed.
I keep all the exams. You can review them the day after the exam and also during my office hours.
It is your responsibility to understand the requirements of the exam. Understanding the question is part of the exam.
Please do not make travel plans. If you are not here when an exam is given, it is an automatic zero on that particular quiz or exam.
If is not here, then what?
Anything not mentioned in the syllabus is left to the discretion of the instructor. You can always ask.
Extensions
please note that when you ask for an extension, the professor cannot give you an extension only to you because it will be unfair, but to the entire class. this brings another problem. Then it is also unfair for the people that did submit on time. Therefore, when asking for an exception, remember what you just read.
Student Conduct and Learning Environment
Florida International University is a community dedicated to generating and imparting knowledge through
excellent teaching and research, the rigorous and respectful exchange of ideas, and community service. All
students should respect the right of others to have an equitable opportunity to learn and to honestly
demonstrate the quality of their learning.
Therefore, all students are expected to adhere to a standard of academic conduct, which demonstrates respect for
themselves, their fellow students, and the educational mission of the University. All students are deemed by the
University to understand that if they are found responsible for academic misconduct, they will be subject to the
Academic Misconduct procedures and sanctions, as outlined in the Student Handbook:
http://globaldatebooksonline.com/flipbooks/FIU/#2
YOU CAN ALSO DOWNLOAD A LOCAL COPY HERE: Student Handbook PDF - LOCAL COPY
Can I change this document?
From Faculty's handbook:
Instructors retain the right to modify the course syllabus for any reason throughout the semester provided that:
Fair and adequate notice is given to enrolled students either by e-mail, in writing, or through online
publishing.
Modifications to the syllabus are not arbitrary or capricious.
Students are not unfairly disadvantaged by mid-semester changes to grading
standards, attendance standards, or performance measures.
NOTE: In most cases, I will only change this document to accommodate the entire class. I will let you know if
there
are any changes.
NOTE 2: Moving content around or changing topics is left to the discretion of the
instructor, his undertanding of the current students, and it doesn't need to be notified.
POLICIES:
Code of Academic Integrity:
http://www.fiu.edu/~oabp/misconductweb/2codeofacainteg.htm
University Policies: academic misconduct, sexual harassment, religious
holydays, and information on services for students with disabilities
http://www.fiu.edu/provost/polman/sec2/sec2web2-44.htm
If you have any disability make sure you let me know with time to make any accommodation. Also, please make sure you check the FIU Disability Center web site at : http://drc.fiu.edu
I will be more than happy to accommodate any part of this class, based on the recommendation of DRC.
Incomplete Grade Policy:
Only given in extreme cases and I reserve the right to deny an incomplete. In most cases, an I grade is given if you need to deploy (military service), serious and documented illness, or documented death of a family member. You cannot use an incomplete to get extra time to finish the class. You must have a passing grade at the moment you request the incomplete.
Important Dates:
- See FIU Academic Calendar here or by looking at the PDF provided by FIU.
How to do well in this class (applies to all classes)
The following items are what I found during my studies to help me. Maybe some will help you
- Read the book/slides and any other material available to be presented at the class, BEFORE CLASS! READ EARLY AND OFTEN!
- Do your own work. Struggling to do homework is a good exercise that will prove to be a great asset in the future.
- Always challenge yourself.
- Remember that you are paying tuition. Therefore, try to get the most out of it!
- Ask questions!
- If you are having trouble in the class, you may want double the amount of time to study the course.
- Always do additional exercises. Always read beyond the class!
- There are great resources online. Use them. You are expected at this level to be able to be self-sufficient.
- If you are in a graduate course (and it may applied to undergraduate level too), please know that you are expected to do excellent work. Anything less than a B is usually considered failing in graduate schools (of course, each program has their own rules).
HOMEWORK:
You will need to submit your homework via Moodle.
When submitting homework to Moodle, you will need to upload ONE compress file (zip,rar) with the following format: LastName_FirstName_PantherID_HW#.zip (or .rar)
Each homework will stay if you need to print out the homework or not before coming to class. The exception of this is when you are submitting a PDF.
CLASS READING MATERIAL:
Go to Moodle for lectures
ADDITIONAL INFORMATION:
I will try to accommodate legitimate, verifiable cases of illness and emergencies.
I do accommodate religious holidays.
Link to undergraduate student misconduct.
Link to graduate student misconduct.