Course Descriptions



Intro to Computers & Computer Science

Credit(s): 3

This course is an introduction to computers and computer science for non-computer science majors. Prior experience with computers, such as using a graphical user interface and a word processor, is recommended. Students with no prior experience will be expected to attend out-of-class labs to learn the basics of a computer. Topics include an historical perspective, evolving hardware and software, using the Internet, creating web pages, social implications, and using a modern programming language. Problem solving and algorithm development are important themes of the class. The course involves substantial use of microcomputers outside of class and the possible use of minicomputers and alternative operating systems. Lecture: 3 hours per week
Prerequisites: MATH-025, MATH-090 or placement test COMPASS Algebra 46, MMT 30, ALEKS 30, ACT Math 20, SAT Math 470, RSAT Math 510


Introduction to Robotics Programming Using RobotC

Credit(s): 3

This course provides an introduction to programming using RobotC programming language. No prior programming experience is expected. The course is appropriate for any student interested in learning how to program in C along with the hands-on experience of making the NXT Robot run on the programs designed in class. It provides an introduction to fundamentals of programming basics of RobotC programming language an hardware NXT design. Students will program robots and learn how to control a robot's direction and speed. Student will also learn how robots use feedback from sensors (touch, light, sound) to interpret the world around them. Students will apply their knowledge to create obstacle courses challenges that the programmed robot will run autonomously. Lecture: 3 hours per week
Recommended: CS-100


Introduction to Problem Solving and Programming

Credit(s): 3

This course provides an introduction to computational thinking and problem solving. Students will be able to apply elementary computing concepts including variables, loops, functions, lists, conditionals, concurrency, data types, simple object oriented concepts, I/O, events, syntax, and structured programming. Basic concepts of computer organization and editing, and the influence of computers in modern society will be explored. Note: CS-115 carries no credit if taken after successful completion of higher numbered computer science courses. Lecture: 3 hours per week
Prerequisites: MATH-108 or placement test COMPASS Algebra 62, MMT 40, ALEKS 46, ACT Math 24, SAT Math 550, or RSAT Math 570


Computer Science I

Credit(s): 4

This course offers an introduction to the field of computer science using a current programming language. Central themes of the class include an introduction to computer organization; algorithmic problem solving; structured and object oriented program design; and the societal and professional context in which computer science exists. Fundamental data types including arrays and structures will be explored and concepts such as complexity, invariants, abstract data types, pointers, and linked lists will be introduced. Lecture: 3 hours per week Lab: 2 hours per week
Prerequisites: CS-115, MATH-144, MATH-147 or an appropriate score on a placement test: Aleks 76, ACT Math 30, RSAT Math 690
Corequisites: CS-150L


Computer Science II

Credit(s): 4

This course provides continuing experience in problem solving and software design methods. The exploration of recursion is continued and the entire software-design cycle is considered in greater depth. Introduction to abstract data types and fundamental data structures will cover topics: writing code to generate, use, and maintain complex dynamic structures, including linked lists, pointers, stacks, queues, sorts, searches, and trees. Other topics include a continued development of skills in the analysis of algorithms, dynamic memory use, and the use of external files. Lecture: 3 hours per week
Prerequisites: CS-150
Corequisites: MATH-187, CS-151L


Computer Organization and Assembly Language

Credit(s): 3

This course covers topics including digital logic, machine-level representation of data, and processor architecture covering the ALU, control unit, assembly language, memory organization, addressing methods, I/O and interrupts. Lecture: 3 hours per week
Prerequisites: CS-150
Corequisites: MATH-187


Programming Languages

Credit(s): 3

This course develops fundamental concepts of major programming languages, with primary emphasis on language features and their role in designing code and software. Students will study the constructs of programming language design including a conceptual study of procedural, data-flow, functional, and object-oriented languages. Lecture: 3 hours per week
Prerequisites: CS-151


Language of the World Wide Web

Credit(s): 3

This course is designed to teach programming and computational thinking skills to create rich, interactive documents for the World Wide Web. Focus is on using information resources, current markup and scripting languages, and creating applications utilizing current Web technologies. Students will learn to create documents that contain text, video, audio, and image data to request and process input from users. Image, video, and audio representation will be covered. Techniques of indexing, searching, and browsing data, the societal impact of the Internet, security, cryptography, and freedom of speech will be covered. Lecture: 3 hours per week Recommended: Experience using the World Wide Web and the Internet


Languages of Computer Science: Java

Credit(s): 3

This course provides an introduction to the programming language Java. The course will include the features of Java such as objects, classes, wrappers, constructors, inheritance, method overloading, threads, error handling with exceptions, applets, java.awt (the Abstract Windows Toolkit) and possibly other Java packages. Lecture: 3 hours per week Recommended: High level language programming class such as C++ or permission of the instructor.


Languages of Computer Science: C#

Credit(s): 3

This course provides an introduction to computer programming, using the unique visual and object-oriented features of the C# language and the Visual Studio.NET integrated development environment. Topics include object-oriented programming, Windows and Web applications, Web forms, database access using ADO.NET, file access, exception handling, and other current topics as time allows. Lecture: 3 hours per week Recommended: Prior programming experience in a structured and/or object-oriented language such as Visual Basic Java, C, or C++.


Introduction to UNIX

Credit(s): 2

This course is offered with the primary goal of providing Computer Science majors with UNIX operating system experience to facilitate their transfer to a four-year university. It is also helpful for students who are interested in learning about the UNIX operating system which is used extensively in business and on the Internet. Course topics typically include basic command line use of the UNIX operating system; the file structure and permissions; using text editors; creating scripts; the shells, network and Internet tools; graphical environments; and an introduction to UNIX administration. Students will be expected to complete homework that may be completed on campus, on a PC or MAC using a UNIX variant, or via the Internet. Students will have accounts on a UNIX or Linux server on campus that can be accessed via the Internet. Lecture: 2 hours per week
Recommended: CS-100


Digital Logic

Credit(s): 4

This course includes the following topics: digital logic concepts, logic design, Karnaugh maps, combinational and sequential networks, state tables, state machines, and programmable logic arrays. Laboratory activities use basic lab equipment, logic analyzers, and digital oscilloscopes. Lecture: 3 hours per week
Prerequisites: MATH-170 or MATH-187
Corequisites: CS-240L


Computer Operating Systems

Credit(s): 3

This course provides an overview of operating systems and operating system principles. It includes sections on concurrency, scheduling and dispatch, memory management, net-centric computing, OS security, and process management. Concurrent programming using threads is also explored. Lecture: 3 hours per week
Prerequisites: CS-151, CS-155
Corequisites: CS-228 or CS-270


System Software

Credit(s): 3

This course is designed to provide an introduction to the UNIX operating system and variants (such as Linux) as well as system programming concepts. Programming productivity tools will be introduced such as making, debugging, linking, and loading tools. Shell programming and scripting languages will also be used. System programming tools include process management and interprocess communication, exception handling, network concepts, and network programming. Lecture: 3 hours per week
Prerequisites: CS-151