programming

A programming change

I’m sad to say that due to a personal matter, I’ve had to bow out of speaking at this year’s Mobilism conference. You might have seen PPK’s announcement to that effect, and I’m definitely disappointed I’ll miss the event.

Because let’s be honest: my absence isn’t going to do a damned thing to diminish how amazing this conference is going to be. Seriously, look at this lineup. Look at it. Learning from the likes of Scott Jenson, Stephen Hay, Jake Archibald, Lyza Gardner, and Jason Grigsby is too good to be true, and in Amsterdam? And if you haven’t already, watch Jeremy Keith’s epic mobile browser panel from last year, a performance he’s repeating again in May.

Yeah okay I’m officially depressed all over again about missing it.

Seriously though: while I won’t be there, you can be. If you haven’t already, go register for Mobilism 2012 in May. You’ll have one hell of a time.




programming

iPhone programming

Did some more iPhone programming. The other day I took some of the maze drawing code and put it into a new MazeParts class. This class will be handling the drawing of the floor and walls of the maze. It will make the renderer file cleaner and easier to work with. Today I rewrote the floor drawing code to use translation calls instead of rebuilding vertex and texture buffer data for each floor tile. Next I will do something similar to draw the walls. I also added a setting to my info.plist file to hide the status bar.




programming

Programming MacWise Fkeys with a Host Basic Program

MacWise supports standard Wyse and Viewpoint fkey programming from the host. You can program the fkey title and command for each fkey..




programming

Smart approach to constraint programming: intelligent backtracking using artificial intelligence

Constrained programming is the concept used to select possible alternatives from an incredibly diverse range of candidates. This paper proposes an AI-assisted Backtracking Scheme (AI-BS) by integrating the generic backtracking algorithm with Artificial Intelligence (AI). The detailed study observes that the extreme dual ray associated with the infeasible linear program can be automatically extracted from minimum unfeasible sets. Constraints are used in artificial intelligence to list all possible values for a group of variables in a given universe. To put it another way, a solution is a way of assigning a value to each variable that these values satisfy all constraints. Furthermore, this helps the study reach a decreased search area for smart backtracking without paying high costs. The evaluation results exhibit that the IB-BC algorithm-based smart electricity schedule controller performs better electricity bill during the scheduled periods than comparison approaches such as binary backtracking and binary particle swarm optimiser.




programming

Assessing Students’ Structured Programming Skills with Java: The “Blue, Berry, and Blueberry” Assignment




programming

A Functional Programming Approach to AI Search Algorithms




programming

Utilizing BlueJ to Teach Polymorphism in an Advanced Object-Oriented Programming Course




programming

Presenting an Alternative Source Code Plagiarism Detection Framework for Improving the Teaching and Learning of Programming




programming

A Debate over the Teaching of a Legacy Programming Language in an Information Technology (IT) Program




programming

Teaching an Introductory Programming Language in a General Education Course




programming

Recognizing and Managing Complexity: Teaching Advanced Programming Concepts and Techniques Using the Zebra Puzzle

Teaching advanced programming can be a challenge, especially when the students are pursuing different majors with diverse analytical and problem-solving capabilities. The purpose of this paper is to explore the efficacy of using a particular problem as a vehicle for imparting a broad set of programming concepts and problem-solving techniques. We present a classic brain teaser that is used to communicate and demonstrate advanced software development concepts and techniques. Our results show that students with varied academic experiences and goals, assuming at least one procedural/structured programming pre-requisite, can benefit from and also be challenged by such an exercise. Although this problem has been used by others in the classroom, we believe that our use of this problem in imparting such a broad range of topics to a diverse student population is unique.




programming

Exploring Pair Programming Benefits for MIS Majors

Pair programming is a collaborative programming practice that places participants in dyads, working in tandem at one computer to complete programming assignments. Pair programming studies with Computer Science (CS) and Software Engineering (SE) majors have identified benefits such as technical productivity, program/design quality, academic performance, and increased satisfaction for their participants. In this paper, pair programming is studied with Management Information Systems (MIS) majors, who (unlike CS and SE majors taking several programming courses) typically take only one programming course and often struggle to develop advanced programming skills within that single course. The researchers conducted two pair programming experiments in an introductory software development course for MIS majors over three semesters to determine if pair programming could enhance learning for MIS students. The program results, researchers’ direct observations, and participants’ responses to a survey questionnaire were analyzed after each experiment. The results indicate that pair programming appears to be beneficial to MIS students’ technical productivity and program design quality, specifically the ability to create programs using high-level concepts. Additionally, results confirmed increased student satisfaction and reduced frustration, as the pairs worked collaboratively to produce a program while actively communicating and enjoying the process.




