New Building Website

CSA 283 Data Communications and Networks (3 credits)

Catalog description:

An introduction to data communications, computer networks, protocols, and distributed processing as well as relevant standards and underlying theory. Topics include communication codes, transmission methods, interfacing, error detection, communication protocols, communications architectures, switching methods, and network types. Local area network and internetwork technologies are studied. The client/server model of distributed processing will be addressed. Students will design and implement data communications and network-based software.

Prerequisite: CSA 271 or permission of instructor.

CSA 283 is a third-tier course in the CSA2 "Computer Programming" thematic sequence.

Computer software plays an important role in our daily lives: Our mobile phones, laptop computers, online banking, Internet applications such as YouTube, video games and movies, cars, and almost all aspects of daily life are touched by software. In your personal and professional life you will utilize computer software. It is also likely that you will select, or even influence the design of, software that is used in your professional or personal life. This thematic sequence will give you a deep understanding of how software works and is created, its limitations, and its potential. You will be able to read software and therefore be able to make informed decisions when selecting or participating in the design of business, scientific, or information systems that utilize computer software.

The CSA2 thematic sequence consists of both of the following introductory computer programming courses.

  • CSA 174, Fundamentals of Programming and Problem Solving
  • CSA 271, Object-Oriented Programming

Followed by one of the following courses...

  • CSA 274, Introduction to Game Programming
  • CSA 252, Web Application Programming
  • CSA 283, Data Communications and Networks

CSA  283 is a course in which you apply programming concepts and techniques learned in CSA 174 and CSA 271 to design and implement data communications and network-based software.


Learning Outcomes

Below are the learning outcomes for this course.  Miami Plan foundation courses and thematic sequence courses address some or all of the Four Principles of Liberal Education: Thinking Critically, Understanding Contexts, Engaging with Other Learners, and Reflecting and Acting.  These principles are not simply additional "topics" that are covered during the course.  Rather, they are perspectives and ways of reasoning that are essential to all the content of the course.  Learning outcomes that address these principles are indicated in the table.   Liberal Education Principals (LEP) Key: T=Thinking Critically, U=Understanding Contexts

Learning Outcomes:

LEP

CSA 283.1: Discuss important network standards in their historical context.
CSA283.1.1          Discuss the evolution of early networks and the Internet.
CSA283.1.2          Define terminology related to data communications and networking.
CSA283.1.3          Identify sources of Network standards and related standardization bodies
CSA283.1.4          Analyze emerging technologies in the net-centric computing area and assess their capabilities, limitations, and near-term potential.
CSA283.1.5          Demonstrate the ability to use effectively a range of common networked applications including e-mail, telnet, FTP, newsgroups, web browsers, and instant messaging.

U

CSA 283.2: Describe and compare basic methods of data transmission and generally describe the equipment needed for data communications.
CSA283.2.1          Identify the differences between circuit switching and packet switching along with the advantages and disadvantages of each.
CSA283.2.2          Describe how a packet is routed over the Internet.
CSA283.2.3          Describe the mechanisms a networked application might use to detect and correct transmission errors including data loss, corruption, and miss-ordering.
CSA283.2.4          Demonstrate an appreciation of challenges associated with mobile and wireless computing

U

CSA 283.3: Describe and compare alternative network application design paradigms.
CSA283.3.1          Compare and contrast client/server, peer-to-peer, and hybrid peer-to-peer applications.
CSA283.3.2          Name and describe differences between client and server rocesses in a Client/Server network application.
CSA283.3.3          Describe communication models used in pure peer-to-peer network applications.
CSA283.3.4          Identify strengths and weaknesses of various hybrid peer-to-peer design paradigms.

U

CSA 283.4: Describe and compare alternatives in network design, including topology, LAN standards, and protocol stacks.
CSA283.4.1          Explain the hierarchical, layered structure of typical network architectures.
CSA283.4.2          Name the layers of the Internet protocol stack and understand the relation to the OSI reference model.
CSA283.4.3          Describe and compare representative communication protocols.
CSA283.4.4          Describe physical layer networking concepts including their theoretical basis, transmission media differences, standards and common protocols.
CSA283.4.5          Describe data link layer concepts including framing, error control, flow control and common protocols.
CSA283.4.6          Describe internetworking and routing including routing algorithms, internetworking, congestion control, and common protocols.
CSA283.4.7          Describe transport layer services including connection establishment error detection and correction, performance issues, and common protocols.
CSA283.4.8          Describe application layer protocol definitions and be familiar with aspects such as message format, content and semantics for various public domain application layer protocols.

 

CSA 283.5: Design and implement data communication and network-based software, including simple client/server and peer to peer applications.
CSA283.5.1          The student will write programs that correctly send and receive specified numeric data using both the TCP and UDP transport layer protocols.
CSA283.5.2          The student will write programs that correctly send and receive specified test data using both the TCP and UDP transport layer protocols.
CSA283.5.3          The student will implement simple Client applications which communicate using the TCP and UDP transport layer protocols.
CSA283.5.4          The student will implement single threaded Server applications which communicate with clients sequentially using the TCP and UDP transport layer protocols.
CSA283.5.5          The student will implement multithreaded server application which communicate with clients in parallel using the TCP transport layer protocols.
CSA283.5.6          The student will implement peer applications which communicate using the TCP and UDP transport layer protocols.  

T



Success Skills:

  • Exposure to ethical issues related to privacy

 Required Topics (approximate weeks allocated):

  • Intro (.5)
    • overview of communications
    • the communications process
    • physical communications
    • networking
  • Network architecture (.5)
  • Client socket programming (2.5)
    • creating sockets
    • stream sockets
    • datagram sockets
    • connecting to hosts
    • converting DNS names to IP addresses
    • ports
    • protocols
    • http
    • smtp
    • custom
    • sending/receiving data
    • converting bytes to primitives
    • converting bytes to strings
    • heterogeneous issues - big vs little endian, unicode
  • Testing, error handling, error recovery in networks (1)
    • error handling testing
    • recovery techniques
    • session version stateless recovery
    • logging, debugging techniques for asynchronous events
    • timeouts
  • Data communications (2)
    • point to point
    • RS232
    • USB
    • parallel
    • packet switching
    • modems/telecom system
  • Network fundamentals (2.5)
    • topologies
    • addressing
    • ethernet networks
      • bridges, switches
      • distance limitation
      • twisted pair, bus, hub
  • MAC layer functionality (1)
    • access control
    • framing
    • checksum/CRC
  • Network/IP layer (2)
    • IP addresses
    • IP address assignment
    • ARP
    • fragmentation
    • routing
  • Transport layer (2)
    • ports
    • sequence numbers
    • connections
    • reliable delivery
    • datagrams
  • Exams/Testing (1)