Computer Science

CSC 1007: Exploring Computer Science (1)

Offerings

An experience on the construction of simple applications. Topics include fundamentals of software development, the computing professions, and trends in computer science and information technologies. Combines lectures, hands-on laboratories and application development projects. Typically offered: Summer.

CSC 1010: Science and Technology (5)

Offerings

A hands-on exploration of the science behind the computer, the fundamental concepts of computing, and the impacts of computing technology on 21st Century life. Topics will be selected from such areas as the history of computing, data representation and storage, applications (SW creation, simulation, games and graphics), networking and communications, and artificial intelligence. Combines lecture, discussion, and laboratory experiences.

Attributes: WK Applied Science

CSC 1130: Beginning Programming (5)

Offerings

Students should have demonstrable computer literacy and are recommended to have two years of high school algebra, prior to taking this course. Covers designing a computerized solution to a problem (i.e. computational thinking), and structured programming concepts and implementation skills. In addition the course provides an introduction to a modern programming language.

Attributes: WK Applied Science

CSC 1230: Problem Solving and Programming (5)

Offerings

Students are advised to complete high school pre-calculus, math analysis, or equivalent and demonstrable computer literacy, prior to taking this course. Intended for students majoring in computer science, computer engineering, information systems or electrical engineering. An introduction to computer science, this course covers basics of problem-solving methods and algorithm development; modern programming methodologies; and fundamentals of a high-level block structured language. Solutions to mathematical and scientific problems and scenarios are emphasized.

Attributes: WK Applied Science

CSC 1521: Contemporary Math with Computing (5)

Offerings

Explores topics that illustrate how mathematical methods and models permeate our economics, political, and personal lives. By investigation of diverse applications, a variety of problem-solving techniques will be introduced, including using the computer as a quantitative problem-solving tool. Introduces the mathematics behind the computer and also examines data representation, storage and manipulation.

Attributes: WK Quantitative Reasoning Prerequisites: Math Placement Level: A or better OR MAT 0144: C- or better OR Math Placement Level: B or better OR MAT 0145: C- or better

CSC 1800: Special Topics in Computer Usage (1-3)

Offerings

Prerequisite: Demonstratable computer literacy. Presentation of a topic of current interest in computer usage. Topics may vary between offerings. May be repeated for credit up to 5 credits.

CSC 2222: Programming Techniques (3)

Offerings

Intermediate programming and problem-solving techniques that will introduce a different programming language than used in CSC 2330 and 2430.

Prerequisites: CSC 2330: D or better OR CSC 2430: D or better

CSC 2230: Computer Programming for Engineers (5)

Offerings

Introduction to computer programming with an engineering applications theme. Provides an introduction to computational models, programming languages and environments, and algorithmic problem solving approaches. Topics include math and logical operations, data types, matrices, conditions and decisions, looping and subroutines, numerical methods, and plotting. This course does not serve as the prerequisite to CSC 2430.

Attributes: WK Applied Science Prerequisites: MAT 1234: D or better

CSC 2330: Data Structures & Programming (5)

Offerings

Prerequisites: 2.5 or better in 2 quarters (or 1 semester) of Object Oriented Programming taken outside SPU in a language other than C++. Transfer coursework must include basic programming, fundamentals of OOP and basic data structures. This course will introduce the C++ programming language to students that already have experience with another object oriented language. Fundamental C++ includes variables, control statements, functions and arrays. The course will also explore recursion, dynamic memory and pointers, classes, methods, and encapsulation. Examines linked linear data structures.

CSC 2430: Data Structures I (5)

Offerings

Develops discipline in program design, style, debugging, testing. Introduces object-oriented design with classes, methods, and encapsulation. Introduces dynamic storage allocation and pointers. Examines arrays, sorting algorithms, and linked linear data structures.

Prerequisites: CSC 1230: C- or better

CSC 2431: Data Structures II (5)

Offerings

Continues object-oriented design with inheritance and polymorphism; recursion. Covers linked data structures, including trees, and other non-linear representations. Introduces methods of organizing and accessing data (hashing and indexing), external data structures, and graphs.

Prerequisites: CSC 2330: C- or better OR CSC 2430: C- or better

CSC 2951: Directed Study: "C++" Programming (2)

Offerings

Presents fundamentals of the C++ programming language.

Prerequisites: CSC 1230: D or better

CSC 3000: Principles of Professional Practice (1)

Offerings

Seminar and group discussion on topics related to the development of professional skills to prepare students for a computing career. Includes discussion of computer science and SPU's mission, leadership styles, workplace ethics, internship and resume preparation, interviewing skills development, and exploration of internship job opportunities. Typically offered: Autumn.