programming

Girls, Boys, and Bots: Gender Differences in Young Children’s Performance on Robotics and Programming Tasks

Prior work demonstrates the importance of introducing young children to programming and engineering content before gender stereotypes are fully developed and ingrained in later years. However, very little research on gender and early childhood technology interventions exist. This pilot study looks at N=45 children in kindergarten through second grade who completed an eight-week robotics and programming curriculum using the KIWI robotics kit. KIWI is a developmentally appropriate robotics construction set specifically designed for use with children ages 4 to 7 years old. Qualitative pre-interviews were administered to determine whether participating children had any gender-biased attitudes toward robotics and other engineering tools prior to using KIWI in their classrooms. Post-tests were administered upon completion of the curriculum to determine if any gender differences in achievement were present. Results showed that young children were beginning to form opinions about which technologies and tools would be better suited for boys and girls. While there were no significant differences between boys and girls on the robotics and simple programming tasks, boys performed significantly better than girls on the advanced programming tasks such as, using repeat loops with sensor parameters. Implications for the design of new technological tools and curriculum that are appealing to boys and girls are discussed.




programming

“Hour of Code”: Can It Change Students’ Attitudes toward Programming?

The Hour of Code is a one-hour introduction to computer science organized by Code.org, a non-profit dedicated to expanding participation in computer science. This study investigated the impact of the Hour of Code on students’ attitudes towards computer programming and their knowledge of programming. A sample of undergraduate students from two universities was selected to participate. Participants completed an Hour of Code tutorial as part of an undergraduate course. An electronic questionnaire was implemented in a pre-survey and post-survey format to gauge the change in student attitudes toward programming and their programming ability. The findings indicated the positive impact of the Hour of Code tutorial on students’ attitude toward programming. However, the students’ programming skills did not significantly change. The authors suggest that a deeper alignment of marketing, teaching, and content would help sustain the type of initiative exemplified by the Hour of Code.




programming

A Comparison of Student Academic Performance with Traditional, Online, And Flipped Instructional Approaches in a C# Programming Course

Aim/Purpose: Compared student academic performance on specific course requirements in a C# programming course across three instructional approaches: traditional, online, and flipped. Background: Addressed the following research question: When compared to the online and traditional instructional approaches, does the flipped instructional approach have a greater impact on student academic performance with specific course requirements in a C# programming course? Methodology: Quantitative research design conducted over eight 16-week semesters among a total of 271 participants who were undergraduate students en-rolled in a C# programming course. Data collected were grades earned from specific course requirements and were analyzed with the nonparametric Kruskal Wallis H-Test using IBM SPSS Statistics, Version 23. Contribution: Provides empirical findings related to the impact that different instructional approaches have on student academic performance in a C# programming course. Also describes implications and recommendations for instructors of programming courses regarding instructional approaches that facilitate active learning, student engagement, and self-regulation. Findings: Resulted in four statistically significant findings, indicating that the online and flipped instructional approaches had a greater impact on student academic performance than the traditional approach. Recommendations for Practitioners: Implement instructional approaches such as online, flipped, or blended which foster active learning, student engagement, and self-regulation to increase student academic performance. Recommendation for Researchers: Build upon this study and others similar to it to include factors such as gender, age, ethnicity, and previous academic history. Impact on Society: Acknowledge the growing influence of technology on society as a whole. Higher education coursework and programs are evolving to encompass more digitally-based learning contexts, thus compelling faculty to utilize instructional approaches beyond the traditional, lecture-based approach. Future Research: Increase the number of participants in the flipped instructional approach to see if it has a greater impact on student academic performance. Include factors beyond student academic performance to include gender, age, ethnicity, and previous academic history.




programming

Investigating the Feasibility of Automatic Assessment of Programming Tasks

