The objective of the department is that all students completing a major in Computer Science shall demonstrate:
- competence in programming: problem analysis, solution design, debugging, documentation;
- broad knowledge of the historical origins and current state of the art of computing technology, including computer architecture, operating systems, and applications software;
- a strong work ethic, including the commitment to meeting deadlines, accepting and responding to critiques and suggestions, and, when required, working effectively as a member of a team;
- ability to work and learn independently;
- effective communication and presentation skills;
- understanding of the organizational context in which information systems operate (information systems emphasis) and/or ability to develop and apply mathematical models to solve problems (mathematical emphasis).
The Computer Science major is designed for that student who wishes to develop a broad understanding of computer applications as well as demonstrated skills in computer programming and systems design. The computer science core is supplemented by one of two concentrations: an Information Systems emphasis, focusing on the use of information technology as a tool to support the missions of formal organizations, and a Mathematics emphasis, focusing on the use of computing technology to solve mathematical, engineering, and scientific problems. A major or minor in computer science also provides a valuable complement to other majors.
Computer Science Major:
Core (28-31 hours) CSC 210, 331, 344, 354, 366, 464, 484 or 490, MTH 210 or SOC 295, and one of the following emphases: Information Systems Emphasis (19 hours): ACC 100, 110, 321 or 342 or 351 or 373, BUS 330 or BUS 351 or SOC 351, CSC 250, MTH/ECO 374. Mathematical Emphasis (23-24 hours): One additional upper division computer science course, MTH 150,160, 313 or 323, 344, 354.
Minor in Computer Science (20 hours):
CSC 210, 331, 344, 354, 366.
Minor in Management Information Systems (32 hours):
CSC 210, 250, 331, 344, 354; ACC 100, 373; BUS 330 or SOC 351; MTH 210 or MTH/ECO 374.
CSC 100 Basic Computer Tools Competency — 2 hours
This is an elective course designed to allow students who transfer in computer tools credit from another institution to receive Hastings College credit. The course satisfies the LAP requirement for computer competency, but does not satisfy the prerequisite for CSC 250.
CSC 140 Introduction to Computer Tools: Tutorial — 2 hours
This is a tutorial based computer tools course in which students work independently, using the same materials used in CSC 150. At the end of the course, students take the CSC 150 test out. Those who pass the test at either competency or proficiency level will have satisfied the LAP Computer Tools requirement. Those who pass the test at the proficiency level will have met the prerequisite for CSC 250.
CSC 150 Introduction to Computer Tools — 2 hours
An introduction to computer application software to be used as tools for problem solving. Emphasis on integrated use of word processing, database, and spreadsheet software. Each long term.
CSC 210 Introduction to Computer Science — 4 hours
CSC 235 Computer-Generated Art — 3 hours
(See ART 235)
CSC 250 Advanced Computer Tools — 3 hours
Problem solving using an integrated computer software application package. Use of advanced features in spreadsheet, presentation, and word processing software. Introduction to relational databases, queries, and web page design and development. Prerequisite: CSC 150 or proficiency exam. Each long term.
CSC 272 PC Hardware and Architecture — 3 hours
An introduction to contemporary PC hardware and how it is integrated to form a complete, self-contained system. Topics include system architecture, microprocessors, memory, buses, disk drives, and other I/O devices. Some assembly-language programming is covered as well. Prerequisite: CSC 210 (with C or better). Interim term or as needed.
CSC 331 Structured Programming I — 4 hours
Algorithm design and introductory data structures in C++. Visual development. Strings, pointers, and basic file I/O. Introductory object programming, including classes, methods, and operator overloading. Prerequisite: CSC 210 (with C or better). Each fall term.
CSC 333 Structured Programming II — 4 hours
Advanced object programming using C++, covering concepts including inheritance, polymorphism, and templates. Design and implementation of abstract data types including stacks, queues, linked lists, and binary trees. Prerequisite: CSC 331 (with C or better). Spring, odd-numbered years.
CSC 344 Operating/Networking Systems — 4 hours
An introduction to the basic concepts of operating systems and networking, including security considerations. Topics include hardware and OS architecture, device management, processes, memory management, and file systems; network protocols and layers, addressing, routing, DNS, transport, and NAT; authentication and authorization. Prerequisite: CSC 331 (with C or better). Fall, even-numbered years.
CSC 354 Database Concepts — 4 hours
Relational database design and implementation. Emphasis on keys, class or ER diagrams, database normalization, SQL, and application development using current development tools. Prerequisite: CSC 210 (with C or better). Fall, odd-numbered years.
CSC 355 RAD Programming — 3 hours
A fast-paced introduction to programming in a Rapid Application Development environment. Visual programming, user-interface design and testing, and database programming. Programs are coded in Visual Basic. Prerequisite: CSC 331 (with C or better). Interim term or as needed.
CSC 366 Programming Network-Based Systems — 4 hours
Programming web-based applications, including databases, using such tools as HTML, XML, ASP, ActiveX, Java, mySQL, and PHP. Prerequisite: CSC 331 (with C or better). Spring, odd-numbered years.
CSC 454 Machine Learning – 4 hours
Understanding machine learning problems and systems. Topics include system design, concept learning, decision tree learning, neural networks, hypothesis evaluation, Bayesian learning, and genetic algorithms. Prerequisite: CSC 331 (with C or better). Spring, even-numbered years.
CSC 464 Systems Analysis and Design — 4 hours
Methods for the analysis, design, and implementation of computer-based information systems, including modification of existing systems. Topics include methodologies, UML, requirements determination, analysis, system design, implementation considerations, deployment, testing, and project management. Prerequisite: CSC 210 (with C or better), CSC 331 recommended. Spring, even-numbered years.
CSC 474 Advanced Topics in Computer Science — 2-4 hours
Seminar approach to one or more advanced computer science topics, depending on faculty and/or students' interests. Prerequisites: Advanced standing and permission of the department. On demand.
CSC 484 Senior Project — 1-3 hours
Student will work with the guidance of a faculty member to apply skills to solve a real problem for a real-world user. During the semester in which credit is awarded, the student will make a public presentation of the results of the project. Prerequisites: Advanced standing and permission of the department.