Portland, Oregon
June 23, 2024
June 23, 2024
June 26, 2024
Computing and Information Technology Division (CIT) Technical Session 5
Computing and Information Technology Division (CIT)
16
10.18260/1-2--48065
https://peer.asee.org/48065
62
Dr. Alireza Kavianpour received his PH.D. Degree from University of Southern California (USC). He is currently Senior Professor at DeVry University, Ontario, CA. Dr. Kavianpour is the author and co-author of over sixty technical papers most of them published in IEEE journals or conferances. He has one pending patent .
In this paper, I will discuss how to teach computer programming using Artificial Intelligence (AI) tools, such as ChatGPT. In a Freshman programming course, I used AI tools to enhance my teaching. By now everyone has heard a lot of both negative and positive comments from instructors regarding the use of ChatGPT. Most notable comments include: “AI will substitute instructors” or “Students will never write their own research papers or their own computer programming codes.” A handful of years ago, when calculators were first introduced, many mathematicians and teachers opposed them, and claimed students would never learn mathematics with such a tool. As time has passed, calculators have been proven to enhance a student’s mathematical learning capabilities. As such, like any new technology, teachers and students need to learn the right way to use it. A textbook has a limited capability to explain a topic. Students can find out more about a topic from an AI generator than searching through countless pages on the web. They can get clear and readable responses that can help them to view the material from a different perspective. I have many years of experience teaching computer programming. The past year, I decided to teach one of my freshman courses by using AI to explain different concepts in computer programming; C/C++ programming. I taught concepts and topics such as: control statements (IF, WHILE, DO WHILE, SWITCH, and FOR), functions, pointers, structures, and file handling. I found that these concepts and topics could be taught more efficiently using AI. AI tools are designed by using machine learning algorithms known as the transformer model. This model uses a vast majority of big data, books, articles and generates a response. The more data results, the better the response will be. The one thing that makes AI stand out from other search engines, such as Google, is that you can interact and ask follow-up questions. This is a very useful feature to give students more practice and ask them to challenge the AI on specific topics. For the freshman course exam, I had a 2-step assignment. First, I asked students to complete a set of questions on their own. After, I asked them to use ChatGPT to check if they missed anything. An example question: “Write a program on sorting 100 numbers. Then, ask ChatGPT to offer edits and suggestions. Now, compare the two, and tell me why ChatGPT made those changes?” In any computer programming course, we must teach students the foundation of programming and swiftly bring them to a level of skill. Students can use computing methods in their courses to do some of the following: analyze data, learn linear algebra, solve problems in mechanics, solve differential equations, and use it in embedded programming. To align the teaching of programming courses with the use of ChatGPT, we must review teaching and course objectives. Teaching objectives and outcomes in programming courses The main objective in teaching a computer language is to enable the students to convert engineering problems into an algorithm. The conversion of this algorithm into a program written in one programming language is of secondary importance. Consequently, the choice of the teaching language should be governed by which language provides the best support to the student in performing the implementation part of the problem.
Course objectives and outcomes in programming courses To be able to design, develop, compile, and debug programs in a high-level programming language. To be able to develop programs for solving numerical problems applicable to engineering. Express data of multiple types (numbers, strings, lists) in a high-level language. Write expressions and functions in a high-level language statement. Use control flow constructs to combine multiple statements into a larger subprogram. Test and debug programs with I/O constructs.
In this paper, we will be looking at the teaching experience and collected data from a freshman introductory course to programming with and without ChatGPT. There are several guidelines to use this AI tool more efficiently for C programming which is a general-purpose programming language will be presented. This computer language remains the most widely used language and it has seen much standardization and improvement throughout the years. Homework assignments in this course are modified to address the use of ChatGPT.
Kavianpour, A. (2024, June), Teaching Programming Languages by Two Teachers: Instructor and ChatGPT Paper presented at 2024 ASEE Annual Conference & Exposition, Portland, Oregon. 10.18260/1-2--48065
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2024 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015