Computer Science Curriculum

Major

A major in computer science requires:
  1. Major Core (36 semester hours)
    CS 226, 227, 280, 310, 313, 318, 340, 350, 401, 410, 430, and 440
  2. Six hours from CS 330, 360, 420, 425, 437, 475
  3. Six hours of Computer Science capstone 480, 482
  4. Either CHEM 101-102 or PHYS 201-202 (Physics recommended), together with the accompanying laboratories.
  5. ENG 318 (Technical Communication) which should be completed by the end of the sophomore year.  Students should also consider ENG 418 (Advanced Technical Communication) upon successful completion of ENG 318.
  6. A minor in applied mathematics consisting of Math 201, 202, 230 (which should normally be taken before completing any computer science course above the 280 level), 312, and either 203 and 425 or 304 and 305.
  7. In order to be eligible to register for Computer Science courses at the 300-level or above, students majoring in Computer Science must have obtained a grade point average of 2.25 or higher on all courses required in the Computer Science major or minor, and must have an overall grade point average of 2.0 or better.

No additional minor or collateral is required.

The minimum number of semester hours required in major courses for a major in computer science is 48. The minimum number of semester hours in all courses (major and non-major) required for the major in computer science is 120.

Minor

A minor is offered in computer science.

  1. CS 190
  2. CS 226
  3. CS 227
  4. Three courses chosen from CS 280 or higher. (Math 230 is a prerequisite for taking computer science courses above the 280 level.)

A minor is offered in the Software Engineering track and consists of

  1. CS 190
  2. CS 226
  3. CS 227
  4. CS 313
  5. CS 340
  6. CS/MIS 225 or CS 212 or an approved CS elective

These courses cannot be counted towards more than one of a major, minor, or a collateral within the School of Business.

Collateral

A collateral in computer science requires 12 semester hours in computer science which consists of:

  1. CS 190
  2. CS 226
  3. CS 227
  4. CS/MIS 225 or CS 212 or CS 318

These courses cannot be counted towards more than one of a major, minor, or a collateral within the School of Business.

Other Information

Credit toward graduation will be granted only once in those courses in Computer Science and in Management Information Systems that carry identical course titles, and in those courses in computer science and in mathematics that carry identical course titles.

This is a tentative outline up to graduation of classes needed for a CS major:

CS-FourYearPlan_2017

This is a worksheet of all other courses, credits, and their prerequisites:

CSWORKSHEET_2017

Course Descriptions

150 - Microcomputers and Software Applications I

Prerequisite: Eligibility to take Math 111 [or higher]
Offered: Fall, Spring, Summer
Credit: 3 hrs.

Introduction to microcomputer hardware and software. Topics include computer fundamentals, word processing, electronic spreadsheets, data bases, and other microcomputer application areas. Solutions for several problems using microcomputers and commercial software will be required.

190 - Programming Fundamentals

Prerequisite: Math 111 or 121 (or eligibility  to take a Math course higher that Math 121)

Offered: Fall, Spring, Summer
Credit: 3 hrs.

Introduction to problem-solving and algorithm development techniques based on the program development process. Study of basic computer concepts and computer systems; elementary data types and data structures; input and output processing; control structures; modular program design; elementary file processing; algorithm design and evaluation. Students will apply these ideas by analyzing specifications, designing solutions, and implementing programs based on this analysis and design.

212 - Introduction to FORTRAN

Prerequisite/Corequisite: Math 201 or permission of school (Same as Math 212)
Offered: Fall, Spring, Summer
Credit: 3 hrs

A study of programming to include input and output procedures, arithmetic and logical operations, DO loops, branching procedures, arrays, declaration statements, and subroutines. Application of these ideas by writing, running, and correcting programs.

225 - Modern Programming

Prerequisite: CS 150 or Math 111 or Math 121 or permission of school
Offered: Fall, Spring, Summer
Credit: 3 hrs.

A  study of the programming concepts including problem solving, algorithm and program development, data types and operations, objects and classes, arrays, and event-driven programming.

226 - Programming and Algorithmic Design I

Prerequisite: C or better in 190 or permission of school
Offered: Fall, Spring, Summer
Credit: 3 hrs.

Introduction to problem-solving with algorithm and program development. Includes: problem analysis, algorithm representation and verification, scalar and structured data types, file input and output, techniques for program design , coding, testing, and documentation and basic sorting, and searching algorithms.

