Component-Based Software Design

Course number: 
CIS 3309
Fall 2016
Name E-mail Office location
Frank Friedman
Science Education and Research Center (SERC), Room 366
Joe Jupin (Joseph Jupin)
Science Education and Research Center (SERC) , Room 347

CIS2109, CIS2168

Required textbook: Murach's C# 2015, by Anne Boehm, Joel Murach, Mike Murach and Associates, Inc. 
Topics covered: 
Introduction to Visual Studio including the design, coding and testing of Windows forms applications
C# language essentials including working with a variety of built-in (value) data types, using strings and dates,
      programming with basic control structures (loops and decisions),  programming with reference data types   
      (using classes and objects), writing methods and event handlers, handling exceptions and data 
      validation, working with arrays and Windows forms controls, files and data streams. and debugging using 
      the VS .NET debugger
Object-oriented design and programming including inheritance, interfaces and generics and organizing and
      documenting classes
Database programming using C# .NET
Course goals: 
  • Become proficient in the use of C# language, Visual Studio IDE, and the .NET framework for developing Windows-based applications.
  • Develop Graphical User Interfaces
  • Learn how to design and implement event driven software systems
  • Develop an appreciation for programming in an object-oriented environment, using class components and their properties and methods to build new software products.
  • Become proficient in component-based software development and writing reusable code.
  • Understand basic software engineering techniques. 
  • Understand how to connect to, query, and modify existing databases.  (Although we will focus on the use of Access databases in this course, the techniques learned work with all other relational databases, such as Oracle and SQL-Server.)
  • Gain experience using database data to build dynamic displays for applications.
  • Gain experience using Unit Tests to properly test your classes and code for quality assurance.
  • Become familiar with some of the textual, on-line, resources like the Microsoft Developer Network (MSDN) to help you understand how to write C# code as well as how to reference and use a myriad of software components.
  • Become familiar with a broad range written and on-line help tutorials that are available for free and illustrate how to develop software components to achieve the functionality you or your client requires.
Attendance policy: 
Attending classes is critical for you to be successful in this course. Students are expected to attend all classes & labs, and arrive in class on time. Anyone arriving over 5 minutes late on a frequent basis will be asked to leave the class for that day.  Lab attendance is mandatory unless an excuse is granted by the instructor.
Accomodations for Students with Disabilities: 
Any student who has a need for accommodation based on the impact of a documented disability, including special accommodations for access to technology resources and electronic instructional materials required for the course, should contact me privately to discuss the specific situation by the end of the second week of classes or as soon as practical. If you have not done so already, please contact Disability Resources and Services (DRS) at 215-204-1280 in 100 Ritter Annex to learn more about the resources available to you. I will work with DRS to coordinate reasonable accommodations for all students with documented disabilities. (
Student and Faculty Academic Rights and Responsibilities: 
Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has a policy on Student and Faculty and Academic Rights and Responsibilities (Policy #03.70.02) which can be accessed through the following