Difference between revisions of "User:Chris Szalwinski"

From CDOT Wiki
Jump to: navigation, search
(New ICT Courses (Fall 2012))
 
(73 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
<tr>
 
<tr>
 
<th style="padding: 0.2em 1em 0.2em 0.2em; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; text-align: left; font-size: 90%;vertical-align: top;">Office</th>
 
<th style="padding: 0.2em 1em 0.2em 0.2em; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; text-align: left; font-size: 90%;vertical-align: top;">Office</th>
<td class="" style="padding: 0.2em; line-height: 1.3em; vertical-align: middle; font-size: 90%;">T2093</td>
+
<td class="" style="padding: 0.2em; line-height: 1.3em; vertical-align: middle; font-size: 90%;">T2088</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
 
<th style="padding: 0.2em 1em 0.2em 0.2em; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; text-align: left; font-size: 90%;vertical-align: top;">Phone</th>
 
<th style="padding: 0.2em 1em 0.2em 0.2em; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; text-align: left; font-size: 90%;vertical-align: top;">Phone</th>
<td class="" style="padding: 0.2em; line-height: 1.3em; vertical-align: middle; font-size: 90%;">416.491.5050 ext 33364</td>
+
<td class="" style="padding: 0.2em; line-height: 1.3em; vertical-align: middle; font-size: 90%;">416.491.5050 ext 33634</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
Line 30: Line 30:
 
<th style="padding: 0.2em 1em 0.2em 0.2em; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; text-align: left; font-size: 90%;vertical-align: top;">Email</th>
 
<th style="padding: 0.2em 1em 0.2em 0.2em; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; text-align: left; font-size: 90%;vertical-align: top;">Email</th>
 
<td class="" style="padding: 0.2em; line-height: 1.3em; vertical-align: middle; font-size: 90%;">
 
<td class="" style="padding: 0.2em; line-height: 1.3em; vertical-align: middle; font-size: 90%;">
[mailto:chris.szalwinski@senecacollege.ca chris dot szalwinski at senecac dot on dot ca]</td>
+
[mailto:chris.szalwinski@senecacollege.ca chris dot szalwinski at senecacollege dot ca]</td>
 
</tr>
 
</tr>
 
</table>
 
</table>
  
 
<p>
 
<p>
'''Chris Szalwinski''' is a Professor at the [https://scs.senecac.on.ca/ School of Information and Communications Technology at Seneca College].
+
'''Chris Szalwinski''' is a Professor at the [https://scs.senecac.on.ca/ School of Information and Communications Technology] (ICT) of Seneca College and an independent scientific researcher.
 +
He teaches C, C++ and Parallel Programming.  He has taught Game Programming (DirectX) and Human Computer Interaction and has published comprehensive web sites that contain his course materials. He currently leads the programming faculty and is updating its course material for the C and C++, diploma and degree subjects.  He does research on soft matter mechanics in his spare time.
 
</p>
 
</p>
 +
<table>
 +
<tr>
 +
<td>
 +
<p>
 +
In fall 2012, Chris introduced an ICT course in parallel programming on heterogeneous computers using Nvidia's CUDA technology; that is, a course on how to use your desktop as your very own supercomputer. He teaches ICT students to harness the processing power available on today's desktop graphics cards for computing tasks that benefit from high performance hardware.  Students who finish this course should find themselves well-positioned to assist employers and clients in solving embarrassingly data-parallel programming problems.
 +
</p>
 +
<p>This winter (2014), Chris taught an intermediate successor course in parallel computing. This new course covered a variety of parallel algorithms and platforms.
 +
</p>
 +
<p>Chris is interested in supervising applied research initiatives in task-parallel and data-parallel programming that provide students who have completed his courses with opportunities to apply and refine their skill set on heterogeneous applications.  He is interested in joint collaboration with academia, business, and industry on research projects that will advance the state of this technology and better prepare his students for the challenges and opportunities that are arising in the field of accelerated computing.
 +
</p>
 +
</td>
 +
<td>
 +
[[Image:NV_CUDA_Teaching_Center_Small.jpg]]
 +
</td>
 +
</tr>
 +
</table>
 
<p>
 
<p>
Chris teaches C, C++, DirectX Game Programming, and Human Computer Interaction.
+
Before joining Seneca College, Chris incorporated cutting-edge software within engineering firms and government departments and introduced cutting-edge technology into graduate programs at several top-tier academic institutions.
 +
</p>
 +
<p>
 +
Chris maintains a personal interest, outside his Seneca College duties, in developing and modelling constitutive relations for soft granular matter.  He finds this a fascinating, emerging field, which he believes presents numerous opportunities for innovative programming.
 
</p>
 
</p>
  
 
== Courses ==
 
== Courses ==
=== Courses Taught ===
+
=== ICT Courses Taught ===
<h5>OOP244 - Introduction to Object-Oriented Programming</h5>
+
<h5>IPC144 - Introduction to Programming Using C</h5>
 +
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 +
<i>Further information: [https://scs.senecac.on.ca/~ipc144 IPC144 Web Site]</i>
 +
</dl>
 +
<h5>OOP244 - Introduction to Object-Oriented Programming Using C++</h5>
 +
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 +
<i>Further information: [https://scs.senecac.on.ca/~oop244 OOP244 Web Site]</i>
 +
</dl>
 +
<h5>OOP344 - Object-Oriented Programming Using C++</h5>
 +
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 +
<i>Further information: [https://scs.senecac.on.ca/~oop344 OOP344 Web Site]</i>
 +
</dl>
 +
<h5>BTP100 - Programming Fundamentals Using C</h5>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
<i>Further information: [https://cs.senecac.on.ca/~oop244 OOP244 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/OOP244 OOP244 Wiki]</i>
+
<i>Further information: [https://scs.senecac.on.ca/~btp100 BTP100 Web Site]</i>
 
</dl>
 
</dl>
 
<h5>BTP200 - The Object-Oriented Paradigm using C++</h5>
 
<h5>BTP200 - The Object-Oriented Paradigm using C++</h5>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
<i>Further information: [https://cs.senecac.on.ca/~btp200 BTP200 Web Site]</i>
+
<i>Further information: [https://scs.senecac.on.ca/~btp200 BTP200 Web Site]</i>
 
</dl>
 
</dl>
 
<h5>BTP300 - Object-Oriented Software Development I - C++</h5>
 
<h5>BTP300 - Object-Oriented Software Development I - C++</h5>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
<i>Further information: [https://cs.senecac.on.ca/~btp300 BTP300 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/BTP300 BTP300 Wiki]</i>
+
<i>Further information: [https://scs.senecac.on.ca/~btp300 BTP300 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/BTP300 BTP300 Wiki]</i>
 
</dl>
 
</dl>
 
<h5>BTH740 - Human Computer Interaction</h5>
 
<h5>BTH740 - Human Computer Interaction</h5>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
<i>Further information: [https://cs.senecac.on.ca/~bth740 BTH740 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/BTH740 BTH740 Wiki]</i>
+
<i>Further information: [https://scs.senecac.on.ca/~bth740 BTH740 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/BTH740 BTH740 Wiki]</i>
 
</dl>
 
</dl>
 
<h5>GAM666, DPS901 - Introduction to 3D Game Programming</h5>
 
<h5>GAM666, DPS901 - Introduction to 3D Game Programming</h5>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
<i>Further information: [https://cs.senecac.on.ca/~gam666 GAM666 and DPS901 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/GAM666/DPS901 GAM666 and DPS901 Wiki]</i>
+
<i>Further information: [https://scs.senecac.on.ca/~gam666 GAM666 and DPS901 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/GAM666/DPS901 GAM666 and DPS901 Wiki]</i>
 
</dl>
 
</dl>
 
<h5>GAM670, DPS905 - 3D Game Programming Techniques</h5>
 
<h5>GAM670, DPS905 - 3D Game Programming Techniques</h5>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
<i>Further information: [https://cs.senecac.on.ca/~gam670 GAM670 and DPS905 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/GAM670/DPS905 GAM670 and DPS905 Wiki]</i>
+
<i>Further information: [https://scs.senecac.on.ca/~gam670 GAM670 and DPS905 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/GAM670/DPS905 GAM670 and DPS905 Wiki]</i>
 +
</dl>
 +
<h5>GPU610, DPS915 - Introduction to Parallel Programming</h5>
 +
<dl style="margin-bottom:0.5em;margin-top:0.2em;line-height:1.5em;"><dd>
 +
<i>Further information: [https://scs.senecac.on.ca/~gpu610 GPU610 and DPS915 Web Site] [http://zenit.senecac.on.ca/wiki/index.php/GPU610/DPS915 GPU610 and DPS915 Wiki]</i>
 
</dl>
 
</dl>
  
=== New ICT Courses (Fall 2012) ===
+
== Applied Research ==
* GPU610 Introduction to Parallel Programming
+
=== General Interests ===
* DPS915 Parallel Programming Fundamentals
+
* heterogeneous computing (CPU + GPU) for scientific applications
 +
* joint collaborations with academia, business, and industry
  
== Applied Research (Potential - Winter 2013) ==
+
=== Domain Expertise ===
* Heterogeneous Computing (CPU/GPU)
+
* mathematical applications
: numerical methods algorithms for open source libraries
+
: numerical methods
 +
: direct solution techniques (frontal)
 +
* scientific and engineering applications
 +
: non-linear finite elements
 +
: elasto-plastic constitutive relations
 +
: friction and partial-slip in contact problems
 +
* game programming
 +
: instructional frameworks
 +
* GPU programming
  
 
== Cross-References ==
 
== Cross-References ==
Line 82: Line 127:
 
<ul>
 
<ul>
 
<li>
 
<li>
[https://scs.senecac.on.ca/~chris.szalwinski/timetable.html Chris' Schedule]
+
[https://scs.senecac.on.ca/~chris.szalwinski/timetable.html Chris' Current Teaching Schedule]
 
</li>
 
</li>
 
<li>
 
<li>
 
[https://scs.senecac.on.ca/~chris.szalwinski/ Chris' ICT Home Page]
 
[https://scs.senecac.on.ca/~chris.szalwinski/ Chris' ICT Home Page]
</li>
 
<li>
 
[http://fwks.senecac.on.ca Frameworks Page]
 
 
</li>
 
</li>
 
</ul>
 
</ul>
  
 
== Publications ==
 
== Publications ==
* Anastasiade, J., and Szalwinski, C. (2010). Building Computer-Based Tutors to Help Learners Solve Ill-Structured Problems. In [http://aace.org/conf/edmedia Proceedings of the World Conference on Educational Multimedia, Hypermedia and Telecommunications 2010]. Toronto, Ontario, Canada: Association for the Advancement of Computing in Education. pp.3726-3732.
+
* ---- (2013). Programming Computers Using C. Seneca College. June 2014 Edition.
* Szalwinski, C. (2010). Introduction to C++ for C Programmers. Seneca College ISBN 0-00036-71716-3.
+
* ---- (2013). Introduction to Object-Oriented Programming Using C++11. Seneca College November 2013 Edition.
 +
* Anastasiade, J., and ---- (2010). Building Computer-Based Tutors to Help Learners Solve Ill-Structured Problems. In [http://aace.org/conf/edmedia Proceedings of the World Conference on Educational Multimedia, Hypermedia and Telecommunications 2010]. Toronto, Ontario, Canada: Association for the Advancement of Computing in Education. pp.3726-3732.
 +
* ---- (2010). Introduction to C++ for C Programmers. Seneca College 889000191647.
 +
* ---- (1983). Flexibility of a contact area of an isotropic elastic body, Journal of Applied Mechanics 52, 62.
 +
* ---- (1983). The particle stress tensor, Geotechnique 33, 181.
 +
=== Monographs ===
 +
* ---- (1984). The Frontal Solution Technique - University of Cambridge, England
 +
* ---- (1976). Engineering Approximations: the finite element method in structural mechanics - University of Toronto
 +
=== Applications Software ===
 +
===== For Structural Engineers =====
 +
* ---- (1989). TIMECOST - Time-keeping, job-costing, client-billing accounting package - dBase IV
 +
* ---- (1987). SLABDESN - Reinforced concrete slab analysis and design program
 +
* ---- (1985). FRANV4 - Elastic analysis of hi-rise structures with many degrees of freedom
 +
* ---- (1976). PRSN - Properties of irregular sections with shear center
 +
* ---- (1975). LLOAD - Live load reduction program for structural engineers
 +
* ---- (1974). CONCBM - Analysis, design and detailing of reinforced concrete beams
 +
* ---- (1972). EARQ - Earthquake analysis for structural engineers
 +
* ---- (1972). DEFLCTN - Long-term deflections of reinforced concrete beams
 +
 
 +
===== For Research Engineers and Academia =====
 +
* ---- (1974). FRONTAL - A software library for efficient solution of symmetric systems of element based simultaneous equations
 +
* ---- (1976). FEASVOMO - Finite Element Framework for developing and testing new and innovative elements
 +
* ---- (1983). FEASAS - Finite Element System for the analysis of reinforced earth embankments

Latest revision as of 21:12, 16 May 2014

Chris Szalwinski
Chris Szalwinski.jpg
Faculty Picture
Occupation Seneca College
School of Information and Communications Technology
Faculty
Office T2088
Phone 416.491.5050 ext 33634
IRC
ICT Home Page https://scs.senecac.on.ca/~chris.szalwinski/
Blog
Email chris dot szalwinski at senecacollege dot ca

Chris Szalwinski is a Professor at the School of Information and Communications Technology (ICT) of Seneca College and an independent scientific researcher. He teaches C, C++ and Parallel Programming. He has taught Game Programming (DirectX) and Human Computer Interaction and has published comprehensive web sites that contain his course materials. He currently leads the programming faculty and is updating its course material for the C and C++, diploma and degree subjects. He does research on soft matter mechanics in his spare time.

In fall 2012, Chris introduced an ICT course in parallel programming on heterogeneous computers using Nvidia's CUDA technology; that is, a course on how to use your desktop as your very own supercomputer. He teaches ICT students to harness the processing power available on today's desktop graphics cards for computing tasks that benefit from high performance hardware. Students who finish this course should find themselves well-positioned to assist employers and clients in solving embarrassingly data-parallel programming problems.

This winter (2014), Chris taught an intermediate successor course in parallel computing. This new course covered a variety of parallel algorithms and platforms.

Chris is interested in supervising applied research initiatives in task-parallel and data-parallel programming that provide students who have completed his courses with opportunities to apply and refine their skill set on heterogeneous applications. He is interested in joint collaboration with academia, business, and industry on research projects that will advance the state of this technology and better prepare his students for the challenges and opportunities that are arising in the field of accelerated computing.

NV CUDA Teaching Center Small.jpg

Before joining Seneca College, Chris incorporated cutting-edge software within engineering firms and government departments and introduced cutting-edge technology into graduate programs at several top-tier academic institutions.

Chris maintains a personal interest, outside his Seneca College duties, in developing and modelling constitutive relations for soft granular matter. He finds this a fascinating, emerging field, which he believes presents numerous opportunities for innovative programming.

Courses

ICT Courses Taught

IPC144 - Introduction to Programming Using C
Further information: IPC144 Web Site
OOP244 - Introduction to Object-Oriented Programming Using C++
Further information: OOP244 Web Site
OOP344 - Object-Oriented Programming Using C++
Further information: OOP344 Web Site
BTP100 - Programming Fundamentals Using C
Further information: BTP100 Web Site
BTP200 - The Object-Oriented Paradigm using C++
Further information: BTP200 Web Site
BTP300 - Object-Oriented Software Development I - C++
Further information: BTP300 Web Site BTP300 Wiki
BTH740 - Human Computer Interaction
Further information: BTH740 Web Site BTH740 Wiki
GAM666, DPS901 - Introduction to 3D Game Programming
Further information: GAM666 and DPS901 Web Site GAM666 and DPS901 Wiki
GAM670, DPS905 - 3D Game Programming Techniques
Further information: GAM670 and DPS905 Web Site GAM670 and DPS905 Wiki
GPU610, DPS915 - Introduction to Parallel Programming
Further information: GPU610 and DPS915 Web Site GPU610 and DPS915 Wiki

Applied Research

General Interests

  • heterogeneous computing (CPU + GPU) for scientific applications
  • joint collaborations with academia, business, and industry

Domain Expertise

  • mathematical applications
numerical methods
direct solution techniques (frontal)
  • scientific and engineering applications
non-linear finite elements
elasto-plastic constitutive relations
friction and partial-slip in contact problems
  • game programming
instructional frameworks
  • GPU programming

Cross-References

External links

Publications

  • ---- (2013). Programming Computers Using C. Seneca College. June 2014 Edition.
  • ---- (2013). Introduction to Object-Oriented Programming Using C++11. Seneca College November 2013 Edition.
  • Anastasiade, J., and ---- (2010). Building Computer-Based Tutors to Help Learners Solve Ill-Structured Problems. In Proceedings of the World Conference on Educational Multimedia, Hypermedia and Telecommunications 2010. Toronto, Ontario, Canada: Association for the Advancement of Computing in Education. pp.3726-3732.
  • ---- (2010). Introduction to C++ for C Programmers. Seneca College 889000191647.
  • ---- (1983). Flexibility of a contact area of an isotropic elastic body, Journal of Applied Mechanics 52, 62.
  • ---- (1983). The particle stress tensor, Geotechnique 33, 181.

Monographs

  • ---- (1984). The Frontal Solution Technique - University of Cambridge, England
  • ---- (1976). Engineering Approximations: the finite element method in structural mechanics - University of Toronto

Applications Software

For Structural Engineers
  • ---- (1989). TIMECOST - Time-keeping, job-costing, client-billing accounting package - dBase IV
  • ---- (1987). SLABDESN - Reinforced concrete slab analysis and design program
  • ---- (1985). FRANV4 - Elastic analysis of hi-rise structures with many degrees of freedom
  • ---- (1976). PRSN - Properties of irregular sections with shear center
  • ---- (1975). LLOAD - Live load reduction program for structural engineers
  • ---- (1974). CONCBM - Analysis, design and detailing of reinforced concrete beams
  • ---- (1972). EARQ - Earthquake analysis for structural engineers
  • ---- (1972). DEFLCTN - Long-term deflections of reinforced concrete beams
For Research Engineers and Academia
  • ---- (1974). FRONTAL - A software library for efficient solution of symmetric systems of element based simultaneous equations
  • ---- (1976). FEASVOMO - Finite Element Framework for developing and testing new and innovative elements
  • ---- (1983). FEASAS - Finite Element System for the analysis of reinforced earth embankments