316,659 research outputs found
Teaching and Learning Tools for Introductory Programming in University Courses
Difficulties in teaching and learning introductory
programming have been studied over the years. The students'
difficulties lead to failure, lack of motivation, and abandonment
of courses. The problem is more significant in computer courses,
where learning programming is essential. Programming is
difficult and requires a lot of work from teachers and students.
Programming is a process of transforming a mental plan into a
computer program. The main goal of teaching programming is
for students to develop their skills to create computer programs
that solve real problems. There are several factors that can be
at the origin of the problem, such as the abstract concepts that
programming implies; the skills needed to solve problems; the
mental skills needed to decompose problems; many of the
students never had the opportunity to practice computational
thinking or programming; students must know the syntax,
semantics, and structure of a new unnatural language in a short
period of time. In this work, we present a set of strategies,
included in an application, with the objective of helping teachers
and students. Early identification of potential problems and
prompt response is critical to preventing student failure and
reducing dropout rates. This work also describes a predictive
machine learning (neural network) model of student failure
based on the student profile, which is built over the course of
programming lessons by continuously monitoring and
evaluating student activities
Mechanization of program construction in Martin-Loef's theory of types
The constructive approach to the problem of program correctness dates to the late 1960âs. During the early 1970âs interest developed in the application of constructive logics to the derivation of provably correct programs. Martin-Loef's Theory of Types was devised as a formalisation of constructive mathematics. His theory also integrates the processes of program construction and verification within a single deductive system. This thesis is concerned with the application of Martin-Loef's theory to the task of program construction. In particular, the mechanisation of this task is investigated. We begin with a comparative study of current implementations of constructive type theory. The aim of the study is to assess the suitability of the implementations in the role of programming assistant. A proposal for a more effective programming assistant is presented. A principal difficulty in constructing correct programs is the problem of scale. Computer assistance plays an essential role in alleviating this problem. Experience in performing formal proof provides a better understanding of this problem and is, therefore, an important aid to the development of computer assistance. For this reason the formal derivation of a generalised table look-up function was undertaken. This exercise in program construction revealed that a disproportionate amount of the overall proof effort was taken up with proving negations. A proof of a negation has no computational content; it contributes only to the correctness of the synthesized program. With the aim of freeing the programmer from those proof obligations a decision method for negation was developed.
This decision method exploits, and thereby demonstrates, the uniform structure of Martin-Loef's theory. This uniformity is further utilized in a scheme for automatically deriving primitive recursive functions. The scheme enables the formal introduction of definitions during the course of a proof which satisfy the constraints of primitive recursion
Outcomes, perceptions, and experiences in one CPED-aligned educational doctorate (EdD) program
EdD programming has been questioned because of lack of clarity in the initial degree construction and confusion regarding its unique focus on enhancing practice. An improved, coherent focus was developed through the Carnegie Project on the Educational Doctorate (CPED). To understand the changes happening in CPED-influenced EdD programs, studies conducted within these newly-revised programs are vital.
The current mixed-methods study explored perceptions of education doctoral (EdD) students in a CPED-Influenced program at one Midwestern university (n=36 for survey; n=8 for interviews). The research questions examined: (a) the successful completion of outcomes in the program; (b) the influence of the seven outcomes on the students in the program; and (c) being a full-time or part-time student in the program.
In the first data collection phase, survey participants rated themselves at the average (3.07) to slightly above average (4.08) level for all seven outcomes, showing students perceived program outcomes as being met. The highest level of proficiency rated was the outcome Research in Practice (4.08), and the lowest was the outcome Organizational Change (3.07).
In comparing old program students to new program students, there were no significant differences in their perceptions of proficiency for program outcomes. There were no significant differences between full and part-time students in their perceptions of proficiency for program outcomes; however, calculations of specific benchmark revealed one significant difference and a medium effect size (Cohenâs d= 0.59) favoring full-time students for the benchmark âStudents understand program delivery models and their implications for practice.â
The second and third data collection were conducted through qualitative interviews. Emerging themes included the transformative change in the ways students think, invested and professional faculty members acting as mentors, collaboration with and diversity among peers, flexibility of the programming structure and course requirements, the focus on quality research in practice, and the application of learning.
Many advantages and a few disadvantages were identified for both full-time and part-time students; however, satisfaction with the option to be full-time or part-time was the primary finding
Masters Students' Experiences of Learning to Program: An Empirical Model
The investigation reported here examined how Masters students experience learning to program. The phenomenographic research approach adopted permitted the analysis of 1) how students go about learning to program, that is the âActâ of learning to program, and 2) what students understand by âprogrammingâ, that is the âObjectâ of learning to program. Analysis of data from twenty-three participants identified five different experiences of the Act of learning to program and five different experiences of the Object of learning to program. Together the findings comprise an empirical model of the learning to program experience amongst the participating students. We suggest how our findings are significant for programming teachers and offer tools to explore studentsâ views
Forty hours of declarative programming: Teaching Prolog at the Junior College Utrecht
This paper documents our experience using declarative languages to give
secondary school students a first taste of Computer Science. The course aims to
teach students a bit about programming in Prolog, but also exposes them to
important Computer Science concepts, such as unification or searching
strategies. Using Haskell's Snap Framework in combination with our own
NanoProlog library, we have developed a web application to teach this course.Comment: In Proceedings TFPIE 2012, arXiv:1301.465
Teaching Parallel Programming Using Java
This paper presents an overview of the "Applied Parallel Computing" course
taught to final year Software Engineering undergraduate students in Spring 2014
at NUST, Pakistan. The main objective of the course was to introduce practical
parallel programming tools and techniques for shared and distributed memory
concurrent systems. A unique aspect of the course was that Java was used as the
principle programming language. The course was divided into three sections. The
first section covered parallel programming techniques for shared memory systems
that include multicore and Symmetric Multi-Processor (SMP) systems. In this
section, Java threads was taught as a viable programming API for such systems.
The second section was dedicated to parallel programming tools meant for
distributed memory systems including clusters and network of computers. We used
MPJ Express-a Java MPI library-for conducting programming assignments and lab
work for this section. The third and the final section covered advanced topics
including the MapReduce programming model using Hadoop and the General Purpose
Computing on Graphics Processing Units (GPGPU).Comment: 8 Pages, 6 figures, MPJ Express, MPI Java, Teaching Parallel
Programmin
Curriculum Guidelines for Undergraduate Programs in Data Science
The Park City Math Institute (PCMI) 2016 Summer Undergraduate Faculty Program
met for the purpose of composing guidelines for undergraduate programs in Data
Science. The group consisted of 25 undergraduate faculty from a variety of
institutions in the U.S., primarily from the disciplines of mathematics,
statistics and computer science. These guidelines are meant to provide some
structure for institutions planning for or revising a major in Data Science
A gentle transition from Java programming to Web Services using XML-RPC
Exposing students to leading edge vocational areas of relevance such as Web Services can be difficult. We show a lightweight approach by embedding a key component of Web Services within a Level 3 BSc module in Distributed Computing. We present a ready to use collection of lecture slides and student activities based on XML-RPC. In
addition we show that this material addresses the central topics in the context of web services as identified by Draganova (2003)
- âŠ