dataesr/scientific-paragraphs-categorization huggingface dataset:
Code architecture PyLlama is practically structured to separate the implementation of the theory from the user, and at the same time to allow the user to access details about the optical calculations on demand. As schematised on Fig. 3 , the code is organised into: • Classes that carry the optical calculations: the class Structure represents the multilayer stack and lists the layers it consists in; the class Layer represents one layer and its partial waves, its child class Half-Space being the equivalent for the entry and exit semi-infinite media; and the class Wave represents optical waves. • Classes that contain routines to construct Structures from appropriate parameters. They are children of a master class Model and solely serve the purpose of building Structures in a way that is easier to manipulate for the user than the class Structure itself.
The eigenvalues and eigenvectors are calculated from the matrix ∆ (Layer. D) with Python's numerical package Numpy or Python's symbolic package Sympy. The eigenvalues are unique but the eigenvectors are defined up to a normalisation factor that depends on the algorithm (for example, Numpy normalises each eigenvector so that its module is 1). The eigenvectors calculated with one or another numerical method might therefore differ by a factor -1 or i, which will inhibit their sorting in the way that is described in Appendix A. This does not prevent the use of the transfer or scattering matrix methods to go from one layer to the next. However, the eigenvectors of the entry and exit HalfSpaces need to be set in a specific order to allow for the decomposition of the incident, reflected and transmitted electric fields into their appropriate components.
To speed up the computation time, the decomposition of the stack is different than multiplying one matrix per repeating unit. The total number of repeating units N per is decomposed in powers of two: N per = 2 k for the appropriate list of k p s (the list of k p s associated with N per is the binary form of N per : we obtain it by converting N per to binary). We calculate the transfer matrix for sub-units that contain 2 m repeated units R m per for m between 0 and the higher power of two in the decomposition, and store them in a database. Then, we select the matrices that we need to build up the full system of N per repeated units. For the scattering method, Eq. (  25 ) shows how to combine S i,i+1 (the scattering matrix of the layer i and its next interface with the layer i + 1) with S i+1,i+2 (the scattering matrix of the layer i + 1 and its next interface with the layer i + 2) into the scattering matrix S i,i+2 , which encompasses the layer i, the layer i + 1, and the interface from the layer i + 1 to the layer i + 2.
A Model essentially represents an empty multilayer stack, consisting in two semi-infinite media separated by no layer. The idea behind the code architecture is that the children classes of Model contain additional parameters used to build a Structure that is relevant to the stack, for example: • SlabModel represents a slab of homogeneous material and its parameters are its permittivity (optionally calculated from an inputted permittivity and a rotation angle (in radians) rotangle rad around an arbitrary axis rotaxis) eps, its thickness (in nanometers) thickness. • StackModel represents an arbitrary multilayer stack and its parameters are a list of permittivities eps list and a list of thicknesses thickness list corresponding to its layers, as well as a number of periods N per that could in principle be set to one if the lists of permittivities and thicknesses contain an item for each layer.
Practical examples Figure  4  shows examples of results obtained with our different models and validated with available analytical formulas. Figure  4a  and b  display the case of an isotropic Bragg stack. The system consists in a periodic unit of two layers that are repeated 10 times, including the entry and exit halfspaces that are the same as the first and last layers (with no thickness). The reflection spectra of the isotropic Bragg stack calculated with our code and the model StackModel agrees with Yeh's matrix method  [61]  for s and p-polarisations. Here we display spectra for an angle of incidence θ in = 60°. Figure  4c  and d display the case of an isotropic non-homogeneous slab analysed by Yeh  [61]. The slab has a thickness L in the order of hundreds of nanometers, a refractive index n 0 at z = 0 and a refractive index z s at z = L.
A level of automation The classes Structure, Layer, HalfSpace and Wave contain every function that is necessary to calculate the reflectance of a mutlilayer stack at a specific wavelength, and the class Model and its children enable to build Structures easily from appropriate parameters. In order to enable the use of our code without requiring extensive programming skills and/or manipulation of the theoretical concepts to calculate reflection spectra for a given multilayer stack, we embedded our models inside the class Spectrum that provides a level of automation to the user to calculate the reflectance and transmittance for a range of wavelengths (to get a full spectrum) and export the data for further analysis in Python or in MATLAB, while the optics calculations are occurring in the background.
data for further processing in Python or in MATLAB. Its argument is a filename path out which extension should be. pck for an export with Pickles and further use in Python or. mat for an export in MATLAB-compatible format. When pairing Model and its children with the class Spectrum, spectra from complex structures are straightforward to obtain even without much experience in programming. The custom Models created by the user can also be with the class Spectrum. The user manual contains tutorials explaining how to incorporate custom children classes appropriately.
Concluding remarks We have presented a stable and versatile Python toolkit for the electromagnetic modelling of anisotropic multilayer stacks. PyLlama relies on known concepts and numerical techniques, but it answers a need from the scientific community for a simple, freely-available and open-source program for the purpose. It is accessible to use without extended programming experience even for complex multilayer stacks (distorted cholesterics, stacks containing periodic sub-structures. ), and it is also easy to customise without having to re-write any optical calculation. The strength of PyLlama is undoubtedly its capability to deal with arbitrary multilayers even in extreme situations (large number of layers, high birefringence, grazing angles of incidence) thanks to the implementation of the scattering matrix method, and to switch seamlessly to the transfer matrix method for faster computation speed, when suitable.
PyLlama thus allows performing a side-by-side comparison between the transfer matrix and the scattering matrix methods. Many additional functionalities could be added in the near future without considerable efforts, like the possibility to incorporate magneto-optic effects  [37] , and to compute spatial field distribution in the stack  [41]  and Bloch modes for periodic media  [63]. Classes dedicated to the acquisition of datasets other than reflection and transmission spectra could be created quite easily, such as for ellipsometry measurements  [43]  or critical angle measurements  [64] , which are useful tools to characterise samples. The necessary calculations are already carried out in the core of PyLlama, which paves the way to the implementation of a dedicated framework similar to our class Spectrum.
Acknowledgements This work was supported by  ERC  grant  ERC-2014-STG H2020 639088  and  Philip Leverhulme Prize  ( PLP-2019-271 ) for S. V. and M. M. B. The authors are indebted to  Jean-Paul Hugonin  ( Laboratoire Charles Fabry, Palaiseau, France ) for his critical reading of the manuscript, for verifying our numerical simulations with the RCWA software RETICOLO [52], and more generaly for very insightful discussions. The authors thank  Bruno Frka-Petesic  ( Department of Chemistry, University of Cambridge, UK ) for useful discussions about the optical properties of cholesteric structures. M. M. B. thanks  Sing-Teng Chua  ( Department of Chemistry, University of Cambridge, UK ) for proof-testing the user manual, and  Mathieu Brèthes  for his help regarding the documentation. K. V. thanks  Akhlesh Lakhtakia  ( Penn State University, USA ) for pointing out the seminal contribution of  Jean Billard  to the 4 × 4 matrix formalism [28].
Interactivity here allows the domain experts to guide the search towards what is regarded as the most relevant region of the search space, reducing the computational effort required to infer highly relevant solutions. Our contributions are the following : • We propose an interactive process based on PG3P, which brings the expert into the learning loop twice to update the grammar both inside the learning loop and in-between evolutionary runs. • We propose a web-based platform to extract domain knowledge through various direct interactions between experts and symbolic expressions. • We propose two interactive scenarios on a real-world dataset and show that our expert HiTL approach improves the solution and reduces the complexity compared with non-interactive runs. The rest of this paper is organized as follows.
Inputs contain various types of measurements (physical data: active power P , reactive power Q, voltage V at line extremities) as well as time-varying topological information relative to lines and bus nodes connectivity. Collected measurements ranged from January 2014 to December 2018 and resulted in a dataset made of 365,165 timesteps. Underlying in this work, we want to find simplified relationships between input and output variables of simulations performed independently on each time step. Thus, two consecutive time steps are considered independent as the values of the target variable y for two consecutive timesteps result from two static simulations computed independently using measurements from two different time steps. The dataset is eventually separated into train and test sets where the PG3P algorithm uses the train set, and the test set is displayed in the visualization interface.
Individual representation In PG3P and G3P, in general, an individual or program can be visualized as a tree where nodes are operations and leaves are terminals. To make the implementation more efficient, we use the representation of Canonical Grammatical Evolution, which encodes an individual as a list of integers representing a linear genome (also called chromosomes)  [39]. Each integer in the genotype list matches the rule id in the current production. The phenotype (syntax tree) is then built from it by depth-first traversal, each rule id assigned to a tree node or leaf.
Implementation As backbone code, we upgraded the open-source implementation of GP in Python PonyGE2  [42]. This framework provides an efficient parallel implementation useful on large datasets such as those we use in our experiments. To propose up-to-date technical solutions, we improved many elements from initialization functions to the search engine. Especially, we inserted correlation-based error-metrics, an evolutionary step with population filtering, and we also extended the handling of grammar to probabilistic grammars.
Interactive platform In this work, we want to take advantage of expert knowledge by interacting with an expert as the final user. To achieve this goal, we propose a web-based platform built using Plotly and Dash frameworks in Python. The platform has two elements: first, the web interface on the client-side where the user interacts with the algorithm directly in the browser, then, the core training performed on the server-side using the algorithm design we described earlier in Section 4. The user is solicited at four key stages of the algorithm : • before launching the training, for hyperparameter calibration • at initialization, to include user-defined individuals • in between specific iterations to propose new individuals based on the analysis of top-ranked individuals from the previous generation • at the end of each run, to draw some conclusions from the experiments regarding both the quality of the solutions and the relevance of selected hyperparameters.
Parameters control tab The first action the user performs is hyperparameters calibration, performed in the interface presented in Figure  3. For domain experts, it consists of at least defining the target y we focus on (zone A). Dataset and grammar can either be loaded or set a predefined default file (zone B). In zone C, the user can also view the default grammar. He can then modify and improve it in a new file, which is to be downloaded in zone B. ML experts can additionally set up GP parameters such as mutation and crossover rates, population size, number of generations, the fitness function, and the maximum number of nodes an individual can have (zone D).
Then, working with a software such as Isadora, which is mostly used in theater for projection mapping, the original flat image is deformed to align with the triangular segments of the flattened dome. That way, when projected onto the actual 3D dome, the image does not appear deformed anymore. The geometric patterns engraved on (into) the body of the structure are an original design that takes inspiration from patterns frequently found on Moroccan doors and furniture. In particular, the design is a variation of one that can be found on a wooden door in Madrasa Bou Inania, an educational institution founded in 1351-56 in Fez. This design repeats a regular 8-pointed star polygon, one of the most common regular polygons and fundamental elements in Islamic art design. It lends itself to variations as part of a more contemporary aesthetic that complements the traditional African patterns shown in the animation.
On the one hand, this blend of styles reflects the mingling of cultures that results from migration. On the other hand, stacking up intricate variations of the original pattern gives the impression of changing size, thereby emphasizing the projection dome atop the structure. Fading of the pattern towards the bottom of the installation further strengthens this emphasis. I created the pattern using Adobe Illustrator, a vector graphics software. Engravings were created using a laser cutting process. First, many different design drafts were printed on paper. Second, a small selection of drafts was laser cut in cardboard for more efficient experimentation. Finally, the engraving of the final design in wood was finetuned in many iterations. To fill the structure with light, LEDs were placed inside it.
Acknowledgments Valuable assistance was provided by  Lexi Bateman ,  Diali Cissokho & Kaira Ba ,  Katy Clune ,  Michael Faber ,  Philip Moss ,  Mark Olson ,  Gabriel Pelli ,  Victor Ribet ,  Austin Powers ,  Philipp Sadowski ,  Yuchen Zhao , and  Robert Zimmerman. Cornered was supported by  Duke Africa Initiative, Duke Arts , the  Josiah Charles Trent Memorial Foundation , the  Arts & Sciences Council, Art, Art History & Visual Studies at Duke University , and the  Puffin Foundation.
Historically, computing instructors and researchers have developed a wide variety of tools to support teaching and educational research, including exam and code testing suites and data collection solutions. However, these tools often find limited adoption beyond their creators. As a result, it is common for many of the same functionalities to be re-implemented by different instructional groups within the Computing Education community. We hypothesise that this is due in part to discoverability, availability, and adaptability challenges. Further, instructors often face institutional barriers to deployment, which can include hesitance of institutions to rely on community developed solutions that often lack a centralised authority and may be community or individually maintained. To this end, our working group explored what solutions are currently available, what instructors needed, and the reasons behind the above-mentioned phenomenon.
Comprehensive Reviews and Surveys The SIGCSE recurring panel entitled "Technology We Can't Live Without," which highlights computing education technology and tools, has had seven near-annual issues since 2015  [55, 56, [58] [59] [60] [61]. These are informal surveys of panel members' software and hardware tools for their courses and serve as quick touch points, since they are informal panels of small groups of instructors and are not designed to be thorough comprehensive surveys of tools in computing education. However, they do list tools including: email notification aids (i. e. , Boomerang for Gmail); classroom engagement sites (i. e. , Kahoot! and EDPuzzle Socrative); classroom management (i. e. , Github and Dropbox); and many others. Furthermore, Brusilovsky et al. [26]  also listed tools for: program Visualisation (Jeliot, jGRASP, BlueJ); algorithm visualisation (Animal, jHAVE); coding tools (CodeLab, CloudCoder, CodeAcademy); algorithm and program simulation tools (TRAKLA2, JSAV, UUhistle); problem-solving support tools (Problets, js-parsons, WadeIn, ELM-ART, JavaGuide); classroom management (Github, Dropbox, Gradescope, ZipGrade, Google Drive); and social navigation systems and others (Educo, Progressor).
The survey was distributed to the SIGCSE mailing list, Teaching Track Faculty discussion on Piazza, ITiCSE 2022 Moodle site, and to the members' colleagues. Participation in the survey was voluntary and the data was collected anonymously. However, it should be mentioned that since respondents were asked to include information on tools they developed, this impacted the anonymity if their responses. The resulting anonymous survey data was then parsed by working group members and analysed to uncover trends. Before analysis, we restructured data for analysis. For example, in preparing to analyse the question "What is your least favorite tool?" and "Why?", the names of the tools themselves were extracted from the text and curated (unifying the cases across answers and correcting typos in names and other issues).
Some required a broadening or relabelling of the topic area to include relevant tools. For example, plagiarism detectors are commonly used to help instructors identifying plagiarism, an act of reusing either colleagues' code or one's own code without proper acknowledgement  [36]  1. Given that 1 Such an act is often referred to as collusion when authors of the original work are aware about the misconduct but let that happen  [52]. "code plagiarism", "code similarity", "text plagiarism", "text similarity" T3 Code sharing and execution environments "IDE Plugin", "computer-based testing", "IDE", "block-based programming", "block programming", "dual-modality programming", "multimodal programming" T4 Class management / monitoring "classroom management" AND "tool", "learning management system", "e-learning AND computer science", "course management" T5 Open textbooks "open textbook", "textbook" +open, "etextbook", "e-textbook" T6 Polling ACM: [[All: poll] OR [All: polling]] AND [Abstract: tool] AND [Abstract: education] IEEE: ("Full Text & Metadata":"poll" OR "Full Text & Metadata":"polling") AND ("IEEE Terms":Education) AND ("Abstract":tool) T7 Visualisations "Algorithm Visualisation", "Algorithm Visualization", "Interactive content", "smart learning content", "interactive learning activities", "interactive learning activity", "Program visualisation" plagiarism detection is often based on similarity across submissions and assessments in computing education expect code in addition to regular text submissions, four queries were used: "code plagiarism", "code similarity", "text plagiarism", and "text similarity".
Likewise, quizzing and polling are terms that are used broadly within and without the education domain. We therefore focused our search queries on "poll" and "polling" terms due to the high percentage of false positives brought by queries on "quiz" or "quizzing. " The second step of the literature review was to deploy the queries on both IEEE Xplore and the ACM Digital Library. These queries were executed from 24 May to 10 September 2022. The latter database is known for its specific focus on the computing community while the former is for the wider community of engineers. We also considered other potentially relevant databases (e. g. , Scopus and Springer). However, these databases cover a much wider scope of work and fields outside of computing; as such, they yield a low signal-to-noise ratio (e.
g. , many more irrelevant results than relevant ones 2 ) or a large number of false-positives (i. e. , many retrieved but irrelevant results  [38] ), limiting their value to our search. We are additionally aware of the existence of publication venues that are indexed by neither ACM Digital Library nor IEEE Xplore (e. g. , Taylor & Francis' Computer Science Education and Elsevier's Computers & Education). However, we did not include those as this would entail consideration of other publication venues while defining minimum threshold for "good" publication venues can be subjective and debatable. To ensure articles focused on recent work relevant to the CER community, we limited our search to the last ten years (April 2012 to April 2022). Third, per query and database, the results were checked sequentially for relevance.
Literature Review The number of papers and tools discovered at each stage of our literature review are shown in Table  7 , and we summarised these results in Figure  1. The "search result" refers to papers retrieved from the ACM Digital Library and IEEE Xplore databases; the full queries used can be found in Table  6. A priori (initially) relevant papers were retrieved papers that we considered relevant based on their title, abstract, and keywords, so long as they were found before the search is terminated. As mentioned in Section 3. 2, papers with inaccessible tools were excluded. These are papers indicating tools with no explicit access information and that we could not elucidate through simple web search queries. Some papers also presented methods for doing a particular task, which were excluded as well.
1%) of dissatisfaction with a tool. Of the tools that at least 10% of respondents reported, the lowest average satisfaction was reported for Canvas and MOSS (both between somewhat satisfied and satisfied), matching the fact that Canvas was the most common "least favorite" tool. Similarly, the tools with the highest satisfaction scores were Zoom, Gradescope, and Python (all between satisfied and very satisfied), with Gradescope appearing from the "favorite" tool list. Finally, a total of 23 respondents indicated tools or features they would like to see in the future. Of these, 17. 4% ( = 4) indicated they would like to see improved plagiarism detection tools, while 13. 0% ( = 3) hoped for improved autograder options, and 13. 0% ( = 3) wanted better integration and features in learning management systems.
Autograders Autograders have been used in Computing Education for decades  [76]  and are well-used today  [132]. Due to the contexts in which the autograders were created, it is worth noting that an autograder may be only a portion of a larger tool; that is, there is significant overlap among our tool categories. Many of the autograders discovered were either embedded as part of a larger learning system, such as those found in EarSketch  [168]  and OpenDSA  [122] , or built for a specific use case, such as Reveal  [88]  and TermAdventure  [174]. The more popular autograders according to survey results, Gradescope and Web-CAT  [45] , are more generalised to support additional use cases and programming languages. In the context of our literature review, we identified 18 autograders and related plug-ins that met our discovery threshold, as described below, and listed in Table  13.