Learn the basics of in-demand skills like programming, information technology, software engineering, systems architecture and management, and networking.

Examine the fundamentals of computers and how they are used to provide useful services.

Course Introduction:

"The goal of this course is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, natural science, and philosophy. Like mathematicians, computer scientists use formal languages to denote ideas – specifically, computations. Like engineers, they design things, assemble components into systems, and evaluate trade-offs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions. Like philosophers, they create logical constructs that can be carried out by a machine. This is not to deny the value of the arts so that non-practitioners can understand and employ the resulting systems. An important skill for a computer scientist is problem-solving. It involves the ability to detect problems, think creatively about solutions, and express solutions clearly and accurately. As it turns out, the process of learning to program computers is an excellent opportunity to develop and apply problem-solving skills. On one level, you will be learning to write Java programs, a useful skill by itself. On the other hand, you will use programming as a means to an end, that end being the creation of something useful to society."

Course Units:
  • Unit 1: Computer Programming
  • Unit 2: Variables and Operators
  • Unit 3: Input and Output
  • Unit 4: Methods and Testing
  • Unit 5: Conditionals and Logic
  • Unit 6: Loops and Strings
  • Unit 7: Arrays and References
  • Unit 8: Recursive Methods
Course Learning Objectives:
  • Explain what computers are and what they do;
  • Compare software and computers;
  • Express human logic in computer programming syntax;
  • Describe various variable types and their differences;
  • Choose means of performing operations on variables;
  • Recognize and repair errors in syntax and logic;
  • Explain the ways to get data into and out of a computer;
  • Demonstrate Java's basic services;
  • Dissect computer programs to reveal subtle errors;
  • Convert blocks of oft-used code into reusable methods;
  • State the difference between "logical" and "relational";
  • Cause programs to vary their activities as the input data changes;
  • Create programs that perform repetitive actions;
  • Explain how data should be grouped for a given analysis;
  • Explain various ways to acquire the values of specific elements within a data grouping; and 
  • Compare recursive processes to traditional looping;
Continuing Education Units: 2.6

Explore this detailed survey of computing and programming, with an emphasis on understanding object-orientation and the Java and C++ computer programming languages. We will use history, theory, and practice to deliver lessons that prepare you for a career in computer science.

Continuing Education Units: 5.1

Learn fundamental programming concepts using the Python 3 programming language, a high-level interpreted language that is easy to read write, with powerful libraries that provide additional functionality.

Continuing Education Units: 3.6

Learn the C++ computer programming language, with a focus on syntax for primitive types, control structures, vectors, strings, structs, classes, functions, file I/O, exceptions, and other programming constructs.

Continuing Education Units: 4.0

Learn the components of Bitcoin and how they work together to keep Bitcoin's open, decentralized system running. This course will build the foundation you need to use and work with Bitcoin and other cryptocurrencies.

Continuing Education Units: 1.8

Survey basic abstract data types, their associated algorithms, and how they are implemented. Topics discussed include the structures of stacks, queues, lists, sorting and selection, searching, graphs, and hashing; performance tradeoffs of different implementations; and asymptotic analysis of running time and memory usage.

Continuing Education Units: 3.8

Learn discrete mathematics in a way that combines theory with practicality. Major topics include single-membership sets, mathematical logic, induction, proofs, counting theory, probability, recursion, graphs, trees, and finite-state machines.

Continuing Education Units: 4.4

Get a broad, foundational introduction to the rapidly evolving field of artificial intelligence by learning how to build intelligent software solutions in today's business applications.

Course Introduction:

After using a really smart app that produced amazing results within seconds, you must have asked yourself: 'How did it do that?' After you take this course, you will be able to start answering that question yourself! This course provides you with the fundamentals of the rapidly evolving field of artificial intelligence. Topics we will cover include: Intelligent Agents Various kinds of machine learning models Search algorithms (including heuristic and uninformed search) Iterative improvement algorithms Game playing, logic and automated reasoning Knowledge bases Natural language processing, including generative AI Reasoning under uncertainty You will need to know how to program in a modern language like Python, C#, or Java, and how to apply libraries that are readily available to apply the concepts you learn.

Course Units:
  • Unit 1: What Is Artificial Intelligence?
  • Unit 2: Agent-Based Approach to AI
  • Unit 3: Machine Learning and Its Importance
  • Unit 4: Machine Learning Algorithms
  • Unit 5: Problem-Solving Methods in AI
  • Unit 6: Search Algorithms
  • Unit 7: Iterative Improvement Algorithms
  • Unit 8: Game-Playing Models
  • Unit 9: Natural Language Processing
  • Unit 10: Reasoning Agents
