Computer Science, Minor
Why Take This Minor?
Students who pursue Computer Science enjoy programming (writing code) and the software side of computing. Graduates pursue careers as software developers, computer analysts, systems engineers, and web developers. The minor in computer science introduces students to the foundational courses in the field usually encountered during the first two years of study.
Requirements
Code | Title | Credits |
---|---|---|
CSC 230 | Programming Concepts and User Interfaces | 4 |
CSC 240 | Database Management Systems | 3 |
CSC 280 | Object Programming | 4 |
CSC 290 | Introduction to Data Structures and Algorithms | 4 |
CSIT 220 | Data Communication | 3 |
One CSC elective, 300-level or higher | 3 | |
Total Credits | 21 |
Choices for CSC Elective
Code | Title | Credits |
---|---|---|
CSC 301 | Computer Architecture | 3 |
CSC 340 | .Net Programming | 3 |
CSC 341 | Open-Source Application Development | 3 |
CSC 343 | Client-Side Scripting | 3 |
CSC 349 | Mobile Computing | 3 |
CSC 366 | Language Theory and Design | 3 |
CSC 370 | Selected Topics in Computer Science | 3-4 |
CSC 381 | Software Engineering | 3 |
CSC 444 | Research in CSC I | 1-3 |
CSC 446 | Data Mining | 3 |
CSC 456 | Artificial Intelligence | 3 |
CSC 457 | Operating Systems | 3 |
CSC 464 | Theory of Algorithms | 3 |
CSC 470 | Selected Topics in Computer Science | 3 |
CSC 481 | Project Implementation | 3 |
Recommended Course Sequence
Second Year | ||
---|---|---|
First Semester | Credits | |
CSC 230 | Programming Concepts and User Interfaces | 4 |
Credits | 4 | |
Second Semester | ||
CSC 280 | Object Programming | 4 |
Credits | 4 | |
Third Year | ||
First Semester | ||
CSC 290 | Introduction to Data Structures and Algorithms | 4 |
Credits | 4 | |
Second Semester | ||
CSC 240 | Database Management Systems | 3 |
Credits | 3 | |
Fourth Year | ||
First Semester | ||
Data Communication | ||
Credits | 0 | |
Second Semester | ||
CSC Elective 1 |
||
Credits | 0 | |
Total Credits | 15 |
- 1
Any CSC course numbered 300 or higher
Course Descriptions
This course addresses problem solving and programming using problem-based learning; variables, control flow, iteration, modules, arrays, file processing, classes, and objects; and basic graphical-user interface concepts (forms/pages and controls) for desktop and/or Web or mobile environments. The course consists of three hours of lecture and three hours of laboratory per week.
This course includes components of database systems, database models: entity-relationship, relational, hierarchical, network; normalization, integrity, relational algebra, query languages, system security, distributed databases, and social and ethical concerns. In addition, case studies using a relational DBMS will be implemented.
This course involves problem solving using a high-level object-oriented language, such as Java; analyzing problems, designing a solution, implementing a solution, testing, and debugging; abstraction, encapsulation, and inheritance; using, designing, creating, and testing classes; and selection, iteration, and simple collections, such as arrays. The course consists of three hours of lecture and three hours of laboratory per week.
This course is a continuation of CSC 280. It focuses on abstract data types, including lists, stacks, queues, binary trees, and hash tables; recursive techniques; iterators; and use of classes in the Java Collections Framework for problem solving. The course consists of three hours of lecture and three hours of laboratory per week.
This course is an introduction to computer architecture and hardware; underlying structures needed to accomplish tasks electronically; and hardware and software architecture components relative to memory management, I/O control, and processing capabilities.
This course focuses on programming in .NET (such as Visual Basic.NET or C#) and Active Server Pages (ASP.NET) that supports work with databases and the Web; models that support database access, such as MS SQL, Entity Framework, and LINQ; design and development of solutions to problems using database tools and programming; and database-driven Web sites, including validation, navigation, and security. (offered in alternate years)
Students will develop Web solutions that integrate client- and server-side interfaces. The emphasis for the course will be on development for server side, with results being viewed and designed for the client. At least half of the course will include database maintenance using the open-source solution, including development of authentication and authorization. (offered in alternate years)
This course will require students to design and develop standards-based client interfaces for Web/client-side applications using the latest versions of HTML, CSS, and Javascript. Students will study Web-based standards and application/design styles. Students will also use popular Web-development tools. Some mobile development will be included in the course. (offered in alternate years)
This course covers software mobile application development, its architecture and lifecycle as well as its inherent design considerations. Students will learn about mobile resources, activities, views, layouts, and intents in addition to interacting with the location-based services, messaging services, multimedia interfaces, and sensors available on the mobile device. The applications developed will manage data input from and output to files, databases, and content providers. After developing applications in an emulation environment, students will install them on individual mobile devices as well as prepare them for marketplace distribution. (offered in alternate years)
This course involves programming languages; historical perspective and underlying serial computation model; theory: finite automata, Backus-Naur Form, representations, and grammars; and design: syntax, semantics, run-time implementation, and application domains. Language paradigms will include procedural, functional, logical, object-oriented, and non-sequential processing. (offered in alternate years)
This course is an introduction to specialized areas of computer science. The topics will vary from term to term.
The intent of this course is to focus on basic concepts and major issues of project design using a software engineering approach; the software development life cycle; structured analysis and object-oriented design techniques; and modeling, project planning, requirements definition, and requirements testing.
This course introduces data mining, with an emphasis on applying machine learning techniques for data mining; popular methods, such as learning of decision trees, decision tables, rules, and cases; algorithms and applicability; practical applications; data preparation and evaluation of results, including human role in data mining; and ethical issues. (offered in alternate years)
Intelligent systems technologies that have or may become practical for organizational use will be addressed in this course. Topics may include simple expert systems and expert systems with certainty factors, case-based reasoning, machine learning, neural networks, genetic algorithms, fuzzy logic, and two-person game playing. (offered in alternate years)
Principles and concepts of process and resource management in operating systems will be the focus of this course. I/O programming; interrupt mechanism and memory management; processor management; scheduler; priority queues; traffic controller; device management; and information management and file systems are select topics. (offered in alternate years)
Internships offer part-time, paid, or non-paid employment in a cooperating site to provide practical experience in the discipline. Working under professional supervision for at least 20 hours per week, students learn how to apply their education to the everyday demands of the world of work. Students will meet regularly with a faculty member and will be encouraged to reflect on the relationship between coursework and their internship experience.
Students will engage in problem-solving strategies, including divide and conquer, greedy, backtracking, and dynamic programming; will focus on the complexity analysis of algorithms; and will be introduced to complexity classes P and NP, with strategies for NP-complete problems. (offered in alternate years)
This course provides an introduction to specialized research in computers and computing, concentrating on one particular aspect of computer science. The subject matter will vary from term to term.
This course addresses implementation issues, programming language features, validation and verification techniques, and software maintenance. It requires a team project to develop, document, test, and maintain a software system.
Information Technology
This course will address current methods and practices in the use of computer networks to enable communication; physical layers, architectural layers, design, operation, management, and the ISO standards. Local, cloud and wide area networks are examined. Student projects may include introductory LAN design, implementation and administration.