Big Ideas in Computer Science

Slides:



Advertisements
Similar presentations
Course Outline Presentation Term: F09 Faculty Name : Asma Sanam Larik Course Name :INTRO TO COMPUTING Course Code : CSE145 Section :1 Semester : 1.
Advertisements

Project Lead the Way An Orientation American High School.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Computer Science It’s more than programming Eric Lantz.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
Introductory Computer Science Courses Past experiences & thoughts Haakon Ringberg, Thomson Research Paris & Princeton University.
The Education of a Software Engineer Mehdi Jazayeri Presented by Matthias Hauswirth.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
Course Introduction CS 1037 Fundamentals of Computer Science II.
Data Structures Introduction. What is data? (Latin) Plural of datum = something given.
NSF Foundations of Hybrid and Embedded Software Systems UC Berkeley: Chess Vanderbilt University: ISIS University of Memphis: MSI A New System Science.
Computer Science Prof. Bill Pugh Dept. of Computer Science.
Discrete Structures for Computer Science Ruoming Jin MW 5:30 – 6:45pm Fall 2009 rm MSB115.
Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
CS 1 with Robots CS1301 – Where it Fits Institute for Personal Robots in Education (IPRE)‏
Data Structures and Programming.  John Edgar2.
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013.
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
Introduction to Computer and Programming CS-101 Lecture 6 By : Lecturer : Omer Salih Dawood Department of Computer Science College of Arts and Science.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
C OMPUTER S CIENCE, C OMPUTER E NGINEERING, I NFORMATION T ECHNOLOGY AND S YSTEMS, F LOW OF C ONTROL, B ATCH AND I NTERACTIVE P ROCESSING Week 5 Mr. Mohammed.
Relevance of Maths for CS John Barnden School of Computer Science University of Birmingham Intro to Maths for CS 2013/14.
CSCA48 Course Summary.
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL 103.
Korea Advanced Institute of Science and Technology, Dept. of EECS, Div. of CS, Information Systems Lab. 1/10 CS204 Course Overview Prof.
Relationships Between Structures “→” ≝ “Can be defined in terms of” Programs Groups Proofs Trees Complex numbers Operators Propositions Graphs Real.
The Beauty and Joy of Computing Lecture #3 : Creativity & Abstraction UC Berkeley EECS Lecturer Gerald Friedland.
CS212: DATA STRUCTURES Lecture 1: Introduction. What is this course is about ?  Data structures : conceptual and concrete ways to organize data for efficient.
Major Disciplines in Computer Science Ken Nguyen Department of Information Technology Clayton State University.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
CSE 190p wrapup Michael Ernst CSE 190p University of Washington.
Master’s Degree in Computer Science. Why? Acquire Credentials Learn Skills –Existing software: Unix, languages,... –General software development techniques.
Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of Computer Science Dalhousie University.
By: Nelson Webster. Algorithm Engineers Algorithm engineers study the effectiveness and efficiency of procedures of solving problems on a computer.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
CS 1 with Robots CS1301 – Where it Fits Institute for Personal Robots in Education (IPRE)‏
Lecture 1 Data Structures Aamir Zia. Introduction Course outline Rules and regulations Course contents Good Programming Practices Data Types and Data.
CS 2130 Computational Structures (Discrete Mathematics for Computing)
Sub-fields of computer science. Sub-fields of computer science.
CSC 427: Data Structures and Algorithm Analysis
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
Why study programming languages?
CSC 321: Data Structures Fall 2016
CSC 321: Data Structures Fall 2017
Types for Programs and Proofs
A Level Computing AQA (7517)
课程名 编译原理 Compiling Techniques
Ch. 11 Theory of Computation
CS 21a: Intro to Computing I
WELCOME TO DIGITAL & computer SCIENCE
CS302 Data Structures Fall 2012.
Discrete Mathematics and Its Applications
CSE 142 vs CSE 143 CSE 142 CSE 143 You learned how to write programs and decompose large problems with: Print statements Methods Control Structures.
Objective of This Course
Chapter 0: Introduction
Python Camp Alan led this session looking at slicing strings and allowing further practice. Session 10: The Examined Component Specifications Overview.
CS1301 – Where it Fits Institute for Personal Robots in Education
CS1301 – Where it Fits Institute for Personal Robots in Education
CSC 321: Data Structures Fall 2018
Discrete Mathematics in the Real World
CS1301 – Where it Fits Institute for Personal Robots in Education
COP3530- Data Structures Introduction
Introduction to Artificial Intelligence Instructor: Dr. Eduardo Urbina
Discrete Mathematics and Its Applications
DAA - Introduction Dr. Sashikala Mishra Associate Professor Department of Computer Engineering Hope Foundation’s INTERNATIONAL INSTITUTE OF INFORMATION.
CSCE156: Introduction to Computer Science II
Presentation transcript:

