Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Basic programming/algorithmic concepts [closed]

I'm about to start (with fellow programmers) a programming & algorithms club in my high school. The language of choice is C++ - sorry about that, I can't change this. We can assume students have little to no experience in the aforementioned topics.

What do you think are the most basic concepts I should focus on?

I know that teaching something that's already obvious to me isn't an easy task. I realize that the very first meeting should be given an extreme attention - to not scare students away - hence I ask you.

Edit: I noticed that probably the main difference between programmers and beginners is "programmer's way of thinking" - I mean, conceptualizing problems as, you know, algorithms. I know it's just a matter of practice, but do you know any kind of exercises/concepts/things that could stimulate development in this area?

like image 908
Mike Hordecki Avatar asked Oct 02 '08 19:10

Mike Hordecki


People also ask

What are the 4 types of algorithms?

Introduction To Types of AlgorithmsBrute Force algorithm. Greedy algorithm. Recursive algorithm.

What is basic algorithms in programming?

A programming algorithm is a procedure or formula used for solving a problem. It is based on conducting a sequence of specified actions in which these actions describe how to do something, and your computer will do it exactly that way every time. An algorithm works by following a procedure, made up of inputs.

What are the 3 algorithms?

There are three basic constructs in an algorithm: Linear Sequence: is progression of tasks or statements that follow one after the other. Conditional: IF-THEN-ELSE is decision that is made between two course of actions. Loop: WHILE and FOR are sequences of statements that are repeated a number of times.

What is basic concepts in algorithms?

Basic Concepts in Algorithms focuses on more advanced paradigms and methods combining basic programming constructs as building blocks and their usefulness in the derivation of algorithms. Its coverage includes the algorithms' design process and an analysis of their performance.

What are the 5 basic algorithms in programming?

The 5 basic algorithms in programming that every beginner should learn are: counting, summing, minimum, maximum and searching. Once you learn this algorithms you will have a good arsenal that you will be able to use many times to solve different problems. Algorithms are the most important topic to learn if you want to be a great programmer.

What are the basic concepts of programming?

Irrespective of the programming language you choose to learn, the basic concepts of programming are similar across languages. Some of these concepts include: In the next section of this shot, you will be given a brief introduction to these concepts. Variables are containers for storing data values, a memory location for a data type.

What are the topics covered in the theory of algorithms?

Most of the classical and some more advanced subjects in the theory of algorithms are covered, though not in a comprehensive manner. The topics include Divide and Conquer, Dynamic Programming, Graph algorithms, probabilistic algorithms, data compression, numerical algorithms and intractability.


2 Answers

Make programming fun!

Possible things to talk about would be Programming Competitions that either your club could hold itself or it could enter in locally. I compete in programming competitions at the University (ACM) level and I know for a fact that they have them at lower levels as well.

Those kind of events can really draw out some competitive spirit and bring the club members closer.

Things don't always have to be about programming either. Perhaps suggest having a LAN party where you play games, discuss programming, etc could be a good idea as well.

In terms of actual topics to go over that are programming/algorithm related, I would suggest as a group attempting some of these programming problems in this programming competition primer "Programming Challenges": Amazon Link

They start out with fairly basic programming problems and slowly progress into problems that require various Data Structures like:

  • Stacks
  • Queues
  • Dictionaries
  • Trees
  • Etc

Most of the problems are given in C++.

Eventually they progress into more advanced problems involving Graph Traversal and popular Graph algorithms (Dijkstra's, etc) , Combinatrics problems, etc. Each problem is fun and given in small "story" like format. Be warned though, some of these are very hard!

Edit: Pizza and Soda never hurts either when it comes to getting people to show up for your club meetings. Our ACM club has pizza every meeting (once a month). Even though most of us would still show up it is a nice ice breaker. Especially for new clubs or members.

like image 51
mmcdole Avatar answered Oct 16 '22 13:10

mmcdole


Breaking it Down

To me, what's unique about programming is the need to break down tasks into small enough steps for the computer. This varies by language, but the fact that you may have to write a "for loop" just to count to 100 takes getting used to.

The "top-down" approach may help with this concept. You start by creating a master function for your program, like

filterItemsByCriteria();

You have no idea how that will work, so you break it down into further steps:

(Note: I don't know C++, so this is just a generic example)

filterItemsByCritera() {
  makeCriteriaList();
  lookAtItems();
  removeNonMatchingItems();
}

Then you break each of those down further. Pretty soon you can define all the small steps it takes to make your criteria list, etc. When all of the little functions work, the big one will work.

It's kind of like the game kids play where they keep asking "why?" after everything you say, except you have to keep asking "how?"

like image 22
Nathan Long Avatar answered Oct 16 '22 13:10

Nathan Long