Aim/Purpose: The aims of this study were to investigate the feasibility of automatic assessment of programming tasks and to compare manual assessment with automatic assessment in terms of the effect of the different assessment methods on the marks of the students. Background: Manual assessment of programs written by students can be tedious. The assistance of automatic assessment methods might possibly assist in reducing the assessment burden, but there may be drawbacks diminishing the benefits of applying automatic assessment. The paper reports on the experience of a lecturer trying to introduce automated grading. Students’ solutions to a practical Java programming test were assessed both manually and automatically and the lecturer tied the experience to the unified theory of acceptance and use of technology (UTAUT). Methodology: The participants were 226 first-year students registered for a Java programming course. Of the tests the participants submitted, 214 were assessed both manually and automatically. Various statistical methods were used to compare the manual assessment of student’s solutions with the automatic assessment of the same solutions. A detailed investigation of reasons for differences was also carried out. A further data collection method was the lecturer’s reflection on the feasibility of automatic assessment of programming tasks based on the UTAUT. Contribution: This study enhances the knowledge regarding benefits and drawbacks of automatic assessment of students’ programming tasks. The research contributes to the UTAUT by applying it in a context where it has hardly been used. Furthermore, the study is a confirmation of previous work stating that automatic assessment may be less reliable for students with lower marks, but more trustworthy for the high achieving students. Findings: An automatic assessment tool verifying functional correctness might be feasible for assessment of programs written during practical lab sessions but could be less useful for practical tests and exams where functional, conceptual and structural correctness should be evaluated. In addition, the researchers found that automatic assessment seemed to be more suitable for assessing high achieving students. Recommendations for Practitioners: This paper makes it clear that lecturers should know what assessment goals they want to achieve. The appropriate method of assessment should be chosen wisely. In addition, practitioners should be aware of the drawbacks of automatic assessment before choosing it. Recommendation for Researchers: This work serves as an example of how researchers can apply the UTAUT theory when conducting qualitative research in different contexts. Impact on Society: The study would be of interest to lecturers considering automated assessment. The two assessments used in the study are typical of the way grading takes place in practice and may help lecturers understand what could happen if they switch from manual to automatic assessment. Future Research: Investigate the feasibility of automatic assessment of students’ programming tasks in a practical lab environment while accounting for structural, functional and conceptual assessment goals.




programming

The Impact of Teacher Gender on Girls’ Performance on Programming Tasks in Early Elementary School

Aim/Purpose: The goal of this paper is to examine whether having female robotics teachers positively impacts girls’ performance on programming and robotics tasks Background: Women continue to be underrepresented in the technical STEM fields such as engineering and computer science. New programs and initiatives are needed to engage girls in STEM beginning in early childhood. The goal of this work is to explore the impact of teacher gender on young children’s mastery of programming concepts after completing an introductory robotics program. Methodology: A sample of N=105 children from six classrooms (2 Kindergarten, 2 first grade, and 2 second grade classes) from a public school in Somerville, Massachusetts, participated in this research. Children were taught the same robotics curriculum by either an all-male or all-female teaching team. Upon completion of the curriculum, they completed programming knowledge assessments called Solve-Its. Comparisons between the performance of boys and girls in each of the teaching groups were made. Findings: This paper provides preliminary evidence that having a female instructor may positively impact girls’ performance on certain programming tasks and reduce the number of gender differences between boys and girls in their mastery of programming concepts. Recommendations for Practitioners: Practitioners should expose children to STEM role-models from a variety of backgrounds, genders, ethnicities, and experiences. Future Research: Researchers should conduct future studies with larger samples of teachers in order to replicate the findings here. Additionally, future research should focus on collecting data from teachers in the form of interviews and surveys in order to find out more about gender-based differences in teaching style and mentorship and the impact of this on girls' interest and performance in STEM.




programming

Constructed Response or Multiple-Choice Questions for Assessing Declarative Programming Knowledge? That is the Question!

