TORONTO METROPOLITAN UNIVERSITY

Course Outline (F2026)

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 AssistantsTBA
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
 Final exam
Other Evaluation InformationNone
Teaching MethodsD2L Brightspace will be used. Zoom may be used if necessary.
 
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).
 
 C++ Arrays. C-String. Pointers.
 (Lecture notes. Slides).


3

3

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


4

3

Stack and Queue.
 (Lecture notes. Slides).


5

3

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


6

3

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


7

3

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


8

3

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


9

3

OO - UML Diagrams
 (Lecture notes. Slides).
 
 Introduction to Design Patterns.
 (Lecture notes. Slides).


10

3

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


11

3

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


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

Week

L/T/A

Description

2

Lab0

Practice how to use the app named Code::Blocks.
 (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.
 (12% marks)

10

Lab6

Inheritance and Polymorphism.
 (6% marks)

University Policies & Important Information

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

Refer to the Departmental FAQ page for furhter information on common questions.

Important Resources Available at Toronto Metropolitan University

Academic Program Advising Contacts

Visit the Electrical, Computer and, Biomedical Engineering department's faculty page for contact information.

Lab Safety

Students are to strictly adhere and follow:

  1. The Lab Safety information/guidelines posted in the respective labs,
  2. provided in their respective lab handouts, and
  3. instructions provided by the Teaching Assistants/Course instructors/Technical Staff.

During the lab sessions, to avoid tripping hazards, the area around the lab stations should not be surrounded by bags, backpacks etc, students should place their bags, backpacks etc against the walls of the labs and/or away from their lab stations in such a way that it avoids tripping hazards.

Accessibility

Please see the Toronto Metropolitan University's Accessibility website for the university's statement on accessibility.

Academic Accommodation Support

Academic Accommodation Support (AAS) is the university's accessibility services office, supporting students with disabilities. AAS works with students, faculty, and staff to create inclusive learning environments, reduce barriers, and promote accessibility across the university.

If you have (or suspect you may have) a disability, AAS can provide consultation, guide you through registration, develop accommodation plans where appropriate, and connect you with supports and services. For information about eligibility, documentation requirements, registration, deadlines, and available services, visit AAS.

Academic Accommodations (for students with disabilities) and Academic Consideration (for short-term extenuating circumstances) are governed by different university policies. Learn more about each process and how to access support. Students registered with AAS may request academic consideration (related or unrelated to their disability) if they experience extenuating circumstances that impact their ability to meet their shorter term academic obligations. This includes short term physical or mental health issues that are sudden/acute (e.g, the flu), unexpected illness or injury, hospitalization or treatment, and significant aggravation of a pre-existing condition. Please see Policy 167: Academic Consideration for more information and details.

Please note that there is no accommodation for missing/rescheduling or reweighting of tests - this is considered an alternate arrangement. Any student who misses a test/exam will be directed to submit an ACR to explore if possible alternate arrangements under Policy 167: Academic Consideration can apply .

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 Wellbeing Central website.