Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
athuggins committed Jan 16, 2015
1 parent 0d2363a commit b20c7b0
Show file tree
Hide file tree
Showing 10 changed files with 1,935 additions and 0 deletions.
164 changes: 164 additions & 0 deletions Intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
Course Syllabus for "CS407: Network Applications Development"
-------------------------------------------------------------

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:

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have access to a computer.</span>

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have continuous broadband Internet access.</span>

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have the ability/permission to install plug-ins or software
(e.g., Adobe Reader or Flash).</span>

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have the ability to download and save files and documents to a
computer.</span>

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have the ability to open Microsoft files and documents (.doc,
.ppt, .xls, etc.).</span>

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have competency in the English language.</span>

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√</span></span>     
Have read the [Saylor Student
Handbook.](http://www.saylor.org/site/wp-content/uploads/2012/05/Saylor-StudentHandbook.pdf)

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have completed
[CS101](http://www.saylor.org/courses/cs101/)</span>,
[CS102](http://www.saylor.org/courses/cs102/),
[CS107](http://www.saylor.org/courses/cs107/),
[CS201](http://www.saylor.org/courses/cs201/),
[CS202](http://www.saylor.org/courses/cs202/), and
[CS301](http://www.saylor.org/courses/cs301/) from “[The Core
Program](http://www.saylor.org/majors/computer-science/)” in the
Computer Science discipline.

<span dir="LTR"><span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have completed
[CS103/MA101](http://www.saylor.org/courses/cs103/)</span> and
[CS104/MA102](http://www.saylor.org/courses/cs104/) from the “[Math
Requirements](http://www.saylor.org/majors/computer-science/)” section
of the Computer Science discipline.

<span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 24px; text-align: left; -webkit-text-size-adjust: none; ">√
   </span>Have completed
[CS402](http://www.saylor.org/courses/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:

- <span dir="LTR">David J. Eck's [Introduction to Programming Using
Java,](http://math.hws.edu/javanotes/)</span> 6<sup>th</sup> edition
- <span dir="LTR">Oracle's [ J2EE(TM) 1.4
Tutorial](http://docs.oracle.com/javaee/1.4/tutorial/doc/About.html#wp63721)</span>

**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.

- <span dir="LTR">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.  </span>
- <span dir="LTR">Be sure to use the links to the Oracle website,
which provides tutorials with the most current information.  </span>
- <span dir="LTR">The best way to learn is to actually code, test, and
run all examples and exercises.  The more you do, the more you
learn!  </span>
- <span dir="LTR">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.</span>
- 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.

84 changes: 84 additions & 0 deletions Unit01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
**Unit 1: Getting Prepared** <span id="1"></span
*This first tutorial walks you through installing java and the NetBeans
package for a graphical aid to programming in java.  Just compare your
screen with the one provided before proceeding to the next step in the
tutorial.  You need to be comfortable that you can create and test java
code as you begin this course.*

**Unit 1 Time Advisory**
This unit should take you approximately 10 hours to complete.

<span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 21px; text-align: left; -webkit-text-size-adjust: none; ">☐
   </span>Subunit 1.1: 3 hours

<span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 21px; text-align: left; -webkit-text-size-adjust: none; ">☐
   </span>Subunit 1.2: 4 hours

<span
style="color: rgb(85, 85, 85); font-family: 'Myriad Pro', 'Gill Sans', 'Gill Sans MT', Calibri, sans-serif; font-size: 16px; line-height: 21px; text-align: left; -webkit-text-size-adjust: none; ">☐
   </span>Subunit 1.3: 3 hours

**Unit1 Learning Outcomes**
Upon successful completion of this unit, the student will be able to:
- Compile and run Java code.
- Explain fundamental object-oriented techniques.

**1.1 Installing Java** <span id="1.1"></span
- **Reading: Oracle's “Getting Started: The Hello World Application”**
Link: Oracle's [“Getting Started: The Hello World
Application”](http://docs.oracle.com/javase/tutorial/getStarted/cupojava/netbeans.html)
(HTML)

Instructions: Please complete the entire reading for step-by-step
instructions on how to install Java and NetBeans.  As you read this
section, pay attention to the terms IDE and JDK.  What is the JDK? 
What is an IDE and what is its purpose?

Terms of Use: Please respect the copyright and terms of use
displayed on the webpage above.

**1.2 Checkpoint** <span id="1.2"></span
- **Assessment: Oracle’s “Questions and Exercises: Getting Started”**
Link: Oracle's [“Questions and Exercises: Getting
Started”](http://docs.oracle.com/javase/tutorial/getStarted/QandE/questions.html)
(HTML)

Instructions: Please complete all of the questions and problems
provided.  Check your work against the solutions provided.

Terms of Use: Please respect the copyright and terms of use
displayed on the webpage above.

**1.3 Review of Basic Object-Oriented Concepts** <span id="1.3"></span
- **Reading: Hobart and William Smith Colleges: David J. Eck's
Introduction to Programming Using Java: “Chapters 1-4”**
Link: Hobart and William Smith Colleges: David J.
Eck's *Introduction to Programming Using Java*: [“Chapters
1-4”](http://www.saylor.org/site/wp-content/uploads/2012/01/CS407-TEXTBOOK.pdf)
(PDF)

Instructions: Please review Chapters 1 through 4.  Start with the
quiz at the end of Chapter 1, and use the link provided by the
author to check your answers.  If you missed a question, go to that
concept in the chapter and review that concept.  Repeat this process
for Chapter 2.  If you miss several questions, read all of Chapter 2
and try the quiz again.  Once you feel comfortable with the material
in Chapter 2, proceed to Chapter 3.  Repeat this process for
Chapters 3 and 4.   

These chapters assume Java is your first programming language. 
They are included here so that you might review programming
terminology before jumping into the material for this course.  Be
sure that you are familiar with all of the concepts in these
chapters, especially if it has been a while since you took the
pre-requisite programming course. 

Terms of Use: The article above is released under a [Creative
Commons Attribution-Non-Commercial-Share-Alike License
3.0](http://creativecommons.org/licenses/by-nc-sa/3.0/).  It is
attributed to David Eck and the original version can be found
[here](http://math.hws.edu/javanotes/).


Loading

0 comments on commit b20c7b0

Please sign in to comment.