Eastern Michigan University
     
 
  CS Home  

 About Us
  Department History
  Values & Goals
  Photos & Video
 Degrees and Courses
  Undergraduate Programs
  Graduate Programs
  Course Descriptions
  Class Schedules
 People
  Faculty  |  Lecturers
  Staff     |  Grad Assistants
  Alumni  |  Open Positions
  In Memoriam
 Student Resources
  Advisors  |  Tutoring
  Co-ops & Internships
  Careers
  Sample Student Projects
 Facilities
  Computer Labs
  Servers
 External Support
  Advisory Committee


Eastern Michigan University
Ypsilanti, MI, USA 48197
University Info: 734-487-1849


 

 

 

 

 

 

 

 

Home >> Course Descriptions >> Undergraduate Course Descriptions

Undergraduate Course Descriptions

100 level | 200 level | 300 level | 400 level                                               Printable Version

100 Level

COSC 101 Computer Science Concepts and Practical Applications (3 hrs)
The course emphasizes the uses and capabilities of computers in our society. Students will be exposed to several popular applications through hands-on lab activities. No previous experience with computers is assumed. Counts towards the computer science minor if taken prior or concurrently with COSC 111 Introduction to Programming.
Prereq: None.

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 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.

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 161 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 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.

Top     

200 Level

COSC 201 Computer Visualization and Multimedia (3 hrs)
This course concentrates on concepts of computer viualization/presentation of information. The focus will be on the Internet and using multimedia. It will encourage hands-on problem solving using various applications programs. Each student will do a semester project of their choice.
Prereq: COSC 101 or department permission.

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 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 118 or MATH 119 or MATH 120 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 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.

Top     

300 Level

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 Applied Cryptography (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.
Top     

400 Level

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; open to juniors and seniors only.

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 Computer Graphics (3 hrs)
An in-depth exploration of fundamental concepts of 2D and 3D computer graphics. Topics include: geometric transformations, lighting and shading models, texture mapping, animation, solid modeling, ray-tracing, hidden-surface removal and the use of graphics in visualization and computer gaming. Course is project-oriented, including interactive, 3D animations.
Prereq: COSC 311 and MATH 205

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 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.
Prereq: COSC 311 and department permission.

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. 

Top