Computer Science (COMP)

COMP 105  Introduction to Computers  Credits: 3  

An overview of mainframe and personal computers. Topics include: application software, the Internet, hardware components and peripheral devices, and data processing.

Fall: Department Discretion  Spring: Department Discretion  
COMP 111  Digital World  Credits: 3  

A survey of current digital technology intended for students not majoring or minoring in Computer Science. Students will gain a better understanding of the digital systems they use every day and learn how to work more efficiently and effectively with computers and computer-based devices.

Fall: Department Discretion  Spring: Department Discretion  
COMP 164  Essentials of Computer Science  Credits: 3  

This course is designed for a student considering a career in a computing field but is accessible to any student wanting to learn more about computer technology. The skills developed in this course will be utilized throughout the computer science curriculum. Topics will include the binary number system, data representation, digital logic, algorithmic problem solving, and programming in both low-level and high-level programming languages. The required preparation is MATH 110 or three years of high school mathematics.

Fall: All Years  Spring: All Years  
COMP 164L  Essentials of Computer Science Lab  Credits: 1  

This course is designed for a student considering a career in a computing field but is accessible to any student wanting to learn more about computing technology. The skills developed in this course will be utilized throughout the computer science curriculum. Topics will include the binary number system, data representation, digital logic, algorithmic problem solving, and programming in both low-level and high-level programming languages. The required preparation is MATH 110 or three years of high school mathematics.

Fall: All Years  Spring: All Years  
COMP 165  Fundamentals of Programming  Credits: 3  

An introduction to the techniques of programming. Topics include problem solving methods, program design strategies, selection structures, iteration structures, subprograms, recursion, arrays and lists, sorting and searching, object-oriented design and classes. Students will use a popular high-level programming language to write, compile, debug, and document programs. Hands-on laboratory exercises will be integrated into the course. The required preparation is MATH 110 or three years of high school mathematics.

Fall: All Years  Spring: All Years  
COMP 165L  Fundamentals of Programming Lab  Credits: 1  

A continuation of COMP 164 with emphasis on the techniques of programming. Topics include problem solving methods, program design strategies, selection structures, iteration structures, subprograms, recursion, arrays and list, sorting and searching, object-oriented design and classes. Students will use a popular high-level programming language to write, compile, debug, and document programs. Hands-on laboratory exercises will be integrated into the course.

Fall: All Years  Spring: All Years  
COMP 166  Data Structures  Credits: 3  

Continuation of COMP 165. Topics include: recursion, lists, dictionaries, sorting and searching, stacks, queues, binary trees, and graphs. Hands-on laboratory exercises will be integrated into the course. Students must enroll in both COMP 166 and COMP 166L.

Pre-Requisite : COMP 165  
Fall: All Years  Spring: Department Discretion  
COMP 166L  Data Structures Lab  Credits: 1  

Continuation of COMP 165. Topics include: recursion, lists, dictionaries, sorting and searching, stacks, queues, binary trees, and graphs. Hands-on laboratory exercises will be integrated into the course. Students must enroll in both COMP 166 and COMP 166L.

Fall: All Years  Spring: Department Discretion  
COMP 199  Field Experience in Computer Applications  Credits: 1-3  

On-the-job, supervised experience and study dealing with the applications of computers.

Fall: Department Discretion  Spring: Department Discretion  
COMP 202  Android Programming for Beginners  Credits: 3  

Hands on training on Android programming intended for students NOT majoring in Computer Science. Topics include Android IDE installation and configuration, application structures and resources, XML basics, UI design, Java basics, Intent and event handling, Android design patterns, animation, and video streaming.

Fall: Department Discretion  Spring: Department Discretion  
COMP 233  Computer Organization and Architecture  Credits: 3  

An overview of basic computer organization and architecture. Topics include: data presentation, digital logic, combinational and sequential circuit design and analysis, memory system organization, instruction and data path architecture, instruction set architecture and assembly language.

Pre-Requisite : COMP 165  
Spring: All Years  
COMP 286  Topics in Computer Science  Credits: 1-4  

A study of computer science topics not ordinarily covered in established courses.

Fall: Department Discretion  Spring: Department Discretion  
COMP 306  Object-Oriented Design & Programming  Credits: 3  

An introduction to program design using object-oriented methods. Topics include: abstraction, composition, inheritance, polymorphism, UML design, threads and sockets, graphic elements, user interface design, web-programming and event handling.

Pre-Requisite : COMP 166  
Spring: All Years  
COMP 307  C# Programming  Credits: 3  

An introduction to C# programming using Microsoft .Net platform. Topics include: inheritance and polymorphism, delegates and events, streams, LINQ, XML, ADO.net and relational database, ASP.net and WPF application, threads and synchronization.

Pre-Requisite : COMP 166  
Fall: Department Discretion  Spring: Department Discretion  
COMP 324  Design and Analysis of Algorithms  Credits: 3  

A study of algorithms. Topics include: analysis and verification techniques, divide and conquer, dynamic programming, greedy, backtracking, and problem complexity.

Pre-Requisite : COMP 166 AND MATH 325  
Spring: All Years  
COMP 328  Theory of Computation  Credits: 3  

An introduction to areas of theoretical computer science. Topics include: finite state machines, regular languages, push down automata, context free languages, Turing machines and recursive languages.

Pre-Requisite : MATH 210 OR MATH 320  
Spring: Department Discretion  
COMP 343  Computer Networking  Credits: 3  