227 - Programming and Algorithmic Design II

Prerequisite: C or better in 226
Offered: Fall, Spring, Summer
Credit: 3 hrs.

Continuing study of algorithmic design, implementation, and analysis including object oriented design and implementation, abstract data types, stacks, queues, and linked structures.

280 - Digital Systems Design

Prerequisites: A grade of C or better in 212, or 227, and a grade of C or better in Math 230
Offered: Fall
Credit: 3 hrs.

Starting from a description of digital circuits regarding as functional blocks, the course leads to a consideration of the logical design of combinational and sequential digital systems. Topics include binary representation of information, gate types, combinational circuit design, counters, registers, arithmetic circuits, sequential circuit design, and programmed logic. Students will gain practical experience by applying lecture material in a hands-on laboratory setting.

310 - Computer Architecture and Organization

Prerequisite: A grade of C or better in 280
Offered: Spring
Credit: 3 hrs

A study of hardware organization, memory addressing and structure, CPU-memory I/O relationships, organization of computer processors, memories, and interconnections. Students will look at processor control, data units, memory structure, microprogramming, the role of assembly language, timing, I/O design, current architectures, and alternate hardware designs.

313 - Systems Design and Development

Prerequisite: A grade of C or better in CS 226. Pre/corequisite: CS 227
Offered: Fall, Spring, Summer
Credit: 3 hrs.

Development of computerized systems focusing on structured systems analysis and its application to information system software development. Emphasis will be on problem analysis, correctness, reliability, and maintainability.

318 - Data Structures and Algorithm Analysis

Prerequisite: A grade of C or better in 227
Offered: Spring
Credit: 3 hrs

An overview of the structure and implementation of data structures, including lists, trees, heaps, and tables, and an examination of searching, sorting and other algorithms, including implementation and analysis of their efficiency.

330 - Special Topics in Computer Science

Prerequisite: Permission of school
Offered: As Needed
Credit: 3 hrs.

In-depth study of an area of interest in computer science. Different areas of study will be offered.
Must have a 2.25 GPA or higher in all courses which are required in the computer science major or minor.
May be taken twice for academic credit with departmental approval.

340 - Software Design and Development

Prerequisite: A grade of C or better in 313 or permission of school
Offered: Spring
Credit: 3 hrs.

Study of design techniques used in creating large program packages, organization and management of projects, and application of techniques in team projects.

350 - Theory of Computation

Prerequisite: A grade of C or better in 318 and Math 230
Offered: Fall
Credit: 3 hrs.

Introduction to the abstract concepts encountered in machine computation. Topics include finite automata, regular expressions, and formal languages, with emphasis on regular and context-free grammars. Questions related to decidability and undecidability are looked at by considering various models of computation including Turing machines, recursive functions, and universal machines.

360 - Introduction to Computer Graphics

Prerequisite: A grade of C or better in 318; Math 304 is strongly recommended
Offered: Fall
Credit: 3 hrs

Principal topics include graphics devices, vector vs. raster graphics, lines and curves, animation, linear transformations, three-dimensional graphics and wire-frame models, and viewing objects with the synthetic camera.

401 - Programming Languages

Prerequisite or corequisite: 350
Offered: Spring
Credit: 3 hrs.

Study of formal language concepts, language syntax and semantics, language design and implementation, data types, data abstraction, control structures, procedure mechanisms, lexical analysis, parsing, and run-time organization as exemplified by a variety of programming languages and paradigms.

410 - Operating Systems

Prerequisite: A grade of C or better in 310 and 318
Offered: Fall
Credit: 3 hrs.

Sequential processes and concurrent program concepts and their application to operating system design; synchronization constructs: monitors, conditional critical regions, and the use of semaphores; resource concepts, resource allocation and management; dynamic protection and the structure of operating systems.

420 - Compiler Construction

Prerequisite: A grade of C or better in 318 and 350; prerequisite or corequisite: 401
Offered: Fall
Credit: 3 hrs.

A study of syntax and semantic analysis of source and target language; language translation and translators; a one -pass compiler model; phases of a compiler; lexical and syntax analysis; parsing; error recovery; intermediate code generation; code optimization; final code generation.

425 - Numerical Analysis

Prerequisite: Math 203 and a grade of C or better in one of 212 or 227 (Same as Math 425)
Offered: Fall
Credit: 3 hrs.

