MC102 - Computer Algorithms and Programming
Coordinated Classes - First Semester of 2024
Content of this page
Important Notices
- [24/01/2024] Disclosed the course calendar.
Classes and Teachers
- Classes 4567:
- Professor Roberto Massi de Oliveira
- Email: roberto.massi@ic.unicamp.br
- ABC classes:
- Teacher Aurea Rossy Soriano Vargas
- Email: aurea.soriano@ic.unicamp.br
- EF classes:
- Professor Julio Cesar Lopez Hernandez
- Email: jlopez@ic.unicamp.br
- GHI classes:
- Professor Oscar Jaime CiceriCoral
- Email: o164786@dac.unicamp.br
- MN Classes:
- Professor Eryck Pedro da Silva
- Email: e264966@dac.unicamp.br
- OVXZ Classes:
- Professor Richard Dahab
- Email: rdahab@ic.unicamp.br
Remarks:
- Every message sent to teachers must contain the text “[MC102]” at the beginning of the subject followed by the reason for the message.
Example: [MC102] Problem with the Submission System - Contact by email should only be used in exceptional cases.
- For email contacts, always use academic emails (@ dac.unicamp.br) and identify yourself correctly (full name, class and AR).
- Emails that do not strictly follow the above rules will not be answered.
- Questions regarding the content of classes or practical activities will not be answered by email. In such cases, consult the Online Duty of Doubts.
Courseware
Recommended teaching materials:
- Introductory Class [ slides] [ video]
- First Lab Class [ slides] [ video]
- Basic Python: Types, Variables, Operators, Input and Output [ slides] [ video]
- Conditional Commands [ slides] [ video]
- Repeat Commands [ slides] [ video]
- Lists and Tuples [ slides] [ video]
- Strings [ slides] [ video]
- Dictionaries [ slides] [ video]
- Functions [ slides] [ video]
- Multidimensional Objects [ slides] [ video]
- Sort Algorithms [ slides] [ video]
- Search Algorithms [ slides] [ video]
- recursion [ slides] [ video]
- Recursive Sort Algorithms [ slides] [ video]
- Files [ slides] [ video] (extra)
- Regular Expressions [ slides] [ video] (extra)
- Running Tests in Google Cloud Shell [ slides] [ video] (extra)
- numpy [ slides] [ video] (extra)
- pandas [ slides] [ video] (extra)
Complementary teaching materials:
- Panda - Python Computing Courses (IME -USP):
- MC102 Teaching Material (Marcio Pereira)
Video classes:
- Introduction to Computer Science with Python - Fabio Kon (in Portuguese)
- Python Programming Tutorials - Socratica (In English)
Exercise Lists
- First List - Types, Variables, Mathematical Operations and Conditional Commands
- Second List - Repeat Commands
- Third List - List and Tuples
- Fourth List - Strings
- Fifth List - Functions
- Sixth List - Recursion
Practical Activities
- Practical activities will be made available on the Susy.
Recommended Sites
The websites listed below provide additional information to the topics covered in class:
- MC102 - Computer Algorithms and Programming:
- Python programming:
- Python Integrated Development Environments (IDE):
- Wikipedia (in Portuguese):
- Programming Competitions:
Downloads
- Reference Cards:
- Games (Programming Games):
- Post-Bot ( iPad)
- RoboLogic 2 HD - Lite ( iPad)
- Light Bot ( iPhone / iPad / Android)
- hopscotch ( iPhone / iPad)
- Swift Playgrounds ( iPad)
Discipline Menu
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.
Discipline Program
- Basic Concepts of Computer Organization
- Basic Concepts about Algorithms and Programming
- Data Input and Output
- Arithmetic, Logical and Relational Expressions
- Conditional Commands
- Repeat Commands
- Lists, Tuples, Dictionaries, Strings and Arrays
- Functions and Scope of Variables
- Sorting Algorithms
- Search Algorithms
- Recursion
- Recursive Sorting Algorithms
- Files (extra)
- Regular Expressions (extra)
Assessment
The evaluation will be carried out through practical tasks, that is, Python programs that should be implemented and submitted for automatic correction through the Susy.
Proposals will be n practical tasks, which should be performed by students. The developed programs will be tested with a predetermined set of tests, subdivided into open tests (which can be accessed by students) and closed tests (which cannot). The score for each practical activity will be proportional to the number of tests, open or closed, that they perform correctly.
Together with the statement of each practical task, the weight Pi ∈ {1, 2, 3, 4, 5} that task. The average of practical tasks (P) will be the weighted average of the task scores.
The final average F and the situation of each student will be defined according to the following rules.
- Case P ≥ 5:
The student will pass with a final average (F):
F = P
- Case 2,5 ≤ P <5:
The student can take the exam. The exam will consist of a subset of the practical tasks made available throughout the semester. The student can redo the tasks indicated during the exam period or take advantage of the programs previously submitted in those tasks (without having to redo the task).
The exam score (E) will be calculated as the weighted average of the tasks selected to compose the exam. The weights of tasks for the purpose of the exam may differ from those previously used to calculate the average of practical tasks (P). The calculation of the final average (F) will be done as follows:
F = min{5, (P + E)/2}
Case F ≥ 5.0 the student will be approved. Otherwise, you will be disapproved.
- Case P <2,5:
The student will fail, with a final average (F):
F = P
Remarks:
-
There will be no substitute practical activities.
-
The practical tasks will be available on Monday mornings and will be available for a minimum of one week and a maximum of three weeks (always until Sunday night). It is recommended that all tasks be performed in the first week they are made available, as every week a new task will be made available.
-
Any attempt at plagiarism or fraud in practical activities will result in a final grade F = 0 (zero) for all involved, without prejudice to other sanctions. Examples of plagiarism and fraud:
- Sharing, copying, or purchasing programs.
- Submission of a program that produces the expected outputs in open tests based on the comparison of parts of the input, without actually implementing the algorithms requested in the practical tasks.
- Submission of a program that does not follow the conditions explicitly indicated in the task statement (for example, submission of a valid recursive function that solves the problem).
-
Cases of attempted plagiarism or fraud in practical tasks can be automatically detected among all submissions (from all students, from all classes) throughout the semester.
-
All cases of attempted plagiarism or fraud automatically detected will be manually verified by the discipline coordination by the end of the semester.
-
The practical activity notes will be published on the discipline website up to a maximum of one week after the deadline for submission of tasks.
-
According to the formula above, if a student is approved after taking the final exam, his / her final grade will be F = 5 (five).
Important dates
-
Course calendar: see the dates of the practical activities and the topics covered each week of class.
-
DAC official calendar: see dates without didactic activities at Unicamp, in addition to other important dates such as the period of change and withdrawal of subjects.
-
Exam: as indicated in course calendar, the laboratories corresponding to the exam will be available for submission from 10/16 to 07/2024/XNUMX.