An introduction to the principles of computer networking. Topics include: OSI and TCP/IP reference models, data link, network, transport, and application layers, and recent applications of network technology.

Pre-Requisite : COMP 166 AND COMP 233  
Fall: Department Discretion  Spring: Department Discretion  
COMP 351  Programming Languages  Credits: 3  

An introduction to the organization of programming languages and the run-time behavior of programs. Topics include: syntax and semantics, procedural block-structured languages, functional languages, object-oriented languages, logical languages, case studies of languages such as Pascal, Ada, FORTRAN, COBOL, Java, LISP, and Prolog.

Pre-Requisite : COMP 166 AND COMP 233  
Fall: Department Discretion  Spring: Department Discretion  
COMP 368  Database Management Systems  Credits: 3  

An introduction to the storage and organization of information. Topics include: database management, data mining, intelligent systems, networked databases, and human-computer interaction.

Pre-Requisite : COMP 165  
Fall: All Years  
COMP 376  Advanced UNIX Programming  Credits: 3  

An in depth look at programming on the UNIX/Linux platform. Topics include C/C++ programming, shell scripts, file management, memory management, process and thread management, server management, security, and networking.

Pre-Requisite : COMP 165 AND COMP 233  
Fall: All Years  
COMP 377  Operating Systems  Credits: 3  

An introduction to the major concepts in an operating system, data communication, and modern computer networks. Topics include: processes, concurrency, CPU scheduling, deadlocks and memory management, TCP/IP, ATM, OSI Model, frame relay, Ethernet, congestion control, link-level flow and error control.

Pre-Requisite : COMP 376  
Spring: All Years  
COMP 385  Computer Graphics  Credits: 3  

An introduction to the major algorithms and techniques for computer graphics. Topics include: windowing, clipping, 3-D techniques, parametric curves and surfaces, hidden lines and surfaces, shading methods, ray casting and tracing.

Pre-Requisite : MATH 151 AND COMP 166  
Fall: Department Discretion  Spring: Department Discretion  
COMP 390  Professional Issues Seminar  Credits: 1  

Students will read, present, and discuss material pertaining to the social and professional issues of Computer Science and technology in general. Topics may include: social context of computing, professional and ethical responsibilities, risks and liabilities of computer-based systems, security issues and intellectual property. Students will also explore possible career opportunities.

Pre-Requisite : COMP 233  
COMP 402  Android App Development  Credits: 3  

A study of Android mobile application development. Topics include Android platform and development tools, application fundamentals, activity, intent, fragment, permission, services, thread & messages, graphics, multi-touch & gesture, networking

Pre-Requisite : COMP 306  
Fall: Department Discretion  Spring: Department Discretion  Summer Department Discretion  
COMP 403  iOS Programming  Credits: 3  

This course is designed to introduce the methods, techniques, and utilities for developing apps for iOS (Apple mobile devices).

Pre-Requisite : COMP 166  
Fall: Department Discretion  
COMP 408  Web Programming  Credits: 3  

A study of web programming, an in depth look at technologies that are fundamental to develop web-centric applications. Topics include HTML, Cascading Style Sheets (CSS), JavaScript, web servers, Document Object Model (DOM), JSON, XML, AJAX,PHP, and MySQL.

Pre-Requisite : COMP 368  
Fall: Department Discretion  Spring: Department Discretion  Summer Department Discretion  
COMP 425  Software Engineering  Credits: 3  

An introduction to the techniques of Software Engineering. Topics include: software processes, requirements elicitation and specification, analysis, design, development and implementation, validation, testing, and project management.

Pre-Requisite : COMP 306  
Fall: All Years  
COMP 428  Machine Learning  Credits: 3  

This courses covers a collection of machine learning models, algorithms, tools and techniques that can be applied to solve data driven decision making problems. Topics include supervised learning, regularization and model selection, neural networks, unsupervised learning and hands on machine learning applications.

Pre-Requisite : MATH 200 AND MATH 150 AND DATA 250 OR COMP 166  
Fall: Department Discretion  Spring: Department Discretion  
COMP 435  Artificial Intelligence  Credits: 3  

An introduction to the basic concepts and technologies of artificial intelligence. Applications of these concepts and technologies are then discussed. Topics include: knowledge representation, search strategies, neural networks, and machine learning.

Pre-Requisite : MATH 320 AND COMP 166  
Fall: Department Discretion  Spring: Department Discretion  
COMP 486  Advanced Topics Computer Science  Credits: 1-4  

A study of computer science topics not ordinarily covered in the established courses. Prerequisite: consent of Computer Science Program faculty.

Fall: Department Discretion  Spring: Department Discretion  
COMP 492  Capstone Project  Credits: 1  

Students will work in teams to design, develop, and implement a significant software or hardware project. Two semester sequence.

Fall: All Years  
COMP 493  Capstone Project  Credits: 1  

Students will work in teams to design, develop, and implement a significant software or hardware project. Two semester sequence.

Pre-Requisite : COMP 425  
Spring: All Years  
COMP 494  Independent Study  Credits: 1-3  

An independent study of a computer science topic not covered elsewhere.

Fall: Department Discretion  Spring: Department Discretion  
COMP 499  Internship in Computer Science  Credits: 1-16  

On-the-job supervised experience and study dealing with applications of computer science.

Fall: Department Discretion  Spring: Department Discretion  Summer Department Discretion  
Note: While every effort is made to ensure accuracy, SMSU reserves the right to correct any clerical errors herein. Also, you can submit feedback.