BİL 133 – Algoritma ve Programlama I 2013-2014 Güz Dönemi BİL 133 – Algoritma ve Programlama I Öğr. Gör. Dr. Selim BAYRAKLI http://akademik.maltepe.edu.tr/~selimbayrakli Sunum Sahibi: Öğr. Gör. Okan VARDARLI
Overview and Welcome Textbook: Problem Solving and Program Design in C, J. R. Hanly, E. B. Koffman, Pearson Reference Materials: C Dersi-Programlamaya Giriş, N.E. Çağıltay, C.F. Selbes, G. Tokdemir, Ç. Turhan, Seçkin Yayınevi C Dersi-Çözümlü Problem Kitabı, N.E. Çağıltay, C.F. Selbes, G. Tokdemir, Ç. Turhan, Seçkin Yayınevi C How to Program, Deitel & Associates, Pearson (Türkçesi Sistem Yayınları) Algoritma Geliştirme ve Programlamaya Giriş, Fahri Vatansever, Seçkin Yayıncılık Purpose: Give the students a decent feeling for what the course covers and how it’s organized. Su00 tvi: reorganized to try to get a more coherent sequence. Old version bounced back and forth between concepts and course organization details. Added topic outline slides to break up into sections. Still not perfect, but I think this flows a bit better. This includes all the old slides, which fills a 50 min. hour and can be rushed if one is not careful. Maybe room to delete something. Formatting is completely chaotic. I tried to clean it up a bit. Note: Since students do not have course packets the first day, it would be good to reproduce these slides as a handout, along with the general information handout we’ve used in the past. HP
BİL 133 – Algoritma ve Programlama Objectives of the Course The course introduces the fundamental concepts of procedural programming. Emphasis is on data types, control structures, functions, arrays, and the mechanics of running, testing, and debugging computer programs. The course starts with an overview of computer systems and surveys main concepts of the computing as a discipline.
C Programming Language The course is taught using the C Programming Language Emphasis of course on fundamental concepts which are language independent.
So What is Programming Like? It’s really hard to describe! Many similarities to solving “word problems” in math Translate a problem description into a formal solution Symbol manipulation an integral part Some people describe it as “puzzle solving” A mix of high-level creativity and low-level picky details Added blank lines between bullets
Stages of Problem Solving Ultimate goal: use a computer to solve a problem Typical stages of building a solution: Clearly specify the problem Analyze the problem Design an algorithm to solve the problem Implement the algorithm (write the program) Test and verify the completed program Maintain and update the program The word "debug" (and "bug") might be new to students.
Focus All stages are important In this course, we ignore none of them But we focus on: Algorithm development Writing a program to implement the algorithm The word "debug" (and "bug") might be new to students.
Using the Lecture Notes Not everything on the slides will be read aloud by the speaker Not everything the speaker says will be on the slides You need both! And then some...
Beyond the Lectures You won’t learn programming by watching the lectures as might you watch a TV program The ability to ask questions and get them answered A textbook you can use for details and examples not in the lectures And most important: hands-on practice
The Importance of Practice You wouldn’t expect to learn to play the guitar just by watching a TV series on it There is no substitute for practice. And no one can do it for you The same holds for learning to program
Tips for Success Take the material in order With rare exceptions: you can’t skip any lecture you can’t take material out of order Master each topic before continuing to the next Seek help if you get behind Practice, practice, practice!
References Textbook: “Problem Solving and Program Design in C” - Hanly and Koffman, 3rd Edition, Addison-Wesley Lecture slides, http://www.online.cs.washington.edu/cse142/schedule.htm Problem Solving with C++, Walter Savitch slides (Pearson) http://www.ee.hacettepe.edu.tr/~alkar/ELE108 http://doursat.free.fr/docs/CS135_S06/CS135_S06_1_Introduction.pdf Glossary and problem solving docs http://technology.niagarac.on.ca/courses/ctec1335 History and number representation http://www.eee.upd.edu.ph/courses/eee-11 http://www.slideshare.net/curiousEngine/problem-solving-techniques-presentation Yrd. Doç. Dr. Ali Akman’ın ders notları