temple_button.gif (1404 bytes)

Close browser


CIS 3209-Component-Based Software Development       

 

 

Course Syllabus

(Fall, 2008)

 

 

Home 

Link to Labs Schedule

Internal Links
Objective         Instructors          Class Hours          Lab Hours          Prerequisites          Textbooks              Software           Grading             Important Dates            
Web Conferencing            Exams                     Tentative Schedule                      Assignment Submission Schedule

External Links
Course Guidelines                Homework Assignments               Labs                 Lecture Notes                  Other Resources


 

Objective

This is an introductory course in component-based software developmentThe goal is to introduce students to software development techniques applicable in a component-based, integrated software development environment in which the focus is on windows-based and embedded software products.  Students will learn about (and practice using) object-oriented software design techniques, the VB .NET language, and approaches to better forms design.  Students will also learn how to navigate about and take full advantage of an integrated development environment and how to build quality user interfaces with databases and sequential files.

The Microsoft .NET integrated software development platform will be used.  The .NET initiative began in July, 2000, with the goal of providing an environment for the development of software for connecting computing devices from desk-top computers to hand-held devices. 

The Microsoft .NET (pronounced dot-net) strategy involves the creation of a platform in which web-based applications can be distributed over a variety of devices, including cell phones and other hand-held devices, as well as portable and desk-top computers.  The .NET platform allows software components, both old and new, and written in different languages, to interact as never before.  The centerpiece in the creation of software applications is an extensive and still growing set of larger-scale, generic and highly adaptable and re-usable software components which are combined to build new web-based software systems far more rapidly.

A software component is an executable unit of code providing a black-box encapsulation of a set of related services.  Its services can only be accessed through a consistent, documented interface that includes an interaction standard.  A component must be capable of being connected to other components through an communications interface in order to form a larger group of components representing a "software solution."  Components range in scope from user-interface icons and controls such as menu-bars and hypertext navigators to complete products such as support software for portable computers, and hand-held devices such as cell-phones.  In this course, you will learn how to design and implement software components that form the underlying fabric of software solutions.

The programming language we will use for system implementation is Visual Basic.NET.  VB.NET (V B dot net, as it is often called) is the latest incarnation of Visual Basic, which itself is modified version of the original BASIC Programming Language, a language that is now over 40 years old.  VB.NET provides full object-oriented capabilities, and a huge library of software components that support the development of embedded and web-based software solutions.  Today, Visual Basic is not the only language with these capabilities.  Languages such as C++, C# (C sharp), and Java also provide the same kind of software development support.  These languages may be used interchangeably with Visual Basic.  All may be used to reference other components to build new software solutions.

At the completion of this course, you should:

      Be proficient in the use of Visual Basic .NET for developing windows-based applications.

•   Develop an appreciation for programming in an object-oriented environment, using class components and their properties and methods to build new software products.

•   Understand how to connect to, query, and modify existing databases.  (Although we will focus on  the use of Access databases in this course, what you will learn is transportable to work with other relational databases, such as Oracle and Sequel-Server.)

       Be familiar with some of the textual and on-line resources to help you understand how to write VB code as well as how to import and reference a myriad of software components.

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

•   Have had a brief introduction to the world of web-based software development and deployment.

 

[back to top]

Instructors

   Frank L. Friedman
Office hours:  Monday   3:30PM-5:00PM
 Thursday 3:30PM-5:00PM
      Please try to make an appointment as my schedule is often
      interrupted by meetings and other events.[i]
Phone Number:  (215) 204-5559
Office:  Room 312, Wachman Hall
E-mail:  frank.friedman@temple.edu
 Web: http://www.cis.temple.edu/~friedman
WebBoard:  Temple's BlackBoard (http://tuportal.temple.edu)
   
Lab Instructor:  Joe Jupin 
Office:  Joe:  Wachman Hall CC 322 (one of the cubicles)          
Office Hours:  (to be determined)
Phone Number  Joe: (215) 204-5773                        
E-Mail and Web:  joejupin@temple.edu                    
 Web:  Fall 08 Web Site


