Teaching
Data 201 (Fall 2022, Winter 2023): Thinking with Data
- I taught students fundamental concepts and techniques of data analysis,
covering topics such as data cleaning, data collection methodologies, and
data visualization techniques. I also provided instruction on how to effectively analyze and interpret data..
- Introduced students to various tools used in data analysis, such as Qualtrics
for survey design and data collection, Openrefine
for data cleaning and transformation, and Tableau for data visualization.
Guided students in understanding and utilizing these tools to perform data-related tasks.
- Assessed students' understanding and application of data analysis principles
through grading assignments and projects. This involved evaluating their
data collection methods, data cleaning processes, and the quality of their data visualizations..
- Created a conducive learning environment by engaging students in discussions,
answering their queries, and facilitating hands-on exercises. Encouraged active participation and
fostered a collaborative learning atmosphere where students could apply their knowledge in real-world scenarios.
Course 1: Malware and Reverse Engineering.
- Developed and organized the course materials, including lecture notes, slides, and assignments, covering topics such as:
Introduction to malware types and behaviors, Malware analysis techniques and tools, Static and dynamic analysis of malware, Reverse engineering principles and methods, Code and behavior analysis for detecting and understanding malware Anti-reverse engineering techniques used by malware creators.
- Designed quizzes and assignments to assess students' understanding of malware analysis and reverse engineering. Evaluated their work, provided feedback, and guided them towards improving their analytical and reverse engineering skills.
Course 2: Computer Operating Systems and Maintenance.
- Developed and organized the course materials, including lecture notes, slides, quizzes and assignments covering topics related to computer operating systems and maintenance, including: Overview of operating systems and their functions File systems and storage management, Process management and scheduling, Memory management and virtualization, Device management and drivers, System maintenance and troubleshooting techniques.
- conducted hands-on programming exercises to reinforce students' understanding of operating systems concepts.
- Assessed students' understanding and application of data analysis principles
through grading assignments and projects. This involved evaluating their
data collection methods, data cleaning processes, and the quality of their data visualizations..
- assessed students' comprehension through quizzes, assignments, and exams, evaluating their understanding of operating systems principles and their ability to troubleshoot common issues.
Course 3: Structured Programing.
- Developed and organized the course materials, including lecture notes, slides, quizzes and assignments covering topics related to foundational concepts of structured programming using C and C++. Topics covered included: Introduction to programming languages and syntax, Variables, data types, and operators, Control structures (loops and conditionals),Functions and parameter passing, Arrays and strings, Pointers and memory management.
- Conducted practical programming exercises to reinforce students' understanding of structured programming principles. These exercises provided opportunities for students to write code, debug programs, and practice problem-solving skills using C and C++.
- Assessed students' progress through quizzes, coding assignments, and projects, evaluating their grasp of programming concepts and their ability to write structured code in C and C++.
Course 4: Networking and Essentials
- Developed and organized course materials including lecture notes, slides, quizzes, and assignments.
- Covered various networking topics such as the OSI model, network protocols, network topologies, device roles, security measures, and troubleshooting techniques.
- Delivered engaging lectures and utilized visual aids to enhance understanding.
- Assessed student knowledge through quizzes and assigned practical assignments to reinforce learning.
Course 5: Security Strategies
- Developed and organized course materials including lecture notes, slides, quizzes, and assignments on topics such as threat modeling, risk assessment, security policies, network security, application security, physical security, and incident response planning.
- Delivering engaging lectures, facilitating discussions, and providing real-world examples to enhance students' understanding of security strategies and their application.
- Designing hands-on exercises, simulations, and analyzing relevant case studies to enable students to apply security strategies in practical scenarios and develop problem-solving skills.
- Assessing student progress through assignments, projects, and exams, and providing feedback and support to help students improve their understanding and application of security strategies.
Course 6: Ethical Hacking and Penetration Testing.
- Developed course materials covering topics such as ethical hacking methodologies, information gathering, vulnerability assessment, exploitation techniques, and network/web application security testing.
- Delivered lectures using visual aids and real-world examples to enhance understanding of ethical hacking concepts and techniques.
- Evaluated student understanding through quizzes, assignments, and projects that require the application of ethical hacking skills.
- Assigning practical assignments to simulate ethical hacking scenarios, allowing students to apply their knowledge and develop problem-solving and critical thinking abilities.
Course 7: Internet and Web Security.
- Created a curriculum covering topics such as web vulnerabilities, secure coding, authentication, network security protocols, and web security tools.
- Delivered lectures that engage students and utilize real-world examples to enhance understanding of internet and web security concepts.
- Designed hands-on exercises to allow students to apply security measures and techniques to protect web applications and data.
- Assessed student knowledge through quizzes, assignments, and providing feedback to guide their learning and improvement in internet and web security.
Course 8: Cyber Defense.
- Created a curriculum covering topics such as threat landscape, network security, incident response, vulnerability assessment, and risk management.
- Delivered lectures and facilitating discussions to enhance students' understanding of cyber defense concepts, with real-world examples.
- Designed practical labs and simulations to provide students with hands-on experience in implementing cyber defense measures.
- Assessed student knowledge and skills through quizzes, assignments, and practical assessments to evaluate their proficiency in cyber defense.
CSE 102: Structured Programming with C (Jan-Jun '2020, July-Dec '2020, Jan-Jun '2021)
- Developed and organized course materials including lecture notes, slides, quizzes, and assignments on topics such as data types, control structures, functions, arrays, and pointers.
- Utilized CodeBlocks as the primary integrated development environment (IDE) for teaching C programming.
- Introduced students to various programming competition platforms like Codeforces and URI Online Judge. Provided hands-on exercises and assignments on the URI platform, allowing students to practice their programming skills and problem-solving abilities in a competitive coding environment.
CSE 203: Structured Programming with C++ (Jan-Jun '2021)
- Developed and organized course materials including lecture notes, slides, quizzes, and assignments on advanced programming topics such as functions, arrays, pointers, data structures.
- Teaching the fundamentals of structured programming using the C++ language.
- Utilized CodeBlocks as the primary integrated development environment (IDE) for teaching C programming.
- Assessed students' understanding and application of data analysis principles
through grading assignments and projects. This involved evaluating their
data collection methods, data cleaning processes, and the quality of their data visualizations..
- Introduced students to various programming competition platforms like Codeforces and URI Online Judge. Provided hands-on exercises and assignments on the URI platform, allowing students to practice their programming skills and problem-solving abilities in a competitive coding environment.
CSE 404: Computer Architecture (Jan-Jun '2020, July-Dec '2020, Jan-Jun '2021)
- Developed and organized course materials including lecture notes, slides, quizzes, and assignments on computer architecture, topics including instruction sets, processor organization, memory hierarchy, and input/output systems.
- Explored different computer architectures such as Von Neumann, pipelining, and parallel processing.
- Illustrating the interplay between hardware and software, emphasizing the impact of architectural design decisions on program execution.
LLB 104: Computer Fundamentals (July- Dec '2020)
- Developed and organized course materials including lecture notes, slides, quizzes, and assignments on basic computer fundamental topics including the history of computers, logic gates, network topologies, input/output devices, basic programming and basic web development using HTML/CSS.
- Facilitating hands-on exercises, practical demonstrations, and interactive activities to reinforce learning and promote active engagement.
- Monitoring and evaluating student performance, providing constructive feedback, and assisting students in their learning journey.
CSE 202: Data Structure (July- Dec '2021)
- Taught the fundamental concepts and principles of data structures, such as arrays, linked lists, stacks, queues, trees, and graphs.
- Developing comprehensive course notes and materials to support student learning and provide additional resources for self-study.
- Designing and grading assignments, quizzes, and exams to assess student understanding and progress.
- Facilitating hands-on coding exercises and problem-solving sessions to enhance students' programming skills and problem-solving abilities.
CSE 301: Digital Logic Design (July- Dec '2021)
- Taught the fundamentals of digital logic design, including Boolean algebra, logic gates, combinational circuits, and sequential circuits.
- Utilized the logic gate simulator logic.ly for hands-on learning, allowing students to design, simulate, and analyze digital circuits.
- Developed comprehensive course notes and materials to support student learning and provide additional resources for self-study.
- Designed and graded assignments and projects to assess students' understanding and application of digital logic design concepts
CSE 302: Discrete Mathematics (July- Dec '2021)
- Taught fundamental concepts in discrete mathematics, such as propositional logic, set theory, relations, functions, combinatorics, and graph theory.
- Explored various proof techniques and strategies used in discrete mathematics, including direct proofs, proof by contradiction, and mathematical induction.
- Demonstrated applications of discrete mathematics in computer science, cryptography, and algorithm analysis.
- Developed comprehensive course notes and materials to support student learning and provide additional resources for self-study.
- Designing and grading assignments and exams to assess students' understanding and ability to apply discrete mathematics principles.
Mentoring
Mentor, Schulich Ignite, University of Calgary, Alberta
Begineers Programming (Fall '22, Winter '23)
- Guided high school students in learning Python programming through free introductory and advanced workshops.
- Provided one-on-one support and mentoring to students, offering assistance and sharing personal insights and experiences in the field of technology
- Utilized the Trinket platform as an IDE for teaching and practicing coding concepts.
Taught students how to develop graphical interfaces using basic coding techniques, making the learning process engaging and interactive.
- Introduced students to the development of small games using basic programming concepts, fostering creativity and problem-solving skills. Made coding fun and accessible for all students, inspiring and motivating the next generation of programmers.