Assessing the quality of programs: a topic for the CS2 course
SIGCSE '87 Proceedings of the eighteenth SIGCSE technical symposium on Computer science education
On ordered weighted averaging aggregation operators in multicriteria decisionmaking
IEEE Transactions on Systems, Man and Cybernetics
Computer programming in high school vs. college
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Active learning and its use in computer science
ITiCSE '96 Proceedings of the 1st conference on Integrating technology into computer science education
An intelligent tutoring system for introductory C language course
Computers & Education
Constructivism in computer science education
Journal of Computers in Mathematics and Science Teaching
Mini-languages: a way to learn programming principles
Education and Information Technologies
Effects of complex feedback on computer-assisted modular instruction
Computers & Education - Special section on multimedia in engineering education
ELM-ART: An Intelligent Tutoring System on World Wide Web
ITS '96 Proceedings of the Third International Conference on Intelligent Tutoring Systems
Software forensics: old methods for a new science
SEEP '96 Proceedings of the 1996 International Conference on Software Engineering: Education and Practice (SE:EP '96)
Static analysis of students' Java programs
ACE '04 Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30
A tutor on subprogram implementation
Journal of Computing Sciences in Colleges
ACM Computing Surveys (CSUR)
A tool for programming learning with pedagogical patterns
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
The boss online submission and assessment system
Journal on Educational Resources in Computing (JERIC)
Guidelines for the development of e-learning systems by means of proactive questions
Computers & Education
Marking student programs using graph similarity
Computers & Education
Plagiarism in programming assignments
IEEE Transactions on Education
Hi-index | 0.00 |
Programming is an important competence in Computer Science and Engineering studies. Students have to pass the related programming subjects proving that they have acquired the necessary knowledge and skills. Such knowledge and skills will be essential for their academic training and future careers. However, students of programming subjects have to solve deep cognitive challenges. One of our objectives is to help them overcome these challenges. To overcome the first difficulties the students may encounter while developing their assignments, we will present an approach that provides a first assessment of the students' solution. This will allow the system to estimate a mark on a student assignment; so it can provide some kind of adaption and guidance in the learning process. It will allow the students to ask the system what is wrong with the solution they are developing, without teacher intervention. Thus, our aim is to create a system that assists the students in understanding what they are doing and helps the teachers in their labour in the classroom. Although the assessment technique we will show can be extrapolated to other programming areas, this paper focuses on a concrete one, namely Programming Algorithms. In this respect, throughout the paper we will show how to process and analyse algorithms written by students as solutions to programming assignments, something that is ongoing in those computer supported systems for learning to program. As a result, a proposal for assessing algorithms applying Fuzzy Logic to software metrics and test cases will be explained. In addition, the Computer Assisted Environment for Learning Algorithms (COALA) environment will be exposed in order to validate our proposals. Furthermore, we will explain the developed empirical study and also analyse and explain the results. These results seem to point out that the proposals are successful enough, but we must continue working on this research line to provide evaluations that are closer to those provided manually by a teacher.