cs5000: foundations of programming
TRANSCRIPT
![Page 1: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/1.jpg)
CS5000:
Foundations of Programming
Mingon Kang, PhD
Computer Science, Kennesaw State University
![Page 2: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/2.jpg)
Self Introduction
Mingon Kang
http://ksuweb.kennesaw.edu/~mkang9
Or Google “Mingon Kang” and the top one.
Research interests:
Bioinformatics, Machine Learning, Data Mining, and Big
Data Analytics
![Page 3: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/3.jpg)
Course Information
Instructor: Dr. Mingon Kang
Office: J-339
Email: [email protected]
Office Hours:
T: 2-4pm
W: 10am-12pm
By appointment
![Page 4: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/4.jpg)
Textbook (Not required)
Introduction to Java Programming, Comprehensive
Version, 10th Edition, Y. Daniel Liang, 2015
![Page 5: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/5.jpg)
Evaluation (tentative)
Homework Assignment (30%)
Exam 1: 15%
Exam 2: 15%
Final: 20%
Project: 20%
If the grade received on your final exam is greater than one of the earlier exams, then I will replace the lowest of the earlier two exam grades with the grade received on the final exam.
![Page 6: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/6.jpg)
Academic Integrity
Academic dishonesty
Cheating
Plagiarism
Collusion
The submission for credit of any work or materials that
are attributable in whole or in part to another person
Taking an examination for another person
Any act designed to give unfair advantage to a student
or the attempt to commit
![Page 7: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/7.jpg)
How to succeed this class
Be honest (homework, exam, …)
Enjoy homework assignments
Make your own challenging homework
THINK hard, not WORK hard
![Page 8: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/8.jpg)
Programming?
Looks like building a house
Timeline to build a house
Layout: Floor plan
Excavation
Footing/ Foundation
Framing
Mechanicals
Insulation
Drywall
Paint
…
![Page 9: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/9.jpg)
House!!
![Page 10: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/10.jpg)
Work of art like Antoni Gaudi’s?
![Page 11: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/11.jpg)
Programming Languages
Programming languages
What is a programming language?
Formal constructed language to communicate to a machine.
A glance at the history of the computer programming
Punched Cards for computer programshttp://homepage.cs.uiowa.edu/~jones/cards/collection/i-program.html
What kinds of programming languages?http://en.wikipedia.org/wiki/List_of_programming_languages
![Page 12: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/12.jpg)
Punched Cards (early 1900s)
Write program codes on a paper
Submit the codes to the computation center
A staff moves the codes to a punched-card.
A computer regularly runs a batch of programs, and outputs the results.
Submit
Compilation
in batches
Outcomes or
Error Messages
Punch a card
Program code
![Page 13: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/13.jpg)
Top Programming Languages
The 15 most popular programming languages,
according to the 'Facebook for programmers http://www.businessinsider.com/the-9-most-popular-programming-languages-according-to-
the-facebook-for-programmers-2017-10#1-javascript-15
Programming Language for Interviews http://blog.codingforinterviews.com/best-programming-language-jobs/
![Page 14: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/14.jpg)
Why Java?
Platform independence
Object-Oriented Languages
The Java Memory Model
The Core API
Intelligent IDEs
![Page 15: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/15.jpg)
Origins of the Java Language
Created by Sun Microsystems team led by James
Gosling (1991)
C in 1969 at AT&T Bell Labs
Originally designed for programming home
appliances
Difficult task because appliances are controlled by a wide
variety of computer processors
Team developed a two-step translation process to simplify
the task of compiler writing for each class of appliances
![Page 16: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/16.jpg)
Computer Language Levels
High-level language: A language that people can read, write, and understand A program written in a high-level language must be translated into a
language that can be understood by a computer before it can be run
Machine language: A language that a computer can understand
Low-level language: Machine language or any language similar to machine language
Compiler: A program that translates a high-level language program into an equivalent low-level language program This translation process is called compiling
![Page 17: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/17.jpg)
Compiler
Compiler
A computer program that converts source codes to
object code which a computer can execute.
The compilers for most programming languages
translate high-level programs directly into the
machine language for a particular computer
Different computers have different machine
languages, a different compiler is needed for each
one
![Page 18: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/18.jpg)
Compiler and Run
C/C++
Hello.c Hello.o Hello.exe
Java
Hello.java Hello.class
Source File Compilation OutputVirtual
Machine
Source File Compilation LinkingExecutable
File
![Page 19: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/19.jpg)
Byte-Code and the Java Virtual Machine
The Java compiler translates Java programs into
byte-code, instead of Low-level language.
The machine language for a fictitious computer
called the Java Virtual Machine (JVM).
Once compiled to byte-code, a Java program can
be used on any computer, making it very portable.
![Page 20: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/20.jpg)
Compiled vs Interpreted
Compiled languages
Codes are optimized to a set of machine-specific instructions (such as assembly) before being saved as an executable program
Fast
Source can be hidden
Interpreted languages
The interpreter translates each statement into machine language and executes it before processing the next statement.
Slow, but easy to handle or maintain
![Page 21: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/21.jpg)
Byte-Code and the Java Virtual Machine
Interpreter: The program that translates a program written in Java byte-code into the machine language for a particular computer when a Java program is executed
The interpreter translates and immediately executes each byte-code instruction, one after another
Translating byte-code into machine code is relatively easy compared to the initial compilation step
![Page 22: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/22.jpg)
IDE (Integrated development environment)
NetBeans (Open Source, https://netbeans.org/)
Eclipse (Freeware, https://eclipse.org/)
Android Studio (Freeware,
http://developer.android.com/sdk/index.html)
![Page 23: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/23.jpg)
Hello, World!
First Java program
Compile: javac HellowWorld.java
Run: java HelloWorld
![Page 24: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/24.jpg)
Compiling a Java Program or Class
Each class definition must be in a file whose name is the same as the class name followed by .java
The class HelloWorld must be in a file named HelloWorld.java
Each class is compiled with the command javac followed by the name of the file in which the class resides
javac HelloWorld.java
The result is a byte-code program whose filename is the same as the class name followed by .class
HelloWorld.class
Copyright © 2012 Pearson Addison-Wesley. All rights reserved.
![Page 25: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/25.jpg)
Running a Java Program
A Java program can be given the run command(java) after all its classes have been compiled Only run the class that contains the main method (the
system will automatically load and run the other classes, if any)
The main method begins with the line:public static void main(String[ ] args)
Follow the run command by the name of the class only (no .java or .class extension)
java HelloWorld
Copyright © 2012 Pearson Addison-Wesley. All rights reserved.
![Page 26: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/26.jpg)
Errors
Bug: A mistake in a program
The process of eliminating bugs is called debugging
Syntax error: A grammatical mistake in a program
The compiler can detect these errors, and will output an error message saying what it thinks the error is, and where it thinks the error is
![Page 27: CS5000: Foundations of Programming](https://reader030.vdocuments.net/reader030/viewer/2022040822/624df3616cfed625ae7b5e2d/html5/thumbnails/27.jpg)
Errors
Run-time error: An error that is not detected until a program is run The compiler cannot detect these errors: an error message
is not generated after compilation, but after execution
Logic error: A mistake in the underlying algorithm for a program The compiler cannot detect these errors, and no error message
is generated after compilation or execution, but the program does not do what it is supposed to do