Aim/Purpose: This paper presents a data mining approach for analyzing responses to advanced declarative programming questions. The goal of this research is to find a model that can explain the results obtained by students when they perform exams with Constructed Response questions and with equivalent Multiple-Choice Questions. Background: The assessment of acquired knowledge is a fundamental role in the teaching-learning process. It helps to identify the factors that can contribute to the teacher in the developing of pedagogical methods and evaluation tools and it also contributes to the self-regulation process of learning. However, better format of questions to assess declarative programming knowledge is still a subject of ongoing debate. While some research advocates the use of constructed responses, others emphasize the potential of multiple-choice questions. Methodology: A sensitivity analysis was applied to extract useful knowledge from the relevance of the characteristics (i.e., the input variables) used for the data mining process to compute the score. Contribution: Such knowledge helps the teachers to decide which format they must consider with respect to the objectives and expected students results. Findings: The results shown a set of factors that influence the discrepancy between answers in both formats. Recommendations for Practitioners: Teachers can make an informed decision about whether to choose multiple-choice questions or constructed-response taking into account the results of this study. Recommendation for Researchers: In this study a block of exams with CR questions is verified to complement the area of learning, returning greater performance in the evaluation of students and improving the teaching-learning process. Impact on Society: The results of this research confirm the findings of several other researchers that the use of ICT and the application of MCQ is an added value in the evaluation process. In most cases the student is more likely to succeed with MCQ, however if the teacher prefers to evaluate with CR other research approaches are needed. Future Research: Future research must include other question formats.




programming

Concept–based Analysis of Java Programming Errors among Low, Average and High Achieving Novice Programmers

Aim/Purpose: The study examined types of errors made by novice programmers in different Java concepts with students of different ability levels in programming as well as the perceived causes of such errors. Background: To improve code writing and debugging skills, efforts have been made to taxonomize programming errors and their causes. However, most of the studies employed omnibus approaches, i.e. without consideration of different programing concepts and ability levels of the trainee programmers. Such concepts and ability specific errors identification and classifications are needed to advance appropriate intervention strategy. Methodology: A sequential exploratory mixed method design was adopted. The sample was an intact class of 124 Computer Science and Engineering undergraduate students grouped into three achievement levels based on first semester performance in a Java programming course. The submitted codes in the course of second semester exercises were analyzed for possible errors, categorized and grouped across achievement level. The resulting data were analyzed using descriptive statistics as well as Pearson product correlation coefficient. Qualitative analyses through interviews and focused group discussion (FGD) were also employed to identify reasons for the committed errors. Contribution:The study provides a useful concept-based and achievement level specific error log for the teaching of Java programming for beginners. Findings: The results identified 598 errors with Missing symbols (33%) and Invalid symbols (12%) constituting the highest and least committed errors respec-tively. Method and Classes concept houses the highest number of errors (36%) followed by Other Object Concepts (34%), Decision Making (29%), and Looping (10%). Similar error types were found across ability levels. A significant relationship was found between missing symbols and each of Invalid symbols and Inappropriate Naming. Errors made in Methods and Classes were also found to significantly predict that of Other Object concepts. Recommendations for Practitioners: To promote better classroom practice in the teaching of Java programming, findings for the study suggests instructions to students should be based on achievement level. In addition to this, learning Java programming should be done with an unintelligent editor. Recommendations for Researchers: Research could examine logic or semantic errors among novice programmers as the errors analyzed in this study focus mainly on syntactic ones. Impact on Society: The digital age is code-driven, thus error analysis in programming instruction will enhance programming ability, which will ultimately transform novice programmers into experts, particularly in developing countries where most of the software in use is imported. Future Research: Researchers could look beyond novice or beginner programmers as codes written by intermediate or even advanced programmers are still not often completely error free.




programming

Rubric for Measuring and Visualizing the Effects of Learning Computer Programming for Elementary School Students

Aim/Purpose: Although many computer science measures have been proposed, visualizing individual students’ capabilities is difficult, as those measures often rely on specific tools and methods or are not graded. To solve these problems, we propose a rubric for measuring and visualizing the effects of learning computer programming for elementary school students enrolled in computer science education (CSE), which is independent of the programming language being used. Background: In this research, we proposed a rubric based on existing CSE standards and criteria having a programming education-learning goal. We then applied this rubric to actual lessons to visualize the educational effects. Methodology: The proposed new rubric for teaching computer programming, based on existing standards and criteria, was applied to fourth- and sixth-grade students in Japan. We assessed which skills were cultivated through quizzes before and after the teaching. Contribution: This paper contributes on how to make and utilize a rubric for programming education in computer science. We evaluated and visualized the proposed rubric’s learning effects on children and found that our proposed rubrics are independent of any particular method or tool. Findings: The results of this survey are twofold: (1) we proposed a rubric of programming education in computer science, independent of the programming tools used and (2) we succeeded in visualizing students’ learning stages by applying the proposed rubric to programming education conducted in a Japanese elementary school. Recommendations for Practitioners: Evaluating educational effects in CSE is important. In particular, graded assessments of learner abilities can reveal individual characteristics. This research is useful for assessing CSE because it focuses specifically on programming education. Recommendation for Researchers: The rubric’s suggestions and quality improvements in CSE help learners assess their learning progress and will clarify the cultivated computer science skills. Impact on Society: This research evaluates CSE based on a rubric in the programming education field. Future Research: Future work is needed to improve the proposed rubric’s quality and relevance. Also, this rubric should be applied to many classes to increase the number of evaluations and analyses.




