CSUMB Logo

CSUMB ILP PORTFOLIO

- William Gillihan -

 
 
 

William Gillihan

Programmer Analyst | Quality Systems

E. & J. Gallo Winery

Computer Science | Software Engineering

California State University Monterey Bay

Summa Cum Laude

Proud to be a part of the Gallo team and working at the world's largest winery in the information technology department. Experienced through working in many capacities across the entire winery. Computer Science major with a concentration in Software Engineering at California State University Monterey Bay. An avid problem solver who enjoys tackling challenges. Passionate about programming, and determined to create a better quality of life for others using those skills. Can produce code on my own, but also enjoy working in collaborative environments such as Agile or Pair Programming. Always striving to understand the business domain, not only well enough to develop software for it, but also to become one of its authorities. If time permits, freelance as web developer for a full stack development firm. ˙xoq ǝɥʇ ɟo ǝpᴉsʇno ʞuᴉɥʇ sʎɐʍll∀ LinkedIn | GitHub | Learning Journal

Home ☝
 
 
 

Core

Major Learning Outcomes

Core Outcome 1: Professional Communication & Development

Plan and assess personal career options and develop communication skills.

  • Acquire, analyze and use information about the range of career possibilities, industry trends in computer science and information technology and its related fields to make career planning decisions.
  • Use critical thinking skills to plan and assess personal career and further study goals and design educational experiences directed to those goals.
  • Use written and oral communication to deliver persuasive viewpoint and technology content to multiple audiences.
  • Acquire, analyze and use information about computer sciences and information technology to describe and speculate on the impact of digital communications technology on local and global communities.

Satisfied With:
  • CST 300: Major Proseminar

Core Outcome 2: Knowledge of Computers & Networks

Demonstrate an understanding of the fundamentals of computer architecture, operating systems and networks.

  • Describe the history of computers and computing.
  • Explain how a computer represents and transmits information, how a computer's parts and components are organized and interfaced, basic components of an operating system and basic components of local area networks and wide area networks.
  • Analyze and design simple circuits using digital electronics and logic gates.
  • Describe the structure and organization of a modern microprocessor, and the sequence of operations in a typical instruction execution.
  • Demonstrate a basic understanding of Assembly Language programming.
Satisfied With:
  • CST 311: Intro to Computer Networks

Core Outcome 3: Programming & Problem Solving

Analyze and solve problems using a programming language.

  • Demonstrate the ability to develop algorithms and computer programs to solve problems by systematically decomposing a complex programming problem into manageable, well-documented steps that results in a design for the problem solution.
  • Demonstrate that the program compiles and executes correctly for a given set of data.
  • Demonstrate programming competency in a variety of programming structures, including arithmetic operations, control structures and loops, input/output operations including file I/O, the use of function calls, and the use of arrays and other storage types.
  • Debug a program using appropriate debugging strategies.
  • Produce a complete set of documentation for a program.
Satisfied With:
  • CST 231: Problem-Solving/Programming

  • CST 238: Intro to Data Structures

Core Outcome 4: Mathematics for Computing

Uses mathematical concepts and constructs to express ideas and solve problems in computer science, and to communicate quantitative information.

  • Use mathematical ideas to solve problems in Computer Science and Information Technology.
  • Use mathematical thinking and models, charts, graphs, tables, figures, equations, and appropriate technologies to express ideas and concepts.
  • Demonstrate an understanding of discrete mathematical concepts used in computing: Articulate and apply the concepts of binary numbers, combinatorics, logic, truth tables, graph theory and algorithms to problems in Computer Science and Information Technology.
  • Analyze and evaluate the mathematical thinking and strategies of others.
Satisfied With:
  • MATH 150: Calculus I

  • MATH 151: Calculus II

  • MATH 170: Discrete Mathematics

Core Outcome 5: Interaction Design

Demonstrate effective use of computer-based tools used in the design and creation of interactive applications and electronic media.

  • Design, create, and edit electronic images, sounds, videos, text, and motion.
  • Use multimedia authoring tools to design, manage, and execute an interactive multimedia project.
Satisfied With:
  • CST 205: Multimedia Design and Programming

CST300

Major Professional Seminar

Learning Outcome: Learn writing, presentation, research, and critical-thinking skills within the diversified fields of information technology and communication design. Students learn how to analyze, predict, and articulate trends in the academic, public service, and private enterprise related to their majors. Students write two major papers, generate a preliminary capstone idea and give a combination oral/multimedia presentation before both a small and large audience.

