Profile Image

Daniel Olivares, Ph.D.

Email: olivares@gonzaga.edu

Office: BC/ISE 011
Spring 2024 Office Hours:
Tuesday & Thursday
9:00AM - 10:45AM, 1:00PM - 1:45PM
and by appointment (and via Zoom).

Course Website: Canvas LMS

Personal Website: dmolivares.com

Phone: 509-313-5753


Current Courses

Spring 2024


CPSC 121 - Computer Science I
Spring 2024 Syllabus
Details
CPSC 331 - UI/UX Design
Spring 2024 Syllabus
Details

Past Courses

CPSC 121 - Computer Science I
Fall 2019, Spring 2020, Fall 2020, Spring 2021, Fall 2022, Spring 2024
Fall 2019 SyllabusSpring 2020 SyllabusFall 2020 SyllabusSpring 2021 SyllabusFall 2022 SyllabusSpring 2024 Syllabus
  • Techniques of problem-solving and algorithmic development. An introduction to programming. Emphasis is on how to design, code, debug, and document programs using good programming style.
  • Credits: 3.00
  • College: School of Engineering/Applied Science (SEAS)
  • Department: Computer Science
  • Prerequisites: None
CPSC 121 is a first course ("CS 1") in computer science for majors. In this course, we use the C++ programming language to explore the fundamental concepts, constructs, and techniques of modern computer programming, including functional decomposition, data structures, and software engineering. The primary aim of this course is to give you a thorough introduction into problem solving, algorithm discovery, and program design in C++. Some of these concepts include, but are not limited to, the following:
  • Algorithm design
  • Program design and implementation
  • Software processes
  • Data structure design and implementation

CPSC 122 - Computer Science II
Fall 2021, Fall 2023
Fall 2021 SyllabusFall 2023 Syllabus
  • A continuation of CPSC 121. An examination of pointers and recursion; an introduction to basic data structures and algorithmic analysis.
  • Credits: 3.00
  • College: School of Engineering/Applied Science (SEAS)
  • Department: Computer Science
  • Prerequisites: CPSC 121
CPSC 122 is a continuation of the first course in computer science (CPSC 121) for majors. In this course, we use the C++ programming language to continue to explore the fundamental concepts, constructs, and techniques of modern computer programming, including (but not limited to) sorting and searching algorithms, pointers and dynamic memory management, classes and data types, and recursion. The primary aim of this course is to give you a thorough introduction into problem solving, algorithm discovery, and program design in C++.

CPSC 331 - UI/UX Design (previously CPSC 311 - Human-Computer Interaction)
Spring 2020, Spring 2022, Spring 2023, Spring 2024
Spring 2020 SyllabusSpring 2022 SyllabusSpring 2023 SyllabusSpring 2024 Syllabus
  • Exploration of theories and principles related to human-computer interaction, user experience design, and user interface design. Development of techniques and practices for designing and evaluating software usability.
  • Credits: 3.00
  • College: School of Engineering/Applied Science (SEAS)
  • Department: Computer Science
  • Prerequisites: CPSC 122
Human-computer interaction (HCI) is a multidisciplinary field of study focusing on the design of computer technology and, in particular, the interaction between humans (the users) and computers. This course is designed as an introduction to the theory and practice of human-computer interaction, i.e., user interface and user experience design using human-centered methodologies. Through readings, discussions, hands-on activities, peer-reviews, and user interface design and evaluation projects, you will explore the key concepts, theories and methods of the area, including
  • Key principles and concepts for designing human-computer interfaces, along with the theories of human perception, cognition and learning that underlie them.
  • Human-centered (or user-centered) software design processes.
  • Early data gathering methods (field studies, questionnaires, interviews, contextual inquiry) for human-centered design.
  • Low and high-fidelity prototyping techniques.
  • Empirical methods for evaluating software (usability testing, controlled experiments).
  • Analytical methods for evaluating software (heuristic evaluation, cognitive walkthrough, KLM, GOMS).

CPSC 332 (previously CPSC 314) - Web Development
Fall 2020, Fall 2021, Fall 2022
Fall 2020 SyllabusFall 2021 SyllabusFall 2022 Syllabus
  • Techniques of web page development. An introduction to web programming. Emphasis is on web programming basics using well-established web structure and style.
  • Credits: 3.00
  • College: School of Engineering/Applied Science (SEAS)
  • Department: Computer Science
  • Prerequisites: CPSC 122
This course covers the basics of web programming and development. Students will be introduced to the history of the web, IP addresses, domain names, URLs and HTTP. Topics will focus on using the HTML5 standard, which uses HTML, CSS, and JavaScript to create web pages and web applications. The final third of the course will cover more advanced web programming topics and conclude with a final project and presentation.
CPSC 333 - Mobile App Development
Fall 2022, Fall 2023
Fall 2022 SyllabusFall 2023 Syllabus
  • An introduction to mobile application development.
  • Credits: 3.00
  • College: School of Engineering/Applied Science (SEAS)
  • Department: Computer Science
  • Prerequisites: CPSC 122
This course provides an introduction to mobile application development. The primary aim of this course is to provide students with a thorough introduction to designing and building native and/or cross-platform apps for mobile devices. The platform, frameworks/libraries, and development tools used in this course vary and are dependent on the current demand in industry. Topics include object-oriented programming, design patterns, user interface design and implementation, data storage, working with application programming interfaces, threading, camera and photos, and location and maps.
  • Develop a solution using an industry-standard integrated development environment (IDE)
  • Design and develop software using basic object-oriented (OO) programming techniques, including composition, inheritance, interfaces/protocols, and polymorphism
  • Design and develop software using common design patterns, including Model-View-Controller (MVC)
  • Develop a solution that uses a graphical user interface (GUI) framework and graphics packages
  • Design and implement complex user interfaces with storyboarding
  • Discuss modern frameworks and libraries for real-world mobile application development

CPSC 425 - Computer Graphics
Spring 2023
Spring 2023 Syllabus
  • An introduction to computer graphics.
  • Credits: 3.00
  • College: School of Engineering/Applied Science (SEAS)
  • Department: Computer Science
  • Prerequisites: CPSC 223 and MATH 231
Introduction to the use of graphics primitives within a higher level language to produce two and three-dimensional images; underlying mathematical operations used to implement standard graphics packages; practical experience with current graphics systems.

Publications

See a list of my publications on ORCID or on my personal website here.


Research

Computer Science Education, Human-Computer Interaction, Software Enginerring, Ubiquitous Computing

I am interested in researching the integration of technology into classrooms, the home, and everyday life. Specifically, integration and taking advantage of and technology use as a tool to enhance learning, collaboration, and quality of life by focusing on Human-Computer Interaction aspects.

See more here.


Education

Ph.D., Computer Science
2019

Washington State University - Pullman, WA


B.S., Computer Science
2011

Humboldt State University - Arcata, CA