Computational Thinking with Beginning C Programming Specialization

Start Date: 03/29/2020

Course Type: Specialization Course

Course Link: https://www.coursera.org/specializations/computational-thinking-c-programming

Explore 1600+ online courses from top universities. Join Coursera today to learn data science, programming, business strategy, and more.

About Course

This specialization is designed to let you explore computational thinking and beginning C programming topics, applying those concepts to develop solutions to a variety of practical problems.The first course assumes no programming experience, and throughout the 4 courses in the specialization you'll learn about both computational thinking and C programming. The material in the courses in the specialization is equivalent to our computational thinking course at UCCS.

Course Syllabus

Algorithms, Data Collection, and Starting to Code
Data Analysis and Representation, Selection and Iteration
Abstraction, Problem Decomposition, and Functions
Simulation, Algorithm Analysis, and Pointers

Deep Learning Specialization on Coursera

Course Introduction

Computational Thinking with Beginning C Programming Specialization This course is the specialization to begin to learn how to write basic C programs in Java. This course covers the following topics: * What is a computational complexity metric? * How to use the Boost library for C++ programming? * How to use the NN framework for C++ programming? * How to use data member functions for object-oriented C++ programming? * How to use templates and other object-oriented programming techniques? * How to use threads and threadsafe libraries? * How to use libraries and shared memory? * How to use modular, functional programming styles? * How to use enums and classes to implement utility C++ classes? Computational thinking in general and in Java are very important topics. This course will cover basic topics such as dataflow, synchronization, and combinatorics in an effort to familiarize you with the core concepts. We will also discuss such topics as application programming and application programming models, so that you can understand how they are implemented in the Java programming language. Upon completing this course, you will be able to: 1.write small programs that use data from some other source, such as a file system or a calendar 2.run small programs that use application programming models, i.e. classes, over and over, to implement the common application patterns that are used throughout application programming 3.write small programs that use enums and classes to implement utility C

Course Tag

Related Wiki Topic