Equivalents: EGR 3000 Attributes: Upper-Division, Writing "W" Course Restrictions: Computer Science, Information Systems Majors only. Freshman, Sophomore students are excluded. Fees: Engineering Materials Fee (refundable)

CSC 3011: Living in a Digital World (3)

Offerings

Considers the ethical and societal impacts of computing technology on daily life. Sample topics include invasion of privacy, digital media, computer crime, intellectual property, software theft, computer security, technology in the workplace, social networking and the global information society. Class format is a combination of lecture and discussion.

Attributes: Upper-Division, Ways of Engaging, Writing "W" Course Restrictions: Junior, Post-Baccalaureate, Senior students only. Prerequisites: UFDN 2000: D or better OR UFDN 3001: D or better Fees: Engineering Materials Fee (refundable)

CSC 3150: Systems Design (4)

Offerings

Recommended Prerequisite: CSC 3220. Surveys issues and tools used in the analysis and design of software systems. Topics include feasibility analysis; requirements gathering and modeling; data modeling; system architecture and security; and user-interface and program design. Measures for the evaluation of specifications and designs are introduced. Typically offered: Spring.

Attributes: Upper-Division, Writing "W" Course Restrictions: Freshman, Sophomore students are excluded. Prerequisites: CSC 2330: C- or better OR CSC 2430: C- or better Fees: Engineering Materials Fee (refundable)

CSC 3220: Applications Programming (4)

Offerings

An implementation-oriented look at software development techniques used to create interactive applications, focusing on the use of object-oriented libraries to create back end applications. Topics include service oriented architecture, RESTful applications, event-driven programming, database interfaces, and tools for interface prototyping. Typically offered: Spring, Winter.

Attributes: Upper-Division Prerequisites: CSC 2330: C- or better OR CSC 2430: C- or better

CSC 3221: Netcentric Computing (4)

Offerings

Introduction to development of web applications. Topics include the internet and networking fundamentals, HTML, CSS and front-end programming, connecting front end with back end. Typically offered: Autumn, Spring.

Attributes: Upper-Division Prerequisites: CSC 3220: C- or better

CSC 3310: Concepts in Programming Languages (4)

Offerings

Explores organization, characteristics and structure of programming languages; examines and experiments with different programming languages' domains; and studies programming language specification. Typically offered: Autumn.

Attributes: Upper-Division Prerequisites: CSC 2431: C- or better AND (MAT 1720: D or better OR MAT 2720: D or better)

CSC 3350: Operating Systems Programming (3)

Offerings

Introduction to operating systems and systems programming. Surveys systems software; operating system interface and functions; utilities and shell programming; linkers and loaders; translators; and processes, concurrency and concurrent programming.

Equivalents: CPE 3350 Attributes: Upper-Division Prerequisites: CSC 2431: C- or better AND (CSC 3750 can be taken concurrently: D or better OR CSC 3760: D or better OR EE 3760: D or better OR CPE 3760: D or better)

CSC 3430: Algorithm Design and Analysis (4)

Offerings

Studies algorithmic, problem solving approaches such as greedy, divide and conquer, and dynamic programming. Covers the design and analysis of algorithms for searching, sorting, string processing, table management, and graphs. Includes principles of computational complexity and analysis. Typically offered: Winter.

Attributes: Upper-Division Prerequisites: CSC 2431: C- or better AND (MAT 2200: D or better OR MAT 2360: D or better OR EGR 2200: D or better) AND (MAT 1720 can be taken concurrently: D or better OR MAT 2720 can be taken concurrently: D or better)

CSC 3750: Computer Architecture and Organization (5)

Offerings

Covers digital logic, computer structure, machine language, addressing, use and operation of assemblers, micro-architectures, instruction formats, and the memory hierarchy.

Attributes: Upper-Division Prerequisites: CSC 2330: D or better OR CSC 2430: D or better

CSC 3760: Computer Organization and Assembly Language (5)

Offerings

Studies organization and structuring of the major hardware components of computers. Includes mechanics of information transfer and control within a digital computer system. Introduces computer architecture, machine instruction sets and assembly language programming. Typically offered: Winter.

Equivalents: CPE 3760, EE 3760 Attributes: Upper-Division Prerequisites: (CSC 2330: D or better OR CSC 2430: D or better) AND EE 1210: D or better Fees: Engineering Materials Fee (refundable)

CSC 4151: Software Engineering I (3)

Offerings

Explores the technical processes and practice of software engineering. Lecture/discussion topics include the development process, project planning and management, measurement and metrics, and software quality assurance. In this first of a two-quarter team software development sequence, student teams will complete and present the requirements analysis and a prototype of a software system. A final grade will be awarded for this course upon completion of CSC/CPE 4152. Typically offered: Winter.

