The goal of CSE201 is to introduce

students to the C++ programming language,

and the object-based view of

software design. C++ is one of the most

widely-used programming languages

in the world, especially for system-level

programming. Much of its power derives

from its use of objects, packets of data

and functionality that model things and

concepts in the real world.

The goal of CSE 201 is to introduce students to the C++ programming language, and the object-based view of software design. C++ is one of the most widely-used programming languages in the world, especially for system-level programming. Much of its power derives from its use of objects, packets of data and functionality that model things and concepts in the real world.

- Teaching coordinator: Marchand Bertrand
- Teaching coordinator: Mishra Abhishek Kumar
- Teaching coordinator: Mover Sergio
- Teaching coordinator: Séré Antoine
- Teaching coordinator: Will Sebastian

Prerequisite: CSE103

Algorithms are at the heart of all computation.

Building on the algorithms

the introduced in CSE103, this course

provides a solid foundation in modern

algorithmics. Students develop a deeper

knowledge of the fundamental algorithms,

an understanding of how they

work, and an appreciation of how to

implement them efficiently. They also

learn how to reduce other problems related

to these fundamentals.

Algorithms are at the heart of all computation. Building on the algorithms the introduced in CS112, this course provides a solid foundation in modern algorithmics. Students develop a deeper knowledge of the fundamental algorithms, an understanding of how they work, and an appreciation of how to implement them efficiently. They also learn how to reduce other problems related to these fundamentals.

- Teaching coordinator: Bliudze Simon
- Teaching coordinator: Enea Constantin
- Teaching coordinator: Krejca Martin
- Teaching coordinator: Lavignotte Antoine

Logic and Proofs (CSE203) is an introduction

to logic, a science that deals with

the principles of validity of demonstration.

Its goal is to familiarize students

with formal methods for representing

arguments and reasoning about them.

This encompasses propositional calculus,

first-order logic, and deduction systems,

as well as the related technologies (e.g.

automated provers, proof assistants) for

building mechanized proofs. No prior

knowledge in logic is required.

Logic and Proofs (CSE 203) is an introduction to logic, a science that deals with the principles of validity of demonstration. Its goal is to familiarize students with formal methods for representing arguments and reasoning about them. This encompasses propositional calculus, first-order logic, and deduction systems, as well as the related technologies (e.g. automated provers, proof assistants) for building mechanized proofs. No prior knowledge in logic is required

- Teaching coordinator: Strub Pierre-Yves
- Teaching coordinator: Werner Benjamin

During this course, your teaching staff will be accompanying you in discovering how to conceive, and construct, “networked systems”.

That implies, of course, discovering how the net works (pun intended), what a protocol is, what a system is, and what the different acronyms that you might encounter really means: TCP/IP, SMTP, NAT, NATP, etc. It also implies writing programs which communicate over the Internet — who knows, maybe you will be getting the impulse to starting the next Google or FaceBook during this course?

This course will consist of 2 parallel activities, through which your teaching staff (which you can see to the right) will accompany you:

- Basic lectures, which introduce key technological concepts for conceiving network systems
- Lab Exercises, which will take you "from neophyte" to a competent networker, and which will teach you how to write communicating programs, and have them talk to each other across the Internet.

Lectures and lab exercises will (typically) alternate ; homework will be an ongoing activity for you during the course - and, unsurprisingly, the final exam will be the final activity at the very end of the course.

- Lectures serve to provide an abstract "programmers overview of computer network principles and architectures", and will cover topics such as:
- How does the Net Work?
- Network Programming
- Network Configuration
- Components of a Computer Network
- The Domain Name System
- NAT, NAPT, ...
- ...
- Lab Exercise Sessionsserves to give you practical experiences in computer networking - in particular, but not exclusively, in how to write programs that communicate over the network. Each lab exercise session will happen in a computer room, and will be structured as follows:
- Quizzes are (graded) events, during the first 15 min of each lab exercise session, and will cover the material covered in lectures(s) since the previous lab exercise session. These quizzes serve to give you both a motivation for revising the material from previous lectures, as well as to allow you to gauge your level of understanding well in advance of the final exam.
- Hands-on networking, which will have you either work on a tutorial, or an assignment.
- Tutorials serve to help you acquire a certain set of skills, in a very guided step-by-step fashion. This may be, for example, how to write a program that communicates over the network, or how to set up a small computer network.
- Assignments are (graded) more independent and less guided activities, where you will be told what the end-result of your work should be, but not be given a step-by-step tutorial to follow. While you will be working independently, of course your teachers will be present to help you in your design, and implementation, of a communicating system. Assignments will be graded.
- Homework is what you do between lab exercise sessions - and what we expect you to do is to study the material from the lectures and to finish the assignments, that have been given as part of the lab exercise sessions. This serves to ensure that you get a chance to encounter all possible "difficulties" in a setting, where you will have a chance to (at the next lab exercise session) discuss them with your teachers, and resolve them with their help, before handing in your assignment for grading.
- The Final Examis, in part, a way to evaluate what you have retained from the course, and to give you a final grade. However more significantly, it is also there to aid your revising of the course material, and thus to reinforce your learning process. The final exam will be a multiple-choice questionnaire, and will - in a nutshell - be a longer version of the quizzes that you have seen during the lab exercise sessions. Thus, if you've prepared continuously for the weekly quizzes, if you've done well in those, and you review the course material diligently, then you should be well prepared also for the final exam.

