Syllabus

CMSC 345

Course Description

This course is an introduction to the basic concepts of software engineering including software lifecycle, requirements analysis, design, coding, testing, and documentation.  Professional ethics in computer science and the social impact of computing are discussed.  Additional topics may include tools for software development, software metrics, and software maintenance. The objectives of the course are met using classroom presentations, guest lecturers, and a semester-long project developed in a team setting.

Objectives

The major objective of this course is to give the student real-life software development experience. This objective is accomplished through the student's participation on a team that will develop a single software product over the course of one semester.  Product development will follow the full software development life cycle from requirements analysis through product delivery. More specific objectives are:

  • To understand the software development life cycle, software process models, and processes
  • To learn the definition, goals, and principles of software engineering and how to apply them
  • To experience working in a software development team
  • To experience taking a leadership role in a software development team
  • To enhance verbal and written technical communication skills

Academic Integrity

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the Academic Integrity Resources for Students page, the Faculty Handbook (Sections 14.2-14.3), or for graduate courses, the Graduate School website.

Textbook and Other Resources

There is no required textbook for this course. We will be reading articles from the software engineering literature, which your instructor will provide either in hard copy or electronic form. A link to a variety of software engineering resources will be available on the course web site

Additionally, we will be referencing material from the following Textbooks that will be linked in the course schedule.

Grading

    Your grade will contain elements of both individual and team accomplishments broken down as follows:

  • Individual Grades (30% total)
    1. Writing Assignments (10%)
         Two announced writing assignments and/or homeworks
    2. Weekly Verbal Reports and Biweekly Online Customer Status Report (10%)
          -- Teams will give a short verbal report on their status at the start of the first class of every week. The current phase leader is responsible for the compilation and delivery of this report.
          -- Teams will be required hold an online status meeting with the customer on a biweekly basis. The current phase leader is responsible for the compilation and delivery of the status.
    3. Final Product Delivery and Demonstration (10%)
      The exact method used for determining this grade will be posted on Blackboard well in advance of the final product delivery and demonstration.
  • Team Grades (70% total)
    1. Project Artifacts (40%)
         Your team will be responsible for the timely delivery of the following artifacts:
      • System Requirements Specification (8%)
      • System Design Document (8%)
      • UI Design Document (8%)
      • Code Inspection Report (6%)
      • Test Report (6%)
      • Administrator Manual (4%)
    2. Midterm Status Review (5%)
         Around midterm, each team will give a presentation of its status to the customer.
    3. Final Product Delivery and Demonstration (5%)
         The exact method used for determining this grade will be reviewed well in advance of the final product delivery and demonstration.
    4. Final Product (20%)
         This grade will be based on the product's adherence to the software requirements, the quality of the product, and the degree of customer satisfaction. Note that you must receive a grade of "C" or above on the final product in order to pass the class.
    5. Peer Evaluations (possible deduction)
         Every team member will evaluate every other member of the team, once at midterm and once at the end of the semester. A poor overall evaluation, especially one that does not improve from midterm, may result in a deduction from the 70% team grade for that particular team member. Evaluations are read only by the instructor and are kept absolutely confidential.

There are a few other items that will not be formally graded, but may affect your individual final grade if it is borderline.

    1. In-class Participation
         Group discussion is an integral part of this class. Significant participation is expected.
    2. Student Survey
         I strive constantly to improve the quality and content of this course. I, therefore, ask that you turn in a survey at the end of the semester providing me with feedback about your experience in the course. As you have benefited from the information that I have received from previous students, I ask that you fill this survey in to the best of your ability.

Communication

Once the semester is underway, we will be using a wiki provided by Next Century for team communications. Next Century will also be providing a configuration management tool for documentation and code that you will be required to use.

E-mail

There may be times when I need to contact you or your team via e-mail. If so, I will use your UMBC gl e-mail account. So, please check your account on a daily basis. Also, e-mail is the best way to contact me. My address is karuna.joshi@umbc.edu or kjoshi1@umbc.edu.