The Teaching C++ workshop is going to take place at the Academic College of Tel-Aviv-Yaffo, on May 16th-17th, 2019, two half days: Thursday afternoon and Friday morning.
The goals of the workshop are to discuss and present insights, teaching materials and other issues related to Teaching C++, and to meet and build a community of C++ Teachers. The workshop is related to the ISOCPP group of C++ Education: SG20.
The workshop addresses “C++ Language Teachers” as well as teachers that use or practice C++ in their courses and practitioners who are interested in the domain of Teaching C++.
The workshop is co-located with the Core C++ Conference, taking place at the same venue on May 14th-17th. You may join both the workshop and the conference or the Teaching C++ workshop alone.
Registration is now closed
Submissions due date: March 15 -- Closed
Acceptance notification: March 25 -- Done
Registration closes: April 10
Thursday May 16th
|13:00 - 13:30||Welcome and Coffee (Economics 206)|
|13:30 - 15:20||What's new: C++11 to C++20 (Economics 206)|
|13:30 - 14:20 Features from C++11 and C++14 - Amir Kirsh (Tel-Aviv-Yaffo Academic College)|
|14:20 - 14:30 Short break|
|14:30 - 15:20 Features from C++17 and C++20 - Yehezkel Bernat (Hadassah Academic College)|
|15:30 - 17:40||Joining the Core C++ Conference (Weston Auditorium)|
|15:30 - 17:00 Closing keynote of the Core C++ Conference|
|17:00 - 17:20 Closing remarks of the Core C++ Conference|
|17:20 - 17:40 Coffee Break|
|17:40 - 18:20||Teaching C++ Panel (Weston Auditorium)|
|Michal Alhanaty (Hadassah Academic College), Yechiel Kimchi (Technion), Amir Kirsh (Academic College of Tel-Aviv-Yaffo), Meir Komar (Lev Academic Center), Adina Milston (Lev Academic Center). Moderator: Iris Gaber (Academic College of Tel-Aviv-Yaffo)|
|18:20 - 19:20||Meet & Eat: Teaching C++ Social Dinner|
Friday May 17th
(Economics 206 - All day)
|8:30 - 9:00||Welcome and Coffee|
|9:00 - 9:10||Opening|
|9:10 - 9:40||Joyce Vogel (Lev Academic Center): Teaching C++ in a Distance Learning Environment|
The introductory course to computer science is traditionally taught using a programming language such as C++. A typical lecture includes students from all backgrounds and abilities. Effectively teaching such a course to such a wide variety of students can be challenging. One way to solve this issue is to allow students to take an online version of the course.
The presentation will demonstrate how a well constructed online version of the course can solve the problems that arise from a diversified student population. In particular, I will introduce key elements that promote active student learning.
We have seen that a well constructed online course achieves a higher degree of student learning and understanding of C++. Students remained actively engaged throughout the course. There was a higher rate of students who not only mastered the presented material, but, went on to research topics that interested them that were not covered by the course. There was also a lower rate of students who got frustrated and dropped the course.
|9:40 - 10:10||Yossi Gil (Technion): Programming with Generics, Complexity and Fluent APIs in Java vs. C++|
C++ templates are incredibly expressive. For this reason, all C++ compilers may go fall into an infinite loop on some C++ programs. For many years, it was believed that Java is distinct than C++, i.e., Java generics are strictly weaker than those of C++, and Java compilers should be able to compile all Java programs. Recent discoveries refuted this belief. In this presentation, I will review research on the topic, and present a new result which gives rise to an implementation of a compiler-compiler (of the sort of YACC) within the Java type system.
A practical software-engineering application of the theory is the automatic generation of a library interface that enforces object protocols at compile time, and the embedding of domain-specific languages (such as SQL or the language of regular languages) within a host language (such as C++ or Java). For example, one can generate an interface by which RE.f1().f2().....fn() compiles if and only if f1...fn is a valid specification of a regular expression.
|10:10 - 10:40||Keren Kalif (Afeka Academic College): When Students Write the Course's Project Description for their Classmates|
The talk is based on an OOP C++ course for students who have already learnt OOP in JAVA as their first language.
The students were asked to write the project's description, with some few requirements, and to code only the headers for their project. Each team implemented the actual cpp for another team. Students practiced how to code after someone else, and of course they have something to say about it. I will present the project's requirements, how they choose which project to work on, and what is the advantage having them write a story on their own.
|10:40 - 11:20||Meet & Eat: Teaching C++ Social Brunch|
|11:20 - 11:50||Yechiel M. Kimchi (Technion): Teaching C++ as the first PL|
C++ is a wide and deep programming language. As a result, many professionals think that one needs some (or even good) programming experience in order to be able to effectively learn C++.
I beg to differ. I will present my experience of teaching C++ as the very first PL for students during their first semester in an academic institution. The one vivid immediate result was that the second semester (in which C++ is traditionally introduced) went much smoother and ended with students having a higher level of C++ knowledge.
The key point in my approach for the first semester was that I did not teach class programming, but rather how to use existing classes. For those who are raising their brows, I argue that I follow the OOD basic paradigm: Have your model simulate reality as best possible. Indeed, we all learn how to use tools before learning how to build those tools.
|11:50 - 12:20||Meir Komar (Lev Academic Center): CS1 vs C++ - Higher Education or Hire Education?|
At the end of 2013 The Joint Task Force on Computing Curricula Association for Computing Machinery (ACM) IEEE Computer Society published a major revision of CS2001/2008 entitled Computer Science Curricula 2013. The report addresses major issues we, as CS educators and Higher Education in general are facing. One of them is that more and more prospective students are making decisions on where to study based on graduation rates and employability.
In this talk we will try to identify the key challenges that we are currently facing as well as the ones in the future with the advent of the Gen-Z student entering the gates of higher education.
|12:20 - 12:40||Coffee Break|
|12:40 - 13:10||Shmuel Fine (AlgoPlumb Ltd): Recreating the C++ language together|
The C++ language has a strong grasp on both extremes of programming: It easily reaches both the high-level software design and the low level of touching the hardware.
This is one of the reasons that make it difficult to teach C++, since in order to really feeling comfortable with it one should cover a lot of ground material.
I'll demonstrate my method of teaching - developing together with the students the C++ language, starting from the birth of digital computing and till modern C++.
|13:10 - 13:30||Adam Segoli Schubert (Tel-Aviv University): Practical C++ for Juniors|
|Teaching as a C++ TA at TA University I'll present in this talk a few insights into practical C++ teaching for juniors and ways to reinforce students' understanding of core C++ concepts.|
|13:30 - 14:00||Daniel Trugman (Palo Alto Networks): What are we looking for when hiring a C++ junior programmer|
|This talk will focus on our use of C++ in actual industry environment, at Palo Alto Networks. What are we looking at while interviewing and what we expect students to know.|
Website of the co-located event - Core C++ conference - May 14th-17th: https://corecpp.org
The Academic College of Tel-Aviv-Yaffo
|Experienced C++ developer and R&D manager. Teaching C++ at the Academic College of Tel-Aviv-Yaffo since 1998.|
Christopher Di Bella
|Software Engineer on the ComputeCpp Runtime for Codeplay Software and a co-founding member of ISOCPP SG20.|
C++ developer at Microsoft.
Teaching Assistant in OOP and C++ at Hadassah Academic College Jerusalem.
|Senior Lecturer at the Academic College of Tel-Aviv-Yaffo. Teaching CS since 1996 with research in CS education.|