1 / 69

CS112 – 2017 / 2018 2 nd Term Programming I Lecture 1: Welcome and Introduction

Join Dr. Mohamed El-Ramly for an in-depth introduction to the Programming course. Learn about the objectives, content, and benefits of studying C++ for problem-solving and software engineering. Explore various programming languages and career opportunities in the tech industry. Enhance your skills and knowledge in structured programming, algorithms, and debugging. Get inspired and motivated to excel in your studies and future career in computer science.

Download Presentation

CS112 – 2017 / 2018 2 nd Term Programming I Lecture 1: Welcome and Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cairo University, Faculty of Computers and Information CS112 – 2017 / 2018 2nd TermProgramming ILecture 1: Welcome and Introduction By Dr. Mohamed El-Ramly

  2. Lecture Objectives • Introduction • Course Objectives and Content • Why C++ ? • Course Administration • Course Resources • Pb #1 – Two Player Games • Program Life Cycle

  3. جدد النية • من سلك طريقا يلتمس فيه علما سهل الله له طريقا إلى الجنة • العلم يرفع بيتاً لا عماد لــه .... والجهل يهدم بيت العز والكرم • العلم نور يضيء العقول المتخلفة ونبراس يفتح الدروب المظلمة • قصة طاعون لندن • لا تنتظر التغيير و لكن اصنعه • قصة صاحب مزرعة الخيول

  4. I am …… • Mohammad El-Ramly • Assistant Professor of Computer Sciences • Specialization: Software Engineering • B.Sc. of Computer Engineering, Ain Shams University, Cairo. • M.Sc. of Operations Research (DS), Cairo University. • Ph.D. of Computer Science, University of Alberta, Canada.

  5. إعتذار الطلاب الكرام • أرجو ألا أكون سببت لأى منكم ألما أو ضيقا أو ضغطا أو تعبا عضويا أو نفسيا خلال المقرر السابق • كما أننى اجتهدت فى التدريس و التقييم و إذا كنت موفقا فى ذلك فهذا من توفيق الله • و إذا كنت مقصرا فمن نفسى فاعتذر عن ذلك • و يسرنى أن أساعدك على التقدم و التفوق فى دراستك بكل ما يمكننى

  6. What is this course about? • Computational Problem Solving • Structured Programming • Programming in C++

  7. What is this course about? • Study in FCI goes in streams or lines • Software Engineering line includes: • Programming I • Programming II • Data Structures • Software Engineering I • Software Engineering II

  8. Why Programming • Make things and see them work • Solve challenging problems • Have impact on life, work and how people do things • Learn patience • Burn your sins • Have fun

  9. Feb. 2018

  10. Feb. 2018

  11. Do not like to be a programmer? • Tester, Quality Assurance Engineer, … • System Administrator, network engineer, … • Customer support, configuration, customization, …. • Database developer, administrator, consultant, … • Game developer, designer, tester, etc … • IT governance, auditing, contracting, etc …. • Education, training, etc. …. • …………………………… homemaking

  12. Remember 1st Term Visitors • Ahmed Abdehay (Game Developer) • Programmer • Dr Nour Mahmoud (Web Developer) • Programmer • Mohamed Sabra (Entrepreneur) • Programmer, Business Analyst and Company Owner • Ahmed Anas (Security Officer) • ………… + Problem solving and some programming • Ahmed Samir (Data Scientist) • ………… + Problem solving and some programming

  13. Remember 1st Term Visitors • Ahmed Abdehay (Game Developer) • Programmer • Dr Nour Mahmoud (Web Developer) • Programmer • Mohamed Sabra (Entrepreneur) • Programmer, Business Analyst and Company Owner • Ahmed Anas (Security Officer) • ………… + Problem solving and some programming • Ahmed Samir (Data Scientist) • ………… + Problem solving and some programming

  14. Course Objectives and Content

  15. Course Objectives • The objective of this course is to master problem solving using computer programing with C++ structured style.

  16. Course Learning Outcomes • Analyze a computational problem and develop a solution strategy to solve it. • Develop the needed algorithms to solve the problem and program the solution in C++. • Develop medium size programs in C++. • Understand the basic concepts of structured programming using C++. • Practice basic debugging and good coding skills. • Practice team work.

  17. Why C++? • Why not Python? • Why not Java? • Why not C#? • Why not C?

  18. Q1: How many languages exist? • Give a guess ? • 10, 20, 50, 100, …… ? • What do you think? • 2000 ~ 3000 • http://wiki.c2.com/?HelloWorldInManyProgrammingLanguages • http://www.99-bottles-of-beer.net/ • https://www.randstad.ca/job-seeker/job-tips/archives/comparing-11-popular-coding-languages_530/

  19. Q2: Which language is popular? TIOBE Index • https://www.tiobe.com/tiobe-index/

  20. Before C / C++, B Programming Language • https://en.wikipedia.org/wiki/B_(programming_language)

  21. After C/C++, D Programming Language • https://dlang.org/

  22. Q3: Who are the news kids in the block? • Name three new languages ? • Lua, Koteln, Swift, Julia, R, ….. • How many languages should I know?

  23. Evolution of Programming • Machine Languages • Reflect hardware structure not programming ease • In 1955+, John Backus: Can we write programs like we write math formulas? • Formula Translation (FORTRAN) • IBM: Can we write code like we write English? • Common Business Oriented Language (Cobol)

  24. Evolution tree of some PLs See Tiobe Index

  25. Stroustrup - Essence - Going Native'13 Programming Languages Domain-specific abstraction General-purpose abstraction Fortran Simula Java Cobol C++ C++11 Direct mapping to hardware C# Assembler BCPL C

  26. Why C++ ? Object-oriented Programming Structured Programming Low Level Programming

  27. C Language Object-oriented Programming Structured Programming Low Level Programming C

  28. Java Language Object-oriented Programming Structured Programming Java Low Level Programming

  29. C# Language Object-oriented Programming Structured Programming Low Level Programming C#

  30. C++ Language Object-oriented Programming Structured Programming Low Level Programming C++

  31. C++ Design Goals • Provide object-oriented features in C-based language, without compromising efficiency • Backwards compatibility with C • Data abstraction • Objects and classes • Efficiency of compiled code, close to assembly • If you do not use a feature you should not pay for it

  32. C++ Target • Systems programming • Embedded systems • Resource constrained systems • Large systems

  33. C++ Areas of Excellence • C++ programming is pervasive in many key areas of the software industry: • Computer games and entertainment industry • Audio/Video processing • Computer device drivers • Control systems • Telecommunications systems • Embedded software systems • Simulation systems • Medical imaging

  34. Course Administration

  35. Basic Course Information • Course Code:CS112 • Course Name: Programming I • Course Credit: 3credits • Instructors: Dr. Mohammad El-Ramlym.elramly@fci-cu.edu.eg Dr Amin Allama.allam@fci-cu.edu.eg • Office Hours: Sun and Wed 1pm – 4pm • TAs: Many of them – Check your group TA • Site: http://www.acadox.com/join/FPKJEC http://www.acadox.com/class/51096

  36. Course Contents • Algorithmic problem Solving (Different examples and problems) • Structured programming (Divide and conquer, solution breakdown, functions) • Introduction (Introduction, computer organization, programming languages) • Basics of C++ (C++ history, C++ program structure, program lifecycle) • Variables and data types (Variables, identifiers, variable declaration and initiation and constants) • Basic I/O (cout and cin objects, >> and << operators) • Operators (Operators for arithmetic, comparison and logic, type-casting, operator precedence)

  37. Course Contents • Control (if, if-else, ? operator, switch, for, while, do-while, break and continue) • Functions (Function prototyping, function calls, void functions, passing by value and by reference, variable scope, static variables, recursion) • Compound data types (Single and multi-dimensional arrays, search and sorting an array) • Character arrays and C-strings (Strings in C language, defining and accessing C-strings) • Pointers (Pointer declaration and usage, pointers and arrays, pointers and functions, arrays of pointers) • Structured and Enumerated Types. • C++11 (New features) & Overview of C++ Libraries

  38. Mode of Delivery • Lec: Sun 11:00, Tues 8:00 • Lab: As scheduled • Textbook : • Recommended: • Problem Solving with C++ (Walter Savitch) • C++ How to Program, Dietel and Dietel , 9th / 10th Ed. (International Edition), Pearson • www.cplusplus.com • Coursework: Assignments, Projects, Labs, Exams Expect to put minimum 6~8 hours a week

  39. Books by C++ Inventor

  40. Course Assessment • Midterm and quizzes ~15 marks • Lab exam ~5 marks • Assignments ~16 marks • Lab tasks ~6 marks

  41. Cheating • Do not even think about it

  42. Resources • Lectures – You must attend • The books • Sections and labs • Prof, TA, colleagues, friends, …. • Stackoverflow.com • Geeks 4 Geeks • Cplusplus.com • Google

  43. Pb#1 – Two Player Game

  44. Brain Teaser 1 • Connect 9 dots with 4 lines without lifting the pen.

More Related