DEPARTMENT OF COMPUTER SCIENCE, EMU
Undergraduate Course Description
[effective Spring 2004 Term]
COSC
105 Everyday Computing and Social Responsibility
3 hrs
Two hours lecture/discussion, two hours lab. This course
combines extensive exploration of ethical issues faced by everyday computer
users with hands-on practice using a broad variety of online and computer
productivity tools to support socially responsible computer use.
Prereq: None.
COSC
106 Explorations in Robotics
3 hrs
Introduction to the theory of robotics and autonomous
agents. Students will be exposed to technical and social aspects of robots
in society. Students will complete selected readings, write several short
papers, and design and program simple robots. Rudiments of computer science
topics as applied to robotics will be covered.
Prereq: None.
COSC
111 Introduction to Programming
3
hrs
An introduction to computers, programming, algorithm development
and a high-level language such as Java. In particular, strategies for problem
solving, problem analysis, algorithm representation and algorithm verification
are balanced with actual program development using good design and documentation
techniques.
The first course in the computer science curriculum, major and minor,
but open to all students.
Prereq: Math 104 or equivalent.
COSC
145 Introduction to FORTRAN Programming
3
hrs
An introductory course for persons wishing to learn programming
and applications of computers. Using the FORTRAN language, students develop
and run programs to solve a variety of problems.
Credit will not be given for more than one of COSC 145 and COSC 245. Does
not count towards the computer science major or minor.
Prereq: Minimum ACT score of 19 or Minimum
SAT score of 520 or math placement test in elementary algebra
greater than or equal to 53.
COSC 146 Applied Programming
3 hrs
Introduction to computer programming for the non-major.
Introduces students to integrated development environments such as Visual
Basic and other application tools. Students work in a combination of lectures
and supervised computer labs. Does not count
towards the computer science minor, major or curriculum.
Prereq: None.
COSC
177/178/179 Special Topics
1/2/3
hrs
An exploration and study of topics not covered in other
departmental offerings. Students may elect more than one, provided different
topics are studied.
Prereq: None.
COSC
205 Computer Hardware and Software Systems
3
hrs
An applied introduction to computers including: computer
hardware, operating systems, web design, networking, trouble shooting and
maintenance of computers. Lab projects include: Taking apart computers, installing
operating systems, building a network, and creating a web page.
Prereq: CADM 105 and COSC 101.
COSC 211 Programming Data Structures
3 hrs
The second course in an introductory sequence for the
computer science major, minor and others. Continues software engineering methodology
through specification, design, coding, and program correctness. Nested procedures
and functions, scope and recursion. Introduction to data structures such as
stacks, queues, linear lists, trees, sets, and files. Analysis of sorting
and searching algorithms.
Prereq: COSC 111.
COSC 215 Scientific Simulation
3 hrs
An introductory, non-calculus based, interdisciplinary course
in simulation for the sciences, gaming, and engineering. Modeling dynamically changing
systems. Approximations and errors. Single scale and multi-scale models. Grid and particle
systems. May be team taught by faculty in computer science, physics, chemistry, earth
science, biology and others.
Prereq: (PHY221 or CHEM117 or ESSC110 or BIO105) and (COSC111 or COSC246).
COSC
221 Computer Organization I
3 hrs
Introduces students to basic concepts of computer hardware
and organization including: computer structure, machine language, instruction
execution, traps and interrupts, digital representation of data, computer
systems organization, elementary digital circuits, including memory and arithmetical.
Students will write several programs in an assembly language simulator.
Prereq: COSC
111, COSC 145, COSC 245 or IS 219 or permission of the School of Engineering Technology.
COSC
231 Internet-based Computing
3 hrs
Programming for the Internet, including GUI design and development, event-driven programming, web page
design and construction, programming for current Internet and Web technologies. Ethical issues on the Internet.
Prereq: COSC 111.
Coreq: COSC 211.
COSC
245 Computer Programming and Numeric Methods
3 hrs
An introductory programming course focusing on numerical
algorithms fundamental to scientific computer work. Discussion of polynomial
interpolation, numerical integration, solutions of systems of equations, and
error analysis. Using the FORTRAN language, students develop and run programs
to solve a variety of problems. Credit will not be given for more than one
of COSC 145 and COSC 245. Does not count
towards the computer science major or minor.
Prereq or coreq: MATH 121.
COSC 246 Programming in C++
3
hrs
Introduction to computers, programming techniques and
integrated development environments using C and C++. Students work in a combination
of lectures and supervised computer labs. Emphasis is on problem solving using
good design principles and documentation techniques. Does
not count towards the computer science minor, major or curriculum.
Prereq:
COSC 101 or COSC 111 or COSC 145 or COSC 146 or MATH 105 or MATH 107 or MATH
1118 or MATH 119 or MATH 120 or or a minimum ACT
score of 26 or a minimum SAT score of 640 or math placement test
in elementary algebra greater than or equal to 73.
COSC 255 Computer Hardware and Software Systems
3
hrs
An applied introduction to computers including: computer hardware,
operating systems, web design, networking, trouble shooting and maintenance of computers.
Lab projects include: Taking apart computers, installing operating systems, building a
network, and creating a web page.
Prereq:
CADM105 and COSC101.
COSC
277/278/279 Special Topics
1/2/3 hrs
A 200-level course in a specific area of computer science,
to be determined by the field of specialization of the instructor and the
interest of the students.
Prereq: none.
COSC
303 Applications in Computer Science
3 hrs
Information systems, simulation, graphics, audio communication,
artificial intelligence, instruction and training, and communications. The
student will write or use previously written programs in each of the above
areas using microcomputers. These programs will use many languages and programs
including LOGO, PASCAL, BASIC, electronic spreadsheet and a database program.
Prereq: COSC 101, COSC 211, and
junior standing.
COSC
306 Methods of Teaching Computer Science in Secondary Schools 3 hrs
Computer science programs in the high school, information and materials needed
to prepare students for the teaching of computer science in these schools. Organization
and content, methods of teaching and learning, security and maintenance of equipment,
professional journals and magazines available for future growth, copying software
and the legality of software duplication, dealing with diversity of abilities,
problem-solving skills, and strategies for debugging programs. This
methods class does not count toward the major or minor.
Prereq: COSC 342, CURR 305, and admission
to the teacher education program.
COSC 311 Algorithms and Data Structures
3 hrs
Linear lists, strings, arrays, and orthogonal lists. Representation
of trees and graphs. Storage systems, structures, storage allocation and collection.
Symbol tables, searching and sorting techniques. Formal specification of data
structures and data management systems.
Prereq: COSC 211 and COSC 221.
COSC 314 Computational Discrete Structures
3 hrs
Relations and algebraic structures, counting techniques,
graphs, automata and languages, and number theoretical algorithms. This course
emphasizes discrete mathematical algorithms, their applications to problems
in computer science, and their implementation.
Prereq: COSC 211 and MATH 205.
COSC
315 Symbolic Computing
3
hrs
Symbolic computations and graphic representations in a
computer algebra system such as Mathematica; design of interactive notebooks;
extensive use of electronic communications; applications from various areas
of computer science, mathematics and the natural sciences; oral presentation
of a project in an electronic classroom is required; lectures (two hours)
and supervised lab (two hours).
Prereq: COSC 111 and MATH 122 or
minimum ACT score of 28 or minimum SAT score of 670 or math placement test
in college level math greater than or equal to 93.
COSC
321 Computer Organization II
3
hrs
Basic digital circuits, data representation and transfer,
digital arithmetic. Digital storage and accessing, control functions, input-output
facilities, systems organization, reliability, simulation techniques. Multiprogramming,
multiprocessing and real-time systems.
Prereq: COSC 211 and COSC 221.
COSC
341 Programming Languages
3
hrs
Formal definition of programming languages; structure
of simple statements; global properties of algorithmic languages; data description;
run-time representation of programs; procedural languages such as C and C++,
non-procedural languages such as Lisp or Prolog. Credit
will not be given for both COSC 341 and COSC 342.
Prereq: COSC 211 and COSC 221.
COSC
342 Programming Languages for Educators
3 hrs
Formal definition of programming languages; structure
of simple statements; global properties of algorithmic languages; structure
of list processing, string manipulation, data description and simulation languages;
run-time representation of program and data structures. Special emphasis will
be placed on education-oriented languages. Credit
will not be given for both COSC 341 and COSC 342.
Prereq: COSC 211 and COSC 221.
COSC
374 Programming Languages for Educators
3 hrs
An introduction to and survey of cryptographic techniques and algorithms. Classical
techniques(rotation, transpotation), block ciphers(DES, AES), stream ciphers and random sequences, hash functions(SHA),
key management, public key algorithms(RSA), digital signiture, authentication. Example implementation such as PGP, SSL,
and Kerbos
Prereq: MATH 170 and COSC 211.
COSC
377/378/379 Special Topics
1/2/3 hrs
Covers topics not considered in other courses when the
immediate needs of the field, interests of the students, and expertise of
the faculty coincide.
Prereq: COSC 211, COSC 221, and
department permission.
COSC
388 Cooperative Education in Computer Science
3
hrs
Four to six months of full-time employment at an industrial
firm specially chosen to provide practical experience in computer science.
The program consists of two work experiences (COSC 388 and COSC 488) alternating
with full-time attendance at the University. Use
on computer science major subject to department permission. Graded on a credit/no
credit basis.
Prereq: Junior or senior majoring
in computer science, any 300-level course in computer science, admittance
to program by application, department permission.
COSC 403 Seminar and Project Design for Educators
3
hrs
Major project design and more formalized, structured programming.
Each student will work on two original major programs, one of which will be
a group project. The student will report on both projects (written and oral)
and give a formal presentation of the individual project to the University
community in the form of a public lecture.
Prereq: COSC 311, COSC 342, and
senior standing.
COSC 405 Switching Theory
3 hrs
Switching algebra, gate network and sequential circuit
analysis and synthesis. Boolean algebra, sequential circuit state and combinational
circuit minimization, hazards and races, elementary number systems and codes.
Prereq: COSC 211 and COSC 221.
COSC 421 Systems Programming
3 hrs
Batch-process systems programs, components and operating
characteristics. Implementation techniques for parallel processing and interrupt
handling. Overall structure of multiprogramming systems. Addressing techniques,
file system design and management. Interprocess communication, design of system
modules and interfaces.
Prereq: COSC 221, COSC 311, and COSC
341.
COSC
422 Introduction to Microprocessors
3
hrs
The fundamentals of small-system software development
as it applies to microprocessors and minicomputers. Introduction to microprocessors
and peripheral hardware; software and software development; applications.
Students will have access to both microcomputers and a minicomputer to gain
first-hand knowledge of this field.
Prereq: COSC 221 or department permission.
COSC 423 Computer Operating Systems
3 hrs
Computer operating systems functions and concepts. Processor
allocation: multiprogramming and scheduling algorithms. Memory tasks and data
management. The deadlock problem. Virtual memory, allocation strategies and
analysis of their algorithms. Design, implementation and protection of I/O
files. Survey of available computer operating systems.
Prereq: COSC 221 and COSC 311.
COSC
436 Web Programming
3 hrs
Students will learn how to set up and configure a web
server and associated services. Topics covered will include: CGI, JavaScript,
web security tools, server-side programming multi-file applets, data description
languages, database connectivity, scripting languages and distributed applications.
Exposure to security and efficiency issues.
Prereq: COSC 231, COSC 311 and
COSC 341.
COSC
439 Computing Network Principles
3 hrs
The basic concepts of computer communication systems with
particular emphasis on communication hardware and microcomputer networks.
Students will be involved in the development and writing of software components
of communications such as terminal emulators and file transfer packages. Basic
communication theory and terminology, communication hardware devices, communication
protocols, and microcomputer networks.
Prereq: COSC 221 and COSC 311;
COSC 314 recommended.
COSC 444 Foundations of Automata and Languages
3 hrs
A review of finite automata. A rigorous treatment of regular
languages including closure properties and the Pumping Lemma. An investigation
of context-free languages, context-free grammars, simplification of grammars,
normal forms and related topics. Turing machines and the Halting Problem.
Applications to lexical analysis.
Prereq: COSC 311 and COSC 314.
COSC
445 Compiler Construction
3 hrs
Review of programming language structures, translation,
loading, execution and storage allocation. Compilation of simple statements.
Organization and overall design of a compiler. Use of compiler writing languages.
Prereq: COSC 341 and
COSC 444.
COSC 456 Microcomputer Graphics
3 hrs
A course in computer graphics using microcomputers. Display
technologies. Raster graphics, displaying graphics primitives such as points,
lines, curves, text and scan-conversion algorithms. Displaying graphs, functions,
bar and pie charts, and applications. 2-D graphics including windowing, viewporting,
window- to-viewport transformation, clipping algorithms, scaling, rotation
and translation transformations. Interactive graphics. 3-D graphics; including
scaling, rotation and translation transformations; parallel and perspective
projections.
Prereq: COSC 311 and MATH 122 or
minimum ACT score of 28 or minimum SAT score of 670 or math placement test
in elementary algebra greater than or equal to 93.
COSC 457 Computer Game Programming
3 hrs
Introduces the central components of 3D computer game
programming: game design, using a 3D graphics engine (lighting, shading,
textures, etc.), terrain modeling, solid modeling, kinematics, collision
detection, real-time animation, simple AI agency, sound integration.
Prereq: COSC 311 and junior or senior standing.
COSC 461 Heuristic Programming
3 hrs
Programming techniques for problems with large-state spaces
or uncertain knowledge: searches, heuristic evaluation, rule-based inference,
approximate reasoning and adaptation using neural nets, genetic algorithms
and reinforcement learning.
Prereq: COSC 444.
COSC
471 Database Principles
3 hrs
A technical review of the theory and principles of database
design and organization. The concepts and structures necessary to design and
implement a database management system. Network, hierarchical and relational
database models. Data normalization, data description languages, query languages,
data integrity and security.
Prereq: COSC 341 and COSC 444.
COSC
477/478/479 Special Topics
1/2/3 hrs
Covers topics not considered in other courses when the
immediate needs of the field, interests of the students, and expertise of
the faculty coincide.
Prereq: Senior standing, major
in computer science, and department permission.
COSC 481/481W Software Engineering and Senior Project
3 hrs
This capstone course surveys the fundamentals of software
engineering, including requirements analysis, design, disciplined implementation,
and evaluation. Students will work on a semester long software project that
employs principles learned in other computer science classes.
COSC 481W is offered as a part of the General Education Program and satisfies the Writing Intensive requirement.
Prereq: COSC 311 and department permission.
COSC 485 Senior Projects in SAG
3 hrs
The application of simulation, animation and gaming
techniques for the completion of a team based final project. Also covered
will be a discussion of necessary skills for career success. Guest speakers
and site visitations will be part of the class. This course is cross-listed with SAG485.
Prereq: SAG470 and junior or senior level standing.
COSC
486/487/488 Cooperative Education in Computer Science
1/2/3 hrs
Four to six months of full-time employment at an industrial
firm specially chosen to provide practical experience in computer science.
The program consists of two work experiences (COSC 388 and COSC 488) alternating
with full-time attendance at the University. Use on computer science major
subject to department permission. Graded on a credit/no credit basis.
Prereq: COSC 388 and department
permission.
COSC
493 Senior Project
1 hr
Intended for computer science majors in their senior year,
this course assesses students’ knowledge of the field’s core subjects,
surveys students to get reactions to and suggestions for the department’s
academic program, and provides guidance to students as they carry out a computing
project and present it in a public forum as a poster presentation or talk.
Offered on a credit/no credit basis.
Prereq: COSC 311, COSC 321, COSC 341, COSC 444, senior standing
or department permission.
COSC 497/498/499 Independent Study
1/2/3 hrs
A report or project on an approved subject in the field
of computer science under the guidance of the staff of the Department of Computer
Science.
Prereq: Major in computer science,
junior or senior standing, and department permission.