Equivalents: CPE 4151 Attributes: Upper-Division Restrictions: Computer Engineering, Computer Science, Information Systems Majors only. Post-Baccalaureate, Senior students only. Prerequisites: CSC 3150: C- or better AND CSC 2431: C- or better AND CSC 3221: C- or better

CSC 4152: Software Engineering II (3)

Offerings

This course is a completion of a two-quarter software development experience. Student teams will implement, test and deploy systems they began in CSC 4151. Class time will be primarily devoted to the application of software engineering principles to their project, technical reviews, and formal presentation of the completed system.

Equivalents: CPE 4152 Attributes: Upper-Division Restrictions: Post-Baccalaureate, Senior students only. Prerequisites: CSC 4151: D or better OR CPE 4151: D or better

CSC 4210: Theory of Computation and Algorithm (3)

Offerings

Introduction to theoretical topics in computer science. Includes formal languages, automata and parsing; Turing machines, decidability, recognizability and computability. Typically offered: Alternate Years.

Attributes: Upper-Division Prerequisites: CSC 3310: D or better AND CSC 3430: D or better

CSC 4220: Cybersecurity Fundamentals (3)

Offerings

The Cybersecurity Fundamentals course presents an overview of Cybersecurity that includes theory, practice, and technology. Topics covered include security vulnerabilities and controls surrounding operating systems, networks, email, databases, wireless, the cloud, peer-to-peer, and distributed devices. Access control, cryptography, secure software development, physical security, and social engineering are also considered. Typically offered: Alternate Years.

Attributes: Upper-Division Restrictions: Junior, Senior students only. Prerequisites: CSC 3221: C- or better

CSC 4250: Introduction to Artificial Intelligence (3)

Offerings

Explores artificial intelligence with an integrated approach: theory, construction, application and societal implications. The students will learn the different technologies associated with AI, how to build simple learning algorithms, the use of available AI tools and machine learning software. In addition to the technological component, there will be discussions on the ethical and societal implications of AI. Typically offered: Alternate Years, Summer.

Attributes: Upper-Division Restrictions: Junior, Senior students only. Prerequisites: CSC 2431: C- or better AND (MAT 1720: C- or better OR MAT 2720: C- or better)

CSC 4310: Compiler Design (3)

Offerings

Studies programming language translation and compiler design concepts; language recognition, symbol table management, semantic analysis, and code generation.

Attributes: Upper-Division Prerequisites: CSC 3310: D or better AND (CSC 3750: D or better OR CSC 3760: D or better OR CPE 3760: D or better OR EE 3760: D or better)

CSC 4350: Advanced Operating Systems (3)

Offerings

Introduces the major functions of operating systems. Covers processes and concurrency; concurrent programming; resource allocation, contention and control; scheduling, memory management, and device management.

Equivalents: CPE 4350 Attributes: Upper-Division Prerequisites: (CSC 3350: C- or better OR CPE 3350: C- or better)

CSC 4410: Database Management (5)

Offerings

Introduces database concepts: data models; data description and manipulation languages; query facilities; data security, integrity and reliability; multi-user, distributed and web-based database processing. Includes the design and implementation of applications using a commercial DBMS.

Attributes: Upper-Division Prerequisites: CSC 3150: D or better

CSC 4430: Advanced Programming (3-5)

Offerings

Provides experience with advanced or specialized topics in software development. Topics and credits will vary; some offerings may require additional prerequisites depending on focus or environment. May be repeated for credit up to 15 credits.

Attributes: Upper-Division Restrictions: Computer Engineering, Computer Science, Information Systems Majors only. Freshman, Sophomore students are excluded. Prerequisites: CSC 2431: C- or better AND CSC 3221: C- or better AND CSC 3430: C- or better

CSC 4750: Computer Networks (5)

Offerings

Recommended Prerequisite: CSC 2431. Studies concepts and terminology of computer networks, equipment, and protocols.

Equivalents: CPE 4750 Attributes: Upper-Division Prerequisites: (CSC 3750: D or better OR CSC 3760: D or better OR EE 3760: D or better OR CPE 3760: D or better) Fees: Engineering Materials Fee (refundable)

CSC 4760: Advanced Computer Architecture (5)

Offerings

Recommended Prerequisite: CSC 2431. Studies the architecture of multiprocessor, pipelined, and parallel computers. Emphasis is placed on principles of instruction level parallelism, multi-core processing, and distributed computing.

