Course Information 📝

Computer Science Program Learning Outcomes

While the individual CS courses I teach each have a set of unique learning objectives of their own, all of the computer science courses offered at the Mathematics and Computer Science Department of Westmont College share the following common Program Learning Objectives (PLOs):

Credit: Dr. Donold J. Patterson

Current Courses

Fall 2024

CS 128 Information Retrieval and Big Data

4 Units. Prerequisite: CS 030 Abstract Models for Concrete Problems Using Java.

This course traces the development of Big Data from its origins in search engines through cloud computing. The role of economic interests, adversarial forces, and user interface design in the shaping of the technology is explored. Students learn web crawling, indexing, and search ranking techniques. Recent frameworks for creating large scale data warehouses and analysis engines are introduced.

CS 144 Computer Organization and Hardware Architecture

4 Units. Prerequisite: CS 010 Design and Implementation of Solutions to Computational Problems.

Introduction to the hardware-software interface. Digital logic, data representation, computer arithmetic, software vs. hardware tradeoffs, instruction set architecture, addressing techniques, cache, virtual memory, and pipelining.

Past Courses

Spring 2024

CS 030 Abstract Models for Concrete Problems Using Java

4 Units. Prerequisite: CS 010 Design and Implementation of Solutions to Computational Problems.

This class introduces abstract data types (ADTs) and their implementations in Java. ADTs considered include: lists, stacks, queues, maps, trees and graphs. Sorting and searching algorithms. Big-O notation. Software testing and program verification. Discussion of ethical issues arising from the creation and use of computer programs. Note: a laptop is required for this course.

CS 195 Senior Seminar

4 Units. Prerequisite: senior standing as a computer science major or minor.

In this capstone class, students reflect on computer science as a discipline, the connections with other disciplines, the impacts of technology upon society, and ethical considerations introduced by computers. In the process of completing a major project, students consider marketing, design, implementation, testing, and maintenance. In this class, seniors complete and present their online portfolio. As the culmination of their program, students explore the transition to graduate school or the commercial sector.

CS 302 Advanced Programming and Problem Solving (Tabor College)

4 Units. Prerequisite: CS 201 Introduction to Programming and Problem Solving.

A continuation of CS 201. The improvement of design skills and programming style is emphasized through practice with increasingly complex data structures and algorithms. Students are introduced to several classic algorithms, pointers, and recursion.

NOTE this course has identical content to CS 030 at Westmont College. Lectures are broadcast on the YouTube channel @cs-with-mike.

Fall 2023

CS 105 Programming Languages

4 Units. Prerequisite: CS 010 Design and Implementation of Solutions to Computational Problems.

Language processors; data; binding time; operations; sequence control; referencing environments; scope of a variable; storage management; operating environment, syntax; translation.

CS 128 Information Retrieval and Big Data

4 Units. Prerequisite: CS 030 Abstract Models for Concrete Problems Using Java.

This course traces the development of Big Data from its origins in search engines through cloud computing. The role of economic interests, adversarial forces, and user interface design in the shaping of the technology is explored. Students learn web crawling, indexing, and search ranking techniques. Recent frameworks for creating large scale data warehouses and analysis engines are introduced.

CS 130 Creative Software Architectures for Collaborative Projects

4 Units. Prerequisite: CS 030 Abstract Models for Concrete Problems Using Java

When the scope of a software project exceeds a single programmer's capacity within a given time-frame, what sorts of skills and tools become necessary to support collaboration and coordination within teams? This course introduces students to the challenges of developing large-scale software artifacts. The approach taken involves the implementation of one or more large multi-person projects. Other topics include: software life-cycle, fundamental concepts of software design, modern language features, verification and validation techniques.

If you're looking for course information from when Mike taught at Cal Poly SLO, please refer to Looking for legacy mikeryu.com? page, or contact Mike directly.