TORONTO METROPOLITAN UNIVERSITY

Course Outline (F2023)

BME506: Introduction to Software

Instructor(s)Dr. Olivia Das [Coordinator]
Office: ENG464
Phone: (416) 979-5000 x 556114
Email: odas@torontomu.ca
Office Hours: TBA
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. Demonstrate an in-depth understanding of key concepts related to procedural and object-oriented software engineering fundamentals. Apply procedural and object-oriented programming knowledge to solve software engineering problems. (1c)
  2. 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)
  3. Use relevant techniques and tools for requirements analysis, design, and implementation of software. (5a)
  4. 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 per week for 12 weeks
0.0 hours of tutorial per week for 12 weeks

Teaching Assistants1- Carol Wasef ( carol.wasef@torontomu.ca )
 
 2- Matthew Lam ( matthew1.lam@torontomu.ca )
Course Evaluation
Theory
Quiz Exam 5 %
Midterm Exam 20 %
Final Exam 45 %
Laboratory
Labs 30 %
TOTAL:100 %

Note: In order for a student to pass a course, a minimum overall course mark of 50% must be obtained. In addition, for courses that have both "Theory and Laboratory" components, 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 above for details on the Theory and Laboratory components (if applicable).


ExaminationsMidterm exam, (covers Weeks 1-6, tentative).
 Final exam, (covers weeks 1-13).
Other Evaluation InformationNone
Teaching MethodsZoom and D2L Brightspace will be used.
 
Other InformationNone

Course Content

Week

Hours

Chapters /
Section

Topic, description

1

3

Introduction.
 (Lecture notes. Slides).
 
 C++ Basics & Control Flow.
 (Lecture notes. Slides).


2

3

Software Development Process.
 Requirements Analysis & Specifications.
 Functional/Non-functional requirements.
 (Lecture notes. Slides).
 
 C++ Functions. Function parameter(s). Function Overloading.
 (Lecture notes. Slides).


3

3

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


4

3

User Defined Data Types: C++ Enums and Structs.
 File I/O.
 (Lecture notes. Slides).


5

3

Stack and Queue.
 (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

OO - Encapsulation.
 
 C++ Encapsulation.
 (Lecture notes. Slides).


9

3

OO - Inheritance. Polymorphism.
 (Lecture notes. Slides).
 
 C++ Abstract Classes. Inheritance. Polymorphism.
 (Lecture notes. Slides).


10

3

OO - UML Diagrams: Use Case Diagram. Class Diagram.
 (Lecture notes. Slides).
 
 Introduction to Design Patterns.
 (Lecture notes. Slides).


11

3

Design Patterns (Continued).
 (Lecture notes. Slides).


12

3

OO - Advanced Topics: Exception handling.
 (Lecture notes. Slides).


13

3

Course Review.


Laboratory(L)/Tutorials(T)/Activity(A) Schedule

Week

L/T/A

Description

2

Lab0

Installation of Netbeans.
 Practice with Project Creation in Netbeans.
 (0 marks)

3

Lab1

Functions and Control Flow.
 (3 marks)

4

Lab2

Arrays and Command Line Arguments.
 (3 marks)

5

Lab3

Practice with Pointers.
 (3 marks)

6-7

Lab4

User Defined Types and File IO.
 (3 marks)

8-9

Lab5

Object-Oriented Design and Implementation of a simple application.
 (6 marks)

10-11

Lab6

Inheritance and Polymorphism.
 (6 marks)

12

Lab7

Design Patterns.
 (6 marks)

University Policies

Students are reminded that they are required to adhere to all relevant university policies found in their online course shell in D2L and/or on the Senate website

Important Resources Available at Toronto Metropolitan University

Accessibility

Academic Accommodation Support

Academic Accommodation Support (AAS) is the university's disability services office. AAS works directly with incoming and returning students looking for help with their academic accommodations. AAS works with any student who requires academic accommodation regardless of program or course load.

Academic Accommodations (for students with disabilities) and Academic Consideration (for students faced with extenuating circumstances that can include short-term health issues) are governed by two different university policies. Learn more about Academic Accommodations versus Academic Consideration and how to access each.

Wellbeing Support

At Toronto Metropolitan University, we recognize that things can come up throughout the term that may interfere with a student’s ability to succeed in their coursework. These circumstances are outside of one’s control and can have a serious impact on physical and mental well-being. Seeking help can be a challenge, especially in those times of crisis.

If you are experiencing a mental health crisis, please call 911 and go to the nearest hospital emergency room. You can also access these outside resources at anytime:

If non-crisis support is needed, you can access these campus resources:

We encourage all Toronto Metropolitan University community members to access available resources to ensure support is reachable. You can find more resources available through the Toronto Metropolitan University Mental Health and Wellbeing website.