CS407: Network Applications Development

Course Syllabus for "CS407: Network Applications Development"

Please note: this legacy course does not offer a certificate and may contain broken links and outdated information. Although archived, it is open for learning without registration or enrollment. Please consider contributing updates to this course on GitHub (you can also adopt, adapt, and distribute this course under the terms of the Creative Commons Attribution 3.0 license). To find fully-supported, current courses, visit our Learn site.

User dependency on the Internet increases every day; nowadays, everyday tasks like paying bills, communicating with others, and applying for jobs are all routinely carried out via the Internet.  While the Internet represents a huge network, it is meaningless without the applications that it supports.  These applications enable user interaction and facilitate everyday activities.  In this course, we will learn about the design and implementation of network-based applications, focusing on Object-Oriented Programming and programming techniques both at the application layer and the transport layer of the TCP/IP protocol stack.  Additional concepts covered include text transport (moving text from one computer to another over the network), data transport, object transport, remote function calls, and, finally, class transport.  You will approach these concepts from an Object-Oriented point of view, learning to implement design patterns in your code in order to ensure software reusability (a highly desirable feature in network applications).

Learning Outcomes

Upon successful completion of this course, the student will be able to:

  • Code solutions using the fundamental concepts of object-oriented programming in Java.
  • Compare and contrast the usage of the Java APIs for each of the different network protocols with emphasis on the application and transport layers.
  • Explain how consistency and reusability are achieved in network processing from input through output.
  • Complete a variety of introductory to complex network programming tasks utilizing Java.
  • Solve problems that use XML to activate Java.
  • Compare and contrast object sharing with Java RMI and SOAP.

Course Requirements

In order to take this course, you must:

√    Have access to a computer.

√    Have continuous broadband Internet access.

√    Have the ability/permission to install plug-ins or software (e.g., Adobe Reader or Flash).

√    Have the ability to download and save files and documents to a computer.

√    Have the ability to open Microsoft files and documents (.doc, .ppt, .xls, etc.).

√    Have competency in the English language.

      Have read the Saylor Student Handbook.

√    Have completed CS101, CS102, CS107, CS201, CS202, and CS301 from “The Core Program” in the Computer Science discipline.

√    Have completed CS103/MA101 and CS104/MA102 from the “Math Requirements” section of the Computer Science discipline.

√    Have completed CS402 or an equivalent fundamental LAN course.

Course Information

Welcome to CS407 Network Applications Development.  Below, please find general information on this course and its requirements. 

Course Designer: Rose Wise

Primary Resources: This course is comprised of a range of different free, online materials.  However, the course makes primary use of the following materials:

Time Commitment: This course will take approximately 90 hours to complete.  Each unit includes a “time advisory” that lists the amount of time you are expected to spend on each subunit.  These should help you plan your time accordingly.  It may be useful to take a look at these time advisories and determine how much time you have over the next few weeks to complete each unit and then set goals for yourself.  For example, Unit 1 should take you 9 hours.  Review your calendar and schedule to complete subunit 1.1 (a total of 2 hours) on Monday night; subunit 1.2 (a total of 4 hours) on Tuesday night; subunit 1.3 (a total of 3 hours) on Wednesday night; etc.

Requirements for Completion: In order to complete this course, you will need to work through each unit and all of its assigned materials.  Pay special attention to Unit 1, as this unit will lay the groundwork for understanding object-oriented coding and the more advanced programming concepts presented in the later units.  You will also need to complete the Final Exam.

Note that you will only receive an official grade on your Final Exam.  In order to “pass” this course, you will need to earn a 70% or higher on the final exam.  Your score on the exam will be tabulated as soon as you complete it.  If you do not pass the exam, you may take it again.

Tips/Suggestions: You will be using two major online texts for reading assignments in this course.  You may want to download them to your personal “e-bookshelf.”  The sites do not require any personal information. 

Review the Preface in each text for information about additional usage tips for each book.  Once you download the enterprise java book, navigation does not automatically use your file name.  For that reason, each subunit includes the file name you may need to open manually.

  • The enterprise text is a minus-one edition of the version currently for sale by the publisher.  The free CD may no longer be available, so it is not required. 
  • Be sure to use the links to the Oracle website, which provides tutorials with the most current information. 
  • The best way to learn is to actually code, test, and run all examples and exercises.  The more you do, the more you learn! 
  • If you have a problem with a program, step away for a glass of water or a brief walk.  Then, review the code anew for what is there, not what you want to be there.  A fresh look at it usually will help you identify the coding flaw quicker.
  • Some concepts can be presented in different ways.  Therefore, if you are confused by your text, refer to any of the other reference materials in the unit as they present the same material, just in a different style.  Seek understanding, not just completion.

Table of Contents: You can find the course's units at the links below.