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.