Computer science faculty

Mark Vellinga, M.A.

Professor of Computer Science
Department Chair

M.A., University of South Dakota
M.S., Northwest Missouri State University
B.A., Northwestern College (Iowa)

VPH 109


Professor Vellinga teaches a wide range of Northwestern’s computer science classes, from the introductory courses to the upper level courses in programming languages. A graduate of NWC, he has a Master of Arts degree in computer science and a Master of Science degree in school computer studies. Professor Vellinga has served as a site director and team coach for the Association of Computing Machinery (ACM) programming contest. Two of NWC's teams qualified and participated in the World Finals in Stockholm, Sweden (2008) and in Harbin, China (2009). Memberships include ACM, the Consortium for Computing in Small Colleges, the Association of Christians in the Mathematical Sciences, and the Institute of Electrical and Electronics Engineers.


  • Advanced Spreadsheets

    Advanced Spreadsheets

  • Computer Science I

    Computer Science I

    This is the first in a two-semester sequence of courses that introduces students to fundamental aspects of the field of computing; focusing on problem-solving, software design concepts and their realization as computer programs. Topics include procedural abstraction, control structures, iteration, data types and their representation. An introduction to a high-level language, for the purpose of gaining mastery of these principles, will be provided in lectures and hands-on laboratory experiences. Prerequisite: C- or better in MAT090, an ACT math score of 20 or above (SAT 480 or above), or a passing score on the MAT090 placement exam. (4 credits)
  • Computer Science II

    Computer Science II

    This course moves students into the domain of software design, introducing principles that are necessary for solving large problems. Here, the classical software design process serves as a basis for treating such topics as abstract data types, specifications, complexity analysis and file organization. Basic data structures and transformations are introduced as representative of the fundamental tools that are used to aid in this process. A high-level language will be used for the purpose of gaining mastery of these principles through lectures and independent hands-on laboratory experiences. Prerequisite: CSC171. (4 credits)
  • Enterprise Architecture

    Enterprise Architecture

    Provides a practical introduction to the management and administration of a computer system. This course covers what it takes to keep a computer system going and how to ensure that users can and do use the computer efficiently. Topics covered include managing users, managing networks, hardware, operating systems and software management, developing administration policy, ethics and various related topics. The Unix operating system is used to provide practical demonstration of the topics covered. A version of Unix that can operate on a 386 or better machine will be provided.Prerequisites: CSC171, 172,and 270.(2 credits; alternate years, consult department)
  • Electronic Commerce Development

    Electronic Commerce Development

    This course provides an introduction to electronic commerce strategy and the development and architecture of electronic business solutions and their components. Topics covered include the business models and economics associated with e-commerce, system design and implementation, building a Web interface for e- commerce, reliability, security concerns, and legal and ethical issues.Prerequisite: CSC172.(4 credits; alternate years, consult department)
  • Programming Languages

    Programming Languages

    This course discusses programming languages from a general viewpoint-what are the properties of all successful programming languages? Also discussed are various programming paradigms: iterative programming, object-oriented programming, functional programming, logic programming, concurrent programming, etc. Programming may be done all in one language (emulate other paradigms), in a few select languages (one for each paradigm), or in a large variety of languages.Prerequisites: CSC270 and 351.(4 credits; alternate years, consult department)
  • Senior Project

    Senior Project

    This course gives the student an opportunity to branch off into an area of their own selection. The student must obtain approval of a project proposal from a member of the department before registering for this course. The project will require planning, design, and implementation of a computer application in such a way as to integrate the material from computer science courses and courses outside computer science. Students with career concentrations or minors are encouraged to make use of materials from their other subject areas.(2 credits)

Professional experience

  • Professor of Computer Science since 1990


  • Association of Computing Machinery
  • Consortium for Computing in Small Colleges
  • Association of Christians in the Mathematical Sciences
  • Institute of Electrical and Electronics Engineers