Study of techniques and types of errors involved in computer applications to mathematical problems. Topics include techniques for solving equations, systems of equations, and problems in integral calculus. Computer solutions for several problems will be required.

430 - Data Base Management Systems Design

Prerequisite: A grade of C or better in 313 or permission of school
Offered: Spring
Credit: 3 hrs.

A close study of the goals of DBMS, various data models and their implementations, normalization, file organization, security, and integrity.

437 - Artificial Intelligence

Prerequisite: A grade of C or better in 318 and Math 230; 350 is recommended.
Offered: Spring
Credit: 3 hrs.

An introduction to the fundamental principles of artificial intelligence: problem-solving methods, state -space representation, heuristic search, problem -reduction techniques, machine inference, game-playing, knowledge representation, and cognitive processes. Applications of these concepts to practical problems in society will be considered, looking at such areas as neural networks, expert systems, robotics, natural language processing, and computer vision.

440 - Computer Networks

Prerequisite: A grade of C or better in 310 and 318
Offered: Fall
Credit: 3 hrs.

A consideration of the technology and architecture of computer networks, emphasizing principles and concepts of both logical and physical connectivity and communication. Particular attention will be placed on network topology, transmission media, medium access , standards, internetworking, and network management and security.

475 - Internship in Computer Science

Prerequisites: A 2.5 overall GPA in the Computer Science major; approval by the student’s adviser, program coordinator, faculty member responsible for the course administration; and department chair.
Offered: Fall, Spring, Summer
Credit: 3 hrs.

This course integrates a student’s classroom studies with work-based learning related to the student’s academic curriculum and/or career goals.  At the work site, the student will engage in a number of supervisor -directed activities documented in a learning agreement that will subsequently be used as part of the student’s evaluation for the course.

480 - Capstone I

Prerequisite: Senior status or permission of school
Offered: Fall
Credit: 3 hrs.

Students will bring together the knowledge and skills acquired over the course of their studies and apply them in a project which demonstrates an application of computer science. Students may work individually or in a small team. Students will work on project planning, software requirements, analysis, design, and specification. Written reports and oral presentations will take place in a technical setting.

482 - Capstone II

Prerequisite: 480
Offered: Spring
Credit: 3 hrs.

This course is the continuation of 480. Students will implement, test, verify, and validate their systems. Written reports and oral presentations will take place in a technical setting.

497 - Special Studies

Prerequisite: Permission of school
Offered: As Needed
Credit: 3, 2, or 1 hrs.

Open only to juniors or seniors with a GPA of 3.0 or higher in their major courses. A maximum of 3 semester hours may be earned. Academic Committee approval required for each seminar and practicum. All individual research projects are reviewed by three faculty members from two different disciplines.May be taken for credit (3 hours) towards the Honors degree by special arrangement.

Course Map

This is a flowchart showing all the classes in Computer Science and their prerequisites. After each block, there is an arrow pointing to the class that a student may take after completing that course, but not before. Some classes require more than on prerequisite before they can be attended and some require a Math.
Computer Science course map 2017

Registration and Advising

STEPS FOR ADVISING

The following are the appropriate steps to follow in order to register for classes during Registration and Advising Periods:

  1. Download and print your program requirements.
  2. Fill in the designated area of the program sheet with the grades of courses that you have already completed and note the courses that you are currently taking.
  3. Note the courses that you have remaining in order to complete your program, as well as the prerequisites for these courses.
  4. Check with either the University registration program or the Registration newspapers located around campus and determine which courses are to be offered that fit your program needs.
  5. Create a mock schedule. Write down the Course name and number, the Course Code (the four-digit number), and the Course times. (You may wish to select some alternate courses—Sections for Courses are sometimes closed.)
  6. Schedule an appointment with your advisor BY SIGNING UP FOR AN APPOINTED OPEN TIME SLOT—the sign up sheets are located outside the advisor’s door. (DO NOT CALL or E-MAIL YOUR ADVISOR TO SET UP AN APPOINTMENT UNLESS YOU HAVE PREVIOUSLY CLEARED THIS APPROACH WITH YOUR ADVISOR).
  7. At your appointment time, bring your completed program sheet, your mock schedule and a printed copy of your degree audit. Please BE ON TIME.
  8. If you have this information with you, your advisor will be able to either release you for Web Registration or register you directly.

Note: These rules are for Registration periods only, if you need special advising at any other time, your advisor will gladly set up an appointment with you.