temple_button.gif (1404 bytes)

Close browser


CIS 3309-Component-Based Software Development       

 

 

Course Syllabus

(Fall, 2021)

 

 

Home 

Link to Weekly 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


 
Basic Needs Security (in times of stress -- such as now)

This section is intended to help students struggling to afford basic needs like housing and food.  I have also included a link in case help is needed in aquiring technical support.

To be brief, if you are having problems regarding food, housing, or other basic essentials I urge you to immediately  let me know, and/or contact the Dean of Students Office at Temple.at Temple.  See the website at

           https://deanofstudents.temple.edu/need-assistance-4

for a lot more information about the kiinds of help offered and how to gain access to this help.

On a related note, the essential computing needs for CIS 3309.001 are

1.     A PC (or a Mac) with a camera and microphone (for using Zoom) and resources sufficient to run Microsoft Visual Studio 2017 (or 2019 if you have it).  VS 2017 is prefered.

2.     Visual Studio (as just listed)

3.     (highly recommended) A printer with a scanner.

4.  Drawio software for drawing Behavior Diagrams (somehat like flowcharts on the sense of the icons and arrows used).  Try this link:

      https://www.microsoft.com/en-us/p/drawio-diagrams/9mvvszk43qqw?activetab=pivot:overviewtab

If you need assistance regarding these needs, I strongly encourage you to visit the Student Emergency Aid Fund website at

       https://studentaffairs.temple.edu/student-emergency-aid-fund

and fill out the form provided on the site. 

If you need further assistance, please let me know.

Whatever you do, PLEASE don't let these issues fester or wait until they are critical and it becomes too late to take postive correct action.  In other words, get help sooner; not later.  I know this is NOT what any of us signed up for many months ago.  But we will need to make the best of it -- for one more semester.

 

Objective

This is an introductory course in component-based software development The 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, event-driven programming, the C# .NET language, and approaches to good 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.

