Please note that the specifics of this Course Syllabus are subject to change. Instructors will notify students of any changes and students will be responsible for abiding by them. Even if you print this syllabus, please check the online version often.
Modern software development requires both a thorough understanding of concepts and a competency in development of applications that deliver a broad variety of functionality over many different network architectures.
IST 411: Distributed-Object Computing (3 credits) - This course presents the fundamental concepts of distributed-object computing, including client/server computing which is an important platform for real-world computing systems. The course focuses on design, development, and deployment of distributed systems. Students will also consider issues of managing distributed systems and the relationships between organizational processes and information-system architectures. IST 411 is an elective course for the Baccalaureate degree program in Information Sciences and Technology. Students completing the Systems Development Option may take this course to fulfill option requirements.
- IST 311, completed with a grade of "C" or better
Upon successful completion of IST 411, students will understand the core concepts and proficiently implement code related to the following areas:
- Safe and efficient multi-threading (as this is necessary for developing robust networked applications).
- The fundamentals of networking in Java. This includes the manner in which services are addressed on a network (IP Addresses and Ports), the key concepts for designing systems and implementing applications that are distributed across multiple computers on a network, and the Java mechanisms that provide this functionality.
- Various network architectures including client-server, as well as the various types of middleware and protocols (such as HTTP) that support these architectures.
- Model-View-Controller (MVC) architectural pattern (including its usage in simple Java applications as well as web frameworks), and the Representational State Transfer (REST) design pattern.
- Creating web services and web applications using a variety of technologies including the latest Java web frameworks.
All materials for this course are freely available in online form via the University Libraries. Print versions are also available for purchase via Amazon and other online retailers if this is your preference, but I recommend accessing them for free via the links below:
- Reese, R. M. (2015). Learning Network Programming with Java. ISBN 978-1785882562
- Horstmann, C. S. (2015). Core Java® Volume I—Fundamentals (10th ed.). ISBN 978-0134177335
- Purushothaman, J. (2015). RESTful Java Web Services (2nd ed.). ISBN 978-178439637
Development software will be used throughout the course. See the Technical Requirements section of the syllabus for details.
This course emphasizes group work because real-world programming environments typically require the ability to code in teams. There are also pedagogical advantages to this approach, as students learn concepts most thoroughly by explaining them to others. Also, working in teams is often more fun!
Initial teams have been assigned randomly, but may be modified over the course of the semester. Each team member is expected to participate in team meetings and make a reasonably equitable contribution to each group assignment. Please alert me immediately if this is not occurring.
I realize that collaboration can be challenging in an online course, and I am here to help facilitate the process for you. We will discuss various collaborative options during our weekly sessions, and address any issues that occur.
Note: Each team member will almost always receive the same grade on group assignments. However, I reserve the right to adjust scores to reflect student contributions more fairly.
Your team assignments can be found in the Project Groups tab of the People menu in Canvas.
Assignments & Grading
The activities in this course will consist of Group Work, which you will complete with your assigned partners, Solo Work, which you will complete on your own, and quizzes. Some lessons will require a brief Weekly Log entry, in which you will have the opportunity to provide feedback to the instructor. These will be graded as Solo Work, and are a great opportunity for you to earn a few easy points!
Late Policy: Assignments submitted up to 48 hours late will receive a 25% grade deduction. No late assignments will be accepted after 48 hours without prior approval from the instructor. Late Weekly Logs are not accepted.
The following table shows the approximate weighting of each category of activity. Note that these values are estimates only and will vary somewhat due to addition, removal, or modification of activities at the discretion of the instructor.
Valued at (% of the final grade)
Course Grading Scale
- The following are minimum cutoffs for each grade:
- 93.00% = A
- 90.00% = A-
- 87.00% = B+
- 83.00% = B
- 80.00% = B-
- 77.00% = C+
- 70.00% = C
- 60.00% = D
- less than 60.00% = F
Weekly Workflow and Video Lectures
Most lessons in this course will span a single week from Monday to Sunday, with assignments and quizzes due Sunday before midnight (Eastern time). Some lessons span two weeks, and due dates may vary -- so please be sure to check all dates in Canvas.
Video lectures will typically be delivered on Tuesdays at 3 PM (Eastern time). These will either be interactive sessions with me or video clips/screencasts that I record. Interactive sessions will be recorded for viewing/reviewing at your convenience. This schedule may change over the course of the semester to better accommodate student availability.
Additional interactive sessions, video walk-throughs, etc. will be provided as necessary.
Make sure that your notification settings alert you to Canvas Announcements because I will use this mechanism as the primary means to announce the details of both scheduled and ad hoc sessions.
Course Policies and Expectations
- Late Policy: Assignments submitted up to 48 hours late will receive a 25% grade deduction. No late assignments will be accepted after 48 hours without prior approval from the instructor. Late Weekly Logs are not accepted.
- Logging into Canvas - Students are expected to log in regularly to check for course updates, announcements, emails, discussions, etc.
- Emailing through Canvas - Students are expected to use Canvas for all course email communication.
- Attending virtual meetings - Students are expected to use specified virtual meeting tool(s) for collaboration, meetings, presentations, etc., as needed.
Standard World Campus computer technical specifications are assumed for this course. Please test your computer for requirements. In addition, a webcam and a headset with a microphone are REQUIRED for the course. These may be used for virtual meetings, virtual office hours, interactions with classmates and your instructor, and team presentations - which are all conducted with virtual meeting tools. Although you will not need to purchase any software, this course will require that you have the ability and permissions necessary to install various freely available software tools including the NetBeans and IntelliJ IDEs, the Play Framework for Java, and other free software tools and packages. Specific installation instructions will be provided.
Find extensive information and links to many Penn State and IST resources (including the Penn State libraries, video conferencing tools, technology and software, writing and research, and much more) on the Resources page.
Review current information regarding Penn State policies (including academic integrity, copyrights, counseling and psychological services, disability accommodations, discrimination and harassment, emergencies, military accommodations, trade names, etc.) on the University Policies page.
The following schedule outlines the topics covered in this course, along with the associated timeframes, readings, activities, and assignments. All due dates reflect Eastern Time (ET). Specifying the time zone ensures that all students have the same deadlines, regardless of where they live.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.