Program auto-graders used to be tough applications to install and use by instructors, meaning many instructors avoided them, and for those that used them, most assignments were created by specialists with scripting an...
详细信息
ISBN:
(纸本)9781450358903
Program auto-graders used to be tough applications to install and use by instructors, meaning many instructors avoided them, and for those that used them, most assignments were created by specialists with scripting and other expertise. As such, creating new auto-graded programming assignments was a rare event done by just a few people. But modern cloud-based program auto-graders enable nearly any instructor or TA to create new auto-graded assignments in just tens of minutes, fully created and carried out via the web. This capability has led to an explosion in the number of instructors and TAs creating auto-graded programming assignments, benefiting students via immediate feedback and the option to resubmit, and saving teachers huge amounts of grading time. BUT, this new frontier is very different from hand-graded assignments, with plenty of pitfalls for teachers to avoid, and emerging best practices. This BOF allows teachers to share do's and don'ts, so each can improve their use of auto-graded labs, and teachers new to auto-graded labs can benefit from others' experiences. Special focus is on early CS classes (CS0, CS1, CS2) but topics may apply to many CS classes.
Introductory curricula, courses, and programming assignments seem to get most of the attention at Computer Science education conferences. This bird-of-a-feather focuses, instead, on upper-level systems courses (databa...
详细信息
ISBN:
(纸本)9781450346986
Introductory curricula, courses, and programming assignments seem to get most of the attention at Computer Science education conferences. This bird-of-a-feather focuses, instead, on upper-level systems courses (databases, networks, compilers, operating systems, etc.) and, more specifically, on courses with a significant hands-on implementation component, from small-scale programming assignments like implementing a memory allocator or a network protocol, to larger projects like implementing an operating system or compiler from scratch. Designing assignments and projects for these kinds of courses can be challenging: they must be "practical" in the sense of providing a realistic systems programming experience, but also "practical" in the sense of being small and self-contained enough to be feasible in a single quarter/semester. While there are a number of established frameworks (such as Minix, Pintos, or xv6 for operating systems) there is not, to the best of our knowledge, a dedicated forum for educators focused on these types of courses. Such a forum would allow us to more easily share existing coursework, collaboratively develop and refine coursework, and to have seasoned instructors provide support to those just starting *** birds-of-a-feather is a first step in that direction. It will provide an opportunity for instructors of upper-level systems courses to get to know each other as well as exchange ideas and experiences. Discussion will revolve primarily around programming assignments and projects, but will also look to foster networking and communication beyond the birds-of-a-feather session.
Software testing has become popular in introductory courses, but many educators are unfamiliar with how to write software tests or how they might be used in the classroom. This workshop provides a practical introducti...
详细信息
ISBN:
(纸本)9781450326056
Software testing has become popular in introductory courses, but many educators are unfamiliar with how to write software tests or how they might be used in the classroom. This workshop provides a practical introduction to JUnit for educators. JUnit is the Java testing framework that is most commonly used in the classroom. Participants will learn how to write and run JUnit test cases; how-to's for common classroom uses (as a behavioral addition to an assignment specification, as part of manual grading, as part of automated grading, as a student-written activity, etc.); and common solutions to tricky classroom problems (testing standard input/output, randomness, main programs, assignments with lots of design freedom, assertions, and code that calls exit()).
A normal industry standard measure, bug density (bugs per thousand non-commented source line of code), is a through mechanism to assess code quality. If it is used for evaluating students' code, students will real...
详细信息
ISBN:
(纸本)9781450318686
A normal industry standard measure, bug density (bugs per thousand non-commented source line of code), is a through mechanism to assess code quality. If it is used for evaluating students' code, students will realize their ability to write bug free code from professional context. The main issues of using bug density for object oriented languages are creating a comprehensive test suit, and running them against all solutions as the test cases are written as part of solutions may fail to compile against other codes. We provide a novel four phase Java specific solution: 1) developing a comprehensive master test suit by collecting all the students written valid test cases; 2) transforming the test cases to use late binding so that they can run against any solution; 3) running the entire tests against all the programs and removing redundant test suits; and 4) estimating bugs/KSLOC by determining the relationship between test case failures in the master suite and latent bugs hidden in student programs. The first two phases of this ongoing research are applied to two programming assignments in two different courses encompassing 147 student programs and 240,158 individual test cases. Experimental results show that we have indeed removed compile-time dependencies from test cases using late binding and thus, have resolved the main technical challenge of using bug density for accessing students' code. Our experimental results will help students to realize the quality of their code in terms of industry standard.
Instructors often write reference tests to evaluate student programs. In Java, reference tests should be independent of submitted solutions as they are run against all student submissions. Otherwise, they may even fai...
详细信息
ISBN:
(纸本)9781450310987
Instructors often write reference tests to evaluate student programs. In Java, reference tests should be independent of submitted solutions as they are run against all student submissions. Otherwise, they may even fail to compile against some solutions. Reflection is a useful feature for writing code without compile-time dependencies, which is valuable for writing software tools that inspect code. However, educators avoid using reflection as code written using Java's Reflection API is complex, unintuitive and verbose. We present ReflectionSupport, a library that enables one to write reflection-based code in concise, simple and readable fashion. It helps educators write reference tests without compile-time dependencies of solutions and develop educational tools such as automated graders.
Plagiarism is of great concern to faculty in all fields, including computer science as it leads to one certain outcome -- a compromise not just in student learning but also in the entire academic process. Faculty atte...
详细信息
ISBN:
(纸本)9781450346986
Plagiarism is of great concern to faculty in all fields, including computer science as it leads to one certain outcome -- a compromise not just in student learning but also in the entire academic process. Faculty attempt to deal with this epidemic in varied ways such as by writing new course materials each semester, putting a larger or entire grade focus on exams, or even asking individual students to explain their assignments. However, plagiarism remains a source of frustration for both faculty and administrators. This BoF will bring interested faculty together to discuss the various and surprising ways in which students plagiarize, the methods of countering plagiarism, and the currently available tools for detecting plagiarism. Questions we will be discussing include: Do students understand plagiarism in the context of writing software? How can we create an atmosphere that discourages plagiarism, yet fosters collaboration and encourages learning from multiple sources? To what extent can one make an assignment "plagiarism-proof"?
Software testing has become popular in introductory courses, but many educators are unfamiliar with how to write software tests or how they might be used in the classroom. This workshop provides a practical introducti...
详细信息
ISBN:
(纸本)9781450310987
Software testing has become popular in introductory courses, but many educators are unfamiliar with how to write software tests or how they might be used in the classroom. This workshop provides a practical introduction to JUnit for educators. JUnit is the Java testing framework that is most commonly used in the classroom. Participants will learn how to write and run JUnit test cases; how-to's for common classroom uses (as a behavioral addition to an assignment specification, as part of manual grading, as part of automated grading, as a student-written activity, etc.); and common solutions to tricky classroom problems (testing standard input/output, randomness, main programs, assignments with lots of design freedom, assertions, and code that calls exit()). Laptop recommended.
Web-CAT is the most widely used open-source automated grading system, with about 10,000 users at over 65 institutions worldwide. Its plug-in architecture supports extensibility, with plug-ins for Java (including Objec...
详细信息
ISBN:
(纸本)9781450310987
Web-CAT is the most widely used open-source automated grading system, with about 10,000 users at over 65 institutions worldwide. Its plug-in architecture supports extensibility, with plug-ins for Java (including Objectdraw, JTF, Swing, and Android), C++, Python, Haskell, and more. It is also a powerful tool for educational research data collection. It supports a wide variety of assessment strategies, but is famous for "grading students on how well they test their own code". Web-CAT won the 2006 Premier Award, recognizing high-quality, non-commercial courseware for engineering education. This BOF will allow existing users and new adopters to meet, share experiences, and talk about what works and what doesn't. Information on getting started quickly with Web-CAT will also be provided.
暂无评论