MC102 - Computer Algorithms and Programming

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

 

Important Notices:

Days, Hours and Rooms:

Class Type Day of the week Timetable Sala
Theoretical (KLMN classes) Wednesday 14am – 16pm CB06
Theoretical (KLMN classes) Friday 14am – 16pm CB05
Laboratory (class K) Away 14am – 16pm SI03
Laboratory (class L) Away 14am – 16pm SI05
Laboratory (class M) Away 16am – 18pm SI03
Laboratory (class N) Away 16am – 18pm SI08

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.

Data Subject Lesson Material
28/02/2018 Introduction and Development Plan Aula01, The first computer
02/03/2018 Program structure, Variables, Objects and Assignment Aula02, IPython Notebook
05/03/2018 Python and the SuSy Auto Test and Submission Tool Lab00
07/03/2018 Writing, Reading, Arithmetic Expressions, Type Conversion Aula03, IPython Notebook
09/03/2018 Relational, Logical Expressions and Conditional Commands Aula04
12/03/2018 Mini-machine Lab01
14/03/2018 Conditional Commands: elif Aula05
16/03/2018 Repeating Commands: while and for, break and continue Aula06, IPython Notebook
19/03/2018 Mini-calculator Lab02
21/03/2018 Repetitive Commands: Exercises Aula07, IPython Notebook
23/03/2018 Repetitive Commands: Indicator Variable, Count Variable Aula08, IPython Notebook
26/03/2018 Triangle Sorter Lab03
28/03/2018 Repetitive Commands: Embedded Ties Aula09
02/04/2018 Simple Geometric Shapes Lab04
04/04/2018 Subscriber lists Aula10, IPython Notebook
06/04/2018 Strings Aula11, IPython Notebook
09/04/2018 Slug Race Lab05
11/04/2018 Strings & Lists: Exercises Aula12
13/04/2018 Review for Exam 1: Exercises Aula13
18/04/2018 Review for Exam 1: Exercises Aula14
20/04/2018 Exam 1
23/04/2018 Detectives and Assassins Lab06
25/04/2018 Tuples and Dictionaries Aula15
02/05/2018 Introduction to Functions Aula16, IPython Notebook
04/05/2018 Tasks Aula17, Incredible bugs
07/05/2018 MC102 Approval Criteria Lab07
09/05/2018 Correction of Exam 1 Aula18
11/05/2018 Multidimensional Arrays and Vectors Aula19, IPython Notebook
14/05/2018 Hunting words Lab08
16/05/2018 Regular Expressions (Celso Brennand) Aula20
18/05/2018 Sorting Algorithms Aula21, IPython Notebook
21/05/2018 Game of life Lab09
23/05/2018 Sequential and Binary Search Aula22, Labs 06 & 07
06/06/2018 Text Files Aula23, Examples
08/06/2018 Binary Files, Recursive Functions Aula24-1, Aula24-2, Examples
11/06/2018 Sorting Algorithms Lab10
13/06/2018 Sorting Algorithms: Quick Sort & Merge Sort Aula25, IPython Notebook
15/06/2018 Review for Exam 2 Aula26
20/06/2018 Exam 2
22/06/2018 Correction of Exam 2 Aula27

Programming language: Python, version 3.

Waiters This MC102 offer has the collaboration of several graduate students (PEDs) and undergraduate students (PADs) who act as monitors (s). In addition to the attendance during the laboratory classes, there will be shifts for in-person doubts and extra review classes at times and rooms that will be posted on the discipline's general web page. (https://ic.unicamp.br/~mc102). The course monitors are:

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

Minimum Frequency: According to the General Graduation Regulations, students must have their attendance to classes controlled and attendance Freq must be greater than or equal to 75% for approval.

Final result: Let $ M_ {Elem} $ be the weighted average of the elements of the evaluation following the formula:

$$ M_ {Elem} = (0.6 * M_P) + (0.3 * M_L) + (0.1 * M_ {AC}) $$

and $ M = min (M_ {Elem}, M_P, M_L) $ the average without exam. The final average F and the student's situation will be defined according to the rules below.

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).