## Prepare for Advanced Computer Science Courses

### Learn how to program and think like a Computer Scientist

## Sobre este Programa Especializado

This Specialization covers much of the material that first-year Computer Science students take at Rice University. Students learn sophisticated programming skills in Python from the ground up and apply these skills in building more than 20 fun projects. The Specialization concludes with a Capstone exam that allows the students to demonstrate the range of knowledge that they have acquired in the Specialization.

Creada por:

##### 7 courses

Sigue el orden sugerido o elige el tuyo.

##### Proyectos

Diseñado para ayudarte a practicar y aplicar las habilidades que aprendiste.

##### Certificados

Resalta tus nuevas habilidades en tu currículum o LinkedIn.

Cursos

- Beginner Specialization.
- No prior experience required.

### CURSO 1

## An Introduction to Interactive Programming in Python (Part 1)

Próxima sesión: abr. 3 — may. 15.- Dedicación
- 5 weeks of study, 7-10 hours/week

- Subtítulos
- English, Italian, Spanish, Chinese (Simplified)

### Acerca del Curso

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple. These applications will involve windows whose contents are graphical and respond to buttons, the keyboard and the mouse. In part 1 of this course, we will introduce the basic elements of programming (such as expressions, conditionals, and functions) and then use these elements to create simple interactive applications such as a digital stopwatch. Part 1 of this class will culminate in building a version of the classic arcade game "Pong". Recommended Background - A knowledge of high school mathematics is required. While the class is designed for students with no prior programming experience, some beginning programmers have viewed the class as being fast-paced. For students interested in some light preparation prior to the start of class, we recommend a self-paced Python learning site such as codecademy.com.### CURSO 2

## An Introduction to Interactive Programming in Python (Part 2)

Próxima sesión: abr. 3 — may. 8.- Dedicación
- 4 weeks of study, 7-10 hours/week

- Subtítulos
- English, Turkish, Chinese (Simplified)

### Acerca del Curso

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple. These applications will involve windows whose contents are graphical and respond to buttons, the keyboard and the mouse. In part 2 of this course, we will introduce more elements of programming (such as list, dictionaries, and loops) and then use these elements to create games such as Blackjack. Part 1 of this class will culminate in building a version of the classic arcade game "Asteroids". Upon completing this course, you will be able to write small, but interesting Python programs. The next course in the specialization will begin to introduce a more principled approach to writing programs and solving computational problems that will allow you to write larger and more complex programs.### CURSO 3

## Principles of Computing (Part 1)

Próxima sesión: abr. 3 — may. 15.- Dedicación
- 4 weeks of study, 7-10 hours/week

- Subtítulos
- English

### Acerca del Curso

This two-part course builds upon the programming skills that you learned in our Introduction to Interactive Programming in Python course. We will augment those skills with both important programming practices and critical mathematical problem solving skills. These skills underlie larger scale computational problem solving and programming. The main focus of the class will be programming weekly mini-projects in Python that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games. In part 1 of this course, the programming aspect of the class will focus on coding standards and testing. The mathematical portion of the class will focus on probability, combinatorics, and counting with an eye towards practical applications of these concepts in Computer Science. Recommended Background - Students should be comfortable writing small (100+ line) programs in Python using constructs such as lists, dictionaries and classes and also have a high-school math background that includes algebra and pre-calculus.### CURSO 4

## Principles of Computing (Part 2)

Próxima sesión: abr. 3 — may. 8.- Dedicación
- 4 weeks of study, 7-10 hours/week

- Subtítulos
- English

### Acerca del Curso

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games. In part 2 of this course, the programming portion of the class will focus on concepts such as recursion, assertions, and invariants. The mathematical portion of the class will focus on searching, sorting, and recursive data structures. Upon completing this course, you will have a solid foundation in the principles of computation and programming. This will prepare you for the next course in the specialization, which will begin to introduce a structured approach to developing and analyzing algorithms. Developing such algorithmic thinking skills will be critical to writing large scale software and solving real world computational problems.### CURSO 5

## El Pensamiento Algorítmico (Parte 1)

Próxima sesión: abr. 3 — may. 8.- Dedicación
- 4 weeks of study, 7-10 hours/week

- Subtítulos
- English, Spanish

### Acerca del Curso

Científicos en computadoras de amplia experiencia analizan y resuelven problemas de computacion a un nivel de abstracción que esta más adelantado que cualquier lenguaje de programacion. Esta segunda parte del curso se enfoca en los principios que ustedes aprenden en el curso ¨Principios en Computacion¨ y esta diseñado para entrenar a los estudiantes en los conceptos matemáticos y procesos de ¨ Pensamientos de Algorítmos¨ permitiendoles crear simples y más eficientes soluciones a los problemas computacionales del mundo real. En la parte 1 del curso, estudiaremos la noción de eficiencia de algoritmo y consideraremos esta aplicación a muchos problemas sobre la teoría de grafos. Como una parte central del curso, los estudiantes implementarán diversos e importantes algoritmos para grafos en Python y luego usar estos algoritmos para analizar dos grupos de datos del mundo real. El objetivo principal de esta actividad es para entender la interacción entre los algoritmos y la estructura de los juegos de datos a ser analizados por estos algoritmos. Como conocimientos previos para el curso, los estudiantes deberian sentirse bien escribiendo programas de Python de tamaño intermedio ( 300 o mas líneas) y tener una comprension básica de búsquedas, ordenaciones y recursiones. Los estudiantes deberían tener un respaldo sólido en matemáticas que incluya álgebra, pre-cálculo y estar familiarizados con los conceptos de matemáticas que se requieren en ¨Principios en Computación¨### CURSO 6

## Pensamiento Algorítmico (Parte 2)

Próxima sesión: abr. 3 — may. 8.- Dedicación
- 4 weeks of study, 7-10 hours/week

- Subtítulos
- English, Spanish

### Acerca del Curso

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems. In part 2 of this course, we will study advanced algorithmic techniques such as divide-and-conquer and dynamic programming. As the central part of the course, students will implement several algorithms in Python that incorporate these techniques and then use these algorithms to analyze two large real-world data sets. The main focus of these tasks is to understand interaction between the algorithms and the structure of the data sets being analyzed by these algorithms. Once students have completed this class, they will have both the mathematical and programming skills to analyze, design, and program solutions to a wide range of computational problems. While this class will use Python as its vehicle of choice to practice Algorithmic Thinking, the concepts that you will learn in this class transcend any particular programming language.### CURSO 7

## The Fundamentals of Computing Capstone Exam

Próxima sesión: may. 1 — may. 15.- Subtítulos
- English

### Sobre el Proyecto Final

While most specializations on Coursera conclude with a project-based course, students in the "Fundamentals of Computing" specialization have completed more than 20+ projects during the first six courses of the specialization. Given that much of the material in these courses is reused from session to session, our goal in this capstone class is to provide a conclusion to the specialization that allows each student an opportunity to demonstrate their individual mastery of the material in the specialization. With this objective in mind, the focus in this Capstone class will be an exam whose questions are updated periodically. This approach is designed to help insure that each student is solving the exam problems on his/her own without outside help. For students that have done their own work, we do not anticipate that the exam will be particularly hard. However, those students who have relied too heavily on outside help in previous classes may have a difficult time. We believe that this approach will increase the value of the Certificate for this specialization.

## Creadores

#### Luay Nakhleh

##### Associate Professor

#### Joe Warren

##### Professor

#### John Greiner

##### Lecturer

#### Scott Rixner

##### Professor

#### Stephen Wong

##### Lecturer

## FAQs

More questions? Visit the Learner Help Center.