The goals of BootCamp are to raise the skills of contestant about ACM/ICPC programming contest, team-working skills, Time management, getting familiarities with the types of problems and online programming contest websites, and preparing the contestant for ACM/ICPC contests. Last but not the least contest is a fun.
Every BootCamp training sessions divided into three parts; explanation of the title session, examples about the title and practical problem solving according to the session topic with each team. In every part, BootCamp campers will learn the topics and needed tips about problem solving or analyzing them.

Every BootCamp training sessions divided into three parts; explanation of the title session, examples about the title and practical problem solving according to the session topic with each team. In every part, BootCamp campers will learn the topics and needed tips about problem solving or analyzing them.

**Week 1: Info- session**

*Introduction to Session:*

Information session – Brief Information about ACM/ICPC Programming Contest and Rules, Rules of solving the problems, and strategies for contest. Information about BootCamp goals and the reasons behind organizing this program.

*Session Goal:*

To make BootCamp Campers familiar with programming contests, ways of solving problems, and to answer the questions of the students about contests and the BootCamp training program.

**Week 2: Control Statements**

*Introduction to Session:*

Control Statements – one of the most important thing in programming which is to control the parts or the statements to be executed in one or many times in a program/application. You will learn and practice the three types of control statements that are necessary to know with their usages in programming.

*Session Goal:*

At the end of the session, the students should be able to know about the control statement, especially where to be used and how the will be used in any program.

**Week 3: File input/output**

*Introduction to Session:*

File input/output – this is important for a program and programmer to take data from a file or store back into a file. On week 5th, you will learn how to read data from a file and process that data and finally how to save that data into another file.

*Session Goal:*

The participant will be able to handle file input/output process from a file and how to read and write from a file into program.

**Week 4: Array**

*Introduction to Session:*

Arrays – on 4th week, we will cover arrays, and its types with practices. You will be able to use arrays and work out with this type of data structure in your program.

*Session Goal:*

Need information about arrays and its types, manipulating them, and to know where and why to use arrays in a program.

**Week 5: Methods (function)**

*Introduction to Session:*

What are methods? Why you should use them? In addition, how they are necessary in a program?

*Session Goal:*

All questions will be answered with examples and practices, students will be able to take to and give data from a method in a program.

**Week 6: Vector Data Structure**

*Introduction to Session:*

Vectors – Vector is similar to array with more functionality for programmer to access, edit, delete, and …. In an array.

*Session Goal:*

To introduce the Vector predefined methods and the usage of them to the students

**Week 8: Stack, Queue & Dequeue Data Structures**

*Introduction to Session:*

What are data structures? Explanation of each of them, practical examples and session assignment.

*Session Goal:*

You will get familiar with the stack, queue and dequeue data structures, how to store and retrieve the data from these, and the difference between them and when or where to use them.

**Week 9: Set Data Structure**

*Introduction to Session:*

Set – a collection of data, which cannot be duplicated, you will be ready to organize and collect your data using Set.

*Session Goal:*

To let you know the structure, the usage and how this type of data structure used in you program.

**Week 10: List Data Structure**

*Introduction to Session:*

List – unlike Set, here you will be able to store duplicated value inside a List. Working with examples and will solve related problems to the title.

*Session Goal:*

To be able to work with List and to know how to differentiate it from set data structure.

**Week 11: Map Data Structure**

*Introduction to Session:*

Map – A map is a data structure and it is majorly used for fast look-ups or searching data. It stores data in the form of key and value pairs where every key is unique. Each key here maps to a value and hence the name map.

*Session Goal:*

You will get familiar with map, its usages mainly where and how to use this type of data structure.

**Week 12: Sorting Algorithms**

*Introduction to Session:*

Sorting – sorting algorithms let you to manage and organize your data for a better use and understanding. We cover the best algorithms of sorting in this session.

*Session Goal:*

To introduce the difference types of sorting algorithms, and choose one of them to go forward.

**Week 13: Searching Algorithms**

*Introduction to Session:*

Searching – searching algorithms let you find your wanted data inside a collection of data; it helps you to speed up your programming speed.