Please Note Carefully: In general, I will not cover the rudiments of programming (how to code in C#.NET) in class.  I try to focus instead on the fundamentals of object-oriented design and the basic concepts of object-oriented programming.  Code examples will be provided on-line (on my website  and in many other places) and in the book.  Since you have already had two semesters of Java, I assume the rudiments of C# will not be difficult to master.

I will do my best to teach this course in a manner that is consistent with the following guiding principle:

The Teacher's Job is to Design Learning Experiences; not Primarily to Impart Information

from: Keynote Address given at the ACM SIGCSE 2012 Conference, Raleigh, NC

by

Frederick P. Brooks, Jr.
Kenan Professor of Computer Science
University of North Carolina at Chapel Hill

To put it another way, an instructor should try to help make learning happen.  This is a course  design task.  Most of us learned much of what we know by what we did, not by what we heard or read (although listening and reading and taking good notes can also be helpful).  A corollary is that the careful designing of exercises, assignments, projects, even quizzes, should have a greater impact on your learning experience than the construction of lectures.  But this only works well IF YOU GET INVOLVED.  You should  make this course (and all succeeding courses you take) your own.  It is yours, and what you get out of it will largely depend upon what you put into it, day by day, week after week.  It is not my course.  I can only serve as the guide, and, as needed, the explainer of things not understood.  Asking questions is up to you, and you cannot do that if you don't faithfully do the work.

 

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 C#.NET.  C#.NET (C sharp dot net, as it is often called) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, event driven, procedural, generic, object-oriented (class-based), and component-oriented programming disciplines.  It was developed by Microsoft within its .NET initiative and later approved as a standard by Ecma (ECMA-334) and ISO (ISO/IEC 23270:2006).  C# is one of the programming languages designed for the Common Language InfrastructureThe C# development team is led by Anders Hejlsberg. The most recent version is C# 6.0, which was released in July, 2015.

C# is not the only language with the above-listed capabilities.  Languages such as Visual Basic, C++, Python, and Java also provide the same kind of software development support.  In the .NET framework, these languages may be used interchangeably with C#.  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 C# .NET for developing windows-based applications.

   Develop an appreciation for the use of a robust Integrated Development Environment (Visual Studio in this case) for software development and an in-depth understanding of how to navigate around this environment use the tools it makes available to get your work done.

•   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 C# code as well as how to import and reference a myriad of software components.

   Be familiar with a broad range of 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.   For this class, it is quite likely that your ownly client will be ...ME!  But it will not be long before you will have to deal with real people.

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

 

[back to top]

Instructors

  Frank L. Friedman
Office hours: Tuesday           10:30 AM - 1:00 PM
Wednesday       3:00 PM -   5:00 (Not every Wednesday)
                            (occassionally - also may be in lab)

Thursday         10:30 AM - 1:00 PM
NOT OPERATIONAL FOR Spring 2021.  If you wish to meet via Zoom, send me an email and we can set up a Zoom meeting.  Otherwise, I would prefer to correspond via email.
.[i]
Phone Number:  (215) 204-5559
Office:  Room SERC 366 (not occupied for Spring 2021)
E-mail:  frank.friedman@temple.edu
 Web:
http://cis-linux1.temple.edu/~friedman
WebBoard: Temple's  Canvas system (canvas.temple.edu)
   
Lab Instructors: Gabriella Kim   gabriella.kim@temple.edu
Charmy patel   (to be announced)
  (Office: none for Spring)
Office Hours: Gabriella - Th 10am-11am
Charmy - W 1pm-2pm

You can use email and/or set up a Zoom appointment for a face to face meeting with any of us.  The best time to "see me" would be before (130pm tu th) or after class on Tuesday or Thursday (330-430pm tu th).  But always try to set up an appointment for any of us.  Thanks.

 


[back to top]

Class Hours 

3309.001 Tuesday  2:00pm - 3:20pm  Via ZOOM
3309.001 Thursday          2:00pm - 3:20pm Via ZOOM


Lab Hours 

3309.001 Lab Wednesday   11:00am - 12:50pm  Via Zoom


Prerequisites
 

CIS 1068: Computer Programming and Higher Level Language
CIS 2168: Data Structures
CIS 2109: Introduction to Database and File Management (may be a co-requisite)
MATH 1022 or 1038


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 C# 7th Edition, by Anne Boehm and  Joel Murach (Mike Murach and Associates, Inc.)

 NOTE: You can buy this book directly from Mike Murach Associates by going to their web page.  I don't think you can beat their price, although you also will not get the book right away.  Another good place to buy books is on line at www.bigwords.com .  Students say the price is right and delivery is prompt.  You might wish to take a look.   You can always look at Amazon.com, Half.com, or BookRenter.  Also -- take a look at campusbooks4less

The ISBN-13 Number for the book you need is 978-1943872534.  (Copy this ISBN if you go to this site).  Be patient - it takes a while for the search for the different sites that might be selling this book to be completed.

2. There are prleny of secondary texts around,  but one does not stand out from any other. So I won't make any suggestions.  I think the lecture notes and the assigned text book should be sufficient for 99.9% of your needs.  

I strongly urge you to buy the Murach book, and to do so as soon as possible.  I have also extracted material from other texts which I think you will find helpful. I will make every effort to indicate what lecture notes and textbook material I think is most important.  Note that an ebook version of the text is available on the Murach website.  If you wish to use this version, you may find it helpful to be able to view each pair of "facing pages."  To do this:

       -- click on the “View” button  
       -- go to “page layout”
        --  choose “facing”

I am not sure if this option is available on a Mac.

 

Software

You will need Microsoft Visual Studio 2017 (or 2019) 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.  Please see the Weekly Schedule  (Weeks 1 and 2) reading material for iniformation concerning access to and downloading the Microsoft Visual Studio Software.  Be sure to load and use Visual Studio 2017 (or if need be, 2019). Information about installing VS 2017 (at home for example, or on your portable computer) may be found in Appendix A of the Murach C#.NET text, beginning on p. 858.  

[back to top]


Grading

***** Percents are to be used only as an approximate guide.  They are subject to changes depending on size and scope of projects, the number of quizzes and the number and total points related to homework assignments.

There are two distinct components to your grade (see bullets below). NOTE CAREFULLY : YOU MUST RECEIVE A C- OR BETTER IN EACH OF THESE TWO COMPONENTS IN ORDER TO RECEIVE A C- IN THE COURSE.  Anything less than a C- in either and you will need to retake CIS 3309 before moving along to other IS&T undergraduate courses.  

  • 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   15%
Student Presentations and related written work   7%
Midterm Exam (in class part)   15%
Midterm Exam (in lab part)   15%
Quizzes 15%
Final Exam   25%
Other - attendance, class participation, etc     8%

Homework Assignments, Lab Assignments and Projects (and their due-date schedules) will be available elsewhere on this web site (see the Weekly Schedule) Students are expected to view/download these assignments.  You should make it a point to visit the web site 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, your 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. 

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 and that you understand the key concepts covered in the course.  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 will be 4-6 announced quizzes. 

Lab
There is a scheduled lab that runs once a week.  Attendance at this lab is no longer required although attendance will be taken.   Failure to attend lab when you are struggling is not a good idea.  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) in the begiining.   Your work and progress on the projects will be reviewed and evaluated at designated milestones.

