Teaching
I have upwards of six years of experience teaching students in Algoma University's Faculty of Computer Science & technology in a variety of courses as both a teaching assistant and as an instructor. I have experience teaching the following courses:
Course | Academic Calendar Description | Teaching Capacity |
---|---|---|
PHYS 1006 - Introductory Physics I | This course is the first of two courses that provide the student with a thorough understanding of the basic concepts of physics. Topics covered include kinematics, dynamics, work, energy and momentum, equilibrium and fluids, waves and sound, temperature, heat, and thermodynamics. The theoretical concepts are augmented by weekly laboratory work and assignments. | Teaching Assistant Laboratory Instructor |
PHYS 1007 - Introductory Physics II | This is an introductory Physics course for students who have completed a 4U Physics course or a university physics course with mechanics. A knowledge of mechanics, vectors, and energy is assumed. The topics covered are: Geometrical Optics, Electricity and Magnetism and Modern Physics. | Teaching Assistant Laboratory Instructor |
COSC 1047 - Introduction to Computer Science II | This course takes a software engineering approach to programming in the large, with particular emphasis on modularity, abstract data types, program specification, testing, documentation, and maintenance. Students will develop and document software with reusable software libraries. | Teaching Assistant Laboratory Instructor |
COSC 2006 - Data Structures I | An introduction to data structures and their associated algorithms. Pointers and dynamic memory. Treatment of stacks, queues, and linked lists. Searching and sorting algorithms. Analysis of time and space requirements. | Teaching Assistant Laboratory Instructor Lecture Instructor |
MATH 2056 - Discrete Mathematics II | This course will cover the following topics: countability of sets; first order logic; algebra of relations; graph theory including path problems, chromatic number, trees, planarity, directed graphs and directed trees; recurrence relations; O (f), o (f), and ~ (f) notations. | Teaching Assistant |
COSC 2406 - Assembly Language Programming | This is an introduction to basic computer organization and instruction set architecture. Topics considered include: the instruction execution cycle; an overview of the assembly process; data representation; addressing modes, arrays, and strings; translation of high-level language control structures; procedures, parameter passing, and recursion; macros and conditional assembly; interrupts and input/output; interfacing to high level languages; floating point process or architecture and instructions code; code optimization techniques. | Teaching Assistant Labratry Instructor Lecture Instructor |
COSC 2956 - Internet Tools | Various internet tools and services are examined. These include advanced editors, Java, JavaScript, web browsers, ftp, and the creation and maintenance of web pages and web sites. The course emphasizes the integration of these tools into a programming environment. | Lecture Instructor |
COSC 3596 - Mobile Application Development I | This course introduces the student to one of the major Mobile Computing platforms and develops their ability to write software applications for the platform. The student will learn to use the application development software for the platform and study the structure of the operating system and the application programs. They will learn to write programs that employ techniques to utilize complex User Interfaces, animation and graphics, data storage and retrieval, text input and output, network services, and platform hardware such as the camera and sensors. The Android operating system will form the basis for this course. | Lecture Instructor |
COSC 4086 - Fourth Year Project I | This course will be composed of a written report on some approved topic of research in the field of Computer Science, or an approved comprehensive software and/or hardware project together with a report documenting the project and related research - followed by a short public presentation of the research/project. The content of this project should not overlap with other projects the student has completed in other courses. Group projects are allowed with prior departmental consent. Departmental approval is required prior to registration and students need to present a proposal at least 20 days prior to approval. | Project Supervisor |
COSC 4087 - Fourth Year Project II | A written report on some approved topic of research in the field of Computer Science, or an approved comprehensive software and/or hardware project together with a report documenting the project and related research - followed by a short public presentation of the research/project. The content of this project should not overlap with other projects the student has completed in other courses. Group projects are allowed with prior departmental consent. Departmental approval is required prior to registration and students need to present a proposal at least 20 days prior to approval. | Project Supervisor |
COSC 4596 - Mobile Application Development II | This course extends the knowledge the student gained in COSC 3596 Mobile Application Development I to two of the more popular of the other operating systems in the field. The course will focus on the development of applications that run on the Microsoft Surface tablet and Windows 8 computers and devices as well as devices that run Apple's iOS perating system such as the iPad and iPhone. | Lecture Instructor |
Teaching Assistantships
Upper-year (i.e., third- and fourth year) students are invited to complete this Teaching Assistant Application Form to apply for any open teaching assistant positions for my courses. Positions are added to the list as I am assigned to them and are removed from the list as TAs are chosen. Please do not submit a general TA application - these will be discarded. Only successful applicants will be contacted to complete the hiring process. Emailed sublissions are currently not accepted: all applications must be done using the linked form.
Supervision of Project and Thesis Work
Are you a third year computer science student at Algoma University looking to complete a project or thesis? To request supervision for your project or thesis, please fill out my Project/Thesis Supervision Request Form. My areas of expertise include the following:
- Desktop application development (Java, Python, C/C++)
- Android application development (Kotlin and Java)
- iOS application development (Swift with Storyboard design methodology)
- Low-level software design (MASM, MPASM)
- Use of microcontrollers (i.e., Rasbperry Pi, Arduino)
- Physics calculations, applications and measurements
It is ideal if you have a project or thesis topic that you want to study before reauesting supervision, but if you don't have any ideas, you can always ask if there are any project or thesis ideas I may have for you.