Output: Industry Analysis Paper

CST205

Multimedia Programming

Learning Outcome: Introduces design, creation, and manipulation of interactive applications and electronic media for communication purpose. Focuses on creating media, understanding media concepts, and manipulating the created media using basic programming concepts of control flow, functions, expressions and data types in the Python language. Students acquire a basic understanding for digital media formats, how to design, create such media using basic programming skills.

Output: Game developed with Python: Wheel of Python

Code: Click Here

CST311

Intro To Computer Networks

Learning Outcome: Survey of Telecomm and Data Comm Technology Fundamentals, Local Area Network, Wide Area Network, Internet and internetworking protocols including TCP/IP, network security and performance, emerging industry trends such as voice over the network and high speed networking. Designed as a foundation for students who wish to pursue more advanced network studies including certificate programs. Includes hands-on networking labs that incorporate Cisco CCNA lab components. ​

Output: Final Exam

Core MLO's ☝
 
 
 

Concentration

Major Learning Outcomes

Software Engineering Concentration

SE Outcome 1: Advanced Programming 

Apply appropriate data structures and tools in the design of software.

  • Articulate and apply object-oriented programming concepts, recursion, lists, queues, searching and sorting algorithms and asymptotic notations to provide solutions to practical computing problems.
Satisfied With:
  • CST 338: Software Design

SE Outcome 2: Specialized Programming

Apply programming skills to a specialized application.

  • Utilize professional level platforms and tools to produce software systems that meet specified user needs and constraints.
  • Evaluate the software system produced for usability, efficiency and accuracy.
  • Articulate industry trends in the particular domains.
Satisfied With:
  • CST 336: Internet Programming

  • CST 370: Design&Analysis of Algorithms

SE Outcome 3: Theory of Computing

Analyze and apply appropriate algorithms to computing problems.

  • Articulate algorithm development criteria.
  • Analyze algorithms for their spatial and temporal efficiency.
  • Develop new algorithms or improve existing ones to address specific computing problems.
Satisfied With:
  • CST 338: Software Design

  • CST 370: Design&Analysis of Algorithms

SE Outcome 4: Planning, Analysis and Production of Software Application

Demonstrate the ability to analyze, plan and produce a complete software application.

  • Articulate the software system development life cycle and its characteristics.
  • Apply best practices regarding project management.
  • Analyze needs and constraints of complex software system design.
  • Write a project proposal, a project report and an operating manual.
  • Collaborate with team members to implement a large software system.
  • Understand and apply modern software production practice and tools such as component-based programming, integrated development environment, version control and testing.
Satisfied With:
  • CST 438: Software Engineering

CST336

Internet Programming

Learning Outcome: Provides students with dynamic web application development skills, focusing on the PHP, MySQL, and JavaScript. Coverage includes the Internet architecture, XHTML, CSS, programming with PHP, database and MySQL, and client-side programming with JavaScript.

Output: CST 336 Home Page

CST338

Software Design

Learning Outcome: Provides students with the fundamental concepts to develop large-scale software, focusing on the object-oriented programming techniques. Coverage includes the introduction to Java programming language, object-oriented programming, software life cycle and development processes, requirements analysis, and graphical user interface development.

Output: MVC Android SQLite Product Manager
Code: https://github.com/wgillihan/MVC-Android-SQLite-Product-Manager
UML: MVC Android SQLite Product Manager
Output: Android MVC Shopping Cart
Code: https://github.com/wgillihan/Android-MVC-Shopping-Cart
UML: Android MVC Shopping Cart
Output: MVC Card Game
Code: https://github.com/wgillihan/MVC-Card-Game
UML: MVC Card Game

CST370

Design & Analysis of Algorithms

Learning Outcome: Students learn important data structures in computer science and acquire fundamental algorithm design techniques to get the efficient solutions to several computing problems from various disciplines. Topics include the analysis of algorithm efficiency, hash, heap, graph, tree, sorting and searching, brute force, divide-and-conquer, decrease-and-conquer, transform-and-conquer, dynamic programming, and greedy programming.

Output: Final Project part 1
Code: https://github.com/wgillihan/CST-370-Final-Project-1
Output: Final Project part 2
Code: https://github.com/wgillihan/CST-370-Final-Project-2