Big Ideas in Computer Science Final Project due Tuesday December 5th 11:55 pm Final Exam in Dana 115 Wednesday December 13th 7:30 – 10:30 pm More emphasis on content after exam 2

CSCI 203, more or less… Functions & Data Recursion growing trees Recursion Representation (binary, ascii) Caesar cipher Circuit design & Hmmm 4-bit multiplier Loops, 2D arrays Mandelbrot, Life Lists, Dictionaries, Files Word frequency Objects and Classes Date, Connect 4 Easy, hard, and impossible problems; Big Oh; Computability Finite state machines; Uncomputable functions

Big IDEAS in Computer Science Algorithms & Functional Abstraction Algorithms are the "recipes" for solving problems Three "styles" of algorithms: - Functional (recursive) - Imperative (loops, mutation) - Object oriented (classes, overloading) Building blocks of algorithms: - Data – variables, lists - Conditionals (if statements) - Repetition - recursion OR lisp comprehensions OR iteration (while and for statements) - Functions turtle graphics… Mandelbrot, Life Date, Connect 4

Big IDEAS in Computer Science Data Abstraction 4-bit multiplier, other circuits Everything is 1s and 0s Assembly language is human-readable machine code (1s and 0s) Lists, dictionaries, files Classes and Objects Text/string representation Event-based processing Hmmm programs Word frequency Date, Connect 4 Caesar cipher Robots

Big IDEAS in Computer Science Artifact Creation: Programming Different programming languages can be used to implement an algorithm (e.g., Hmmm, Python) A good design is critical. Debugging is a necessary skill in programming. Want code to be readable. Good style is important in programming. Code a little. Test a lot! Extracting useful info from documentation.

Big IDEAS in Computer Science Theory There are (theoretical and practical) limits to what can be solved computationally The Halting Problem Finite State Machines Is there anything left to learn?

Big IDEAS in Computer Science Computing is a Human Endeavor And ALIEN ones! We write programs to solve human problems Image Manipulation/Compression Statistical prediction Modeling + investigating phenomena User Interfaces are Important (and hard to design) Final Project an experience in user interface design.

Further CS Courses Course numbers in right hand corner Blue and underlined terms can be explored in Wikipedia or on the Internet.

Algorithms and Data Structures CSCI 204, 311, 350 Algorithms and Data Structures Algorithms* - Recursive algorithms - Functional programming - Imperative programming - Object-oriented programming Data Structures - lists, dictionaries, stacks, queues, trees, binary trees, heaps [For search, add (abstract data type) to each.] “Representation is the essence of Programming.” Fred Brooks DS: Sorted linked list vs. unsorted linked list and cost of insertions/searches ALGO: Sorting Shortest paths Devising methods and analyzing their efficiency * Blue and underlined terms can be explored in Wikipedia or on the Internet.

