1 / 50

CS2311 Computer Programming

CS2311 Computer Programming. Dr. Yang, Qingxiong (with slides borrowed from Dr. Yuen, Joe). LT1: Introduction to Programming. Outline . About the course What is a Computer? What is a Computer Program? Programming Language Programmer Basic Concept of programming Simple Program.

aiden
Download Presentation

CS2311 Computer Programming

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. CS2311 Computer Programming Dr. Yang, Qingxiong (with slides borrowed from Dr. Yuen, Joe) LT1: Introduction to Programming

  2. Outline • About the course • What is a Computer? • What is a Computer Program? • Programming Language • Programmer • Basic Concept of programming • Simple Program

  3. About the course • Lecturer • Dr. Qingxiong Yang, AC1 – Y6638, 3442-7324 (qiyang@cityu.edu.hk) • Teaching assistants • Mr. Chen, Mingliang (mlchen2-c@my.cityu.edu.hk) • Mr. Xu, Xiaobin (xiaobinxu2-c@my.cityu.edu.hk) • Mr. Hu, Qiao (qiaohu2-c@my.cityu.edu.hk) • Ms. Dinca, Lavinia (mldinca2-c@my.cityu.edu.hk) • Has a very good performance in programming course (C/C++) • Offer general help on tutorial exercises and tools setup • Tutorials • 2 hours “hands-on” practice in CSC teaching studio • analyzing simple problems and implementing computer programs

  4. About the course • Coursework (40%) • One Quiz (15%), around week 8 • reflect on understanding of programming concepts and problem solving techniques. • Assignments: (10%+15%), around week 6 and week 11 • analyze more challenging problems • implement and present solution. • Exam (60%) • 2 hours closed book exam • 6-8 questions • All CILO will be examined

  5. About the course - Assessment • To pass the course you must: • Obtain at least 30% of the maximum mark on the exam.

  6. About the course - Course Outcomes • Explain the structure of an object-oriented computer program; • Analyze, test and debug computer programs; • Solve a task by applying effective programming techniques, which involve advanced skills like using recursion and dynamic data structures; • Design and construct well-structured programs with good programming practices.

  7. About the course - Resource • Course website on Piazza – CS2311 (A): https://piazza.com/class#fall2014/cs2311 • Lecture slides • Tutorial exercises • Self-study exercises • Announcements • Course information & ILO, etc. • Microsoft Visual Studio 2010 (Windows) • Developer environment for compiling & debugging programs • Can install it on your home PC or laptop • More info in Tutorial 1 • PASS (Program Assignment aSsessment System) • Program testing and submission • Change password after first login • 2 ways to access: blackboard, https://pass3.cs.cityu.edu.hk/index.jsp

  8. About the course - Textbook • Dr. Chung Keung Poon, Matthew C.M. Chang, Concepts and Techniques in C++ Programming

  9. About the course – Key of Success Finish the tutorials and assignments by yourself.

  10. About the course - Academic Honesty • CityU has revised Rules of Academic Honesty and has required all students to complete an online tutorial on subject and declare your understanding • Plagiarism… • It is serious fraud to plagiarize others' work. • Punishment ranges from warning to course failure. • How to prevent plagiarism... • Finish the assignments by yourself! You can talk about ideas on how to do the assignment, but you have to write the program yourself. • Protect your code; don't give it away as a "reference" copy. • In plagiarism cases, we treat the giver and the copier as both guilty. • You hurt your own grades by not reporting cheating. • As instructors... • We have responsibility to report academic dishonesty cases so as not to compromise the quality of education • We take suspected plagiarism cases very seriously.

  11. About the course – Other Issues • At lecture… • Please turn the mobile phones to silent mode during lecture and labs. • You are recommended to study the relevant notes or handouts before attending the lecture or tutorial. • Do not be late for lectures. • There is no make-up exam, except for medical emergencies. • In this case, you must provide a signed note from your medical doctor. • If you are sick, please do not come to school.

  12. About the course - How to get an A • Studying… • You are recommended to study the relevant notes or handouts before attending the lecture or tutorial. • Review as soon as possible to maximize retention. • Practice… • Do the tutorials yourself and repeat the practice for better learning. • If you get help on the tutorials, don't just blindly accept it, but try to understand what each part of the code is doing. • Do the self-study exercises posted on blackboard or in the book. • Assignments… • Start work on the assignments when they are released, and come up with a good plan to finish it. • Many times fixing problems in your program will take longer than you expect, so make sure you have plenty of time to complete the assignment.

  13. About the course - Course Schedule (tentative)

  14. What is a Computer CPU (Central Processing Unit) Motherboard Memory Secondary Storage

  15. Stored Program Computer (Von Neumann Machines)

  16. Personal Computer CPU (Central Processing Unit): Read instruction from main memory and execute the instruction. Update main memory value or send instruction to motherboard Main Memory: fast storage of program and data in action Secondary Storage: Storage of program and data files

  17. Personal Computer Input Unit: Get input from user or external environment Output Unit: Show result to user or other programs

  18. What is a Computer Program? • A list of instructions that instructs a computer to do some tasks

  19. A Computer Program • A way to communicates with computers • Written in Programming Language

  20. Programming Languages • To write a program for a computer, we must use a computer language. Machine Language Language directly understood by the computer Symbolic Language English-like abbreviations representing elementary computer operations • High-level Language • Close to human language. • Example: a = a + b • [add values of a and b, and store the result in a, replacing the previous value] binary code assembly language C, C++, Java, Basic

  21. PROGRAM 1-1 The Multiplication Program in Machine Language The only language understood by computer hardware is machine language.

  22. PROGRAM 1-2 The Multiplication Program in Symbolic Language Symbolic language uses symbols, or mnemonics, to represent the various machine language instructions.

  23. PROGRAM 1-3 The Multiplication Program in C high-level languages are easier for us to understand.

  24. Building a C++ program • Writing source code in C++. • e.g. hello.cpp • Preprocessing • Processes the source code for compilation. • Compilation • Checks the grammatical rules (syntax). • Source code is converted to object code in machine. language (e.g. hello.obj) • Linking • Combines object code and libraries to create an executable (e.g. hello.exe). • Library: common functions (input, output, math, etc).

  25. There are many Programming Languages in the world!! ActionScriptAdaASP.NET Assembler Basic C C++ C#Cobol Cobra CODEColdFusion Delphi EiffelFortran FoxPro GPSSHTMLJ# J++JavaJavaScriptJSPLISP Logo LUA MEL Modula-2Miranda Objective-C PerlPHPPrologPythonSQLVisual Basic Visual Basic.NET VBA Visual-FoxPro

  26. Programming Languages • Programming languages usually differ in two aspects • Language Syntax • Standard libraries/SDKs/functions • Java if (a>b){ System.out.println(“a is larger than b”); }else{ System.out.println(“a is smaller than or equal to b”); } • Pascal if a>b then writeln(‘a is larger than b’); else writeln(‘a is smaller than or equal to b’);

  27. Programming Languages • Syntax is well-defined, no exception • if (…){…}else{…}; • for (;;;){…} • while (){…} • Basic Components: • Variable / structure /function declaration • Variable / structure /function access • Conditional statement • Iteration statement • SDK/built-in functions

  28. Programmer

  29. Some Difficulties • Computer only follows instructions. It won’t solve problems by itself • Programmer needs to: • develop an appropriate solution (logic) • express the solution in programming language (implementation) • validate the logic and implementation (testing)

  30. Requirements • Correct syntax • Correct logic • Efficient • Running properly under various constraints • Scalability, Maintainability • Platform independent

  31. Basic Concept of Programming

  32. Computer Program (External View) • Basic elements of a Computer Program • Input • Process • Output

  33. Computer Program (Internal View) • A list of instructions ordered logically • Usually involve data access

  34. Computer Program • Instructions • A set of predefined action that a computer can perform • E.g. addition, subtraction, read , write • Logic Flow • Arrangement of Instructions • E.g. Calculate BMI • Read weight from keyboard • Read height from keyboard • Weight x weight/height • Write BMI to screen • Variable (data) • A space for temporarily store value for future process • Constant (data) • A value that will not be changed for the whole processing

  35. Logic Flow Turn on the mobile Hand off Key in xxxx - xxxx Key in xxxx - xxxx Wait for connection Wait for connection Turn on the mobile Talking Talking Hang up

  36. Logic Flow Turn on the mobile Turn on the mobile Key in xxxx - xxxx Key in xxxx - xxxx Wait for connection Wait for connection No Connection made? Connection made? Yes Yes No Talking Talking Hang up Hang up

  37. Sample Program (Framework)

  38. Simple Program /* The traditional first program in honor of Dennis Ritchie who invented C at Bell Labs in 1972 */ #include <iostream> using namespace std; void main() { cout <<"Hello, world!\n"; }

  39. Comments /* The traditional first program in honor of Dennis Ritchie who invented C at Bell Labs in 1972 */ • Enclosed by “/*” and “*/” or begin with “//” • // single line comments // this is a single line comment // each line must begin with “//” sign

  40. Preprocessor directive • Give information / instruction to compiler for program creation #include <iostream> • Preprocessor directive • Tells computer to load contents of a certain file / library • In this program, we include the library iostream into the program as it contains the definition of coutwhich is used to print something to the screen. • No semi-colon at the end of the include directive using namespace std • drective • Specifying that the standard (std) namespace is used such that we can use a shorthand name for the object cout • std::cout <-> cout

  41. Functions • When writting program, programmer usually group related code (instructions) into functions for easy design and maintenance. • We will talk about function and how to write your own function in later lectures.

  42. Function - main void main() { } • The starting point of program (the first function called by the computer)

  43. Function - main • void main() • void means there is no return value • no semi-colon after main() • C++ is case sensitive. • Incorrect: void Main(), VOID main(), ... • { } • Braces: left brace begins the body of a function. The corresponding right brace must end the function

  44. Simple Program /* The traditional first program in honor of Dennis Ritchie who invented C at Bell Labs in 1972 */ #include <iostream> using namespace std; void main() { cout <<"Hello, world!\n”; }

  45. Library / SDK /Package • Normally, we won’t write a program all by ourselves. Instead, we will reuse the code written by ourselves / other developers. Especially for the repeating tasks or low-level operation like disk I/O. • The reusing code is well designed and pack a library / SDK / Package. • Standard C++ program comes with a set of package to make programmer task easier. • cout is one of the example.

  46. Object - cout cout << "Hello, world!\n“ ; • Object is a programming unit that store values (attributes) and provide functions (methods) to manipulate the values (we will elaborate this concept in future classes) • cout: object provided by iostream library (package) for screen (console) output • <<: output (also called insertion) operator that output values to an output device. In this case, the output device is cout (the screen) • The value on the right hand side of the operator is the string you want to output

  47. Object - cout • \n • escape sequence: the character following \ is not interpreted in the normal way • represents a newline character: the effect is to advance the cursor on the screen to the beginning of the next line • newline: position the character to the beginning of next line • \\ • backslash: Insert the backslash character \ in a string • \" • double quote: Insert the double quote character " in a string

  48. Summary • Basic components of a computer program are: • Instructions • Logic Flow • Variable and Constant • A correct logic is important in programming • Programmer usually reuse code written by the others and the code is commonly in form of library / SDK / packages • cout is an object provided by iostream package for screen output

  49. Summary • A simple C++ program will have #include <iostream> //A preprocessor using namespace std; //namespace declaration void main(){ /* the starting point of program execution */ }

  50. Summary • Development cycle • Write a program in plan text via • Text editor • Notepad, UltaEdit • Integrated Development Environment (IDE) • E.g. Visual Studio 2005/2008, NetBean • Compile the program • IDE / ANSI C++ • Execute the program • IDE / Console shell • Debug the program

More Related