MC102 - Computer Algorithms and Programming
Computing Institute (IC / Unicamp)Prof. Sandra Avila (sandra@ic.unicamp.br)
Important Notices:
- [18/07/2018] The Exam grades and final grade have been released.
- [26/06/2018] The Exam 2 notes and weighted average of the evidence was released.
- [10/06/2018] The MC102 labs were again held in the SI rooms.
- [09/05/2018] The Exam 1 notes have been released.
- [18/03/2018] The area MC102 - 1H2018 is open in Moodle.
- [18/03/2018] All face-to-face assistance will be in room SI-05. Look here the schedules.
- [23/02/2018] The course will start on 28/02/2018. We will not have a laboratory on 26/02/2018.
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:
- Celso Augusto RL Brennand (PED, PhD)
- Alceu Emanuel Bissoto (PED, Master)
- Matheus Martins Susin (PED, Master)
- Renato Noronha Máximo (PAD, Graduation)
- William Ryuji Massuda (PAD, Graduation)
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. In order to effectively fulfill their role, these activities must be carried out individually and without any type of consultation. Conceptual activities can be applied throughout the semester in two ways:
- Online Surveys: multiple choice questionnaires will be made available in the system Moodle in the area [MC102 - 1H2018 - Algorithms and Computer Programming].
- Face-to-face tasks: activities will also be made available via Moodle in a specific area of ​​the student's class and carried out, under supervision, during some laboratory classes. The dates of these activities will be posted on the course's general web page (https://ic.unicamp.br/~mc102) at least two weeks in advance.
During the semester, n Conceptual Activities. The grade assigned to each of these activities $ {AC} _ {i} $ will be made in proportion to the number of questions answered by the student. Online Questionnaires will be weighted 1 and Face-to-face Tasks will be weighted 3. The average of Conceptual Activities, $ {M} _ {AC} $, is the weighted average of n Conceptual Activity notes respecting their respective weights.
Laboratory Tasks: We will have m laboratory tasks, in which the students must implement problems proposed individually. The management of the submission and testing of laboratory tasks will be done by an automated system known as Susy.
The submitted 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. Together with the statement of each laboratory task $ L_i $, the weight of this task $ {LP} _i \ in \ {1,2,3 \} $, the specific rules for its implementation and the formula that will indicate the note of valid solutions depending on the number of open or closed tests that returned correct results. The laboratory average, $ M_ {L} $, is the weighted average of the m $ L_i $ lab notes respecting their $ LP_i $ weights.
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 20 / april 14-16h $ P_2 $ 3 20 / 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.
Final result: Let $ M_ {Elem} $ be the weighted average of the elements of the evaluation following the formula:
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.
- Case Frequency 75%:
- Case M≥ 5: the student will be approved by grade and frequency with F = $ M_ {Elem} $.
- Case 2.5 ≤ M 5.0: the student will have the right to take the exam E on the 13th of July from 14h – 16h. Your final average will be F = (M + E) / 2. If the student has obtained F ≥ 5.0 will be approved by grade and frequency, otherwise it will be disapproved by grade.
- Case M 2.5: the student will be disapproved by grade with F = M.
- Case Freq 75%: the student will be disapproved by frequency with F = M.
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).