MC102 - Computer Algorithms and Programming
Computing Institute (IC / Unicamp)Prof. Sandra Avila (sandra@ic.unicamp.br)
Important Notices:
- [03/07/2019] The notes of Race 2 and the race averages were released.
- [12/05/2019] The notes of Test 1 were released.
- [08 / 02 / 2019] The course will start on 27/02/2019.
Days, Hours and Rooms:
Class Type | Day of the week | Timetable | Sala |
---|---|---|---|
Theoretical (KLMN classes) | Wednesday | 14am – 16pm | CB04 |
Theoretical (KLMN classes) | Friday | 14am – 16pm | CB04 |
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 |
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/atendimento.html). The monitor (s) of the discipline are:
- Barbara Benato (PED)
- Eva Maia Malta (PED)
- Jonlenes Castro (PED)
- Lucas de Magalhaes Araújo (PED)
- Fernanda Garcia da Lavra (PAD)
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 | |
---|---|---|---|
27/02/2019 | Introduction and Development Plan | Class, What is an algorithm?, The first computer | |
01/03/2019 | Program structure, Variables, Objects and Assignment | Class, IPython Notebook | |
07/03/2019 | Python and the SuSy Auto Test and Submission Tool | Lab00 | |
08/03/2019 | Program structure, Variables, Objects and Assignment | Class, IPython Notebook | |
13/03/2019 | Relational, Logical Expressions and Conditional Commands | Class | |
15/03/2019 | Conditional Commands: elif | Class | |
15/03/2019 | Arithmetic with Integers | Lab01 | |
20/03/2019 | Repetitive Structures: while and for | Class, IPython Notebook | |
22/03/2019 | Repetitive Structures: Indicator and Counter Variable | Class, IPython Notebook | |
24/03/2019 | Late Payment | Lab02 | |
27/03/2019 | Exercises & Fitted Ties | Class | |
29/03/2019 | Exercises & Fitted Ties | Class, IPython Notebook | |
29/03/2019 | Exchange? | Lab03 | |
01/04/2019 | Triangle Sorter | Lab04 | |
03/04/2019 | Subscriber lists | Class, IPython Notebook | |
04/04/2019 | ENEM-Unicamp jobs | Lab05 | |
05/04/2019 | Strings | Class | |
10/04/2019 | I give you one, I give you two ... | Lab06 | |
10/04/2019 | Strings: Exercises & Examples | Class, IPython Notebook | |
12/04/2019 | Exercises | Class | |
17/04/2019 | Drawing with numbers | Lab07 | |
17/04/2019 | Review 1: Exam 1 | Class | |
24/04/2019 | Review 2: Exam 1 | Class | |
26/04/2019 | Exam 1 | Good test! | |
29/04/2019 | MC102 Approval Criteria | Lab08 | |
03/05/2019 | Tuples and Dictionaries | Class | |
06/05/2019 | Password Strength Meter | Lab09 | |
08/05/2019 | Tasks | Class, IPython Notebook | |
10/05/2019 | Tasks | Class | |
13/05/2019 | Binary Regions | Lab10 | |
17/05/2019 | Matrices | Class, IPython Notebook | |
20/05/2019 | My team can be champion !!! | Lab11 | |
24/05/2019 | Regular Expressions | Class | |
29/05/2019 | Ordering | Class | |
31/05/2019 | Sequential and Binary Search | Class | |
03/06/2019 | Error Checker for Sudoku | Lab12 | |
05/06/2019 | Archives | Class | |
07/06/2019 | Binary Files | Class | |
12/06/2019 | Recursion & QuickSort | Class, Class | |
17/06/2019 | Merge Sort | Class | |
19/06/2019 | Review: Proof 2 | Class | |
26/06/2019 | Exam 2 | ||
28/06/2019 | Correction of Exam 2 | Class |
Programming language: Python, version 3.
Evaluation criteria: The following elements will be taken into account: Conceptual Activities, Laboratory Tasks e Theoretical Evidence, being:
Conceptual Activities: These are activities designed to assess the degree of understanding presented by students of the concepts related to a particular topic (s) of the discipline in order to help them regulate their learning process. The grade assigned to each of these activities will be a grade for participation, made in proportion to the number of questions answered by the student, regardless of whether they are correct or not.
Multiple-choice questionnaires will be made available in the area to carry out the activities. MC102 - 1H2019 - Algorithms and Computer Programming of the Moodle system, accessible from the web address http://www.ggte.unicamp.br/eam.
During the semester, n Conceptual Activities, averaging $ {M} _ {AC} $.
Laboratory Tasks: Proposals will be m laboratory tasks, which should be implemented by the students individually. The developed programs will be tested with a predetermined test set, subdivided into open tests, which can be seen by the students and closed tests, which cannot be seen. The score for each laboratory will be proportional to the number of tests, open or closed, that they performed correctly. However, only programs designed to solve the problem proposed for a wide range of possibilities will be considered valid, and not those designed to issue the correct output for the subset of open tests.
Together with the statement of each laboratory task $ {L} _ {i} $, the weight of this task $ {PL} _i \ in \ {1,2,3,4,5 \} $ will be indicated. The laboratory average, $ M_ {L} $, is the weighted average of these m grades.
The management of the submission and testing of laboratory tasks is done with the aid of an automated system known as Susy (Submission and Testing System for Student Programs), and is accessible from the web address https://susy.ic.unicamp.br:9999/mc102.
Theoretical Evidence: There will be two theoretical tests, $ P_1 $ and $ P_2 $, on paper, individually and without any type of consultation on the following dates and with the following weights:
Try it now Weight : Data Timetable $ P_1 $ 2 26 / april 14-16h $ P_2 $ 3 26 / june 14-16h The average of theoretical tests, $ M_P $, is the weighted average of the tests $ P_1 $ and $ P_2 $ considering their respective weights.
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.
Rating criteria: The final average $ M_ {Final} $ and the student's situation will be defined according to the following rules.
- Case $ Freq ≥ 75% $:
- If $ M_P ≥ 5 $ and $ {M} _ {L} ≥ 5 $:
A weighted average of the evaluation elements will be calculated: $ {M} _ {Elem} = (0.6 * {M} _ {P}) + (0.3 * {M} _ {L}) + (0.1 * {M} _ { AC}) $.
The student will be approved by grade and frequency with $ {M} _ {Final} = max (5, {M} _ {Elem}) $. - If $ {M} _ {P} ≥ 2.5 $ and $ {M} _ {L} ≥ 2.5 $: the student will be entitled to take the exam Examination on July 12th from 14h – 16h. Your final average will be $ {M} _ {Final} = (min ({M} _ {P}, {M} _ {L}) + Exam) / 2 $. If the student has obtained $ {M} _ {Final} ≥ 5.0 $ she will be approved by grade and frequency, otherwise she will be disapproved by grade.
- If $ M_P <2.5 $ or $ M_L <2.5 $: the student will be disapproved for a grade with $ {M} _ {Final} = min ({M} _ {P}, {M } _ {L}) $.
- If $ M_P ≥ 5 $ and $ {M} _ {L} ≥ 5 $:
A weighted average of the evaluation elements will be calculated: $ {M} _ {Elem} = (0.6 * {M} _ {P}) + (0.3 * {M} _ {L}) + (0.1 * {M} _ { AC}) $.
- If $ Freq <75% $: the student will be disapproved by frequency with $ M_ {Final} = min ({M} _ {P}, {M} _ {L}) $.
Additional Information
- On proof days it will be necessary to present an official document with photo.
- There is no possibility of changing exam times and / or final exam.
- There will be no replacement of laboratory tasks.
- All tasks are individual.
- Any attempt at fraud will result in a note 0.0 (zero) in the discipline to todas the people involved.
- The automatic correction system has an efficient fraud detector. It is programmed to detect plagiarism between todas the answers (from todas the students and all students, among todas classes). Occurrence of fraud will imply note 0.0 (zero) in the discipline to todas the people involved.
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:
- How to Think Like a Computer Scientist: Interactive Edition
- Learning with Python: Interactive editing (using Python 3.x)
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).