CST438

Software Engineering

Learning Outcome: Prepares students for large-scale software development using software engineering principles and techniques. Coverage includes software process, requirements analysis and specification, software design, implementation, testing, and project management. Students are expected to work in teams to carry out a realistic software project.

Output: Final
Code: https://github.com/wgillihan/CST-438-Final
Output: Group Project
Code: https://github.com/wgillihan/CST-438-Group-Project
Output: Project Report

Concentration MLO's ☝
 
 
 

Final

Major Learning Outcomes

Final Outcome 1: Service to the Community

Demonstrate the ability to combine knowledge in the discipline and community experiences to finish a community-based project.

  • Demonstrate an understanding of a community problem and a need for sevice and/or support.
  • Apply the skills and knowledge developed in the curriculum to make a meaningful contribution to the solution of the problem.
Satisfied With:
  • CST 361S: Technology Tutors/Service Learning

Final Outcome 2: Professional Communications

Demonstrate professional communication skills in written and oral form.

  • Compose a capstone proposal with background research, methods, details description of implementation steps, budget, schedule, risks and evaluation plan.
  • Present the background, methods, requirements, process and conclusion of the capstone project clearly in written and oral formats.
Satisfied With:
  • CST 499: Senior Capstone Project

Final Outcome 3: Capstone Project: Culminating Experience

Create a comprehensive project according to an approved set of specifications that represents the culmination of CSUMB experiences in the major and showcases an achievement of professional level work.

  • Complete a capstone project proposal that conforms to the ITCD capstone specifications.
  • Finish the capstone project according to the proposal.
  • Apply basic project management skills.
  • Evaluate the solution according to a specified set of criteria.
Satisfied With:
  • CST 499: Senior Capstone Project

Final Outcome 4: Breadth of Knowledge

Demonstrate breadth of knowledge outside of selected concentration of CSIT (CSIT elective course(s)).

Satisfied With:

  • CST 234: Intro to Operating Systems

  • CST 237: Computer Architecture

  • CST 363: Databases

Final Outcome 5: Ethics and Current Issues in the Major

Through an ethical perspective, students examine the impact of current and future information technologies on economics and culture in society.

  • Demonstrate an understanding of the issues regarding the impact of current and future information technologies on social formworks such as economics, education, governance, globalization and social justice.
  • Articulate code of conduct and reflect professional ethics in the technology fields.
  • Analyze case studies in current issues and professional ethics.
Satisfied With:
  • CST 373: Ethics in Communication & Technology

CST361S

Service Learning

Learning Outcome: A service learning course in which students apply computer literacy, multimedia design, and technology to assist schools, nonprofit organizations, and community agencies. The theme for the course is "Bridging the Digital Divide." Note: students must participate in required service placements with hours to be arranged. Students must be able to create and manage a web site.

​ Output: Service Learning Final Report

CST363

Introduction to Database Systems

Learning Outcome: This course provides balanced coverage of database use and design,focusing on relational databases. Students will learn to design relational schemas, write SQL queries, access a DB programmatically,and perform database administration. Students will gain a working knowledge of the algorithms and data structures used in query evaluation and transaction processing. Students will also learn to apply newer database technologies such as XML, NoSQL, and Hadoop.

Output: Final Project
Code: https://github.com/wgillihan/CST-363-Final-Project
Output: Final Project Diagrams and Charts
Output: Final

CST373

Ethics in Technology

Learning Outcome: Investigates through an ethical perspective how communication technology affects our lives. Discusses individual and institutional values represented through technological choices. Using case studies and current events, explores such issues as intellectual property rights, information access and privacy, and the digital divide.

Output: Resolving VW’s Ethical Challenges with Software Cheating Emissions Testing

CST499

Capstone

Learning Outcome: Students will work on a project in large groups (up to 5 students in each group), developing requirements specification, a solution plan followed by design and implementation of the solution. The problem statement for the projects will be selected by the faculty. Faculty will also play the role of a project manager directing the schedule and deliverables for these projects.

Output: Client Website http://newhope-recovery.org/
Output: Client Video Conferencing Landing Page https://newhope-recovery.zoom.us
Output: Client Bulletin Board https://bb.newhope-recovery.org/
Output: Capstone Proposal
Output: Capstone Report (parts 1 & 2 of 3 ~ update #3 to follow)
Final MLO's ☝