Skip to content

⚡ Programming exercises and techniques developed in my first year in Computer Science

Notifications You must be signed in to change notification settings

robotenique/basicProgramming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

basicProgramming

Repository where I commit the EP's (Programming Exercises) I made in my first year in the Computer Science course. Sometimes I add some random exercises in different programming languages... Feel free to check them out.

  • MAC0110 - Introduction to Computing Brief history of computing. Algorithms: characterization, notation, basic structures. Computers: basic units, instructions, stored program, addressing, programs in machine language. Concepts of algorithmic languages: expressions; Sequential, selective, and repetitive commands; entrance exit; Structured variables; Functions. Development and documentation of programs. Examples of non-numeric processing. Extensive program programming and debugging practice.

  • MAC0121 - Algorithms and Data Structures I Informal notions of proof of correctness and evaluation of performance of algorithms. Notions of abstract data types. Arrays. Strings. Dynamic memory allocation and array resizing. Pointers. Linked lists. Non-linear linked structures. Binary trees. Stacks and queues (implemented with arrays an linked lists). Applications. Priority queues (implemented with heaps). Applications. Recursion. Applications. Elementary sorting algorithms. Quicksort. Mergesort. Heapsort. Radixsort. Indirect sorting (pointer sorting). Elementary text processing. Applications. Elementary symbol tables: implementations based on arrays, linked lists, binary search, and binary search trees. Applications. The applications may involve various composite data structures (such as arrays of linked lists) and various algorithmic strategies (greedy, divide-and-conquer, dynamic programming, backtracking, breadth-first-search, etc.).

  • MAC0216 - Programming Techniques I Basic concepts of computer architecture. Assembly language and assemblers, object code binding, interface with hardware and with high level languages. Interaction with the operating system at the shell level: streams, standard input and output, redirection and pipes. Shell scripts. Management of compilation of programs and libraries with tools like make. Modularization of code. Module connection, static and dynamic. Construction of libraries. Debugging techniques and program testing. Construction of a system in a procedural language (eg, C). Study a dynamic scripting language (eg Python or Ruby). Introduction to the concepts of object orientation in the context of dynamic languages.