This is the repository for the Algorithms and Data Structures II course, offered by the Department of Computer Engineering and Automation (DCA) of the Technology Center (CT) at the Federal University of Rio Grande do Norte (UFRN).
The DCA aims to train professionals capable of designing and developing computer systems for industrial automation, embedded systems, software systems, distributed systems, computer networks, and information systems. The CT offers undergraduate and graduate courses in Engineering. This course is part of the curriculum of the Computer Engineering program at DCA/UFRN.
- 📚 Newman, Mark. Networks
- 📚 Menczer, Filippo; Fortunato, Santo; Davis, Clayton A. A First Course in Network Science
- 📚 Zinoviev, Dmitry. Complex Network Analysis in Python
- 📚 Coscia, Michele. The Atlas for the Aspiring Network Scientist
Tool | Link |
---|---|
😃 Networkx | networkx.org |
💡 Graph-Tool | graph-tool.skewed.de |
⚙️ Gephi | gephi.org |
🚀 OSMnx | github.com/gboeing/osmnx |
💣 ChatGPT | chat.openai.com |
Week 01
- Course Outline: Provides an overview of the course structure and topics covered.
- Git and Version Control: Covers the basics of using Git and Github for version control and collaboration.
- 👊 Skills you'll gain: Organizing your code using version control, resolving conflicts in version control, collaborating with others using Git and Github.
- ⏳ Estimated time: 5 hours
- Python for Data Engineering: Fundamentals Part I: You will be introduced to the basics of programming with Python.
- 👊 Skills you'll gain: Processing numerical and text data, creating variables and lists, analyzing data using for loops, writing conditional statements and using comparison operators.
- ⏳ Estimated time: 6 hours
Week 02:
- Data Structure Preliminaries: Dictionaries, Functions and OOP.
- Python for Data Engineering: Fundamentals Part II
- 👊 Skills you'll gain: You will refine your fundamental Python knowledge for data engineering. The course will introduce you to basic Python concepts such as dictionaries, functions, and default arguments. You will also build proficiency in the use of Jupyter Notebook and gain practical experience applying your newly acquired data skills in a data project that you can showcase in your portfolio.
- ⏳ Estimated time: 8h
- Object Oriented Programming (OOP) introduction
- 👊 Skills you'll gain: You’ll also explore object-oriented programming (OOP) and how it powers Python
- ⏳ Estimated time: 3h
Week 03:
- Data Structure Preliminaries: linked lists, queues and stacks.
- 👊 Skills you'll gain: An exploration of linked lists and the benefits of using linked nodes when creating data structures. Subsequently, you will acquire knowledge on the subject of queues, which are based on the FIFO data structure (first in, first out), and the FCFS process scheduling algorithm (first come, first serve). Further to this, you will gain an understanding of stacks, based on the LIFO (last in, first out) data structure, as well as the LCFS process scheduling algorithm (last come, first serve).
- ⏳ Estimated time: 6h
- Suggested courses
- Code interview challenge and co-creation using Large Language Model (LLM) and ChatGPT.