## Prepare for Advanced Computer Science Courses

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

## À propos de cette Spécialisation

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.

Créé par :

##### 7 courses

Suivez l'ordre suggéré ou choisissez le vôtre.

##### Projets

Conçu pour vous aider à vous exercer et à appliquer les compétences que vous avez acquises.

##### Certificats

Mettez en évidence vos nouvelles compétences sur votre CV ou sur LinkedIn.

Cours

- Beginner Specialization.
- No prior experience required.

### COURS 1

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

Session à venir : avr. 3 — mai 15.- Engagement
- 5 weeks of study, 7-10 hours/week

- Sous-titres
- English, Italian, Spanish, Chinese (Simplified)

### À propos du cours

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.### COURS 2

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

Session à venir : avr. 3 — mai 8.- Engagement
- 4 weeks of study, 7-10 hours/week

- Sous-titres
- English, Turkish, Chinese (Simplified)

### À propos du cours

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.### COURS 3

## Principles of Computing (Part 1)

Session à venir : avr. 3 — mai 15.- Engagement
- 4 weeks of study, 7-10 hours/week

- Sous-titres
- English

### À propos du cours

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.### COURS 4

## Principles of Computing (Part 2)

Session à venir : avr. 3 — mai 8.- Engagement
- 4 weeks of study, 7-10 hours/week

- Sous-titres
- English

### À propos du cours

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.### COURS 5

## Algorithmic Thinking (Part 1)

Session à venir : avr. 3 — mai 8.- Engagement
- 4 weeks of study, 7-10 hours/week

- Sous-titres
- English, Spanish

### À propos du cours

Les informaticiens expériementés analysent et résolvent les problèmes informatiques à un niveau abstrait qui est au delà de n'importe quel langage de programmation. Ce cours en deux parties batit sur les principles que vous avez appris dans le cours sur les principes de l'informatique et est fait pour former les étudiants dans les conceptes mathématiques et processus de la Pensée Algorithmique, permettant d'apporter simplement des solutions efficaces aux réels problèmes informatique. Dans la partie 1 du cours, nous avons étudié la notion de l'efficacité de l'algorithme et considérer son application à plusieurs problèmes de la théorie des graphiques. Etant la partie centrale de la formation, les étudiants vont implementer plusieurs importants graphiques algorithmique en Python et utiliser ces algorithmes pour analyser deux grands cas de données réelles. L'objectif de ces tâches est de comprendre l'interaction entre les algorithmes et la structure des données analysées par ces algorithmes. Les préréquies - Les étudiants devront être à l'aise pour écrire des programmes en Python de taille moyenne (300 lignes et +), et comprendre les bases de la recherches, du classement et de la récurence. Les étudiants devront avoir une solide base en math incluant l'algèbre et les calculs et être familier avec les concepts en math dans le cours sur les principes de l'informatique.### COURS 6

## Algorithmic Thinking (Part 2)

Session à venir : avr. 3 — mai 8.- Engagement
- 4 weeks of study, 7-10 hours/week

- Sous-titres
- English, Spanish

### À propos du cours

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.### COURS 7

## The Fundamentals of Computing Capstone Exam

Session à venir : mai 1 — mai 15.- Sous-titres
- English

### À propos du Projet 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.

## Créateurs

#### Luay Nakhleh

##### Associate Professor

#### Joe Warren

##### Professor

#### John Greiner

##### Lecturer

#### Scott Rixner

##### Professor

#### Stephen Wong

##### Lecturer

## FAQs

More questions? Visit the Learner Help Center.