programming

Redesigning an Introductory Programming Course to Facilitate Effective Student Learning: A Case Study

Aim/Purpose: This study reports the outcome of how a first pilot semester introductory programming course was designed to provide tangible evidence in support of the concept of Student Ownership of Learning (SOL) and how the outcomes of this programming course facilitate effective student learning. Background: Many instructors want to create or redesign their courses to strengthen the relationship between teaching and learning; however, the researchers of this study believe that the concept of Student Ownership of Learning (SOL) connects to student engagement and achievement in the classroom setting. The researchers redesigned the introductory programming course to include valuable teaching methods to increase Student Ownership of Learning and constructive approaches such as making students design an authentic mobile app project as individuals, partners, or within teams. The high quality of students’ projects positioned them as consultants to the university IT department. Methodology: This paper employs a case study design to construct a qualitative research method as it relates to the phenomenon of the study’s goals and lived experiences of students in the redesigned introductory programming course. The redesigned course was marketed to students as a new course with detailed description and elements that were different from the traditional computer science introductory programming course requirement. The redesigned introductory programming course was offered in two sections: one section with 14 registered students and the other section with 15 registered students. One faculty member instructed both sections of the course. A total of 29 students signed up for the newly redesigned introductory programming course, more than in previous semesters, but two students dropped out within the first two weeks of the redesigned course making a total of 27 students. The redesigned coursework was divided into two parts of the semester. The first part of the semester detailed description and elements of the coursework including a redesigned approach with preparation for class, a quiz, and doing homework in class, which gives students control of decisions whenever possible; and working with each other, either with a partner or in a team. The second part of the semester focuses on students designing a non-trivial working mobile app and presenting their developing mobile app at a significant public competition at the end of the semester. Students developed significantly complex mobile apps and incorporated more complex functionality in their apps. Both Management Information System (MIS) major students and Computer Science major students were in the same course despite the fact that MIS students had never taken a programming course before; however, the Computer Science students had taken at least one course of programming. Contribution: This study provides a practical guide for faculty members in Information Technology programs and other faculty members in non-Computer Science programs to create or redesign an introductory course that increases student engagement and achievement in the classroom based on the concept of Student Ownership of Learning (SOL). This study also deepens the discussion in curriculum and instruction on the value to explore issues that departments or programs should consider when establishing coursework or academic programs. Findings: This study found two goals evidently in support to increase Student Ownership of Learning (SOL). The first goal (Increase their ownership of learning SOL) showed that students found value in the course contents and took control of their learning; therefore, the faculty no longer had to point out how important different programming concepts were. The students recognized their own learning gap and were excited when shown a programming concept that addressed the gap. For example, student comments were met with “boy, we can really use this in our app” instead of comments about how complex they were. The coursework produced a desired outcome for students as they would get the knowledge needed to make the best app that they could. The second goal (Develop a positive attitude toward the course) showed positive results as students developed a more positive attitude towards the course. Student actions in the classroom strongly reflected a positive attitude. Attendance was almost 100% during the semester even though no points for attendance were given. Further evidence of Student Ownership of Learning and self-identity was students’ extensive use of the terminology and concept of the course when talking to others, especially during the public competition. Students were also incorporating their learning into their identities. For example, teams became known by their app such as the Game team, the Recipe team, and the Parking team. One team even made team t-shirts. Another exciting reflection of the Student Ownership of Learning which occurred was the learning students did by themselves. Recommendations for Practitioners: Practitioners can share best practices with faculty in different departments, programs, universities, and educational consultants to cultivate the best solution for Student Ownership of Learning based on student engagement and achievement in the classroom setting. Recommendation for Researchers: Researchers can explore different perspectives with scholars and practitioners in various disciplinary fields of study to create or redesign courses and programs to reflect Student Ownership of Learning (SOL). Impact on Society: Student Ownership of Learning is relevant for faculty and universities to incorporate in the creation or redesigning of coursework in academic programs. Readers can gain an understanding that student engagement and achievement are two important drivers of Student Ownership of Learning (SOL) in the classroom setting. Future Research: Practitioners and researchers could follow-up in the future with a study to provide more understanding and updated research information from different research samples and hypotheses on Student Ownership of Learning (SOL).




