Dr. Chengwei Lei CEECS California State University, Bakersfield

Slides:



Advertisements
Similar presentations
5/1/20151 Analysis of Algorithms Introduction. 5/1/20152 Are you want to be a computer scientist?
Advertisements

CS 581: Introduction to the Theory of Computation Lecture 1 James Hook Portland State University
CMSC 132: Object-Oriented Programming II
Statistical Methods in Computer Science Course Introduction Ido Dagan.
What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate.
Slide 1 Instructor: Dr. Hong Jiang Teaching Assistant: Mr. Sheng Zhang Department of Computer Science & Engineering University of Nebraska-Lincoln Classroom:
TK3043 Analysis and Design of Algorithms Introduction to Algorithms.
CSCE 3110 Data Structures and Algorithm Analysis.
Introduction to Programming Environments for Secondary Education CS 1140 Dr. Ben Schafer Department of Computer Science.
Introduction Dr. Ying Lu RAIK 283: Data Structures & Algorithms.
Introduction CSE 1310 – Introduction to Computers and Programming
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
COMP Introduction to Programming Yi Hong May 13, 2015.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
1 COMS 261 Computer Science I Title: Course Introduction Date: August 25, 2004 Lecture Number: 01.
CS 3343: Analysis of Algorithms
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
CST 229 Introduction to Grammars Dr. Sherry Yang Room 213 (503)
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Computer Science 10: Introduction to Computer Science Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
CS 390 Introduction to Theoretical Computer Science.
Fundamentals of Algorithms MCS - 2 Lecture # 1
Catie Welsh January 10, 2011 MWF 1-1:50 pm Sitterson 014.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
Introduction to Algorithms By Mr. Venkatadri. M. Two Phases of Programming A typical programming task can be divided into two phases: Problem solving.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Ministry of Higher Education Sohar College of Applied Sciences IT department Comp Introduction to Programming Using C++ Fall, 2011.
June 19, Liang-Jun Zhang MTWRF 9:45-11:15 am Sitterson Hall 011 Comp 110 Introduction to Programming.
1 Software Test Computer Science Department, Information Faculty Dr. KaiYu Wan.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Data Structures and Algorithms in Java AlaaEddin 2012.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington 1.
CSC 241: Introduction to Computer Science I
RAIK 283 Data Structures and Algorithms
Problem Solving & Computer Programming
Topic: Introduction to Computing Science and Programming + Algorithm
CS101 Computer Programming I
TK3043 Analysis and Design of Algorithms
Topic: Introduction to Computing Science and Programming + Algorithm
It’s called “wifi”! Source: Somewhere on the Internet!
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Computer Science 102 Data Structures CSCI-UA
Introduction CSE 1310 – Introduction to Computers and Programming
CS 3343: Analysis of Algorithms
Welcome to CS 1010! Algorithmic Problem Solving.
دانشكده برق دانشگاه علم و صنعت ايران
Welcome to CS 1340! Computing for scientists.
Welcome to CS 1010! Algorithmic Problem Solving.
CS 3343: Analysis of Algorithms
CS210 Intermediate Programming with Data Structures
Welcome to CS 1301! Principles of Programming I.
CS & CS Capstone Project & Software Development Project
Introduction to Programming Using C++
CMPT 438 Algorithms Instructor: Tina Tian.
CSE1311 Introductory Programming for Engineers & Scientists
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
The PlayStation Example
COMS 261 Computer Science I
Human Media Multicore Computing Lecture 1 : Course Overview
Syllabus Highlights CSE 1310 – Introduction to Computers and Programming Alexandra Stefan University of Texas at Arlington.
MIS2502: Data Analytics Course Introduction
Course policy.
Introduction to Algorithms
CS201 – Course Expectations
Chapter 1 Introduction Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
CSC 241: Introduction to Computer Science I
Advanced Analysis of Algorithms
Presentation transcript:

Dr. Chengwei Lei CEECS California State University, Bakersfield CMPS 3120 Algorithm Analysis Dr. Chengwei Lei CEECS California State University, Bakersfield

The course Instructor: Dr. Chengwei Lei Office: Science III 339 Office Hours: M/T/W 2:30-4:30 PM, or by appointment Phone: (661) 654-2102 E-mail: clei@csub.edu

About Me LEI, Chengwei (雷程炜) received his Ph.D. in July 2014 from the Department of Computer Science in The University of Texas at San Antonio His research interests lie in the broad area of bioinformatics, large scale data mining, network topology analysis, and clustering problems.

Short Bio University of Texas at San Antonio, San Antonito, Texas USA Ph.D., Computer Science, July 2014, M.S., Computer Science, August 2008 Beijing University of Aeronautics and Astronautics, China B.S., Computer Science and Technology, June 2005 B.S., Applied Mathematics, June 2005

