RYERSON UNIVERSITY

Course Outline (F2019)

BME506: Introduction to Software

Instructor(s)Rasha Kashef [Coordinator]
Office: ENG328
Phone: (416) 979-5000 x 6484
Email: rkashef@ryerson.ca
Office Hours: Mondays 1:00-2:00 PM
Calendar DescriptionThis course introduces Biomedical Engineers to the principles and processes governing software design and development. Software development processes are explored in the context of procedural and object-oriented paradigms (C/C++). Topics include requirements analysis/specifications, detailed design and implementation, testing, inspection and debugging. Decomposition into classes and modules is examined from the point of view of data-flow, entity-relationships, and the unified modeling language (UML). Students will learn how to leverage industry standard tools for design and development. Laboratory work will focus on applications relating to biomedical engineering.
PrerequisitesBME 328 and CEN 199
AntirequisitesCOE 318
Corerequisites

None

Compulsory Text(s):
  1. A Concise Introduction to Software Engineering, Pankaj Jalote, (Undergraduate topics in Computer Science) ISBN-10:1848003013 | ISBN-13:978-1848003019 | Edition: 2008.
Reference Text(s):
  1. C++ Primer Plus, Stephen Prata (6th Ed.), Publication Date: October 28, 2011, ISBN-10: 0321776402 | ISBN-13: 978-0321776402.
  2. Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995, Addison-Wesley Professional, First Edition, ISBN 0201633612.
Learning Objectives (Indicators)  

At the end of this course, the successful student will be able to:

  1. Use the knowledge of procedural and object-oriented software design. Apply software engineering principles and theories to define an accurate problem statement through approaches such as use cases. (4a)
  2. Use relevant tools for requirements analysis, software design, implementation, debugging and testing. (5a)
  3. Illustrate concepts of various stages of software development through appropriate graphical forms. (7c)

NOTE:Numbers in parentheses refer to the graduate attributes required by the Canadian Engineering Accreditation Board (CEAB).

Course Organization

3.0 hours of lecture per week for 13 weeks
2.0 hours of lab/tutorial per week for 12 weeks

Teaching Assistants1- Hina Tariq (hina1.tariq@ryerson.ca)
 
 2- Syed Bashir (syedraza.bashir@ryerson.ca)
Course Evaluation
Theory
Midterm Exam 20 %
Final Exam 50 %
Laboratory
Labs 30 %
TOTAL:100 %

Note: In order for a student to pass a course with "Theory and Laboratory" components, in addition to earning a minimum overall course mark of 50%, the student must pass the Laboratory and Theory portions separately by achieving a minimum of 50% in the combined Laboratory components and 50% in the combined Theory components. Please refer to the "Course Evaluation" section for details on the Theory and Laboratory components.


Examinations- Midterm exam in Week 7, 1.5 hours, multiple-choice and short answer questions, closed book (covers Weeks 1-6).
 
 - Final exam TBD
Other Evaluation InformationNone
Other InformationLab presence is MANDATORY to pass the course
 

Course Content

Week

Hours

Chapters /
Section

Topic, description

1

3

1

Introduction.
 (Chapter 1. Sections 1.1-1.3).
 
 C++ Language Basics & Control Flow.
 (Lecture notes. Slides).


2

3

2

The Software Problem. Software Development Process.
 (Chapter 2. Sections 2.1-2.3.3. Sections 2.3.5-2.3.6. Lecture notes. Slides).
 
 C++ Functions. Function parameter(s).
 (Lecture notes. Slides).


3

3

C++ Arrays. C-String. Pointers.
 (Lecture notes. Slides).


4

3

3

Requirements Analysis & Specifications.
 Functional/Non-functional requirements. UML Use Case Diagrams. Data-Flow Diagrams. Entity-Relationship Diagrams.
 (Chapter 3. Sections 3.1-3.6. Lecture notes. Slides).


5

3

User-Defined Data Types. Basic Data Structures. File I/O.
 C++ Enums and Structs. Array as a Stack/Queue. C++ File I/O.
 (Lecture notes. Slides).


6

3

OO - Introduction to Classes.
 Data Access. Member Functions & Constructors.
 Dynamic Memory and Destructors.
 (Lecture notes. Slides).


7

3

OO - Using Classes.
 Using C++ Classes.
 (Lecture notes. Slides).
 MIDTERM EXAM.
 


8

3

6

Design - Brief Overview of Structured (i.e. Function-Oriented) Design versus Object-Oriented Design.
 OO - Cohesion and Coupling. Encapsulation.
 (Chapter 6. Sections 6.1-6.2. Lecture notes. Slides).
 
 C++ Encapsulation
 (Lecture notes. Slides).


9

3

6

OO - Inheritance. Polymorphism.
 (Chapter 6. Section 6.3. Lecture notes. Slides).
 
 C++ Abstract Classes. Inheritance. Polymorphism.
 (Lecture notes. Slides).


10

3

OO - UML Diagrams.
 (Lecture notes. Slides).


11

3

7

Introduction to Testing.
 Unit Testing. Debugging. Code Inspection.
 (Chapter 7. Section 7.4-7.5. Lecture notes. Slides).