Course Learning Objectives:
  • Analyze the definition of 'intelligence', from the Turing test to the four basic orientations of modern AI;
  • Analyze the concept of 'agents' in contemporary AI business solutions;
  • Analyze the different types of 'agents' and their capabilities;
  • Describe the different kinds of machine learning algorithms and their significance in building AI business solutions;
  • Apply supervised machine learning algorithms and contemporary libraries to build AI business solutions;
  • Explain the principles of unsupervised machine learning and reinforcement learning models;
  • Apply general AI-based problem-solving methods and their computational characteristics;
  • Apply heuristically based search algorithms to improve their optimality;
  • Apply natural language processing concepts and techniques with existing libraries for analysis and generative applications;
  • Discuss the principles of logical reasoning and reasoning under uncertainty;
  • Explain the basics of two-person, adversarial game-playing;
Continuing Education Units: 4.8

Learn and master machine learning (ML) concepts, algorithms, and real-world applications while gaining hands-on experience building and evaluating ML models with Python.

Course Introduction:

This comprehensive course is designed to equip you with a strong foundation in machine learning (ML) through a systematic, step-by-step approach. This course covers the essential principles of supervised and unsupervised learning algorithms, providing a deep understanding of how machine learning models work and how they can be applied in real-world scenarios. You will explore the entire ML workflow, from data collection and preprocessing to model building and evaluation, ensuring you gain practical, hands-on experience at each stage.

Throughout the course, you will master key concepts in data preprocessing, feature engineering, and model evaluation techniques. We will cover a range of core algorithms, including regression, classification, and clustering, as well as evaluation metrics to help you assess model performance and make data-driven decisions. Practical exercises and Python-based implementations will reinforce your understanding and allow you to build predictive models. By the end of the course, you will be equipped to handle complete machine learning projects, from data preparation to evaluation, while ensuring your models are both effective and ethical.

In addition to the technical skills, this course emphasizes the importance of ethical decision-making in AI development. You will explore critical issues like bias, fairness, and accountability in machine learning, learning how to build models that are not only accurate but also responsible and equitable. Whether you want to enhance your career, pursue further studies, or contribute to the growing field of AI, CS207 provides you with the knowledge and skills necessary to create impactful and ethical machine learning systems.

Course Units:
  • Unit 1: Introduction to Machine Learning
  • Unit 2: Machine Learning Workflow
  • Unit 3: Data Preprocessing
  • Unit 4: Data Visualization
  • Unit 5: Supervised Learning – Regression
  • Unit 6: Supervised Learning – Logistic Regression
  • Unit 7: Unsupervised Learning – Clustering
  • Unit 8: Model Evaluation and Validation
  • Unit 9: Practical Implementation of ML Models
  • Unit 10: Ethical and Responsible AI
Course Learning Objectives:
  • Explain machine learning concepts, including supervised and unsupervised learning; 
  • Explain the ML workflow, including data collection, preprocessing, modeling, and evaluation; 
  • Apply data processing and visualization techniques to prepare data sets, interpret data, and perform feature extraction; 
  • Implement machine learning models, including regression, classification, and clustering; 
  • Identify overfitting, underfitting, and other challenges in machine learning models; 
  • Build end-to-end machine learning projects that include documented workflows and are reproducible; 
  • Explain the performance of machine learning models using basic metrics; Analyze ethical considerations in machine learning.
Continuing Education Units: 1.9

Learn data science using the Python programming language by looking at data processing, data analysis, visualization, data mining, and statistical models. By the end of this course, you will be able to implement Python code for these data science topics.

Continuing Education Units: 6.7

Learn basic concepts in applied cryptography and see how they are implemented in real-world programs.

Continuing Education Units: 5.0

Explore hardware/software components, assembly language, and the functional architecture and design of computers, with a focus on topics like instruction sets, processor arithmetic and control, Von Neumann architecture, pipelining, memory management, storage, and input/output.

Continuing Education Units: 4.8

Learn how to apply an engineering approach to computer software development by focusing on software principles, lifecycle models, requirements and specifications, architecture and conceptual model design, detailed design, implementation, validation and verification, quality assurance, configuration control, project management, tools, and environments.

Continuing Education Units: 3.6

Examine how operating systems and design have evolved as changes in hardware and software led to contemporary operating systems. Topics include basic OS concepts, methods of OS design and construction, process coordination, management, and algorithms for CPU scheduling, memory, and general resource allocation.

Continuing Education Units: 12.0

Explore the hardware, software, and architectural components involved in computer communications in local area networks by reviewing the basics of computer networks, switching, routing, protocols, and security.

Continuing Education Units: 3.8

Learn about database architecture and implementation by exploring Structured Query Language (SQL), including topics like file structures and access methods; database modeling, design, and user interface; the components of database management systems; and information storage and retrieval.

Continuing Education Units: 4.2

Learn the principles of information security to protect the confidentiality, integrity, and availability of information. Discuss the modes of threats and attacks on information systems, threat mitigation, cryptography, user identification and authentication, access control, privacy laws, and more.

Continuing Education Units: 4.6