Thereare a lot of ways to think about problem solving. This article will take on three of these that we are hearing more about recently: computational thinking, algorithmic thinking, and design thinking.
The computational thinking process starts with data as the input and a quest to derive meaning and answers from it. The output is not only an answer but a process for arriving at it. To be a map toward understanding, computational thinking plots the journey to ensure that the process can be replicated and others can learn from it and use it. At this juncture, computational thinking often feeds into algorithmic thinking.
Computational Thinking Examples
Computational thinking is a multi-disciplinary tool that can be broadly applied in both plugged and unplugged ways. These are some examples of computational thinking in a variety of contexts.
2. Computational Thinking for Data-Driven Instruction
In this example, the New Mexico School for the Arts sought a more defined process for using data to better inform decision-making across the school. To do so, they developed interim assessments that generate actionable data, but the process of mining the data for relevant information was incredibly cumbersome.
Expediting and improving the data analysis process, they designed a coherent process for analyzing the data quickly to find the most important information. This process can now be applied time and time again and has enabled them to tailor instructional planning to the needs of students.
3. Computational Thinking for Journalism
To measure gender stereotypes in films, Julia Silge, data scientist and author of Text Mining with R, coalesced data from 2000 movie scripts. Decomposing the problem, she specified that she would specifically look at the verb association with male and female pronouns in screen direction.
By identifying patterns in sentence structure, Silge was able to measure and abstract data from these on a mass scale, which made the research possible. Her analysis then resulted in this article, She Giggles, He Gallops.
Algorithmic thinking is a derivative of computer science and coding. This approach automates the problem-solving process by creating a series of systematic logical steps that process a defined set of inputs and produce a defined set of outputs based on these.
1. Algorithmic Thinking in Long Division
Without having to dive into technology, there are algorithms we teach students, whether or not we realize it. For example, long division follows the standard division algorithm for dividing multi-digit integers to calculate the quotient.
The division algorithm enables both people and computers to solve division problems with a systematic set of logical steps, which this video shows. Rather than having to analyze and parse through these problems, we are able automate solving for quotients because of the algorithm.
2. Algorithmic Thinking in Standardized Testing
A somewhat recent development in standardized testing is the advent of computer adaptive assessments that pick questions based on student ability as determined by correct and incorrect answers given.
If students select the correct answer to a question, then the next question would be moderately more difficult. But if they answer wrong, then the assessment offers a moderately easier question. This occurs through an iterative algorithm that starts with a pool of questions. After an answer, the pool is adjusted accordingly. This repeats continuously.
3. Algorithmic Thinking in Google
Have you ever wondered why the chosen results appear for a query as opposed to those on the second, third, fourth, or tenth pages of a google search?
What can we take away from this? There are over 1.5 billion websites with billions more pages to count, but thanks to algorithmic thinking we can type just about anything into Google and expect to be delivered a curated list of resources in under a second. This right here is the power of algorithmic thinking.
Design Thinking Examples
Design Thinking is widely applied. Here are a few examples of innovative and disruptive ways teachers, schools, and organizations are using design thinking.
The Toy Box unit was project-based and centered on the design thinking process. Students invented entirely new toys and pitched them to a panel of judges. Learn more about this collaborative project here!
2. Design Thinking for School Improvement
This interview features Sam Seidel, Director of K12 Strategy + Research at the Stanford D.School. He is passionate about using design thinking to reimagine education. He focuses in a part on school initiatives like project-based learning and state programs like standardized testing.
3. Design Thinking for Business Growth
Now we get to talk about my second favorite topics (education being the first), which is food. As one of many food delivery applications, UberEats uses design thinking to improve on a city-by-city basis. UberEats affirms that their work must be relevant to that of the users, and as a multi-national company, that means they must tailor their program to each city in which they operate.
UberEats then translates the findings into prototyped solutions. They iterate quickly and are not afraid of making improvements on the fly to uphold their belief that a user-centered product will grow its market and outperform its competition.
Catalog Description - Hands-on introduction to programming using the Java programming language. Teaches fundamentals of programming and more advanced topics. Emphasizes algorithmic thinking and computational problem solving and provides an introduction to the concepts and methods used in Computer Science. Required for all CSC majors.
Labs - You must also register for a lab and workshop to take the course. Labs are physical computer labs where students can practice programming with the help of student TAs. Some assignments may require you to demonstrate your work to your TA individually or in small teams. Attendance in labs is otherwise typically optional but encouraged.
Workshops - Workshops are small-group peer study sessions facilitated by students who receive training from then Center for Education Teaching, and Leadership (CETL). Workshop participation is required and graded based on collaborative problem solving exercises. Students who need to miss a workshop can complete the workshop activities on their own and connect with their workshop leader to receive credit. Workshops begin January 30th and occur every week except exam weeks. (See schedule for exam dates.)
Note 1 - This is the first required course for all CSC majors. There will be substantial programming assignments. Non-majors, or those looking for a gentler introduction to programming, may wish to consider taking CSC 161 instead of (or prior to) taking this course.
Textbook and Materials - There is no official textbook for the course. Instead we will be referring to different online resources at different times. The first book (by Mayfield and Downey) provides a solid introduction to programming and computational thinking, and is recommended reading for all students. Concise examples and information on many topics can be found in the Oracle java tutorials.
Grading - Your work will be graded using a combination of automated test cases and manual testing by the instructor or the TAs. AI will not be used to determine student grades or feedback in any way. Re-grade requests must be made within one week of grades being posted. Requests for partial or extra credit will typically be denied.
Submission and Deadlines - Regular assignments will be posted on an ongoing basis and due typically the week after they are assigned. Assignments should be submitted through Gradescope before each deadline. Late work will not be accepted.
Artificial Intelligence - it is unclear whether the benefits of AI for education yet outweigh the risks. The purpose of a university education is for you, personally, as a human, to acquire knowledge. If you use an AI tool to complete your homework, you may get a good grade for the assignment, but you will not have acquired knowledge of the subject material. Despite these risks, AI tools have advanced to a point where they can effectively answer many simple questions about programming, and may be helpful at identifying bugs, or explaining language features. If you choose to use AI tools, you should use them responsibly, and focus on increasing your own knowledge, rather than using them to complete your work. You're the one in college, not the machine; don't use a stunt double to get through this experience.
Use of AI to complete your homework - in whole or in part - is prohibited. The goal is for you to develop programming skills and knowledge of computer science. You are ultimately responsible for the work that you submit. You must be able to discuss and explain the logic of your submitted work at any time to the TAs and the instructor. Failure to adequately discuss your work may be grounds for reducing the grade or further consequences.
There will be two midterm exams and one comprehensive final exam in this course. The regular exams will occur in the lecture hall during class time on the days indicated by the schedule. The final exam time and location are determined by the registrar. The complete final exam schedule is available at the registrar's webpage.
All exams will be traditional, in-person, paper exams. No notes or electronics are permitted - smartphones, smartwatches, and headphones are all prohibited. Students found using electronic devices will be reported to the Board of Academic Honesty. There are no make-ups for missed exams, except in extraordinary circumstances. Students with documented accessibility issues should plan to communicate in advance with the disability services office to arrange proctoring. Students who miss more than one exam, or who miss the final, may be unable to pass the course.
3a8082e126