programming

Towards Understanding Information Systems Students’ Experience of Learning Introductory Programming: A Phenomenographic Approach

Aim/Purpose: This study seeks to understand the various ways information systems (IS) students experience introductory programming to inform IS educators on effective pedagogical approaches to teaching programming. Background: Many students who choose to major in information systems (IS), enter university with little or no experience of learning programming. Few studies have dealt with students’ learning to program in the business faculty, who do not necessarily have the computer science goal of programming. It has been shown that undergraduate IS students struggle with programming. Methodology: The qualitative approach was used in this study to determine students’ notions of learning to program and to determine their cognitive processes while learning to program in higher education. A cohort of 47 students, who were majoring in Information Systems within the Bachelor of Commerce degree programme were part of the study. Reflective journals were used to allow students to record their experiences and to study in-depth their insights and experiences of learning to program during the course. Using phenomenographic methods, categories of description that uniquely characterises the various ways IS students experience learning to program were determined. Contribution: This paper provides educators with empirical evidence on IS students’ experiences of learning to program, which play a crucial role in informing IS educators on how they can lend support and modify their pedagogical approach to teach programming to students who do not necessarily need to have the computer science goal of programming. This study contributes additional evidence that suggests more categories of description for IS students within a business degree. It provides valuable pedagogical insights for IS educators, thus contributing to the body of knowledge Findings: The findings of this study reveal six ways in which IS students’ experience the phenomenon, learning to program. These ways, referred to categories of description, formed an outcome space. Recommendations for Practitioners: Use the experiences of students identified in this study to determine approach to teaching and tasks or assessments assigned Recommendation for Researchers: Using phenomenographic methods researchers in IS or IT may determine pedagogical content knowledge in teaching specific aspects of IT or IS. Impact on Society: More business students would be able to program and improve their logical thinking and coding skills. Future Research: Implement the recommendations for practice and evaluate the students’ performance.




programming

Objective Assessment in Java Programming Language Using Rubrics

Aim/Purpose: This paper focuses on designing and implementing the rubric for objective JAVA programming assessments. An unsupervised learning approach was used to group learners based on their performance in the results obtained from the rubric, reflecting their learning ability. Background: Students' learning outcomes have been evaluated subjectively using a rubric for years. Subjective assessments are simple to construct yet inconsistent and biased to evaluate. Objective assessments are stable, reliable, and easy to conduct. However, they usually lack rubrics. Methodology: In this study, a Top-Down assessment approach is followed, i.e., a rubric focused on the learning outcome of the subject is designed, and the proficiency of learners is judged by their performance in conducting the task given. A JAVA rubric is proposed based on the learning outcomes like syntactical, logical, conceptual, and advanced JAVA skills. A JAVA objective quiz (with multiple correct options) is prepared based on the rubric criteria, comprising five questions per criterion. The examination was conducted for 209 students (100 from the MCA course and 109 from B.Tech. course). The suggested rubric was used to compute the results. K-means clustering was applied to the results to classify the students according to their learning preferences and abilities. Contribution: This work contributes to the field of rubric designing by creating an objective programming assessment and analyzing the learners’ performance using machine learning techniques. It also facilitates a reliable feedback approach offering various possibilities in student learning analytics. Findings: The designed rubric, partial scoring, and cluster analysis of the results help us to provide individual feedback and also, group the students based on their learning skills. Like on average, learners are good at remembering the syntax and concepts, mediocre in logical and critical thinking, and need more practice in code optimization and designing applications. Recommendations for Practitioners: The practical implications of this work include rubric designing for objective assessments and building an informative feedback process. Faculty can use this approach as an alternative assessment measure. They are the strong pillars of e-assessments and virtual learning platforms. Recommendation for Researchers: This research presents a novel approach to rubric-based objective assessments. Thus, it provides a fresh perspective to the researchers promising enough opportunities in the current era of digital education. Impact on Society: In order to accomplish the shared objective of reflective learning, the grading rubric and its accompanying analysis can be utilized by both instructors and students. As an instructional assessment tool, the rubric helps instructors to align their pedagogies with the students’ learning levels and assists students in updating their learning paths based on the informative topic-wise scores generated with the help of the rubric. Future Research: The designed rubric in this study can be extended to other programming languages and subjects. Further, an adaptable weighted rubric can be created to execute a flexible and reflective learning process. In addition, outcome-based learning can be achieved by measuring and analyzing student improvements after rubric evaluation.




