Courses tagged with "Computer Science" (671)
What do self-driving cars, face recognition, web search, industrial robots, missile guidance, and tumor detection have in common?
They are all complex real world problems being solved with applications of intelligence (AI).
This course will provide a broad understanding of the basic techniques for building intelligent computer systems and an understanding of how AI is applied to problems.
You will learn about the history of AI, intelligent agents, state-space problem representations, uninformed and heuristic search, game playing, logical agents, and constraint satisfaction problems.
Hands on experience will be gained by building a basic search agent. Adversarial search will be explored through the creation of a game and an introduction to machine learning includes work on linear regression.
Other topics covered in this software engineering course include:
- How to form, organize and manage small programming teams
- Introduction to design patterns: what they are and how to recognize opportunities to apply them
- Using Rails for more advanced features like third-party authentication and elegantly expressing design patterns that arise frequently in SaaS
There will be four homework assignments: two programming assignments, an open source assignment and one assignment about operations/deployment. There will also be several short quizzes. The videos and homework assignments used in this offering of the course were revised in October 2016.
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers basic iterable data types, sorting, and searching algorithms.
Looking to get started with computer science while learning to program in Python?
This computer science course provides an introduction to computer science that’s both challenging and fun. It takes a broad look at the field of computer science through a variety of demonstrations and projects. We’ll cover both low- and high-level concepts, from how the circuits inside a computer represent data to how to design algorithms, as well as how all of this information affects the technology we use today. Additionally, we’ll teach the basics of Python programming, giving us a a way to put our new CS knowledge into practice.
No need to know any programming before starting the course; we’ll teach everything you need to know along the way. All you need to start is a good grasp of algebra, and you can fall in love with both the concepts and the practice of computer science.
Today, computer graphics is a central part of our lives, in movies, games, computer-aided design, virtual reality, virtual simulators, visualization and even imaging products and cameras. This course, part of the Virtual Reality (VR) Professional Certificate program, teaches the basics of computer graphics that apply to all of these domains.
Students will learn to create computer-generated images of 3D scenes, including flybys of objects, make a real-time scene viewer, and create very realistic images with raytracing. We will start with a simple example of viewing a teapot from anywhere in space, understanding the basic mathematics of virtual camera placement. Next, you will learn how to use real-time graphics programming languages like OpenGL and GLSL to create your own scene viewer, enabling you to fly around and manipulate 3D scenes. Finally, we will teach you to create highly realistic images with reflections and shadows using raytracing.
This course runs for 6 weeks and consists of four segments. Each segment includes an individual programming assignment:
- Overview and Basic Math (Homework 0: 10% of grade)
- Transformations (Homework 1: 20% of grade)
- OpenGL and Lighting (Homework 2: 35% of grade)
- Raytracing (Homework 3: 35% of grade)
This term, students who earn a total score of 50% or greater will have passed the course and may obtain a certificate from UC San DiegoX.
This course will discuss the major ideas used today in the implementation of programming language compilers. You will learn how a program written in a high-level language designed for humans is systematically translated into a program written in low-level assembly more suited to machines!
This course introduces concepts, languages, techniques, and patterns for programming heterogeneous, massively parallel processors. Its contents and structure have been significantly revised based on the experience gained from its initial offering in 2012. It covers heterogeneous computing architectures, data-parallel programming models, techniques for memory bandwidth management, and parallel algorithm patterns.