Mark Haselhoff '12 Professor of Practice in Computer Science


M.S., Georgia Institute of Technology
B.A., Northwestern College

Ramaker 128

Before joining the computer science department as a full-time professor, Mark taught as an adjunct professor while serving as the college’s web development manager and, previously, on the computing services staff. A Northwestern graduate, he was a member of the college's student computer programming team that competed in the Association for Computing Machinery International Collegiate Programming Contest in China—an event to which only the top 100 college-level teams in the world are invited. He completed a master's degree in computer science at Georgia Institute of Technology in 2017.

CSC120 - Business Data Analysis using Spreadsheets

This course teaches students to use spreadsheets to organize, calculate, analyze, and report on business data. Topics include using built-in statistical, logical, lookup, and financial functions, writing custom formulas and conditional formulas, using built-in data analysis tools, presenting information with charts and graphs, creating PivotTables and PivotCharts, exporting and importing data to and from other applications, sharing data on the World Wide Web, and using macros to automate tasks. The course will culminate by developing key performance indicators (KPIs) and dashboards. (2 credits)

CSC270 - Computer Organization

This course explores architecture and computer design issues in modern computers. Part of the course is spent looking at the basic building blocks used to design and build a computer. The rest of the course deals with how to work with the computer at the level of the central processing unit, main memory and registers. Programming assignments are done in assembly language to see what commands the computer really understands.Corequisite: CSC172.(4 credits; alternate years, consult department)

CSC300 - 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)

CSC331 - Cybersecurity

This course will introduce the topic of computer security. Topics covered will include user authentication and access control, malicious software, firewalls, intrusion detection, buffer overflows, and website security. The human aspects of security including legal and ethical concerns will also be examined. Prerequisite: CSC172WI. (4 credits; alternate years, consult department)

CSC351 - Data Structures

This course deals with data structures and their algorithms. Emphasis is given to good data abstraction and efficiency. The data structures covered include arrays, linked lists, trees, graphs and strings. Other topics covered may include design patterns, analysis of algorithms, and complexity classes. Programming is done in an object-oriented language.Prerequisite: CSC172.(4 credits; alternate years, consult department)

CSC361 - Networking

This course introduces the student to the field of computer networking. Students will develop an understanding of the general principles of computer communication as they are worked out in an appropriate protocol suite. Specific attention will be paid to principles of architecture, layering, multiplexing, addressing and address mapping, routing and naming. Problems considered include the writing of network software, the physical construction of networks, the Internet and its future development, and network security.Prerequisite: CSC172.(4 credits; alternate years, consult department)

CSED500 - Problem Solving and Algorithms

This course focuses on using computer-programming techniques to build robust computer programs. The course emphasizes a consistent methodology for designing, developing, testing, and refining code, with a primary focus on implementing this methodology in a classroom setting. A text-based procedural and/or object-oriented language will be used to implement solutions to the programming problems. Several classic algorithms will be introduced, with solutions featuring dynamic data structures and complex data types. Multiple solutions will be compared and contrasted to determine their relative strengths and weaknesses. (4 credits)

Lecturer in Computer Science, Northwestern College

Web Developer, Northwestern College

Computer Support Specialist, Northwestern College

Association for Computing Machinery

Northwestern College team member, World Finals of the Association for Computing Machinery (ACM) International Collegiate Programming Contest, Harbin, China, 2010