SET: Department of Computer Science & Information Systems

Pioneer 208 (989) 964-4144

CS Curriculum

Students majoring in Computer Science must meet all general education and graduation requirements listed in the current SVSU catalog. The Bachelor of Science in Computer Science degree includes at least 124 semester hours of credit. A minor is required (A computational mathematics minor is not permitted). Courses required for an CS major are:

General Requirements (33 or 34 credits required)

Major Courses (32 credits required)

CS 116 - Computer Programming I (4 cr.)

This course presents an introduction to the concepts and techniques of computer programming. Emphasis is places on developing the student's ability to apply problem-solving strategies to design algorithms and to implement these algorithms in the C++ language.

CS 216 - Computer Programming II (4 cr.)

This course continues the development of computer programming techniques introduced in the Computer Programming I course. Topics include data abstraction, object-oriented programming, linear and nonlinear data structures, and analysis of sort and search routines, including inheritance, polymorphism, pointers, recursion, lists, linked-lists, stacks, queues, and binary trees.

CIS 311 - Windows Programming Using Visual Basic (4 cr.)

This course presents an introduction to writing Windows applications using Visual Basic. Topics include control structures, data structures, event-driven programming, graphical user interface, error handling, debugging, sequential file processing, records and random-access files, ActiveX, database management, images, animation, and audio.

CS 316 - Data Structures and Algorithm Analysis (4 cr.)

This course presents an introduction to advanced data structures using object-oriented C++ language features. Topics include abstract levels of data type, classes, member functions, accessability, recursion, AVL trees, B-trees and general trees, graphs, sorting, searching, hashing, complexity and efficiency of algorithms, data compressions, and memory management.

CS 331 - Computer Organization and Assembly Language (4 cr.)

This course presents an introduction to low-level computer architecture and its relationship to assembly language programming. Topics include number systems, Boolean algebra, logic gates, simplification of Boolean functions, combinational logic, sequential logic, machine organization, assembly language programming, the interface of low-level language to the architecture and to higher-level programming languages, the assembly/link/loading process, and machine representation of data/instructions.

CS 381 - File and Database Processing (4 cr.)

This course presents an introduction to file structure concepts and database processing. Topics include fundamental file processing operations, physical characteristics of secondary storage, sorting of large files, multilevel indexing and B-trees, hashing and extendible hashing, database systems concepts and architecture, and the relational data model.

CS 446 - Computer Operating Systems (4 cr.)

This course presents an introduction to the design and implementation of both traditional and distributed operating systems. Topics include processes, memory management, file systems, I/O, deadlocks, distributed systems, synchronization, distributed file systems, and case studies.

CS 451 - Programming Languages and Compiler Construction (4 cr.)

This course presents a study of computer programming languages and a comparison in terms of features such as application, type checking, and encapsulation. Topics include a study of grammar, languages, BNF, finite state automata, top-down and bottom-up parsing methods, parsing with and without backups, operator precedence grammars, LL(k), and LR(k) parsers. The course also presents an introduction to compiler development including scanners, syntax checking, and code generators.

Elective Requirements (16 credits required)

Option I (General)

or

Also, add 8 credits from:

Option II (Software Engineering)

Also, add 8 credits from:

Option III (Computer Systems and Networking)

Also, add 8 credits from:

 

Other Courses Offered

CS 101 - Using the Internet (3 cr.)

Introduction to the Internet, including policies, addressing, servers and clients. How to search for information using Archie, Gopher, Lynx, Veronica, WAIS and WWW browsers. Also examined are using the library through the Internet, how to e-mail, FTP and Telnet.

CS 105 - Introduction to Computers and Programming (4 cr.)

Introduction to computer capabilities, limitations and applications; computer system organization; input, output and secondary storage devices; CPU components; data communication systems; database management systems; operating systems; the computer's impact on society; problem solving with computers including algorithm development, structured programming and top-down design.

CS 146 Visual Basic Programming (3 cr.)

Algorithm and problem-solving methods; design and development of modular, event-driven programs using the Visual Basic language including numeric and string operations, input and output operations, decision constructs, repetitive constructs, array processing, graphics and sequential and random file processing.

CS 147 FORTRAN Programming (3 cr.)

Introduction to computer systems, computer programming and operating system commands; constants, variables and expressions; conditional and iterative constructs, formatted I/O and character data; arrays; subprograms; computed goto and assigned goto; common storage; equivalent statements; files and additional topics.

CS 160 Microcomputer Software (3 cr.)

Introduction to microcomputer software including the operating system, a word processor, a spreadsheet and a database.

CS 345 UNIX System Administration (3 cr.)

This course presents a study of the administration of a programming-oriented UNIX system. Topics include the UNIX file structure, configuration files in UNIX, daemons, cron/crontab, e-mail, backup and restore, Perl, Java, C-shell, Bourne shell, UNIX commands and command-line options, and UNIX system security.