As a professor in York University’s Department of Electrical Engineering and Computer Science, I taught various subjects to students from many disciplines and at each of the four undergraduate levels. In these roles I honed my pedagogical skills to facilitate asynchronous learning and developed my teaching philosophy: demonstrate and guide, teach and inspire.
To tailor my teaching methods for a wide variety of students, I used Neil Fleming’s VAK model, which posits three learning styles: visual, auditory, and experiential (kinesthetic). Although the theory of learning styles is disputed, I still believe presenting concepts in multiple forms increases students’ chances of learning and retaining the material. Students have many demands on their time and attention. In addition to traditional slide decks, I recorded my lectures and developed online videos to demonstrate applied concepts. This allowed for asynchronous learning. Students had flexibility in when and where they chose to learn and review course topics. The online videos are narrated for auditory learners, and fully captioned for visual learners and those viewing in extremely quiet or noisy environments. Experiential learners can follow along with the videos on their own computer, or pause the video to explore ideas on their own.
In Planning and Implementing Assessment (1998), Freeman and Lewis posit that timely feedback benefits learning. In Formative assessment and self-regulated learning (2006), Nicol and Macfarlane-Dick propose that “good quality external feedback… helps students take action to reduce the discrepancy between their intentions and the resulting effects”. Thus, I always returned tests and assignments to students in as timely a manner possible with constructive feedback. This way, students could adjust their programming or study approach and learn for next time.
Students often sought ways to test their understanding of course concepts. In addition to providing review exercises, I suggested that they take the role of the instructor: either “How would explain this concept to a friend?”, or “If you were the instructor, what questions would you ask to evaluate someone’s understanding of the topic?” This encouraged deep reflection on the concept and self reflection on their learning. For students who sought guidance on researching ideas and applying their knowledge, I pointed them to various scholarly databases for journal articles and conference papers — ones that I had often used. As educators, we do not always have the answers, but we have a lot of experience finding answers. Conveying these skills is integral to fostering life-long learners.
My teaching philosophy caters to students of various learning styles and experience levels. I approached teaching with dedication and enthusiasm to inspire the same commitment in my students, and to help them succeed in their academic and professional endeavours.
This computer science course presented an introduction to computer technology for non-majors. It was required by Biology, Chemistry, Kinesiology, and Psychology departments for their undergraduate programs, and was a popular elective in others. Thus, the student population was very large (approximately 800 per term), with a diverse knowledge background.
I redesigned this course to update its content and produced a series of videos to facilitate asymmetric learning. The videos (linked below) teach spreadsheets, presentation skills, advanced word processing, file systems and organization, and image editing. Students could view and review the videos on their own time on campus, during their commute, or at home. Additionally, they could pause the videos to try out the demonstrated activity, and replay segments, as needed. All videos are closed captioned, and bookmarked with each topic. A detailed description of the redesign is a case study on this website.
In addition to conveying my own interest in the subject being taught, it is also important to relate concepts to students’ daily lives. When presenting the history of computing module, I highlighted the contribution of women to appeal to female students, who comprise the majority of the course. When discussing computer hardware, I had students pretend that they were buying a new computer. On the topic of wireless communication, I outlined threats to information security and how to protect their personal data. My redesign was well-received by students. Participation increased 47%, and exam scores increased 12%.
Object Oriented Programming using Java
Aimed at students majoring in computer science or engineering, this course introduced Java and object-oriented programming (OOP). It focused on reading and using application programming interfaces (APIs), such as utility classes and the Collections framework (sets, maps, and lists). Students learned about data types, objects, and how objects are created and accessed in memory. The course also taught control flow (if-statements and loops), performing input from and output to files, regular expressions, and exception handling.
The course was updated to include circuit-building lab exercises. These exercises required using LEDs, wires, breadboards, and writing Java code to handle input events from sensors and triggering output to activate actuators.
Algorithms and Data Structures
Building upon the introductory course on OOP and using APIs, this course focused on implementing APIs. We discussed the OOP concepts of aggregates versus compositions, inheritance hierarchies (attribute visibility, overriding methods, abstract classes versus interfaces, and inner classes), generics, and building graphical user interfaces using the Model-View-Controller (MVC) design pattern. This course also introduced recursion (both implementation and informal proofs of correctness), searching and sorting algorithms (including quicksort and merge sort), implementing linked lists, stacks, queues, and binary trees, and informal analysis of algorithm complexity using big-O notation.
Towards the end of the course, I added the “Maze Solver” lab exercise to demonstrate traversal of linked data structures. It also has the side effect of illustrating depth-first search in an acyclic and then cyclic graph, even though these topics would not be formally introduced until upper-year courses. I wanted to pique students’ interest, so I highlighted some real-word applications of such algorithms (e.g., route determination in GPS navigation devices, and optimal path calculation for air travel).
Professional, Legal, and Ethical Issues
In a departure from the technical aspects of computer science, this course discussed the professional, legal, and ethical issues in the development, deployment, and use of computer systems. Specific topics included ethical theories, the impact of computing technology on society, privacy and security, computer crime, malware, intellectual property, legal issues, and professional responsibilities.
This course invited guest lectures to highlight the application of course topics to industry. The guest lecturers I recruited included Fred Carter (Senior Policy and Technology Advisor, Office of the Information and Privacy Commissioner of Ontario) and Daniel Tobok (CEO of Cytelligence Inc.).
This cross-disciplinary course began by presenting the evolution of HCI from the human factors area of psychology, with a focus on empirical study and the scientific method. This included discussions on the development and evaluations of input devices (e.g., mouse) and interaction techniques (e.g., direct manipulation of graphical objects, such as icons, windows, and menus). After summarizing human perception, we discussed design guidelines (e.g., Norman’s Principles and Shneiderman’s Golden Rules) and heuristics that highlight human perceptual tendencies (e.g., Gestalt principles), cognitive limits (e.g., Hick-Hyman Law), and physical limits (e.g., Fitts’ Law).
The primary learning objective of this course was for students to design, conduct, and write-up a quantitative empirical user study. To that end, we discussed forming a testable research question, design considerations for a user study, recording observations, performing and interpreting ANOVA and post hoc comparisons, and writing a research paper based on the ACM SIGCHI paper format.
The course finished with a discussion on interaction paradigms, including time sharing (e.g., cloud computing), personal computing (e.g., graphical user interfaces), information access (e.g., the Web), computer-supported cooperative work (e.g., simultaneous editing of a collaborative document), agent-based interfaces (e.g., Amazon’s Alexa), ubiquitous computing (e.g., smartphones, tablets, and smartwatches), and context-aware (e.g., collision avoidance systems in vehicles).
Student Feedback Comments
“Professor Castellucci really presented the material well. The knowledge he holds over OOP in java shines specifically since he's able to draw metaphors that allow students to grasp the material in a different light (speaking from personal experience). He has stayed well past his office hours to ensure that every students' questions are all patiently answered, which is something that's well appreciated. His lectures were straight forward, no bells or whistles, succinct and well presented. You can tell he cares a lot about the material (as well as his students) and does a great job teaching it.”
“Instructor was possibly the most organised instructor I've had. The moodle was organised chronologically with all the pertinent material fitted into the appropriate weeks during the session. The syllabus was the most thorough and easily accessible syllabus I have received thus far. Online taped lectures is nothing short of brilliant.”
“By far one of the greatest professors that i [sic] have had during my first year. He takes a completely foreign concept to many and is able to relate it to real world situations to help us better understand the course material. He is also very friendly and always ensures that students understand what is being taught.”
“The best things about this course are that the professor is extremely clear in explaining the information to the students, and that he provides a lecture recording. With out [sic] those recordings I wouldn't have been able to excel in the class the way I did. I am someone who is constantly ill and learns best when I hear the information being explained with various comparisons.”
“Dr. Castellucci not only kept the classes fun with his humour, but he actually introduced topics that were relevant to people's lives in this day and age, such as protecting one's data in any computer, how to prevent identity theft, etc. Also, his assignments, although fair in level of difficulty, actually related to real life functions we may need while facing real-life job software programs. I cannot describe how grateful I am to have taken this course with him, since not only did I complete a degree requirement, but I actually walked away with new information applicable to my life.”
“The professor is extremely responsive and cooperative and when he is well versed in the topics at hand. When he cannot answer a question, he looks into it and gives us the answer at a later time, so it's nice follow up.”
Awards and Nominations
- York University President’s University-Wide Teaching Awards (Nominated, 2017): This award recognizes those in the university who, through innovation and commitment, have significantly enhanced the quality of learning of York students.
- Dept. of Electrical Engineering & Computer Science TA Teaching Excellence Award (Won, 2013): I was the inaugural recipient of this award, recognizing EECS graduate teaching assistants who have demonstrated excellence in teaching-related duties.
- York University Faculty of Science and Engineering Excellence in Teaching Award (Won, 2012): This award recognizes those who demonstrate exceptional teaching qualities and practices, and outstanding contribution to the Faculty of Science and Engineering.