This introductory course is intended for non-majors, and assumes little computer experience beyond using word processing software. COMP 121 is designed to help students become familiar with microcomputers and their use in problem-solving and their impact on society. Students will create spreadsheets, databases, and Web pages. Students will also learn a subset of a general-purpose programming language.
The course meets for four hours each week, and includes extensive time for hands-on practice. The final grade will be based on labs, homework, and exams. Prerequisite is Math Placement Level 22 or higher. Mathematical-reasoning intensive.
COMPUTER PROGRAMMING I
5 SEM HRS
Introduction to computer science through the use of programming. Designed primarily for the student who expects to take further courses in computer science. Also very valuable for any student that expects to do programming that is related to another discipline (e.g., in the sciences). Topics include programming in a high-level language, problem-solving, algorithm design, control constructs, data constructs, input-output, procedural and data abstraction, and the role of computing in society.
All programming will be done using the microcomputers located in the Science building microcomputer laboratory. The course includes an introduction to an industrial quality compiler and its integrated development environment (IDE) on the Wittenberg NT network. The course stresses construction of algorithms, how to design and write programs, structured programming, programming style, program documentation and testing. Particular emphasis is placed on problem solving. The class has three 1-hour lecture/demonstrations plus a 2-hour lab per week. Much of the work for the course is done outside of class using the microlab computers to write, debug and run programs. The language to be used will be C++.
No previous experience with computers is assumed. The only prerequisite is Math Placement Level 22 or higher. The course grade is based on programming assignments, lab exercises, and in?class tests. Mathematical-reasoning intensive.
COMPUTER PROGRAMMING II
5 SEM HRS
This course is an intensive study of program design and methods of structuring data. The first part of the course will emphasize data types such as multidimensional arrays, strings, structs, classes, pointers, and files and will also cover recursion and development of programs containing multiple source files. In the second half of the course, we will cover user-defined data types in more detail, with particular emphasis on linked lists, stacks, queues, priority queues, and trees, along with operations appropriate to each structure (e.g. tree traversals, backtracking, hashing). Applications include searching, sorting, numerical processing, text processing and graphics. Students will be expected to design and implement moderately sized programming projects on their own, but there may be an opportunity for one or two small group projects.
The course will meet three times a week for lecture, and once each week for a structured lab. Course grade will be based on programming assignments, written homework assignments and in?class tests. Great emphasis will be placed on good programming style. COMP 150 is the prerequisite. WRITING INTENSIVE. Mathematical-reasoning intensive.
COMPUTATIONAL MODELS & METHODS
5 SEM HRS
Computational science is the field of study that integrates science, computer science, and applied mathematics. This course is an introduction to the principles and approaches of computational science. This includes the understanding, development, and use of mathematical models as well as their effective computer implementation using languages such as Mathematica 7 , C/C++, and FORTRAN (the student will have his or her choice among the last two). It is specifically designed to be accessible to a wide range of students, especially those with an interest in Biology, Chemistry, Geology, Physics, or Psychology. A spectrum of problems taken from these sciences will be addressed. Topics include: using Mathematica7, Sources of Errors, The Experimental Method, Types of Science Models, Formula Evaluation, Dimensional Analysis, Model Sensitivity, Visualization Methods, Solving Equations, Computer Simulation (deterministic and stochastic), Floating-Point Arithmetic, Limits of Computation, Data Fitting, Optimization Methods, and Ethical Issues. Each student will undertake a realistic modeling project in one of the sciences. Laboratory required. Prerequisites: (1) MATH 131 or MATH 201 (2) COMP 150 or equivalent experience as determined by the instructor. The student will be expected to be familiar with the use of a scientific graphing calculator. This course is cross-listed as MATH 260. Students may enroll in either COMP 260 or MATH 260, but not both. Mathematical-reasoning intensive.
PRINCIPLES OF PROGRAMMING LANGUAGES
5 SEM HRS
This course emphasizes the principles and programming styles (procedural, functional, object oriented, logic oriented) that govern the design and implementation of contemporary programming languages. Topics include language syntax and translation, data types and operations, sequence control, data control, subprograms, and environments. Languages to be studied include those taken from the following: Ada, APL, C, C++, FORTRAN, LISP, Mathematica 7 , Modula?2, Pascal, Prolog, Scheme and Smalltalk. Much of the work for the course will be done outside of class; this includes the use of the University computer and microcomputers together with appropriate library research. COMP 250 and MATH 201 are prerequisites. MATH 171 is a co-requisite.
Grades are based upon assignments, reports, presentations, and exams. This course will meet three times a week and have a weekly two hour lab session. It is a WRITING INTENSIVE course. Mathematical-reasoning intensive.
4 SEM HRS
Some of the primary areas of Artificial Intelligence (AI) will be examined, such as: Knowledge Representation, Language/Speech Processing, Vision, Search, Deductive Systems, Expert Systems, Robotics, Machine Learning and Neural Networks. These will be investigated in terms of their applications and the underlying AI techniques necessary to implement them. Common Lisp and Mathematica 7 will be used as the primary implementation languages. Some philosophical and humanistic issues of AI will also be addressed.
The class will meet three times a week. Grades will be based on assignments, projects, reports and exams. Prerequisites: COMP 250 and MATH 205. MATH 171 is a co-requisite. Mathematical-reasoning intensive.
SENIOR SEMINAR TOPIC: SOFTWARE ENGINEERING
2 SEM HRS
This course will address the area of software engineering through the presentation, discussion and use of recognized software engineering principles. The primary emphasis is on the design, development, and documentation of a group project, but outside readings, presentations, and discussions may be required. This course is required of a senior majoring in computer science. The grade is based upon a combination of independent and group activities. WRITING INTENSIVE. Mathematical-reasoning intensive.