Propostas Submetidas

DEI - FCTUC
Gerado a 2024-07-16 10:41:39 (Europe/Lisbon).
Voltar

Titulo Estágio

Visualizing C Pointers and Data Structures

Local do Estágio

DEI

Enquadramento

The C language, developed by Dennis Ritchie in the early 1970s at Bell Labs, is a widely used general-purpose language known for its imperative nature, support for structured programming, lexical variable scope, recursion, and static type system. C's popularity is due to its speed and small memory footprint, making it a top choice for performance-critical applications and system-level programming.
C, however, is notorious for its use of pointers, which can make it challenging for students to grasp the language fully. Pointers require explicit memory management and can introduce security vulnerabilities if not handled properly.
The difficulty in learning C often stems from the concept and usage of pointers and data structures. Many students struggle to understand the order of operations on data structures and how to translate these operations into C source code effectively. As a result, learning C can be frustrating and time-consuming.

Objetivo

The main objective of this internship is to develop a user-friendly and interactive website that facilitates students' understanding of C pointers. This platform will focus initially on linked lists, providing multiple variants that students can explore. The site should offer multiple linked list variants (e.g., singly linked list, doubly linked list) for students to experiment with and compare. The intern should develop a mapping system that shows the correspondence between C source code and memory data structures (initially restricted to linked lists). Students should be able to visualize how their C instructions translate to changes in the data structures and vice-versa. By visualizing data structures and providing real-time feedback on their C instructions, this web platform should foster a deeper understanding of pointers and data structures, making the learning journey more productive and enjoyable.

Plano de Trabalhos - Semestre 1

- Perform a state-of-the-art review (1 month).
- Define system requirements and architecture (1 month).
- Select and gain knowledge of the tools required for the solution (1 month).
- Start development (1 month).
- Write an intermediate report (1 month).

Plano de Trabalhos - Semestre 2

- Continue implementation by adding more data structures (3 months).
- Perform usability tests (1 month).
- Refine the solution (1 month).
- Write the final report (1 month).

Condições

Observações

Co-supervised by Prof. Filipe Araújo.

Orientador

Maria José Marcelino
zemar@dei.uc.pt 📩