Requirements for Computer Systems Engineering Courses

1st cycle, 1st year

Information Systems
requirements: it is required a basic background on Computer Science or in the Management area. Other majors will face trouble on putting into context the class contents.

Applied Electronics
requirements: it is required knowledge about mathematics concepts, given in “Mathematics I”, such as solving linear equations systems with matrices, differential equations, complex numbers; it is also required knowledge about physics concepts related to electromagnetism, including electric and magnetic field equations. Other majors won’t be able to understand the class contents.

– Systems Analysis
requirements: it is required having succeeded at “Information Systems” (1st cycle, 1st year), and it is required good knowledge about Information Systems Fundamental Concepts.

Mathematics II
requirements: it is required knowledge about mathematics concepts, given in “Mathematics I”, including solving linear equations systems with matrices, differential equations, integration.

1st cycle, 2nd year

Digital Systems
requirements: it is required having succeeded at “Applied Electronics” (1st cycle, 1st year), and it is also required good knowledge about electronic circuits analysis methods, as well as practical electronics skills to be used in laboratory sessions. The lack of these concepts will render it very hard to understand the class contents.

Computer Architecture
requirements: it is required having succeeded at “Applied Electronics” (1st cycle, 1st year), it is also required having succeeded at “Introduction to Algorithms and Programming” (1st cycle, 1st year) and it is required knowledge of fundamental data structures and algorithms gained in “Algorithmics and Data Structures I” (1st cycle, 2nd year).

Algorithms and Data Structures I
requirements: it is required having succeeded at “Introduction to Algorithms and Programming” (1st cycle, 1st year) and it is required knowledge of fundamental data structures and algorithms gained in “Algorithmics and Data Structures I” (1st cycle, 2nd year).

Programming Languages I
requirements: it is required having succeeded at “Introduction to Algorithms and Programming” (1st cycle, 1st year) and it is required knowledge of fundamental data structures and algorithms gained in “Algorithmics and Data Structures I” (1st cycle, 2nd year).

Algorithms and Data Structures II
requirements: it is required having succeeded at “Introduction to Algorithms and Programming” (1st cycle, 1st year) and it is required knowledge of fundamental data structures and algorithms gained in “Algorithms and Data Structures I” (1st cycle, 2nd year).

Programming Languages II
requirements: it is required having succeeded at “Programming languages I” (1st cycle, 2nd year) and it is required good knowledge about essential programming skills in C.

Operating Systems
requirements: it is required having succeeded at “Programming languages I” (1st cycle, 2nd year) and it is required profound knowledge about advanced programming skills in C.

Hardware and Sensors
requirements: it is required having succeeded at “Computer Architecture” (1st cycle, 2nd year); it is required having succeeded at “Digital Systems” (1st cycle, 2nd year); it is required having succeeded at “Programming Languages I” (1st cycle, 2nd year) and it is required good knowledge about essential programming skills in C.

1st cycle, 3rd year

Databases
requirements: it is required advanced working knowledge of programming languages such as Java, and data structures such as binary trees; it is also required basic knowledge of HTML and HTTP.

Multimedia I
requirements: it is required good working knowledge of programming languages such as C, Java or JavaScript and HTML.

Laboratory of Programming
requirements: it is required having succeeded at “Introduction to Algorithms and Programming” (1st cycle, 1st year) and it is required knowledge of advanced data structures and algorithms in C and Java, gained in both “Programming Languages I” (1st cycle, 2nd year) and Programming Languages II (1st cycle, 2nd year).

Software Engineering
requirements: it is required having succeeded at “Introduction to Algorithms and Programming” (1st cycle, 1st year) and it is required knowledge of fundamental data structures and algorithms in C.

Multimedia II
requirements: it is required having succeeded at “Multimedia I” (1st cycle, 3rd year), and it is required advanced working knowledge of programming languages such as C, Java or JavaScript and HTML.

Computer Networks II
requirements: it is required good working knowledge of programming languages such as C.

– Distributed Systems
requirements: it is required knowledge of object-oriented concepts and advanced Java programming skills.

– Integrated Project Laboratory
requirements: it is required having succeeded at most other curricular units such as “System Analysis”; “Programming Languages I”; “Programming Languages II”; “Databases”; “Computer Networks I”; “Multimedia I”; “Software Engineering”; and overall knowledge of object-oriented concepts and advanced Java programming skills, as well as web programming skills including JavaScript and HTML.


2nd Cycle, 1st year

Advanced Database
requirements: it is required having succeeded at “Databases” (1st cycle, 3rd year), and it is required good working knowledge of object-oriented programming languages such as Java or C#.

Security and Computer Audit
requirements: it is required knowledge of operating systems, application software construction, and networking and wireless concepts.

Human Computer Interaction
requirements: a background on Computer Science is required as this course relies on important concepts of software design.

2nd Cycle, 1st year

Mobile Applications Programming
requirements: it is required working knowledge of object-oriented concepts, and advanced Java and C# programming skills


For further information please contact Prof. Nuno M. Ribeiro (nribeiro@ufp.edu.pt)