Welcome to the CLUE project website!
Our objective is to address the need for tools, pedagogical innovations and teaching material to support undergraduate students' learning of the C programming language.
While the C Programming Language is seldom taught in the CS0 / CS1 / CS2 sequence, due to its inherent difficulties, it is still used frequently in upper-level offerings such as operating systems. This situation often leads students to have to "pick up" C Programming on their own when they finally need it for such an upper-level offering or a senior project.
Our computing education research community has produced outstanding research, pedagogical innovations, software and courseware to support students' journey through CS0, CS1 & CS2. However, seldom resources are available to support students learning of the C language. despite the fact the very same difficulties which disqualify C as a suitable language for CS1 / CS2 will most likely still be impeding an undergraduate in their junior or senior years.
You will find details about this in the papers posted in the "Publications" tab on this web site, along with the result of the 2007 SIGCSE / SIGITE survey we initiated to validate our initial hypothesis.
The CLUE project was initiated to address this situation by supporting the acquisition of C programming skills in various scenarios;
To this end, we offer the following resources;
These resources are detailed in their respective tabs; "EDU material" & "Software".
Make sure to visit Dr. Amruth Kumar PI Forum NSF-sponsored project for more information about other research initiatives focussed on programming pedagogy.
Make also sure to check out Derell Lipman oustanding LearnCS! web-based IDE. It is specifically designed to support novice C programmers
As part of our effort to support the learning of the C programming language as a second language, the CLUE project resulted in the development of educational material. We provide two version of the material, both suitable for online, face-to-face, or hybrid delivery modalities;
Please take the time to browse through the available modules and evaluate whether this resource would be valuable to your students & yourself in its entirety or if you might want to re-use / adapt individual assets which might address a more specific need. Either way, we look forward to hearing from you. Feel free to contact the author / PI at alessio@usf.edu with any question, suggestion, remark or problem you might have.
http://cereal.forest.usf.edu/clue/self-study/
To address the need to support students who have to learn C quickly as pre-requisite for an upper-level offering such as operating systems, we have developed online modules meant to be either assigned as self-study material or integrated in an offering by the instructor - if time is available. The duration is short, we estimate about 3 weeks of work part time, but the material is dense as it assumes students already know how to program.
The site has a link to a survey allowing potential adopters to let us know about their experience in details. If you found the material useful, take the time to take the survey in order to help us improve the next releases.
http://cereal.forest.usf.edu/clue/progdesign/
In addition to the self-study modules, we released the full-semester version. This offering runs for 16 weeks & has been taught at the University of South Florida's Information Technology division.
This material is suitable for a very hands-on approach to learning C programming as a 2nd language. Each module is two week long with
Please note that the web site only features the apprenticeship videos, assignments, practice assignments, & weekly overview guides. Quizzes, exams & graded programming assignments are hosted & managed by USF's LMS. As such, they are not made publicly available
While this offering might be taught online, face-to-face, or in an hybrid manner, it is essential to provide students with the ability to get guidance on these practice assignments. We do not release solutions but ensure that every student will get the support, during the module, to reach their own valid solution.
The "CLUE" project also resulted in development of software to support the learning of the C Language. We provide two different software;
http://spell.forest.usf.edu/ned/
The CLUE web helper is a late addition to the software deliverables. It is motivated by the same needs than the CLUE assignments manager below but acknowledges that students & instructors might want a lighter weight solution to these problems, e.g. one which does not tie them to a specific project format or to the need to use CLUE as a tool to grade their submission.
The main objectives of the software are to;
These features are also available in the CLUE assignments manager below, however, "NED" additionally run the students' files through a variety of Linux-based code defects detections tools. All the resulting warnings, whether they are issued by GCC, the CLUE Syntax Analyzer, or any of these alternative tools, are then hyperlinked to updated versions of the tutorials.
The source for this project is available on the project's sourceforge repository
Feel free to contact the author / PI at alessio@usf.edu
http://spell.forest.usf.edu/webpt/
WebPT allows students to exchange test files during assignments. Every 2 days, students are allowed to upload both the solution to the assignment they are working on, along with the tests. This encourages students to start working on their assignments early on, and regularly make progress. Early submissions are mostly about capturing requirements as a set of tests, while later submissions focus on improving the solutions.
When students submit their files in time for one of the intermediary deadlines, the software allows them to view the tests, and only the tests, submitted by their peers. They are invited to rate the tests they view and every student is able to see the ratings they ha ve thus received.
The software is able to keep track of participation to allow the instructor to assign participation points. For now, it is integrated with the PA assignments provided in our self study and full semester offerings.
http://CEReAL.forest.usf.edu/slb/
The Students Linux Box is a solution to allow students to learn C programming in a Linux environment featuring a plethora of useful development tools, integrating the CLUE project's innovations directly in the IDE, & running on any platform supporting the virtual box virtualization software.
The SLB has its own page where you will find detailed instructions on setup & usage; please visit the above link for details
The main objectives of the software are to;
The source for this project is available on the project's sourceforge repository
The various files to download are in the Files Section along with the various guides. You want to set up the following in order;
Feel free to contact the author at rtindell@cse.usf.edu
Please stay tuned for release as we are performing another pre-release testing during spring 2013.
This project is an ongoing effort to identify & understand the learning barriers hindering novice programmers. Some of our findings or ideas on how to improve the pedagogy of programming are presented in the following papers
This tab summarizes the contributions to the CLUE project;
The following faculty have invested time & passion into the development of the "CLUE" resources made available on this site;
In addition, these results wouldn't have been achieved without the help of students who also contributed significantly to various aspects;
Same goes for the students who did their IT Senior Projects with us to contribute to improving the software
This project is based in part upon work supported by the National Science Foundation under award number DUE CCLI 0836863.Any opinions, findings, and conclusions or recommendations expressed in this publication are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.