WILLIAM PATERSON UNIVERSITY OF NEW JERSEY COLLEGE OF SCIENCE AND HEALTH Computer Science Department Course Outline 1. Title of Course, Course Number and Credits: CS399 Net-Centric Computing, 3 credits (Core/Elective for Computer Science Major) 2. Course Prerequisites CS 342 3. Description of the Course Consistent With the WPUNJ catalog Beginning with fundamentals of computer networking, this course emphases software development in Java for Inter-Process Communications in standard networks, wireless, and mobile contexts. Major topics include computer networking basics, the Internet, Java programming and applets, Java-based concurrency/threads, Java for networked client/server applications, mobile and wireless applications, and non-java alternatives (such as ASP.Net development and web-based scripting). 4. Course Objectives The main objective of this course is to learn the basics of computer networking at the software development level, Java fundamentals, and networked applications with an emphasis on the following: Basic concepts of computer networking and the Internet. Networking hardware and protocols. Java programming and applet fundamentals. Java concurrency and threading Java networking and RMI. Java applications design for networks, Client-side versus server-side; JSP. Wireless considerations Mobile Computing: the new frontier Non-Java alternatives (X-Windows, MS ASP.Net solutions, and web-based scripting) 5. Student Learning Outcomes Upon completion of this course, students will be able to: identify, explain, and use hardware components of a computer network, both wired and wireless. 1
prepare for the Network+ certification exam. set-up a small computer network for standard networking and mobile contexts, primarily to test network software. understand the basics of protocols for computer networking in a software context program basic applications and applets in Java install, work with, and contrast Java IDE s such as Netbeans, Studio-1, J++/J#, Eclipse, and others, design and develop Java IPC for threaded and networked applications explore networked game development basics as an application area use Java to develop applications on clients and servers appreciate new technologies such as 802.11a/b/g, Bluetooth and Blackberry devices with a software development perspective code rudimentary mobile computing applications know about and experiment with non-java alternatives (X-Windows and Microsoft ASP.NET solutions) explore current web-based scripting models conduct further inquiry into modern directions in network-based programming Additionally, students are also expected to achieve in the context of the above topics the below university-wide student learning outcomes through lectures; classroom discussions; homework, essay and project assignments; and oral presentations. Demonstrate the ability to think critically. This is achieved by and best measured by problem-solving applying principles and methodologies of network programming, which will be conducted in examinations and projects... Locate and use information on these topics. Projects and written assignments will involve current communications technologies, requiring research on the Internet and the library s recent periodicals. Integrate knowledge and ideas in a coherent and meaningful manner. Projects and examinations will have problems applying and integrating various tools and components towards learning Java, applying Java in a networking context, and adapting Java and other technologies to mobile computing. Effectively express themselves in written and oral form. Students will be expected to deliver progress reports on network design and programming projects.. Examinations will have several essay questions on network programming, the web, security / privacy issues in programming and hypothetical cases. 6. Topical Outline of the Course Content Topics covered in the course include but are not necessarily limited to the following: Networking Fundamentals Hardware and components for network design Networking protocols (Telnet, FTP, HTTP, and others) Software aspects of networking Java Fundamentals 2
Java support for networking (Basics) Java concurrency and threading (Basics) Java networking and RMI. Java application design for networks, Client-side versus server-side applications; JSP Wireless considerations Mobile Computing: the new frontier (Java ME style) Non-Java alternatives (X-Windows and MS ASP.Net solutions) Current web-based scripting models New trends and emerging technologies 7. Guidelines/Suggestions for Teaching Methods and Student Learning Activities Lecture, demonstrations, and hands on activities Problem solving sessions Group work Written homework/exercises Inquiry based instruction. 8. Guidelines/Suggestions for Methods of Student Assessment (student learning outcomes) Attendance will be taken. Homework and projects will be assigned. Written and group activities will be distributed and collected. Projects will be demonstrated. All students are expected to participate, taking an active role in the learning process. 9. Suggested Reading, Texts, Objects of Study Gaddis, Starting Out with Java: From Control Structures through Objects, Addison- Wesley, 2008 Jan Graba, An Introduction to Network Programming with Java, Springer, 2006. Tamara Dean, Network+ Guide to Networks, 5 th edition, Course Technology, 2010. John R. Hubbard, Programming with Java (Schaum's Outline), 2 nd McGraw-Hill, 2004. edition, and O Reilly or SUN texts on specific chosen network API s. 3
10. Bibliography of Supportive Texts and Other Materials General Networking: William J. Beyda, Data Communications: From Basics to Broadband, 4 th edition, Prentice Hall, 2005. Bradford, The Art of Computer Networking, Prentice Hall, 2007. J. Richard Burke, Network Management: Concepts and Practice, A Hands-On Approach, Prentice Hall, 2004. Douglas E. Comer, Hands-on Networking with Internet Technologies, 2 nd edition, Prentice Hall, 2005. Douglas E. Comer, The Everything You Need to Know About Computer Networking and How the Internet Works, 3 rd edition, Prentice Hall 2000 Douglas E. Comer, Computer Networks and Internets, 5 th edition, Prentice Hall 2009 Joe Habraken, Absolute Beginner's Guide to Networking, 4 th edition, Que, 2004. Bruce Hallberg, Networking: A Beginner's Guide, 4 th edition, McGraw-Hill Osborne Media, 2005. (great Net-centric Intro) James F. Kurose & Ross, Computer Networking: A Top-Down Approach, 4 th edition, Addison-Wesley, 2008. Jorg Liebeherr & El Zarki, Mastering Networks: An Internet Lab Manual, Addison- Wesley, 2004. Stanford H. Rowe, Computer Networking, Prentice Hall, 2005. Andrew S. Tanenbaum, Computer Networks, 4 th edition, Prentice Hall 2004 Network+ and Networking Pragmatics: David Groth, T. Skandier, B.l Ferguson, CompTIA Network+ Certification Kit: Exam N10-003, Sybex, 2007. David Groth, T. Skandier, et al., Network+ Study Guide: Exam N10-003, Deluxe, 2 nd edition, Sybex, 2005. Tamara Dean, Network+ Guide to Networks, 4th edition, Course Technology, 2005. 4
Java Basics: Gaddis & Muganda, Starting Out with Java: From Control Structures through Data Structures, Addison-Wesley, 2007 Harvey Deitel, Paul Deitel, Java How to Program, 7 th edition, Prentice Hall, 2007. Ralph Morelli, Ralph Walde, Java, Java, Java, Object-Oriented Problem Solving, 3 rd edition, Prentice Hall, 2006. Walter Savitch, Absolute Java, 3 rd edition, Addison-Wesley, 2007. Savitch & Carrano, Java: Introduction to Problem Solving and Programming, 5 th edition, Prentice Hall, 2009 Java for Network Applications: Hans Bergsten, JavaServer Pages, 3rd edition, O Reilly, 2003. Kenneth L. Calvert, Michael J. Donahoo, TCP/IP Sockets in Java, Second Edition: Practical Guide for Programmers, Morgan Kaufmann, 2008. Naci Dai, Lawrence Mandel, Arthur Ryman, Eclipse Web Tools Platform: Developing Java Web Applications, Addison-Wesley Professional, 2007. Jayson Falkner, K.W. Jones, Servlets and JavaServer Pages: The J2EE Technology Web Tier, Addison-Wesley Professional, 2004. Jim Farley, Java Distributed Computing, O Reilly, 1998. Brian Goetz (Author), Tim Peierls, et al., Java Concurrency in Practice, Addison- Wesley, 2006. (*best on Java concurrency) William Grosso, Java RMI, O Reilly, 2001. Elliotte Harold, Elliotte Rusty Harold, Java Network Programming, 3rd edition, O Reilly, 2004. Merlin Hughes, Michael Shoffner, et al., Java Network Programming, 2nd edition, Manning Pub., 1999. Scott Oaks, Henry Wong, Java Threads, 3rd edition, O Reilly, 2004 Patrick Keegan, L. Champenois, et al., NetBeans IDE Field Guide: Developing 5
Desktop, Web, Enterprise, and Mobile Applications, 2 nd edition, Prentice Hall, 2006. Jonathan Knudsen, Kicking Butt with MIDP and MSA: Creating Great Mobile Applications, Prentice Hall, 2008. (best for NetBeans Mobility Pack & Java Wireless Toolkit) Qusay Mahmoud, Wireless Java, O Reilly, 2002. Bruce W. Perry, Java Servlet & JSP Cookbook, O Reilly, 2004 Denis Piliptchouk, Java vs..net Security, O Reilly, 2004. Marco Pistoia, N. Nagaratnam, et al., Enterprise Java Security: Building Secure J2EE Applications, Addison-Wesley Professional, 2004. Esmond Pitt, Fundamental Networking in Java, Springer, 2005. (API?) David Reilly and Michael Reilly, Java Network Programming and Distributed Computing, Addison-Wesley, 2002. http://www.davidreilly.com/jnpbook George Reese, Java Database Best Practices, O Reilly, 2003. Riggs, Taivalsaari, et al., Programming Wireless Devices with the Java2 Platform, Micro Edition, 2 nd edition, Prentice Hall, 2003. Singh, Brydon, et al., Designing Web Services with the J2EE 1.4 Platform: JAX- RPC, SOAP, and XML Technologies, Prentice Hall, 2004 Christopher Steel, Ramesh Nagappan, Ray Lai, Core Security Patterns: Best Practices and Strategies for J2EE, Web Services, and Identity Management, Prentice Hall, 2006. Kim Topley, Java Web Services in a Nutshell, O Reilly, 2003 Current (continuously updated) source of network API Java books: http://www.sun.com/books/java_series.html Wireless and Mobile Computing: Harold Davis, Anywhere Computing with Laptops: Making Mobile Easier, Que Publishing, 2006. Harold Davis, Absolute Beginner's Guide to Wi-Fi Wireless Networking, 6
Que Publishing, 2004 Andy Dornan, The Essential Guide to Wireless Communications Applications, 2 nd edition, Prentice Hall, 2002. Roger Riggs, A. Taivalsaari, et al., Programming Wireless Devices with the Java 2 Platform, Micro Edition, 2 nd edition, Prentice Hall, 2003. Jochen Schiller, Mobile Communications, 2 nd edition, Addison-Wesley, 2004. 11. Preparers Name and Date: Dr. John Najarian, March 21, 2009. 12. Original Departmental Approval Date: Fall 2009 13. Reviser s Name and Date: NA 14.Departmental Revision Approval Date: NA 7