110 likes | 158 Views
Learn algorithmic problem-solving, Java programming skills, and fundamental computer science concepts. Study linear search and pseudocode. Find course info and syllabus at courseworks.columbia.edu.
E N D
COMS W1004Introduction to Computer Science and Programming in Java Columbia University Fall 2018
Lecture 1: Introduction • Course objectives • Course information • Textbooks • Syllabus • Assignments and Grading • Academic Honesty • Preliminary Definitions • Linear Search • Pseudocode • Reading
Course Objectives • Java programming Skills • Knowledge of the fundamental concepts in computer science • Algorithmic problem solving capabilities
Course Information Course website: www.cs.columbia.edu/~cannon/1004/ Course information may be found on courseworks at: courseworks.columbia.edu Please look there for answers to your questions and make use of the Piazza discussion board.
Preliminary Definitions Algorithm: Dictionary Definition: A procedure for solving a mathematical problem in a finite number of steps that frequently involves repetition of an operation; broadly: a step-by-step method of accomplishing some task.
Preliminary Definitions Algorithm: Textbook Definition: A well-ordered collection of unambiguous and effectively computable operations that when executed produces a result and halts in a finite amount of time.
Preliminary Definitions • Computer Science • Textbook Definition: The study of algorithms including • Their formal and mathematical properties • Their hardware realizations • Their linguistic realizations • Their applications
Your first Algorithm Linear Search: (also called sequential search) Algorithm to determine whether a given name x appears on a list. Input: A list of n ≥1 names A[1], A[2], ... , A[n], and a given name x. Output. The message "Sorry, x is not on the list" if x is not on the list. Otherwise, the message: "x occurs at position i on the list."
Pseudocode • A programming language is a notation for specifying instructions that a computer can execute • Every (programming) language has a syntax and a semantics • Syntax specifies how something is said (grammar) • Semantics specifies what it means • Pseudocode is an informal programming language with English-like constructs modeled to look like statements in a Java-like language • Anyone able to program in any computer language should understand how to read pseudocode instructions. • When in doubt just write it out in English.
Your first Algorithm Here are the instructions for linear search written in pseudocode: found = "no"; i=1; while (found == "no" and i <= n) { if (A[i] == x) { found = "yes"; location = i; } i++; } if (found == "no") { print ("Sorry, " + x + " is not on the list"); } else { print (x + " occurs at position " + location + " on the list"); }
Reading Chapters 1 and 2 in Schneider and Gersting