[back to top]

Class Hours 

3209.001 Tuesday  11:40am -  1:00pm   Tuttelman - TL 1B
              Thursday  11:40am -  1:00pm  Tuttleman - TL 1B


Lab Hours 

3209.001 Tuesday  2:40pm - 4:30pm  CC (Wachman Hall) 200
     


Prerequisites
 

CIS 1073 (was CIS 0081): Computer Programming and Higher Level Language
CIS 2173 (was CIS 0083): Object Oriented Programming
CIS 2109 (was CIS 0109): Introduction to Database and File Management (corequisite)

If you are registered for this course, but do not meet the pre-requisites, contact the instructor immediately.  Students who have not completed the pre-requisites will not be awarded a grade for this course.
 


Textbooks
 
1. Primary Text: To be used primarily in lab with some lab discussion.
Murach's Visual Basic 2005, by Anne Boehm, Mike Murach and Associates, Inc.

2. Secondary text to be discussed in class along with the Primary Text.  Provides background and rationale for what you will be doing in hands-on part of course, as well as an explanation as to what is happening behind the scenes.
Building Applications and Components with Visual Basic .NET, by Ted Pattison, with Joe Hummel, Addison-Wesley Microsoft .NET Development Series. 


I urge you to buy the Murach book, and to do so as soon as possible.  From time to time I will also be extracting material from the Pattison text.  If you have it, you may find this helpful.  I will make every effort to take the material in this book that I think is important and put it on the web.  

 

Software

You will need Microsoft Visual Studio 2005 Express Edition, Standard Edition, Professional Edition, or Team System.   We have a University license that permits you to get a copy of this software from the department.  See the lab assistants in Room 201 Wachman Hall.  They can arrange for you to borrow the disks for this software so that you can have .NET 2005 software at your disposal for the entire semester (and perhaps beyond).  NOTE: Please bring the borrowed disks back on or before the designated date so that others may enjoy the same privileges you do.  Thanks.

[back to top]


Grading

***** Percents are to be used only as an approximate guide.  They are subject to minor changes depending on size and scope of projects

There are two distinct components to your grade:

  • Lab Assignments and Projects -- These all involve use of the Visual Studio IDE for designing and writing code for solving problems all graded by the lab assistant.
  • Everything else (See the table below) -- These are graded by the instructor and usually require written work in the form of 1) answers to questions concerning the reading, course lectures, or on-line materials or 2) design/planning for Lab Assignments you are working on.
Homework Assignments   12.5%
Student Presentations   12.5%
Midterm Exams (2; total)   42%
Final Exam   28%
Other - attendance, quizzes   5%

Homework Assignments, Lab Assignments and Projects (and their due-date schedules) will be available from the course web site Students are expected to view/download these assignments.  Thus, students should make it a point to visit it frequently.  Failing to check the course web site is not an acceptable excuse for late submission, or missing exams.  Late submissions, unless permitted, will not be accepted.

The Lab Assignments and Projects are not counted as part of your course grade.  Rather, you course grade is made up of your scores  on all other work (as summarized in the above table).  Your Lab work is then used to raise or lower your grade based upon the quality of the lab work you submit.  The 'Other'  portion of the grade is subjective, reflecting class participation, effort, individual contribution to the project and significant improvement during the semester. 

Please NOTE CAREFULLY:   I have great respect for hard work and I understand that the Lab Assignments and Projects take time.  HOWEVER -- If you cannot garner at least a solid D average or better between the Exams, Quizzes, and short Homework Assignments (all scores posted on blackboard), you will have to retake this course, regardless of what else you have done.  You need to be able to pass the exams.  Labs and Projects are intended to reinforce what you need to know -- if you work diligently on them, they should help you pass the Exams and Quizzes.

