Enroll in the latest computer science courses covering important topics in artificial intelligence, cyber security, software engineering, and big data. Add a portfolio of programming skills or get an overview of the field with Academic Square.

About this course


Do you want to become a better problem solver?

This Java course will provide you with a strong understanding of basic Java programming elements and data abstraction using problem representation and the object-oriented framework. As the saying goes, “A picture is worth a thousand words.” This course will use sample objects such as photos or images to illustrate some important concepts to enhance understanding and retention. You will learn to write procedural programs using variables, arrays, control statements, loops, recursion, data abstraction and objects in an integrated development environment.

This course is comprised of two 5-week parts.

Part 1 introduces programming fundamentals:

  • Problem solving
  • Primitive data types and arithmetic expressions
  • Object-oriented programming basics
  • Branching and Loops
  • Arrays

Part 2 covers the following topics:

  • String manipulation
  • File I/O
  • Simple event-driven programming
  • Recursion
  • Abstract data type
    s

What you'll learn

  • Take a “real-life” problem and abstract out the pertinent aspects necessary to solve it in an algorithmic manner.
  • Formulate formal solutions to well-defined problems using the logic of a programming language.
  • Implement formal solutions in Java using an integrated development environment.
  • Understand the basics of data abstraction using the object-oriented framework.

About this course


Today, computer graphics is a central part of our lives, in movies, games, computer-aided design, virtual simulators, visualization and even imaging products and cameras. This course 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.CSE167x teaches the foundations of computer graphics.

This course runs for 6 weeks and consists of four segments. Each segment includes an individual programming assignment:

  1. Overview and Basic Math (Homework 0: 10% of grade)
  2. Transformations (Homework 1: 20% of grade)
  3. OpenGL and Lighting (Homework 2: 35% of grade)
  4. 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.


FAQ

What is the format of the class?

The class will consist of lecture videos, brief exercises, and homework assignments. Each of the four segments of the course will have 2-3 lectures. Each lecture includes 3-5 lecture videos, which last between 10 and 20 minutes. There will be a brief exercise after each lecture video to help you test your understanding of the material.

Your score will be determined entirely by programming assignments for which you will receive immediate autograder feedback. You may submit your assignment to the autograder multiple times; only your last submission will count.

Programming projects are to be implemented individually without copying code from other students, largely identical online resources, or previous instances of the class. However, short of posting or sharing actual explicit code, you are encouraged to collaborate and discuss problems in the discussion forums.

Will the text of the lectures be available?

Yes. All of our lectures will have transcripts synced to the videos.

Do I need to watch the lectures live?

No. You can watch the lectures at your leisure. You can "work ahead" if you want to move faster than the due dates. Conversely, you can progress at a slower pace. Please note that certificates will only be awarded to students who obtain the requisite score by turning in assignments by the established deadlines.

How much does it cost to take the course?

Nothing: the course is free. If you expect to be doing a lot of graphics programming in the future, we would recommend the OpenGL and GLSL programming guides, but it is by no means required to purchase them. There are many free online resources for these topics, and we will be posting links to them.

What computer system do I need for the course?

The course material involves C++/OpenGL/GLSL programming that is portable. We provide skeleton code for all major platforms (Windows, Mac OS, Linux). This is a modern course involving programmable shaders, but any machine built in the last few years should be adequate. We provide many compilation hints and tips, and Homework 0 is to ensure you can compile and work with the autograder. You do need some kind of C++ development environment; we provide several resources to get you started for Homework 0. In the highly unlikely event you cannot get your machine to work, you will hopefully have adequate time to find another system.

Will I learn Maya/DirectX/3D Studio Max etc.?

This is a course on the foundations of computer graphics and covers concepts, not the intricacies of a particular software package. That said, you will be able to write complex interactive and offline 3D graphics programs at the end of the course in C++, OpenGL and GLSL.

Can I contact the Instructor or Teaching Assistants?