__Evaluation:__

Your final grade for this course will be made up from three components:

- Final exam (50% of your final grade)
- 20 multiple-choice questionnaire "on computer"
- Covering the entire course syllabus
- Graded /20
- Weekly quizzes (25% of your final grade)
- Max 15 min (timed) at the very start of each lab exercise session
- On the subjects treated in the lectures since the last lab exercise session.
- Combined grade /20
- Graded Assignments (25% of your final grade)
- Homework == Extended versions of your work done during the lab exercise sessions
- For each assignment, you will demonstrate your code to a teacher + submit
- Combined grade /20

__Language:__

English

During this course, your teaching staff will be accompanying you in discovering how to conceive, and construct, “networked systems”.

That implies, of course, discovering how the net works (pun intended), what a protocol is, what a system is, and what the different acronyms that you might encounter really means: TCP/IP, SMTP, NAT, NATP, etc. It also implies writing programs which communicate over the Internet — who knows, maybe you will be getting the impulse to starting the next Google or FaceBook during this course?

This course will consist of 2 parallel activities, through which your teaching staff (which you can see to the right) will accompany you:

- Basic lectures, which introduce key technological concepts for conceiving network systems
- Lab Exercises, which will take you "from neophyte" to a competent networker, and which will teach you how to write communicating programs, and have them talk to each other across the Internet.

Lectures and lab exercises will (typically) alternate ; homework will be an ongoing activity for you during the course - and, unsurprisingly, the final exam will be the final activity at the very end of the course.

- Lectures serve to provide an abstract "programmers overview of computer network principles and architectures", and will cover topics such as:
- How does the Net Work?
- Network Programming
- Network Configuration
- Components of a Computer Network
- The Domain Name System
- NAT, NAPT, ...
- ...
- Lab Exercise Sessionsserves to give you practical experiences in computer networking - in particular, but not exclusively, in how to write programs that communicate over the network. Each lab exercise session will happen in a computer room, and will be structured as follows:
- Quizzes are (graded) events, during the first 15 min of each lab exercise session, and will cover the material covered in lectures(s) since the previous lab exercise session. These quizzes serve to give you both a motivation for revising the material from previous lectures, as well as to allow you to gauge your level of understanding well in advance of the final exam.
- Hands-on networking, which will have you either work on a tutorial, or an assignment.
- Tutorials serve to help you acquire a certain set of skills, in a very guided step-by-step fashion. This may be, for example, how to write a program that communicates over the network, or how to set up a small computer network.
- Assignments are (graded) more independent and less guided activities, where you will be told what the end-result of your work should be, but not be given a step-by-step tutorial to follow. While you will be working independently, of course your teachers will be present to help you in your design, and implementation, of a communicating system. Assignments will be graded.
- Homework is what you do between lab exercise sessions - and what we expect you to do is to study the material from the lectures and to finish the assignments, that have been given as part of the lab exercise sessions. This serves to ensure that you get a chance to encounter all possible "difficulties" in a setting, where you will have a chance to (at the next lab exercise session) discuss them with your teachers, and resolve them with their help, before handing in your assignment for grading.
- The Final Examis, in part, a way to evaluate what you have retained from the course, and to give you a final grade. However more significantly, it is also there to aid your revising of the course material, and thus to reinforce your learning process. The final exam will be a multiple-choice questionnaire, and will - in a nutshell - be a longer version of the quizzes that you have seen during the lab exercise sessions. Thus, if you've prepared continuously for the weekly quizzes, if you've done well in those, and you review the course material diligently, then you should be well prepared also for the final exam.

__Evaluation:__

Your final grade for this course will be made up from three components:

- Final exam (50% of your final grade)
- 20 multiple-choice questionnaire "on computer"
- Covering the entire course syllabus
- Graded /20
- Weekly quizzes (25% of your final grade)
- Max 15 min (timed) at the very start of each lab exercise session
- On the subjects treated in the lectures since the last lab exercise session.
- Combined grade /20
- Graded Assignments (25% of your final grade)
- Homework == Extended versions of your work done during the lab exercise sessions
- For each assignment, you will demonstrate your code to a teacher + submit
- Combined grade /20

__Language:__

English

- Teaching coordinator: Clausen Thomas
- Teaching coordinator: Cordero-Fuertes Juan-Antonio