Assignments & Quizzes
There
will
be a number of Homework Assignments in addition to the normal course Lab Assignments and Projects. There are normally intended to ensure your are keeping up with course reading and lab work.  The assignments have to be submitted at the beginning of class on the due date and will normally be graded by the course instructor.  In addition there may be announced  quizzes. 

Lab
There is a scheduled lab that runs once a week.  Attendance at this lab is required.  During the lab, you are expected to work on  Labs Assignments and Projects (see below).  There will be a number of such labs and projects assigned -- approximately one per text chapter (one per week).   Your work and progress on the projects will be reviewed and evaluated at designated milestones.

Project

There will almost for sure be two projects -- a Game Project and a small business oriented Final Project.  These may or may not be group projects.  If you have a group project, the class will be partitioned into groups of size 3 or 4, and  will work on a 2-4 week "real-life" project.  The project will involve: 1) the analysis of a problem; 2) the design and implementation of a VB.NET solution of modest size and complexity I will most likely assign a project although it is possible that each group of students may select a project which they will work on through the 2 to 4 week period.   Students will provide weekly progress reports demonstrating that they are making good use of the material taught in the course.  For the Game Project, one or more (as time permits) presentations of student work will be given to the class.

Grading Scale
Grading for the course is expected to be on the following scale:

95+          A
90-94       A-
87-89      B+
83-86         B
80-82          B-
77-79          C+
73-76        C
70-72        C-
67-69         D+
63-66         D
60-62         D-
0-60            F

This is just a guideline, the final grading may differ somewhat, especially if exam grades are curved.

[back to top]


Important Dates

Students should regularly visit this CIS 3209 website and the Temple Portal for all announcements related to calendar dates and special events.   Note that you can also go to Temple's Main Web Page for calendar information (dates for the current semester).  Once on the Temple University homepage,  go to Quick Links and then click on Calendar and then the current semester.  These dates are also in the Fall semester bulletin.  They are important!  Don't forget to look.

In addition, a planned schedule of readings and labs may be found by following the  Link to Labs Schedule.   The Textbook and Lecture Sets readings and the Labs are the key to success in this course, and the readings are critical to your success in the Labs.  So ... do them diligently and keep up with the schedule.


Web Conferencing 

We use a web conferencing tool,  Temple's Blackboard, for outside class interaction. You will need to get a University AccessNet account and password from Computer Services to log on to this site. 

Blackboard Access:

To gain access to Blackboard if you do not already have it, you can go to

http://tuportal.temple.edu 

and follow the directions for getting a student account or for doing anything else involving Temple or information about Temple, its activities, courses, etc.  The portal is access port to Temple University computing facilities and lots, lots more.

The Blackboard site for CIS 3209 can be used as a message board and also as a discussion forum where you may post comments/questions about the course, assignment, projects or any other relevant matter.

Please note that this forum is strictly for discussion on the course content, assignments and projects. All matters of class policy should be addressed directly to the instructor. I do not expect to moderate the forum, however I will intervene if I feel the need to redirect the focus back on the course.  NOTE: Communication with the instructor (me) should be handled directly through e-mail:

frank.friedman@temple.edu

[back to top]

Exams 

Exams will be in class and in the lab.  They may use application/problem solving questions, short answer and/or a  combination of multiple choice.  You will be notified whether the exam will be open book and open notes.  The content for exams is cumulative, i.e. all material covered up to the day of exam may be included.  Exams will generally be based on material covered in class, but not necessarily restricted to it.  There will be no make up exams.  


Tentative Labs Schedule 


To view the tentative lab schedule, click here. 

[back to top]


Homework Assignment Submission Schedule
 

To view the homework schedule, click here.



[i] Do not hesitate to make an appointment or send me an e-mail if you cannot meet with me during normal office hours.  Also, feel free to drop in, but it works best if you make an appointment. We can meet online or in person!


[back to top]

LastUpdated  08/13/2008

Maintained by: Frank Friedman