Minor in Computer Science / Mineure d'Informatique
Coordinator: Guy Melançon
Tel : +33 631396671 (use with caution)
Email: Guy.Melancon@u-bordeaux1.fr

September 2011

This program is designed to be combined with a major with specialization in a discipline other than mathematics or computer science. This set of courses has been designed for students who wish to acquire a clear understanding of concepts underlying computing procedures, together with specific technical skills.

Each course is designed as a series of projects investigating major concepts and requiring students to concretely build programs or manipulate data using existing tools. This minor is accessible to anyone, with no particular prerequisites, but a decisive taste for learning and mastering conceptual ideas as well as practical skills in computer science.

The program is built upon a twofold objective.

  • Some courses investigate notions and techniques linking computer science with other scientific fields. Two topics serve this objective: information representation and processing (databases) and information sécurity.
  • Other courses elaborate on fundamental concepts and best practices in computer science: algorithms and their link with discrete mathematics, programming methodology.

Typically, students with a major in biology should develop the necessary skill to exploit the various available biology databases and write well-structured code to remotely access these databases and process biological data. Students in chemistry or physics should also learn the basics about accessing and exploiting databases, and be able to develop well grounded numerical simulations, for instance.

Courses are designed as tutorials to be accessed remotely. Resources for the courses have been identified on various institutional or public servers, together with locally developed resources, all made available through this platform. Face to face sessions with tutors will guide students through their series of projects and make sure the necessary concepts are well understood. Evaluations shall follow a continuous process along the semester.

Courses offered within this minor are briefly described below. Please refer to the page of a specific course to learn more (not all courses have been documented yet).

Program and courses

Algorithms and programs

1 Basics algorithms and programming - J1MI1I03

  • basic concepts and methods for problem solving based on computer programming
  • algorithm structure: variable assignments, sequences, loops, etc.
  • problem specification: functionnal (hierarchical) decomposition, state, pre-condition, post-condition, loop invariant

Projects will involve designing algorithms, emphasizing their structure, robustness and clarity accompanied by appropriate documentation. This course requires the use of a programming language, its syntax and semantics, control structure, functions and recursivity, for instance.

According to the audience familiarity with programming, the course may also investigate programming norms and methodology, modular programming and initiation to object programming.

2 Data structures - J1MI3W04

This course will cover a more thorough investigation of the most used and useful data structures, with careful examination of their properties (efficiency, adaptability) and relevance in specific situations. 

  • abstract types: being able to design data structures, studying their behavior and properties without referring to their actual implementation
  • implementing classical data structures using object oriented languages: sequences, stacks, queues, trees, graphs
  • sorting and searching in data structures
  • algorithmic complexity versus empirical evaluation

Information systems & Security

3 Data models and databases - J1MI2I06

  • database management systems architecture
  • relational model : proprierties, constraints, relational algebra
  • functional dependency, closure
  • normal forms
  • SQL
  • ...

Projects will involve using actual databases, designing data models, implementing databases emphasizing their structure, robustness and clarity accompanied by appropriate documentation. This course relies on knowledge and know-how acquired in the Algorithms and Programs courses.

4 Advanced programming and Information Systems (IS) - J1MI4W02

  • IS Modeling and Design
  • development phases of an IS
  • distinguishing conceptual and logical modeling from physical design
  • requirement analysis main phases
  • essential conceptual modeling techniques (data / entity-relation approach) (processes / information flow diagrams)
  • ...

Projects will involve studying actual information systems, diagnose and eventually benchmark systems.

5 Security - Best practices

  • basic concepts
  • methodology, norms and risk analysis
  • state-of-the-art survey of major technologies: cryptography, authentication, PKI, etc.
  • network architecture, web, firewalls, ..., intrusion detection
  • verification and maintenance of an IS
  • developing safe applications; major security tools; major information sources
  • ...