programming

Behavioural Issues in Software Development: The Evolution of a New Course Dealing with the Psychology of Computer Programming




programming

Progressive Programming Assignments




programming

Integrating Sun Certification Objectives into an IS Programming




programming

The Peer Reviews and the Programming Course




programming

A Beginning Specification of a Model for Evaluating Learning Outcomes Grounded in Java Programming Courses




programming

What Makes Valuable Pre-experience for Students Entering Programming Courses?    




programming

An Exploration of How a Technology-Facilitated Part-Complete Solution Method Supports the Learning of Computer Programming




programming

Befriending Computer Programming: A Proposed Approach to Teaching Introductory Programming




programming

Improving Progression and Satisfaction Rates of Novice Computer Programming Students through ACME – Analogy, Collaboration, Mentoring, and Electronic Support




programming

A Conceptual Model for Learning to Program in Introductory Programming Courses




programming

So Different Though So Similar? – Or Vice Versa? Exploration of the Logic Programming and the Object-Oriented Programming Paradigms




programming

The Impact of Peer Assessment and Feedback Strategy in Learning Computer Programming in Higher Education




programming

Analyzing Computer Programming Job Trend Using Web Data Mining




programming

Usability and Pedagogical Assessment of an Algorithm Learning Tool: A Case Study for an Introductory Programming Course for High School

An algorithm learning tool was developed for an introductory computer science class in a specialized science and technology high school in Japan. The tool presents lessons and simple visualizations that aim to facilitate teaching and learning of fundamental algorithms. Written tests and an evaluation questionnaire were designed and implemented along with the learning tool among the participants. The tool’s effect on the learning performance of the students was examined. The differences of the two types of visualizations offered by the tool, one with more input and control options and the other with fewer options, were analyzed. Based on the evaluation questionnaire, the scales with which the tool can be assessed according to its usability and pedagogical effectiveness were identified. After using the algorithm learning tool there was an increase in the posttest scores of the students, and those who used the visualization with more input and control options had higher scores compared to those who used the one with limited options. The learning objectives used to evaluate the tool correlated with the test performance of the students. Properties comprised of learning objectives, algorithm visualization characteristics, and interface assessment are proposed to be incorporated in evaluating an algorithm learning tool for novice learners.




programming

Increasing Intrinsic Motivation of Programming Students: Towards Fix and Play Educational Games

Aim/Purpose: The objective of this research is to investigate the effectiveness of educational games on learning computer programming. In particular, we are examining whether allowing students to manipulate the underlying code of the educational games will increase their intrinsic motivation. Background: Young students are fond of playing digital games. Moreover, they are also interested in creating game applications. We try to make use of both of these facts. Methodology: A prototype was created to teach the fundamentals of conditional structures. A number of errors were intentionally included in the game at different stages. Whenever an error is encountered, students have to stop the game and fix the bug before proceeding. A pilot study was conducted to evaluate this approach. Contribution: This research investigates a novel approach to teach programming using educational games. This study is at the initial stage. Findings: Allowing the programming students to manipulate the underlying code of the educational game they play will increase their intrinsic motivation. Recommendations for Practitioners: Creating educational games to teach programming, and systematically allowing the players to manipulate the gaming logic, will be beneficial to the students. Recommendation for Researchers: This research can be extended to investigate how various artificial intelligence techniques can be used to model the gamers, for example, skill level. Impact on Society: The future generations of students should be able to use digital technologies proficiently. In addition, they should also be able to understand and modify the underlying code in the digital things (like Internet of Things).This research attempts to alleviate the disenchantment associated with learning coding. Future Research: A full scale evaluation – including objective evaluation using game scores – will be conducted. One-way MANOVA will be used to analyze the efficacy of the proposed intervention on the students’ performance, and their intrinsic motivation and flow experience.




programming

Relational Algebra Programming With Microsoft Access Databases




programming

Learning Object Patterns for Programming




programming

Software Quality and Security in Teachers' and Students' Codes When Learning a New Programming Language