Project

There will be four projects --

    1) An introductory project (a simple introduction to C# and object-oriented programming)
    2) A small project involving object-oriented concepts, software layering, and the use of
        sequential text files.
    3) An advanced game project involving everything learned to date (and more).
 
  4) A small business- or student-oriented final project (focused on databases and inheritance). 

The third project, and maybe the last one, will be done in groups of size 2.  These projects can take anywhere from 2-4 weeks each. They will involve:

     -- the analysis of a problem of modest complexity;
     -- the design and documentation of a solution (using the object-oriented paradigm), and
     -- the implementation
of a
C#.NET  program of modest size and complexity

I will most likely assign all project specifications, although it is possible that each group of students will have the option of selecting the game project (Project 3 above) they want to do.   Students will provide regular progress reports demonstrating that they are making good use of the material taught in the course.  For the Advanced Game Project (the 3rd 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 3309 website and the Temple Portal for all announcements related to calendar dates and special events.   Note that you can also go to the Temple Academic Calendar 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.  You should also check the Final Exam Schedule for all of your courses.

In addition, a planned schedule of readings and labs may be found by following the link to the Weekly Schedule:. Link to Weekly 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,  the Temple University Canvas System, for outside class interaction. You will need to get a University AccessNet account and password from Computer Services to log on to this site. 

Canvas Access:

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

http://canvas.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 Canvas site for CIS 3309 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) can be handled through Canvas or directly through e-mail:

frank.friedman@temple.edu   or    friedman@temple.edu

[back to top]

Exams 

Exams will be in class and, for the mid-term, 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 and lab, but not necessarily restricted to it.  There will be no make up exams except by prior arrangement.  The mideterm exam will be in two parts: 1. an in class exam, and 2. and in lab exam.  These exams will be given on different days (probably Tuesday and Wednesday) during the same week (probably the 7th week of the semester).


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.

-- [back to top]


Information Temple Suggests We Provide

Part I

Some of you may have pandemic-related financial hardships.  If so, let m know.  Your class mates probably know lots of ways to get etxt and other material on the cheap of even for free.  Pick their brains.  For various reasons, I plead ignorance on this one.

The following academic support services are available to support you. Check the
color-coded system in TUPortal to determine which services are virtual or in-person:
Student Success Center
-- University Libraries
-- Undergraduate Research Support
-- Career Center
-- Tuttleman Counseling Services
-- Disability Resources and Services

If you are experiencing food insecurity or financial struggles, Temple provides resources
and support. Notably, the Temple University Cherry Pantry and the Temple University
Emergency Student Aid Program are in operation as well as a variety of resources from the Division of Student Affairs.Technology specifications for this course (note:the syllabus policy requires instructors to provide technology specifications. Clarify what technology students will need. Please note::

● Limited resources are available for students who do not have the technology they need for class. Students with educational technology needs, including no computer or camera or insufficient Wifi-access, should submit a request outlining their needs using the Student
Technology Assistance Application form. The university will endeavor to meet needs, such as with a long-term loan of a laptop or Mifi device, a refurbished computer, or subsidized internet access.

● Note that some software is available for free download on the ITS Academic Support
page. Other specialty software may be available for remote access through ITS.

● Expectations for Class Conduct (Sample)
It is also important to foster a respectful and productive learning environment that includes all students in our diverse community of learners. Our differences, some of which are outlined in the University's nondiscrimination statement, will add richness to this learning experience. Therefore, all opinions and experiences, no matter how different or controversial they may be perceived, must be respected in the tolerant spirit of academic discourse. 

● Treat your classmates with respect in all communication, class activities,  and meetings. You are encouraged to comment, question, or critique an idea (especially mine) but you are not to attack an individual. Please consider that sarcasm, humor and slang can be misconstrued in online interactions and generate unintended disruptions. Profanity should be avoided as should the use of all capital letters when composing responses in discussion threads, which can be construed as “shouting” online. Remember to be careful with your own and others’ privacy. In general, have your behavior mirror how you would like to be treated by others.  I I get too sarcastic, too mean, too critical, or think something is funny that isn't. let me know sooner rather than later.  My kids do not think I am funny at all, so don't feel badly about being critical.  (By the way - they are both well into their 40s.  Some things never change. )

● We may all be quite frustrated and may be even angry after almost 2 semesters of online learning.  I understand this.  I do not like this either;  it is not what I signed up for when I came to Temple over 45 years ago.  I sincerely hope that this semester will be the last mostly online learning semester anywhere.  But we will all have to pitch in and try to do our best.  We will discuss more of that this means for you in class.


Part II


What Follows are Tips for you and for me.  Most of all -- if you are having medical or non-,edical problems that impact on your work in this course, PLEASE let me know -- sooner and not later.

Students who are exhibiting symptoms such as cough, fever, shortness of breath, muscle or body aches, headache, chills, sore throat, congestion, or new loss of taste or smell, or who have been in close contact with others who have symptoms, or who are engaging in self-quaran tine at the direction of the Philadelphia Health Department, Student Health Services, or any healthcare professional, should not attend in-person classes. Students will not be required toprovide formal documentation from a healthcare provider for COVID-related absences. For more information, see the Student Health Services COVID-19 site.


Purpose To establish a universitywide attendance policy that accommodates students
who are ill or are required to isolate during the semester due to COVID-19.

Standard Protocol: COVID-19 aka BEING CAREFUL

● Students who are experiencing symptoms themselves should isolate from others
immediately, go to the Online Student Health portal, log in, click on the COVID-19 tab and
enter their symptoms on the Symptom Tracker. Students should contact their instructors
to create a plan for participation and engagement in the course as soon as they are able to do so; they are not required to provide formal documentation from a healthcare provider.
● Students who are under quarantine but not ill, or caring for relatives or others who are ill,
but are not COVID-positive themselves should not attend in-person classes but are
required to communicate in a timely manner with instructors and create a plan for
participation and engagement in the course, either remotely or through other alternative
means.
● Whenever possible, students in both categories above should attend remote course
meetings.
  If a student is unable to attend a class or course activity (in person or online) as described above, the student should take the following steps.
● Notify instructors in advance of the absence, if possible.
● If experiencing symptoms, isolate from others immediately, go to the Online Student
Health Portal, log in, click on the COVID-19 tab and enter their symptoms on the
Symptom Tracker.
● Keep up with coursework, as much as possible.
● Participate in class activities and submit assignments electronically, to the extent
possible and as directed by the instructor.
● Reach out to the instructor if illness will require late submission or other modifications
to deadlines or work requirements.
● If necessary, work with their instructors to reschedule exams, labs and other critical
academic activities.
  Instructors who receive information from a student that the student is experiencing COVID symptoms, has tested positive for COVID, or is a close contact of someone who has tested positive for COVID, should contact the COVID Liaison for their school or college to report that information. The COVID Liaison will communicate directly with Student Health Services as needed.

If continued active engagement in a course is not possible due to illness or other COVID-related
circumstances, students may wish to discuss their options with their instructor and/or advisor.  These options might include withdrawal or the possibility of an incomplete grade.

LastUpdated  06/22/2021

Maintained by: Frank Friedman