Course Description Analysis of the performance of algorithms; discussion of programming techniques and data structures used in the writing of effective algorithms.

Textbook Introduction to the Design and Analysis of Algorithms 3rd Edition, Anany Levitin, Pearson, 2011.

Method of Instruction Lecture; Demonstration; Lab

Semester Grade Average of Regular Semester Exams 30% Exams Homework & Labs 40% As determined by instructor Comprehensive Final Exam Comprehensive Exam

Late homework submissions Each assignment is due at the specified date at the specified time. Late submissions will be accepted at a penalty of 20% for each day the assignment is late.

Time MoWe 1:00 PM – 1:50 PM Tu 1:00 PM -3:30 PM Lecture Lab Final Monday Dec 16, from 2:00 to 4:30pm

Cheating You are not allowed to read, copy, or rewrite the solutions written by others (in this or previous terms). Copying materials from websites, books or any other sources is considered equivalent to copying from another student. If two people are caught sharing solutions, then both the copier and copiee will be held equally responsible, which will result in zero point in homework. Cheating on an exam will result in failing the course. 9/19/2019

Getting answers from the internet is CHEATING Getting answers from your friends is I will send it to the Dean! You will be nailed! 9/19/2019

Do NOT get answers from others! Discuss ideas verbally at a high-level but write up on your own. 9/19/2019

To do well you should: Study with pen and paper Ask for help immediately Practice, practice, practice… Follow along in class rather than take notes Ask questions in class Keep up with the class Read the book, not just the slides

Please feel free to ask questions! Help me know what people are not understanding We do have a lot of material It’s your job to slow me down 9/19/2019

So you want to be a computer scientist? 9/19/2019

Is your goal to be a mundane programmer? 9/19/2019

Or a great leader and thinker? 9/19/2019

Everyday industry asks these questions. Boss assigns task: Given today’s prices of pork, grain, sawdust, … Given constraints on what constitutes a hotdog. Make the cheapest hotdog. Everyday industry asks these questions. 9/19/2019

Your answer: Um? Tell me what to code. With more sophisticated software engineering systems, the demand for mundane programmers will diminish. 9/19/2019

Soon all known algorithms will be available in libraries. Your answer: I learned this great algorithm that will work. Soon all known algorithms will be available in libraries. Your boss might change his mind. He now wants to make the most profitable hotdogs. 9/19/2019

Great thinkers will always be needed. Your answer: I can develop a new algorithm for you. Great thinkers will always be needed. 9/19/2019

How do I become a great thinker? Maybe I’ll never be… 9/19/2019

Learn from the classical problems 9/19/2019

Shortest path end Start 9/19/2019

Traveling salesman problem 9/19/2019

Knapsack problem 9/19/2019

There is only a handful of classical problems. Nice algorithms have been designed for them If you know how to solve a classical problem (e.g., the shortest-path problem), you can use it to do a lot of different things Abstract ideas from the classical problems Map your boss’ requirement to a classical problem Solve with classical algorithms Modify it if needed 9/19/2019

How to design an algorithm by yourself? Learn some meta algorithms What if you can NOT map your boss’ requirement to any existing classical problem? How to design an algorithm by yourself? Learn some meta algorithms A meta algorithm is a class of algorithms for solving similar abstract problems There is only a handful of them E.g. divide and conquer, greedy algorithm, dynamic programming Learn the ideas behind the meta algorithms Design a concrete algorithm for your task 9/19/2019

What is an algorithm? An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time. problem algorithm “computer input output

What is an algorithm? Algorithms are the ideas behind computer programs. An algorithm is the thing that stays the same regardless of programming language and the computing hardware 9/19/2019

What is an algorithm? (cont’) An algorithm is a precise and unambiguous specification of a sequence of steps that can be carried out to solve a given problem or to achieve a given condition. An algorithm accepts some value or set of values as input and produces a value or set of values as output. Algorithms are closely intertwined with the nature of the data structure of the input and output values 9/19/2019

How to express algorithms? Increasing precision Nature language (e.g. English) Pseudocode Real programming languages Ease of expression Describe the ideas of an algorithm in nature language. Use pseudocode to clarify sufficiently tricky details of the algorithm. 9/19/2019

How to express algorithms? Increasing precision Nature language (e.g. English) Pseudocode Real programming languages Ease of expression To understand / describe an algorithm: Get the big idea first. Use pseudocode to clarify sufficiently tricky details 9/19/2019

What is a program? How to cook? The algorithm Are you a programmer?

Pseudocode This is the pseudocode for a game of Monopoly

Flowcharts

Hey Jude "Hey Jude" is a song by the English rock band the Beatles, written by Paul McCartney and credited to Lennon–McCartney.

Flowcharts details

Problem: Find gcd(m,n), the greatest common divisor of two nonnegative, not both zero integers m and n