In recent years, schools (as well as universities) have added cyber security to their computer science curricula. This topic is still new for most of the current teachers, who would normally have a standard computer science background. Therefore the teachers are trained and then teaching their students what they have just learned. In order to explore differences in both populations’ learning, we compared measures of software quality and security between high-school teachers and students. We collected 109 source files, written in Python by 18 teachers and 31 students, and engineered 32 features, based on common standards for software quality (PEP 8) and security (derived from CERT Secure Coding Standards). We use a multi-view, data-driven approach, by (a) using hierarchical clustering to bottom-up partition the population into groups based on their code-related features and (b) building a decision tree model that predicts whether a student or a teacher wrote a given code (resulting with a LOOCV kappa of 0.751). Overall, our findings suggest that the teachers’ codes have a better quality than the students’ – with a sub-group of the teachers, mostly males, demonstrate better coding than their peers and the students – and that the students’ codes are slightly better secured than the teachers’ codes (although both populations show very low security levels). The findings imply that teachers might benefit from their prior knowledge and experience, but also emphasize the lack of continuous involvement of some of the teachers with code-writing. Therefore, findings shed light on computer science teachers as lifelong learners. Findings also highlight the difference between quality and security in today’s programming paradigms. Implications for these findings are discussed.




programming

Analyzing the Quality of Students Interaction in a Distance Learning Object-Oriented Programming Discipline

Teaching object-oriented programming to students in an in-classroom environment demands well-thought didactic and pedagogical strategies in order to guarantee a good level of apprenticeship. To teach it on a completely distance learning environment (e-learning) imposes possibly other strategies, besides those that the e-learning model of Open University of Portugal dictates. This article analyses the behavior of the students of the 1st cycle in Computer Science while interacting with the object-oriented programming (OOP) discipline available to them on the Moodle platform. Through the evaluation of the level of interaction achieved in a group of relevant selected actions by the students, it is possible to identify their relevancy to the success of the programming learning process. Data was extracted from Moodle, numerically analyzed, and, with the use of some charts, behavior patterns of students were identified. This paper points out potential new approaches to be considered in e-learning in order to enhance programming learning results, besides confirming a high level of drop-out and a low level of interaction, thus finding no clear correlation between students’ success and the number of online actions (especially in forums), which reveals a possible failure of the main pillar on which the e-learning model relies.




programming

Programming-based formal languages and automata theory: design, implement, validate, and prove

This rather difficult read introduces the programming language FSM and the programming platform DrRacket. The author asserts that it is a convenient platform to design and prove an automata-based software




programming

Mobile robot programming: adventures in Python and C (2nd ed.)

This book serves as a comprehensive guide for individuals interested in mobile robotics, including: (i) novices interested in programming simple simulated robots; (ii) individuals with basic knowledge of robotics, that is, intermediate learners, who seek to know




programming

The end of programming from Communications of the ACM

Welsh’s article explores how artificial intelligence (AI) developments may redefine the landscape of the field of software development and make traditional coding methodologies obsolete. Readers should find it interesting, as it forecasts the potential impact




programming

Altronix Timer Prevents Programming Loss During Power Failures

Tempo724Q has flash memory, which prevents loss of programming during power failures and can handle up to 420 weekly events with 30 programmable holiday dates.




programming

NeoCon 2025 Opens Call for Programming, Seeking Industry Experts

Leading commercial interiors event NeoCon announces its call for programming submissions, opening October 30. Industry experts can propose CEUs, workshops, and talks for the 56th edition, scheduled for June 9-11, 2025, at The Mart in Chicago. 




programming

NKBA Announces Global Connect KBIS 2022 Programming

The Kitchen & Bath Industry Show, will host three international delegation tours and an NKBA Global Connect Pavillion.




programming

A Comparison of Perspectives of Inmates vs. Staff in Determining Critical Content for Occupational Therapy Transitional Programming with Female Inmates

Volume 34, Issue 5, September-October 2024, Page 323-347. Read the full article ›

The post A Comparison of Perspectives of Inmates vs. Staff in Determining Critical Content for Occupational Therapy Transitional Programming with Female Inmates was curated by information for practice.



  • Journal Article Abstracts

programming

Learning programming through game building

Jiro's Pick this week is AstroVolley Courseware by Paul Huxel.Back in my undergraduate studies (many, many years ago), I took a Pascal programming course, and it was the first official programming... read more >>