Equivalents: CPE 4760 Attributes: Upper-Division Prerequisites: (CSC 3750: C- or better OR CSC 3760: C- or better OR EE 3760: C- or better OR CPE 3760: C- or better) Fees: Engineering Materials Fee (refundable)

CSC 4800: Advanced Issues in Computer Science (3-5)

Offerings

Examines a special interest topic in computer science. Topics and credits may vary between offerings. Computer science minors may take this course with instructor approval. May be repeated for credit up to 15 credits.

Attributes: Upper-Division Restrictions: Computer Engineering, Computer Science, Information Systems Majors only. Freshman, Sophomore students are excluded.

CSC 4898: Senior Capstone Seminar (3)

Offerings

This senior capstone course will complete and deliver the software product started in CSC 4151 & CSC 4152, and explore topics and frontiers in computer science and information systems. Students will review and summarize their educational experience at SPU in a written essay. Preparation for a career and lifelong learning options are included. Students will investigate and write a term paper on one or more current topics within the computing industry. This course is the completion of a three-quarter team software product development sequence. Student teams will implement, test, and deliver the software product they began in CSC 4151 and CSC 4152. Class time will be devoted to applying software engineering principles to their project, technical reviews, formal presentations of the completed system, and to the other topics listed above. Typically offered: Spring.

Attributes: Upper-Division, Writing "W" Course Restrictions: Computer Science, Information Systems Majors only. Post-Baccalaureate, Senior students only. Prerequisites: CSC 4152: C- or better OR CPE 4152: C- or better

CSC 4900: Independent Study in Computer Science (1-5)

Offerings

Independent study and research in an advanced computer science topic. May be repeated for credit up to 9 credits.

Attributes: Upper-Division Restrictions: Computer Science, Information Systems Majors only. Freshman, Sophomore students are excluded. Prerequisites: CSC 2330: B- or better OR CSC 2430: B- or better

CSC 4930: Practicum in Computer Science - University Service (1-5)

Offerings

Practical experience in applied computer science that provides a service to the university. Examples include academic system support and programming; tutoring, grading and lab preparation. Includes an assessment of Christian service issues or experiences. May be repeated for credit up to 9 credits.

Attributes: Upper-Division Restrictions: Freshman, Sophomore students are excluded. Prerequisites: CSC 2330: B- or better OR CSC 2430: B- or better

CSC 4931: Computer Science Practicum (1-5)

Offerings

Practical experience in applied computer science such as in off-campus work experiences. May be repeated for credit up to 5 credits.

Attributes: Upper-Division Restrictions: Computer Science, Information Systems Majors, Minors, Concentrations only. Freshman students are excluded.

CSC 4940: Internship in Computer Science (1-5)

Offerings

Provides a coordinated and supervised field experience in the computing sciences. Typically involves work in systems analysis and design, programming, quality assurance, and/or end-user support. Students will complete a project related to their vocational exploration experience. Includes an assessment of Christian service issues. May be repeated for credit up to 9 credits.

Attributes: Upper-Division, Writing "W" Course Restrictions: Computer Science, Information Systems Majors only. Freshman, Sophomore students are excluded. Prerequisites: CSC 2330: B- or better OR CSC 2430: B- or better

CSC 4941: Computer Science Internship Review (1)

Offerings

Students report on their internship experiences through written reports and presentations. Students must have completed an approved engineering or computer science internship before beginning this course. An engineering or computer science learning contract is required for this course. Typically offered: Autumn.

Equivalents: EGR 4941 Attributes: Upper-Division Prerequisites: (CSC 3000: D or better OR EGR 3000: D or better)

CSC 4950: Topics in Computer Science (1-5)

Offerings

An advanced course studying a special interest topic in computer science. Topics and credits may vary between offerings. May be repeated for credit up to 9 credits.

Attributes: Upper-Division Restrictions: Computer Science, Information Systems Majors only. Freshman, Sophomore students are excluded. Prerequisites: CSC 2430: B- or better

CSC 4960: Project in Computer Science (1-5)

Offerings

Independent work on a significant project in computer science. May be repeated for credit up to 9 credits.

Attributes: Upper-Division Restrictions: Computer Science, Information Systems Majors only. Freshman, Sophomore students are excluded. Prerequisites: CSC 2330: B- or better OR CSC 2430: B- or better

CSC 4970: Directed Research in Computing Sciences (2-5)

Offerings

The student will conduct research based on a proposal prepared prior to registering for this course. Results of the research will be prepared for presentation at undergraduate or professional symposia. May be repeated for credit up to 9 credits.

Attributes: Upper-Division Restrictions: Computer Science, Information Systems Majors only. Freshman, Sophomore students are excluded. Prerequisites: CSC 2431: B- or better