Courses Taught 2017-2018 (current
academic year)
CS1026a – Computer
Science Fundamentals I
Course Description
This course
provides an introduction to the basic concepts of computer programming and program
design. It is intended for students in the Faculty of Science and those who
intend to study Computer Science in senior years. Programming skills will be
developed using the Python programming language. Course topics include
primitive types, variables, decisions, looping, modularity, functions, lists,
sets, dictionaries, objects, object oriented design, classes, and problem
solving techniques.
The current
course outline is available here.
Prerequisites
There are
no prerequisites to CS1026.
Required Textbook:
Python
for Everyone
C. Horstmann and R. D. Necaise (2nd
edition)
John Wiley
and Sons, 2014
Courses Taught 2016-2017
CS1026a – Computer
Science Fundamentals I
Course Description
This course
provides an introduction to the basic concepts of computer programming and
program design. It is intended for students in the Faculty of Science and those
who intend to study Computer Science in senior years. Programming skills will
be developed using the Python programming language. Course topics include
primitive types, variables, decisions, looping, modularity, functions, lists,
sets, dictionaries, objects, object oriented design, classes, and problem
solving techniques.
Prerequisites
There are
no prerequisites to CS1026.
Required Textbook:
Python
for Everyone
C. Horstmann and R. D. Necaise (2nd
edition)
John Wiley
and Sons, 2014
Courses Taught 2015-2016
CS1026a – Computer
Science Fundamentals I
Course Description
This course
provides an introduction to the basic concepts of computer programming and
program design. It is intended for students in the Faculty of Science and those
who intend to study Computer Science in senior years. Programming skills will
be developed using the Python programming language. Course topics include
primitive types, variables, decisions, looping, modularity, functions, lists,
sets, dictionaries, objects, object oriented design, classes, and problem
solving techniques.
Prerequisites
There are
no prerequisites to CS1026.
Required Textbook:
Python
for Everyone
C. Horstmann and R. D. Necaise
John Wiley
and Sons, 2014
Course Description
This course focuses on Cognitive Computing based on
IBM’s Watson technology.
Students will learn about cognitive computing by doing it. Students will work in teams and each
team will pick a domain in which to build a cognitive question answering
system, powered by IBM's Watson technology. Each team will implement it on a full
strength Watson instance. The course will culminate with a demo of each
application and the presentation a full business plan for bringing what you've
built to market. Students will be
exposed to topics covering: Cognitive computing and Watson, Natural Language
Processing, Machine Learning, Information Retrieval, Knowledge Representation
and Reasoning, Question Answering, Corpus analysis, Corpus Building, Content
Theory, Training and test theory, Mobile app prototyping, Business planning.
The course will, in part, be operating on the “flipped classroom” model. Students will be assigned readings and videos to view outside of class and we will use the contact hours in class for discussions, presentations and interaction. Student marks will come from applying what is learned in class in a progressive series of checkpoints leading to a fully-trained Watson instance and, if desired, a mobile app with which to access that instance.
Prerequisites
There are
no prerequisites except for permission of the instructor.
Required Textbook:
There is no required textbook for this course. Course notes, readings and pointers to other
texts will be posted on the course website
Some Previous Undergraduate Courses
Taught
CS4457b – Computer
Networks II: Advanced Communications
Course Description
The purpose of this course is to introduce the student
to more advanced topics in network communications. Topics may be extensions of those
covered in the basic network course, but may also include a range of diverse
topics in communications as well as emerging topics. Topics in the current year will include
wireless communications, quality of service in network communications, security
and network management. The student
will be introduced to protocols, standards, and techniques in these areas.
Prerequisites
·
CS 3357 or equivalent,
·
Permission of the Instructor,
·
Knowledge of Java, C, C++.
Required Textbook:
Computer Networking: A Top-Down
Approach, 5/E
Publisher: Addison-Wesley
Format: Cloth; 862 pp
Published: 2010
ISBN-10: 0321497708
ISBN-13: 9780321497703
This
textbook is required for this course andis available
for purchase from the University Bookstore on campus.
Sing Li
Publisher: Springer/An Apress Book
Format: Softcover
Published: 3rd ed. 2005. Corr. 2nd printing, 2007
ISBN-13:
978-1-59059-479-7
Some Previous Graduate Courses Taught
CS 9612 --
Computer Systems Performance Analysis
Course
Description
The purpose of this course is to introduce the student
to the principles and techniques of performance measurement in the analysis of
computer systems. Such techniques
are used to detect bottlenecks, measure the efficiency of computer systems and
applications. The student will be
introduced to performance measurement techniques, basic principles of queuing
theory, experimental design, among others.
The student will be expected to do individual
assignments and to participate in a project. Assignments are to be done
individually. The project will
likely be done individually, though depending on the class enrolment, might be
done in small groups. The project
will involve the design of an experiment to assess performance aspects of some
component of a system or application that the
student will choose – this will be based on each student’s
interest and current research directions.
The project will include the definition and execution of experiments,
the collection of data and the analysis of the data once collected.
The course will consist of both lectures and class
discussions on the project. Once
projects are underway, each individual may be asked for brief updates. Each student will provide a final
presentation and report.
Prerequisites
·
Permission of the Instructor,
·
CS 305 or equivalent,
·
Knowledge of C, C++ or Java
·
The ability to work in a team environment.
Recommended Textbook:
The Art of Computer Systems Performance Analysis,
Raj Jain,
John Wiley and Sons, Inc.
CS 9626 –
Medical Informatics
Course
Description
Medical informatics, health
informatics, or Health
care informatics is the intersection of information science, computer
science, mathematics, medicine and health care. It deals with the resources,
devices, and methods required to optimize the acquisition, storage, retrieval,
and use of information in health and biomedicine. Medical informatics tools include not
only computers but also clinical guidelines, formal medical terminologies,
statistical methods and information and communication systems. It is applied to
the areas of nursing, clinical care, dentistry, pharmacy, public health and
(bio)medical research.
Aspects of the field cover many dimensions, including,
but not restricted to:
-
Architectures
for electronic medical records and other health information systems used for
billing, scheduling, and research;
-
Decision
support systems in healthcare, including clinical decision support systems;
-
Standards
(e.g. DICOM, HL7) and integration profiles (e.g. Integrating the Healthcare
Enterprise) to facilitate the exchange of information between
-
healthcare
information systems - these specifically define the means to exchange
data, not the content;
-
Medical
vocabularies, such as the Systematized Nomenclature of Medicine, Clinical Terms
(SNOMED CT), MEDCIN, Logical Observation Identifiers Names and Codes (LOINC), OpenGALEN Common Reference Model or the highly complex UMLS
- used to allow a standard, accurate exchange of data content between systems
and providers;
-
Use
of hand-held or portable devices to assist providers with data entry/retrieval
or medical decision-making;
-
Development
of analytical, computational or mathematical models for predicting health care
outcomes or effective approaches in treatment
Course Objectives: The area of medical informatics is broad, touching on many
disciplines, and a detailed investigation of all is beyond the scope of a
single course. The objectives of this course are fourfold:
- To provide the student
with the background necessary to participate in a multidisciplinary medical
informatics research team;
- To expose the student to
the basic concepts and methodologies relevant to medical informatics;
- To highlight some
aspects of the nature of research within the area and some of the challenges
and research questions;
-
To identify some of the future
areas for informatics research.
Prerequisites
·
Permission
of the Instructor
·
Knowledge
of a programming language
·
Familiarity with basic statistics
Recommended Textbook:
Biomedical Informatics: Computer Applications in
Health Care and Biomedicine
Edward H. Shortliffe
James J. Cimino
Publisher: Springer Verlag
ISBN: 0387289860
Format: Cloth; 1037 pp
Published: 2006