Yes, but not directly. The discussion forums are the appropriate venue for questions about the course. The instructors will monitor the discussion forums and try to respond to the most important questions; in many cases response from other students and peers will be adequate and faster.

I have a disability (visual/hearing etc.) Can I take the course?

In most cases, yes. We provide transcripts for all lectures. Many leading computer graphics researchers have had visual impairments like color-blindness. However, this being a computer graphics course that relies on visual image comparisons, we probably cannot provide adequate support for those who are legally blind.

I have a busy schedule this fall. Can I still take the course?

The course does require about 12 hours per week of work, and the assignments (where you are given two weeks) require the time. Certificates of achievement require a passing score. Of course, you are welcome to just go through the lectures or attempt some of the assignments if you are not interested in a certificate; we hope to provide something for everyone
.

What you'll learn

  • Understand the concepts of 3D graphics
  • Write and develop programs that create images of a 3D scene with lighting
  • Learn the basics of graphics programming with OpenGL and GLSL

ABOUT THIS COURSE 


In this course, you'll learn how to use Node-RED to augment the capabilities of your Watson Assistant chatbots by integrating them with services such as Watson Translate and Text to Speech. You'll also practice deployment of chatbots to Facebook Messenger.

Node-RED, which is built on Node.js, is a browser-based flow editor that makes it easy to wire together devices, APIs, and online services by simply dragging and dropping nodes on a palette. You then connect, or wire, the nodes to create flows that can be then deployed to the lightweight Node.js runtime with a single click.

Get hands-on experience in this course as you learn how to use Node-RED to augment the capabilities of your Watson Assistant chatbots. You will learn how to:

  • Convert speech to text
  • Analyze tone
  • Translate text into different languages
  • Send tweets through Twitter
  • Add audio and video capabilities
  • Set up a chatbot using the IBM Watson Assistant service and Facebook Messenger.
This course requires no programming experience
!

WHAT YOU'LL LEARN

  • Create a Node-RED application
  • Consume web services from Node-RED
  • Integrate Watson Assistant with other Watson services
  • Connect your Node-RED applications to external services like Twitter
  • Deploy your chatbots to Facebook Messenger


Working with Information Technology (IT) without the necessary background? Learn the fundamentals of Information Systems in a corporate environment

About this course

This is the first part of an introductory business information systems series, designed to help you pass the CLEP Information Systems and Computer Applications exam and introduce you to the amazing world of Information Technology.

In this course, you will learn the basic concepts of information systems and their application.

What you'll learn

In this course you will learn:

  • Fundamentals of office packages (word processor, spreadsheet, presentations and database manager).
  • The basic technical aspects of e-mail and conference systems.
  • Operating System fundamentals 
  • Operation of web browsers and Internet technologies.
  • Basic description of various business applications (Business Intelligence, ERP, CRM, GIS, SCM, DMS, EDI ....)

About this course

Skip Course Description

This is an introductory course to learn programming with Java designed to teach how to code good programs in Java, understanding “good” as both correct and efficient. Basic principles of software engineering will be introduced to make it easier for our future self and others to reuse code. Ethical issues and the intellectual property of our programs will also be addressed in the last part of this course. Examples and case studies will be provided, so that learners can implement simple but increasingly complex programs in Java.

Emphasis is put on immediate feedback and on having a fun experience. Programming knowledge is not only useful to be able to program today’s devices such as computers and smartphones. It also opens the door to computational thinking, i.e. the application of computing techniques to every-day processes.

This course is designed taking into account the subset and recommendations of the College Board in order to prepare learners for the Advanced Placement (AP) Computer Science A exam..

What you'll learn

  • Detect and correct common programming errors at compile time
  • Detect and correct common programming errors at run time using debugging tools
  • Check that the program does what it has to using unit testing processes
  • Compare the efficiency of two programs in terms of the resources used
  • Model simple programs using basic software engineering techniques
  • Determine if a program has been developed respecting ethical considerations