Download presentation
Presentation is loading. Please wait.
1
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
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
3
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
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
5
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.
6
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?
7
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.
8
Further CS Courses Course numbers in right hand corner
Blue and underlined terms can be explored in Wikipedia or on the Internet.
9
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.
10
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.
11
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.
12
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.
13
CSCI 315 Operating Systems Operating systems – Systems for managing computer resources and providing the basis of a usable system.
14
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
15
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.
16
CSCI 349 Data Mining Data mining – Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval.
17
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.
18
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.
19
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)
20
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
21
CSCI 379 AI &Cognitive Science A branch of AI (artificial intelligence concentrating on the cognitive science) Model human behavior, reactions, interactions with outside world
22
Image Processing Acquire, manipulate, and store images
CSCI 379 Image Processing Acquire, manipulate, and store images Apply image process techniques to other areas
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.