Software Engineering CSCI 205 Software engineering – The principles and practice of designing, developing, and testing programs, as well as proper engineering practices. Algorithm design – Using ideas from algorithm theory to creatively design solutions to real tasks. Computer programming – The practice of using a programming language to implement algorithms. Managing software projects with programming teams. Formal methods – Mathematical approaches for describing and reasoning about software designs. Formal methods – Mathematical approaches for describing and reasoning about software designs. Software engineering – The principles and practice of designing, developing, and testing programs, as well as proper engineering practices. Algorithm design – Using ideas from algorithm theory to creatively design solutions to real tasks. Computer programming – The practice of using a programming language to implement algorithms. Human–computer interaction – The study and design of computer interfaces that people use. Reverse engineering – The application of the scientific method to the understanding of arbitrary existing software.

Computers and Society Impact of computing on society CSCI 240, 245 Computers and Society Impact of computing on society Legal, economical and ethical issues of computing. Impact on democracy and governments.

Programming Languages and Compilers CSCI 208, 331 Programming Languages and Compilers Compiler theory – Theory of compiler design, based on Automata theory. Programming language pragmatics – Taxonomy of programming languages, their strength and weaknesses. Various programming paradigms, such as object-oriented programming. Programming language theory Formal semantics – rigorous mathematical study of the meaning of programs. Type theory – Formal analysis of the types of data, and the use of these types to understand properties of programs — especially program safety. Compiler theory – Theory of compiler design, based on Automata theory. Programming language pragmatics – Taxonomy of programming languages, their strength and weaknesses. Variousprogramming paradigms, such as object-oriented programming. Programming language theory Formal semantics – rigorous mathematical study of the meaning of programs. Type theory – Formal analysis of the types of data, and the use of these types to understand properties of programs — especially program safety.

CSCI 315 Operating Systems Operating systems – Systems for managing computer resources and providing the basis of a usable system.

Computer Architecture CSCI 206, 320 Computer Architecture Computer architecture – The design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystem (and the bus connecting them). Optical computing Quantum computing DNA-based computing

CSCI 341 Theory of Computation Automata theory – Different logical structures for solving problems. Computability theory – What is calculable with the current models of computers. Proofs developed by Alan Turing and others provide insight into the possibilities of what may be computed and what may not. Computational complexity theory – Fundamental bounds (especially time and storage space) on classes of computations. Quantum computing theory – Explores computational models involving quantum superposition of bits. Automata theory – Different logical structures for solving problems. Computability theory – What is calculable with the current models of computers. Proofs developed by Alan Turing and others provide insight into the possibilities of what may be computed and what may not. List of unsolved problems in computer science Computational complexity theory – Fundamental bounds (especially time and storage space) on classes of computations. Quantum computing theory – Explores computational models involving quantum superposition of bits.

CSCI 349 Data Mining Data mining – Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval.

CSCI 305 Databases Relational databases – the set theoretic and algorithmic foundation of databases. Distributed databases – a database distributed across a network that is viewed by the user as one. Relational databases – the set theoretic and algorithmic foundation of databases. Data mining – Study of algorithms for searching and processing information in documents and databases; closely related toinformation retrieval.

CSCI 362, 363 Networks and Security Networking – Algorithms and protocols for reliably communicating data across different shared or dedicated computers, often including error correction. Computer security – Practical aspects of securing computer systems and computer networks. Cryptography – Applies results from complexity, probability and number theory to invent and break codes, and analyze the security of cryptographic protocols. Networking – Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including error correction. Computer security – Practical aspects of securing computer systems and computer networks. Cryptography – Applies results from complexity, probability and number theory to invent and break codes, and analyze the security of cryptographic protocols.

Human–Computer Interaction CSCI 379 Human–Computer Interaction Human–computer interaction (HCI)– The study and design of computer interfaces that people use. Design of Graphical User Interfaces (GUI)

Quantifying Data Privacy CSCI 379 Quantifying Data Privacy Study of data privacy in the age of internet Quantify the issues of data privacy Read and discuss contemporary research in data privacy

CSCI 379 AI &Cognitive Science A branch of AI (artificial intelligence concentrating on the cognitive science) Model human behavior, reactions, interactions with outside world

Image Processing Acquire, manipulate, and store images CSCI 379 Image Processing Acquire, manipulate, and store images Apply image process techniques to other areas