*Session Goal:*

To introduce the difference types of searching algorithms, and choose one of them to go forward.

**Week 14: Greedy algorithms**

*Introduction to Session:*

Greedy algorithms – A greedy algorithm is a simple, intuitive algorithm that is used in optimization problems. The algorithm makes the optimal choice at each step as it attempts to find the overall optimal way to solve the entire problem. Greedy algorithms are quite successful in some problems, such as Huffman encoding which is used to compress data, or Dijkstra’s algorithm, which is used to find the shortest path through a graph.

*Session Goal:*

To make you familiar with this types of algorithms and why we use to them to solve problems.

**Week 15: Graphs**

*Introduction to Session:*

Graphs – a graph is a data structure that consist of nodes and edges, in this last session of BootCamp, We will explain the graph and its types and how or where the graphs can be used.

*Session Goal:*

To explain and work on examples to make you handle the problems that will be solved with graphs in a program.

Information session – Brief Information about ACM/ICPC Programming Contest and Rules, Rules of solving the problems, and strategies for contest. Information about BootCamp goals and the reasons behind organizing this program.

To make BootCamp Campers familiar with programming contests, ways of solving problems, and to answer the questions of the students about contests and the BootCamp training program.

Control Statements – one of the most important thing in programming which is to control the parts or the statements to be executed in one or many times in a program/application. You will learn and practice the three types of control statements that are necessary to know with their usages in programming.

At the end of the session, the students should be able to know about the control statement, especially where to be used and how the will be used in any program.

File input/output – this is important for a program and programmer to take data from a file or store back into a file. On week 5th, you will learn how to read data from a file and process that data and finally how to save that data into another file.

The participant will be able to handle file input/output process from a file and how to read and write from a file into program.

Arrays – on 4th week, we will cover arrays, and its types with practices. You will be able to use arrays and work out with this type of data structure in your program.

Need information about arrays and its types, manipulating them, and to know where and why to use arrays in a program.

What are methods? Why you should use them? In addition, how they are necessary in a program?

All questions will be answered with examples and practices, students will be able to take to and give data from a method in a program.

Vectors – Vector is similar to array with more functionality for programmer to access, edit, delete, and …. In an array.

To introduce the Vector predefined methods and the usage of them to the students

What are data structures? Explanation of each of them, practical examples and session assignment.

You will get familiar with the stack, queue and dequeue data structures, how to store and retrieve the data from these, and the difference between them and when or where to use them.

Set – a collection of data, which cannot be duplicated, you will be ready to organize and collect your data using Set.

To let you know the structure, the usage and how this type of data structure used in you program.

List – unlike Set, here you will be able to store duplicated value inside a List. Working with examples and will solve related problems to the title.

To be able to work with List and to know how to differentiate it from set data structure.

Map – A map is a data structure and it is majorly used for fast look-ups or searching data. It stores data in the form of key and value pairs where every key is unique. Each key here maps to a value and hence the name map.

You will get familiar with map, its usages mainly where and how to use this type of data structure.

Sorting – sorting algorithms let you to manage and organize your data for a better use and understanding. We cover the best algorithms of sorting in this session.

To introduce the difference types of sorting algorithms, and choose one of them to go forward.

Searching – searching algorithms let you find your wanted data inside a collection of data; it helps you to speed up your programming speed.

To introduce the difference types of searching algorithms, and choose one of them to go forward.

Greedy algorithms – A greedy algorithm is a simple, intuitive algorithm that is used in optimization problems. The algorithm makes the optimal choice at each step as it attempts to find the overall optimal way to solve the entire problem. Greedy algorithms are quite successful in some problems, such as Huffman encoding which is used to compress data, or Dijkstra’s algorithm, which is used to find the shortest path through a graph.

To make you familiar with this types of algorithms and why we use to them to solve problems.

Graphs – a graph is a data structure that consist of nodes and edges, in this last session of BootCamp, We will explain the graph and its types and how or where the graphs can be used.

To explain and work on examples to make you handle the problems that will be solved with graphs in a program.