12

3

OO - Advanced Topics
 (Lecture notes. Slides).


13

3

Course Review.


Laboratory/Tutorials/Activity Schedule

Week

Lab

Description

2

ENG411

Lab 0: Introduction to Eclipse CDT.

3

ENG411

Lab 1: Language Basics – Functions and Control Flow.

4

ENG411

Lab 2: Language Basics – Arrays and Command Line Arguments.

5

ENG411

Lab 3: Language Basics – Practice with Pointers.

6-7

ENG411

Lab 4: Language Basics – User Defined Types and File IO.

8-9

ENG411

Lab 5: Object-Oriented Design and Implementation of a simple application.

10-11

ENG411

Lab 6: Inheritance and Polymorphism.

Policies & Important Information:

  1. Students are required to obtain and maintain a Ryerson e-mail account for timely communications between the instructor and the students;
  2. Any changes in the course outline, test dates, marking or evaluation will be discussed in class prior to being implemented;
  3. Assignments, projects, reports and other deadline-bound course assessment components handed in past the due date will receive a mark of ZERO, unless otherwise stated. Marking information will be made available at the time when such course assessment components are announced.
  4. Refer to our Departmental FAQ page for information on common questions and issues at the following link: https://www.ee.ryerson.ca/guides/Student.Academic.FAQ.html.

Missed Classes and/or Evaluations

When possible, students are required to inform their instructors of any situation which arises during the semester which may have an adverse effect upon their academic performance, and must request any consideration and accommodation according to the relevant policies as far in advance as possible. Failure to do so may jeopardize any academic appeals.

  1. Health certificates - If a student misses the deadline for submitting an assignment, or the date of an exam or other evaluation component for health reasons, they should notify their instructor as soon as possible, and submit a Ryerson Student Health Certificate AND an Academic Consideration Request form within 3 working days of the missed date. Both documents are available at https://www.ryerson.ca/senate/forms/medical.pdf.. If you are a full-time or part-time degree student, then you submit your forms to your own program department or school;
  2. Religious, Aboriginal and Spiritual observance - If a student needs accommodation because of religious, Aboriginal or spiritual observance, they must submit a Request for Accommodation of Student Religious, Aboriginal and Spiritual Observance AND an Academic Consideration Request form within the first 2 weeks of the class or, for a final examination, within 2 weeks of the posting of the examination schedule. If the requested absence occurs within the first 2 weeks of classes, or the dates are not known well in advance as they are linked to other conditions, these forms should be submitted with as much lead time as possible in advance of the absence. Both documents are available at www.ryerson.ca/senate/forms/relobservforminstr.pdf. If you are a full-time or part-time degree student, then you submit the forms to your own program department or school;
  3. Academic Accommodation Support - Before the first graded work is due, students registered with the Academic Accommodation Support office (AAS - www.ryerson.ca/studentlearningsupport/academic-accommodation-support) should provide their instructors with an Academic Accommodation letter that describes their academic accommodation plan.

Academic Integrity

Ryerson's Policy 60 (the Academic Integrity policy) applies to all students at the University. Forms of academic misconduct include plagiarism, cheating, supplying false information to the University, and other acts. The most common form of academic misconduct is plagiarism - a serious academic offence, with potentially severe penalties and other consequences. It is expected, therefore, that all examinations and work submitted for evaluation and course credit will be the product of each student's individual effort (or an authorized group of students). Submitting the same work for credit to more than one course, without instructor approval, can also be considered a form of plagiarism.

Suspicions of academic misconduct may be referred to the Academic Integrity Office (AIO). Students who are found to have committed academic misconduct will have a Disciplinary Notation (DN) placed on their academic record (not on their transcript) and will normally be assigned one or more of the following penalties:

  1. A grade reduction for the work, ranging up to an including a zero on the work (minimum penalty for graduate work is a zero on the work);
  2. A grade reduction in the course greater than a zero on the work. (Note that this penalty can only be applied to course components worth 10% or less, and any additional penalty cannot exceed 10% of the final course grade. Students must be given prior notice that such a penalty will be assigned (e.g. in the course outline or on the assignment handout);
  3. An F in the course;
  4. More serious penalties up to and including expulsion from the University.

The unauthorized use of intellectual property of others, including your professor, for distribution, sale, or profit is expressly prohibited, in accordance with Policy 60 (Sections 2.8 and 2.10). Intellectual property includes, but is not limited to:

  1. Slides
  2. Lecture notes
  3. Presentation materials used in and outside of class
  4. Lab manuals
  5. Course packs
  6. Exams

For more detailed information on these issues, please refer to the Academic Integrity policy(https://www.ryerson.ca/senate/policies/pol60.pdf) and to the Academic Integrity Office website (https://www.ryerson.ca/academicintegrity/).

Important Resources Available at Ryerson

  1. The Library (https://library.ryerson.ca/) provides research workshops and individual assistance. Inquire at the Reference Desk on the second floor of the library, or go to library.ryerson.ca/guides/workshops
  2. Student Learning Support(https://www.ryerson.ca/studentlearningsupport) offers group-based and individual help with writing, math, study skills and transition support, and other issues.