Article Example
Computational thinking Jeannette Wing envisioned computational thinking becoming an essential part of every child's education. However, since her article (published in 2006) integrating computational thinking into the K-12 curriculum has faced several challenges including the agreement on the definition of computational thinking. Currently Computational Thinking is broadly defined as a set of cognitive skills and problem solving processes that include (but are not limited to) the following characteristics:
Computational thinking Current integration computational thinking into the K-12 curriculum comes in two forms: in computer science classes directly or through the use and measure of computational thinking techniques in other subjects. Teachers in Science, Technology, Engineering, and Mathematics (STEM) focused classrooms that include computational thinking, allow students to practice problem-solving skills such as trial and error (Barr, et al, 2011). Valerie Barr and Chris Stephenson describe computational thinking patterns across disciplines in a 2011 ACM Inroads article However Conrad Wolfram has argued that computational thinking should be taught as a distinct subject.
Computational thinking Computational Thinking (CT) is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer—human or machine—can effectively carry out. Computational Thinking is an iterative process based on three stages: 1) Problem Formulation (abstraction), 2) Solution Expression (automation), and 3) Solution Execution & Evaluation (analyses) captured by the figure to the right. The term "computational thinking" was first used by Seymour Papert in 1980 and again in 1996. Computational thinking can be used to algorithmically solve complicated problems of scale, and is often used to realize large improvements in efficiency.
Computational thinking The concept of Computational Thinking has been criticized as too vague, as it's rarely made clear how it is different from other forms of thought. Some computer scientists worry about the promotion of Computational Thinking as a substitute for a broader computer science education, as computational thinking represents just one small part of the field. Others worry that the emphasis on Computational Thinking encourages computer scientists to think too narrowly about the problems they can solve, thus avoiding the social, ethical and environmental implications of the technology they create.
Computational thinking The phrase "computational thinking" was brought to the forefront of the computer science community as a result of an ACM Communications article on the subject by Jeannette Wing. The article suggested that thinking computationally was a fundamental skill for everyone, not just computer scientists, and argued for the importance of integrating computational ideas into other disciplines.
Computational thinking As far as a physical facility, in Central New Jersey, there is a small institution, named Storming Robots, offering technology programs to Grade 4 to 12 with an emphasis on Algorithmic and Computational Thinking via robotics projects throughout the school year. Students may follow its road map starting from Grade 4 until they graduate to college.
Computational thinking Carnegie Mellon University in Pittsburgh has a Center for Computational Thinking. The Center's major activity is conducting PROBEs or PROBlem-oriented Explorations. These PROBEs are experiments that apply novel computing concepts to problems to show the value of computational thinking. A PROBE experiment is generally a collaboration between a computer scientist and an expert in the field to be studied. The experiment typically runs for a year. In general, a PROBE will seek to find a solution for a broadly applicable problem and avoid narrowly focused issues. Some examples of PROBE experiments are optimal kidney transplant logistics and how to create drugs that do not breed drug-resistant viruses.
Computational thinking There are a handful of online institutions which provide curriculum, and other related resources to build and strengthen pre-college students with Computational Thinking, Analysis and Problems Solving. One prominent one is the Carnegie Mellon Robotics Academy. It offers training sessions for both pre-college students, as well as teachers. CMU's programs exercise instructional scaffolding methods via engineering process. There is also another online site named legoengineering.com. offering similar resources.
Computational thinking The characteristics that define computational thinking are decomposition, pattern recognition / data representation, generalization/abstraction, and algorithms. By decomposing a problem, identifying the variables involved using data representation, and creating algorithms, a generic solution results. The generic solution is a generalization or abstraction that can be used to solve a multitude of variations of the initial problem.
Partial template specialization Partial template specialization is a particular form of class template specialization. Usually used in reference to the C++ programming language, it allows the programmer to specialize only some arguments of a class template, as opposed to explicit specialization, where all the template arguments are provided.
C (programming language) The C++ programming language was devised by Bjarne Stroustrup as an approach to providing object-oriented functionality with a C-like syntax. C++ adds greater typing strength, scoping, and other tools useful in object-oriented programming, and permits generic programming via templates. Nearly a superset of C, C++ now supports most of C, with a few exceptions.
Computational logic The term “Computational Logic” has also come to be associated with logic programming, because much of the early work in logic programming in the early 1970s also took place in the Department of Computational Logic in Edinburgh. It was reused in the early 1990s to describe work on extensions of logic programming in the EU Basic Research Project “Compulog” and in the associated Network of Excellence. Krzysztof Apt, who was the co-ordinator of the Basic Research Project Compulog-II, reused and generalized the term when he founded the ACM Transactions on Computational Logic in 2000 and became its first Editor-in-Chief.
Computational economics of automated internet markets, programming tools specifically designed for computational economics, and pedagogical tools for the teaching of computational economics. Some of these areas are unique to computational economics, while others extend traditional areas of economics by solving problems that are difficult to study without the use of computers and associated numerical methods.
Computational topology Algorithmic topology, or computational topology, is a subfield of topology with an overlap with areas of computer science, in particular, computational geometry and computational complexity theory.
The C++ Programming Language The C++ Programming Language was the first book to describe the C++ programming language, written by the language’s creator, Bjarne Stroustrup, and first published in October 1985. In the absence of an official standard, the book served for several years as the "de facto" documentation for the evolving C++ language until the release of the "ISO/IEC 14882:1998: Programming Language C++" standard on 1 September 1998. As the standard further evolved with the standardization of language and library extensions and with the publication of technical corrigenda, later editions of the book were updated to incorporate the new changes.
The C++ Programming Language "C++ Solutions" (ISBN 0-201-30965-3) is a companion book to the third edition of "The C++ Programming Language". It contains solutions to selected exercises of "The C++ Programming Language".
Specialization (pre)order For any sober space "X" with specialization order ≤, we have
Computational mechanics With regard to computing, computer programming, algorithms, and parallel computing play a major role in CM. The most widely used programming language in the scientific community, including computational mechanics, is Fortran. Recently, C++ has increased in popularity. The scientific computing community has been slow in adopting C++ as the lingua franca. Because of its very natural way of expressing mathematical computations, and its built-in visualization capacities, the proprietary language/environment MATLAB is also widely used, especially for rapid application development and model verification.
Computational science Scientific computation is most often studied through an applied mathematics or computer science program, or within a standard mathematics, sciences, or engineering program. At some institutions a specialization in scientific computation can be earned as a "minor" within another program (which may be at varying levels). However, there are increasingly many bachelor's and master's programs in computational science. Some schools also offer the Ph.D. in computational science, computational engineering, computational science and engineering, scientific computation, or all three degrees bachelor's, master's and PhD in scientific computing.
C Sharp (programming language) Though primarily an imperative language, C# 2.0 offered limited support for functional programming through first-class functions and closures in the form of anonymous delegates. C# 3.0 expanded support for functional programming with the introduction of a lightweight syntax for lambda expressions, extension methods (an affordance for modules), and a list comprehension syntax in the form of a "query comprehension" language.