MC102 - Computer Algorithms and Programming

Computing Institute (IC / Unicamp)
Prof. Sandra Avila (sandra@ic.unicamp.br)

 

Important Notices:

Days, Times and Location:

Location: All appointments will take place via Google Meet. The link will be sent by email.

Class Type Day of the week Timetable Location
Service with Profa. (GHI classes) Tuesday 10am – 12pm Google Meet
Service with Profa. (GHI classes) Thursday 10am – 12pm Google Meet
Service with Profa. & Monitors (class I) Wednesday 16am – 18pm Google Meet
Service with Profa. & Monitors (class G) Thursday 14am – 16pm Google Meet
Service with Profa. & Monitors (class H) Thursday 14am – 16pm Google Meet

Waiters This MC102 offer has the collaboration of several graduate students (PEDs) and undergraduate students (PADs) who act as monitors (s). See the general web page of the course (https://ic.unicamp.br/~mc102/atendimento.html). The monitor (s) of the discipline are:

Course Program: Basic concepts of computer organization. Construction of algorithms and their representation in pseudocode and high-level languages. Systematic development and program implementation. Structuring, debugging, testing and documentation of programs. Problem solving.

According to Resolution 34 of 2020, face-to-face activities are suspended until April 30. We will continue, as far as possible, with activities mediated by technology according to a new Discipline Development Plan.

See in Content exploration schedule what are the recommended topics and activities for each week. We strongly recommend the videos in the series Introduction to Computer Science with Prof. Python Fabio Kon from USP. You can also learn Python in a good-natured way with the videos from Socratic. Unfortunately, Socratica videos are only available in English.

Observation: Class in the Classroom Material, below, are the slides of the discipline MC102 offered in 2019.1.

Data Subject Lesson Material
05/03/2020 Introduction and Development Plan Class
What is an algorithm?, The future of your job, The first computer
CCSL-USP: What is Computer Science (12:24)
Learn Python with Socratica (1:04)
09/03/2020 Lab00: Hi, world! (Weight 1) Lab00
Python 3: Getting Started on Windows
10/03/2020 Program structure, Variables, Objects and Assignment Class
Exact Instructions Challenge: It's worth a try!
CCSL-USP: First lines in Python (7:34)
CCSL-USP: Python variables and scripts (programs) (10:33)
CCSL-USP: Values ​​and types in Python (10:33)
Socratica: Hello World in Python (2:47)
Socratica: Python Strings (3:24)
11/03/2020 Lab01: Arithmetic with integers (Weight 1) Lab01
12/03/2020 Program structure, Variables, Objects and Assignment Class
CCSL-USP: Data Entry (16:43)
CCSL-USP: Boolean types and operator precedence (14:41)
Socratica: Numbers in Python Version 3 (3:00)
Socratica: Arithmetic in Python V3 (4:40)
Socratica: Python Booleans (4:40)
17/03/2020 Class Canceled
19/03/2020 Class Canceled
23/03/2020 Lab02: Delays and renegotiation (Weight 1) Lab02
24/03/2020 Relational, Logical Expressions and Conditional Commands Class
CCSL-USP: Conditionals (13:53)
CCSL-USP: Exercise solved - Bhaskara (9:42)
26/03/2020 Conditional Commands: elif Class
Socratica: If, Then, Else in Python (6:53)
30/03/2020 Lab03: Is it COVID-19? (Weight 1) Lab03
31/03/2020 Repeating Commands: while and for Class
CCSL-USP: Repeats (loops) with while (20:12)
02/04/2020 Repetitive Commands: Indicator and Counter Variables Class
CCSL-USP: Passage indicators (17:22)
06/04/2020 Lab04: Triangle classifier (Weight 1) Lab04
07/04/2020 Tasks Class
Incredible Bugs
CCSL-USP: Functions (17:07)
Socratica: Python Functions (9:27)
09/04/2020 Holiday
13/04/2020 Lab05: Donate blood, donate life! In times of pandemic… (Weight 2) Lab05
14/04/2020 Repeating Commands: while and for CCSL-USP: Embedded repetitions (11:10)
Exercises & Fitted Ties
Exercises & Fitted Ties
16/04/2020 Repetitive Lists & Commands Class
CCSL-USP: Collections (20:14)
CCSL-USP: Repeats with for (15:30)
20/04/2020 Lab06: Snail race (Weight 2) Lab06
21/04/2020 Holiday
22/04/2020 Lab07: Drawing polygons (Weight 3) Lab07
23/04/2020 Subscriber lists Class (up to slide 48)
CCSL-USP: Manipulation of lists (25:04)
Socratica: Python Lists (5:44)
More about lists
28/04/2020 Strings Class (from slide 49)
Strings: Exercises & Examples
CCSL-USP: Strings (15:53)
CCSL-USP: Comparison of Strings (8:36)
30/04/2020 Tuples & Dictionaries Class
Socratica: Python Tuples (7:44)
Socratica: Python Dictionaries (6:09)
More about tuples
More about dictionaries
04/05/2020 Lab08: #ilovepython ;-) (Weight 3) Lab08
05/05/2020 Review for Exam 1 Class
Class
07-09/05/2020 Exam 1
11/05/2020 Lab09: MC102 Approval Criterion (Weight 3) Lab09
12/05/2020 Tasks Class
Class
Incredible Bugs
CCSL-USP: Functions (17:07)
Socratica: Python Functions (9:27)
14/05/2020 Multidimensional Objects Class
CCSL-USP: Matrix manipulation (sum) (09:41)
CCSL-USP: Exercise solved (matrix multiplication) (11:10)
18/05/2020 Lab10: Game of Life (Weight 3) Lab10
19/05/2020 Sorting Algorithms (Selection, Bubble, Insert) Class
CCSL-USP: Direct Selection (11:37)
CCSL-USP: Bubble Sorting Algorithm (8:29)
21/05/2020 Sorting Algorithms (Selection, Bubble, Insert) Class
CCSL-USP: Direct Selection (11:37)
CCSL-USP: Bubble Sorting Algorithm (8:29)
26/05/2020 Holiday
28/05/2020 Search Algorithms Class
CCSL-USP: Sequential search (12:08)
CCSL-USP: Binary search (12:57)
01/06/2020 Lab11: Friends in common (Weight 4) Lab11
08/06/2020 Lab12: Bubble Sort (Weight 2) Lab12
08/06/2020 Lab13: Binary Search (Weight 2) Lab13
09/06/2020 Recursion Class
CCSL-USP: Recursion - Part 1 (11:57)
11/06/2020 Recursion Class
Socratica: Fibonacci Sequence, Recursion and Memoization (8:00)
16/06/2020 Lab14: ASCII ART and Recursion (Extra) Lab13
16/06/2020 Quick Sort & Merge Sort Class
Class
CCSL-USP: Recursion - Part 2 (25:53)
18/06/2020 Files (Optional) Class
Class
Socratica: CSV Files in Python (9:32)
23/06/2020 Review for Exam 2 Class
30/06/2020 Review for Exam 2 Class
01-04/07/2020 Exam 2
13-15/07/2020 Examination

Programming language: Python, version 3.

Evaluation criteria: The following elements will be taken into account: Laboratory Tasks e Theoretical Evidence, being:

Rating criteria: The final average $ M_ {Final} $ and the student's situation will be defined according to the following rules.

Additional Information

References: There are many texts about Python programming. This semester we will use as a main reference the book "How to Think Like a Computer Scientist: Interactive Edition" by Brad Miller and David Ranum, available in English and Portuguese, as described below:

If you are interested in another text, check if the version of Python used is 3. If not, be aware (o) of the details that vary from one version to another.

Additionally, we recommend the material available on the official Python language pages: python.org ou www.python.org.br (in Portuguese).