CSc/CpE 138 - Syllabus
| Instructor:
| Dick Smith
|
| Office:
| RVR 3006
|
| Phone:
| (916) 278-7328
|
| Office Hours:
| M 3:00 - 4:00, T 3:00 - 4:00, and other times by appointment
|
| Required Text:
| Kurose & Ross, Computer Networking A
Top-Down Approach Featuring the Internet, Addison Wesley, 4th Edition, 2008.
Bookstore $111.75 new, $84.00 used, or I recommend:
www.bestbookbuys.com
|
| Class Notes:
| (Lecture Notes) CSc 138, Dick Smith @Copy Central, 925 Howe Ave. (916)
641-5535 ~$20.00.
|
| Additional Text:
| Perl Language, not required if you know
Perl
, otherwise any book of your choosing, e.g.
Deitel, Deitel, Nieto, McPhie, Perl How To
Program, Prentice Hall, 2001.
Bookstore $68.00 new, $34.00 used, or I recommend:
www.bestbookbuys.com
|
Course Objectives:
- Introduce electrical engineering, computer engineering, and computer
science students to fundamental network architecture concepts and to
their application in the network of networks.
- Provide a solid foundation of networking that can lead
to study of advanced topics and detailed network architectures.
Prerequisites:
Required satisfactory completion of CSc 35, CSc 60 and CSc 130 or their
equivalents.
It is assumed that each student is prepared for this course and meets the
following criteria. If not then it may require outside preparation.
Thorough understanding of:
- Programming design tools such as logic flow-charting, high level pseudo
code, machine state diagrams or UML. (CSc 20, CSc 60, CSc 130)
- Specifications, design, implementation, testing and debugging a
large complex program. (CSc 20)
- Advanced data structures used in file descriptors tables and
complex network structures. (CSc 60)
- High level programming language techniques to manipulate bits and
bytes. (CSc 60)
Basic understanding of:
- Application programming interface (API) (CSc 15, CSc 20)
- Asynchronous and synchronous timings. (CSc 35)
- UNIX command line interface. (CSc 60)
- UNIX X-windows interactive development environment (IDE) (CSc 60)
Exposure to:
- 1's complement arithmetic (CSc 35)
- Big-Endian and Little-Endian order of bytes and words. (CSc 35)
- Hardware interrupt programming. (CSc 35)
Course Content:
We will study computer networking from the modern top-down approach.
Starting with the application-level protocols and then working down
the protocol stack. It puts an early emphasis on application-layer
paradigms and application programming interfaces, allowing the student
to get their "hands dirty" early studying and implementing protocols in
the context of applications they use daily. Proceeding through the
layered network services that are needed and then, in turn, study how
these services can be provided. A large part of the semester
will be spent on client server paradigm and several programming
assignments will be to implement client and/or server programs using
sockets in different languages. Next we will study circuit and packet
switching and how to categorize networks as: LANs, local loops, MANs,
WANs, public or private, connection-oriented or connectionless.
Finally we see how the underlying hardware works, how the energy or
electrical signaling technology and the various medias used in networks.
Course Outcomes:
Thorough understanding of:
- Basic categories of network wiring schemes and advantages of each.
- Layering approach to the design of network architecture.
- OSI and Internet (TCP/IP) standards and protocol stack.
- The TCP/IP suite of protocols.
- Distributed computing with client/server socket programming.
- Hardware and software devices used in internetworking.
Basic understanding
of:
- Network congestion and flow control and why they must be handled.
- Errors; the cause, detection, and various control techniques.
- ATM and Frame Relay protocols.
- Internet routing protocols (RIP, OSPF, CISCO's IGRP, EIGRP).
- HTTP and Web CGI programming.
- Host and Network configuration protocols (ARP, RARP, BOOTP, DHCP).
- Domain name system (DNS) and addressing schemes used in internetworking.
Exposure to:
- Technology of static Web documents (htm, html)
- Technology of dynamic Web documents (CGI: Perl, ASP, JSP)
- Technology of active Web documents (Java Applets, JavaScript).
- Security of computer systems and networks (Firewall, IDS).
- Border Gateway Protocols (BGP-4).
- High speed networks and new protocols (IPv6) (IPsec).
- Wireless technology.
Summary
In this course, we will study computer networks and distributed
computing systems. We will discuss topics ranging from the
transmission of data across physical communication media to
contemporary distributed computing environments such as the ECS
HP, Sun and Linux workstation networks. You will gain experience with several
networks accessible from the ECS computing systems, and will
write distributed programs using computers connected by the ECS
network.
Measurable Course Outcomes
CSc 138 CO_1 Students will understand terminology common to 'Networks and Internet'
CSc 138 CO_2 Students will design software to exercise data transfers on various networks using socket protocols
CSc 138 CO_3 Students will acquire hands-on laboratory skills in observing data transfers
CSc 138 CO_4 Students will understand the design of hardware network equipment
CSc 138 CO_5 Students will design software to implement a client/server Simple Web application.
CSc 138 CO_6 Students will write a technical, grammatically correct term paper
ABET Program Learning Outcomes (What students are expected to
know at time of graduation)
a. An ability to apply knowledge of computing and mathematics appropriate to
the discipline. CSc 138 CO_1, CO_2, CO_4, CO_6 The bulk of the material
in this course is mathematical (transfer rates, utilization, round trip time,
probability of collision avoidance, noise, etc) and is related to engineering
limitations (maximum rate of data flow, noise generation).
b. An ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution. CSc 138 CO_3 The lab related exercises require students to observe and understand various types of data transfers.
c. An ability to design, implement, and evaluate a computer-based system,
process, component, or program to meet desired needs. CO_5 The Web has become an integeral part of our daily lives and software applications abound on the Web.
d. An ability to function effectively on teams to accomplish a common goal.
CSc 138 CO_2, CO_3 Students work on teams on the LAN programming project. This
course is cross-listed with CpE 138 and the teams have both computer science
and computer engineering majors.
e. An understanding of professional, ethical, legal, security, and social
issues and responsibilities. Not applicable.
f. An ability to communicate effectively with a range of audiences. CSc 138
CO_6 The research term paper is read, graded and marked for grammar and spelling errors. Students have a list of topics to choose from.
g. An ability to analyze the local and global impact of computing on
individuals, organizations, and society. CSc 138 CO_1 Much of the
informational material on networks and Internet is concerned with issues
of today; security, identification, etc.).
h. Recognition of the need for, and an ability to engage in, continuing
professional development. CSc 138 CO_1 A basic thread of the course is that
networking and Internets is a process that is constantly being improved and
modified; students are instructed on the value of keeping current in this
area.
i. An ability to use current techniques, skills, and tools necessary for
computing practice. CSc 138 CO_2, CO_3 This course uses the most recent
tools, equipment, and devices from industry (students use protocol
analyzers, modern switches and routers; student use industry software
design tools, etc).
CAC Program Learning Outcomes for Computing Sciences
j. An ability to apply mathematical foundations, algorithmic principles,
and computer science theory in the modeling and design of computer-based
systems in a way that demonstrates comprehension of the tradeoffs involved
in design choices. CO_1, CO_2,
k. An ability to apply design and development principles in the construction
of software systems of varying complexity. CO_1, CO_2, CO_5
Course grading
There will be a midterm exam worth 20%, unanounced weekly quizes worth 5%
and a final exam, worth 25% of your final grade.
There will be frequent written assignments during the semester, worth
25% and programming projects worth 25% of your grade. Semester grades
are based on the percent scale as follows 90% = A, 80% = B, 70% = C, 60%
= D (also + and - inaccordance with the CSUS catalog). Note,
to pass this class you must have a passing average on both
EXAMS and PROGRAMMING PROJECTS. There is also an
optional (non graded) weekly lab associated with the course, in which you
will learn about some details of UNIX and the distributed programming
environment here at ECS.
Late:
Homework assignments and programming projects are to be submitted during lecture
on or before the assigned due date. Late assignments (up to 24 hours after
due date) will be accepted, with a 10% penalty per day.
After 5 days, late assignments will be
accepted, (at the discretion of the instructor), with a 50%
penalty, until 5:00 PM Wednesday of dead week.
No late assignments will be accepted after solutions to that
assignment have been posted. Note, the last time to turn in any work
will be 12:30 PM Thursday May 14th. If assignments are turned in to the
department office, make sure your instructors name is on the top of the
first page (Note there is another instructor by the name of "Smith" so
be sure to put "Dick Smith" on the top). Each student will have a 2 day
credit at the start of the semester and the late penalty will only apply
after all credit days have been used up. It is possible to earn extra
credit days up to a max of 5 days by handing in homework or projects early.
Your written assignments are to be prepared on a text- or document-
processing system and turned in as a listing on 8.5 by 11 paper with
any tractor-feed holes removed. Programming exercises will be graded
for appearance, programming style and comments as well as for
correctness. Any output should be identified, and the input used for
any program should be listed and explained. Most of your programming
assignments will be completed on a UNIX system, so any input should
be read from a file, and output redirected to a file, so that the
inputs, output and program listings can be easily printed (see Unix
"script" utility Ref. Lab 1). Multi-page assignments are to be stapled
together.
You must have a UNIX account on the ECS system "gaia" for this class.
If you don't have a UNIX account on gaia,
a. Use your favorite Browser and Go to www.ecs.csus.edu
b. Click on Computing Services -> Network Accounts -> Get a new
Account.
c. Fill out all required fields
Policies
Repeats:
Any student that requests to repeat this course for > second time must
file a petition for course repeat in the Computer Science Department Office.
Mailing list:
This course has an electronic mailing list and it is MANDATORY
that each student subscribe to the list (http://www.ecs.csus.edu/mailman/ then
find in the List the entry csc138 and click on it).
Note do not send HTML e-mail to the list. Many mail reader programs
(including my Pine) do not understand HTML Tags.
How to subscribe
Academic Dishonesty:
You are to work alone on all assignments, projects, programs and
exams except for the RS-232 LAN (project 1), HP Protocol
Analyzer (project 2), optional assignments 4 & 6 Cisco Routers, which are best done as a team of two(2) to four(4).
You are encouraged to consult with other students about
assignments or programs; however, any submitted work must be yours
alone.
The Computer Science Department has a policy on "Ethics in Computer Science Classes". Ethics in Computer Science Classes
and the University has a "Policy on
Academic Integrity" Academic Integrity. Each student will be required to read the policies.
Students are expected and required to do their own work. This does
not mean that you cannot discuss assignments and problems with fellow
students. In fact, working together on the design and concepts involved
is encouraged. However, once you have talked things over, DO YOUR
OWN WORK. Copying all or parts of programs is expressly forbidden.
Penalties for violation of this will be severe for ALL parties
involved. The submission of a program for grading constitutes a
contractual agreement to several binding ethics one of which is that
work is the students and he/she can (and WILL) be quizzed in detail
about each line of the program or assignment. Any academic
dishonesty will result in a "F" for the semester and a report will be
submitted to the Dean of Student Affairs Office.