Course Descriptions

Computer and Information Science Courses

Faculty

Professors: Adam M.A. Fadlalla, Chien-Hua (Mike) Lin, Victor M. Matos, Santosh K. Misra (Chair), Toshinori Munakata; Associate Professors: Timothy J. Arndt, Ben A. Blake, David R. McIntyre, Howard Paul, Iftikhar Sikder, Janche Sang; Assistant Professor: Radha Appan, Raymond Henry, Haodong Wang; Term Instructors: Sharen Bakke, Sanchita Mal-Sarkar.

Course Descriptions

Note: see also IST courses

CIS 151 Invitation to Computing (3-0-3). Prerequisite: None. Introduces principles that form the foundation of computer science for students with no prior background in computing. Suitable for students with a non-technical background who wish to explore a career in computing or in a field where computing is used extensively. No prior programming experience is necessary or expected for this course. Key principles of computing are explored through the use of sequential, conditional, iterative logic and the issue of inheritance.  Good computing practices are discussed along with problem solving and organization. Students who have completed CIS 260 with a grade of “C” or higher are not permitted to register for this course. The course includes two lecture hours and two lab hours per week. Labs provide experience with the concepts covered in the lectures.Return to top

CIS 260 Introduction to Programming (4-0-4). Prerequisite: None. Introduction to the principles of computation, problem solving methods, and algorithm development on a computer using a current object-oriented programming language.  Development of good programming style and basic skills of designing, coding, debugging, and documenting programs. Topics include foundational types,  arrays, methods, user defined types, inheritance,  recursion, file I/O, pointers, and introduction to data structures. Return to top

CIS 265 Data Structures and Algorithms (4-0-4). Prerequisites: CIS 260, MTH 148 or MTH 181. Programming and problem-solving skills are further developed by using language features to implement various data structures such as stacks, queues, linked lists, trees, and graphs. Topics include advanced  problem solving and programming techniques,  sorting, searching, and hashing algorithms. Complexity of algorithms is introduced.Return to top

CIS 306 Computers and Society(3-0-3). Prerequisite: CIS 265 or IST 203. History of computing and technology, the computer and the individual, privacy issues, legal issues, computer crime, computer security, future of computing. Return to top

CIS 334 Computer Organization (2-0-2). Prerequisite: CIS 265. Foundations of PC architecture and assembly language. Topics include machine language, hardware fundamentals, memory organization, data representation, addressing modes, and introduction to assemblers. This course contains the first half of the material from CIS 335. May not be used to satisfy BSCIS major-field requirements. Return to top

CIS 335 Language Processors (4-0-4). Prerequisite: CIS 265. Foundation of PC architecture and assembly language. Topics include machine language, hardware fundamentals, registers, numbering systems, data definition, and addressing modes. Fundamentals of systems programming including the implementation and use of assemblers, macro processors, linkers, loaders, and compilers. Examples of language processors are studied on various computers. Return to top

CIS 340 C/C++ for Systems Programming (2-0-2). Prerequisite: CIS 265. This course covers the basics of the C/C++ languages and selected standard library functions. Teaches students with a Java background to write C/C++ programs using standard library functions, primarily for use in later system-oriented courses. Return to top

CIS 345 Operating System Principles (4-0-4). Prerequisite: CIS 340.This course discusses the relationship between computer architecture and the operating system including interrupts, I/O handling, and memory management.  Study of operating system functions, specifically, the management of computer resources such as processor scheduling; memory; I/O device scheduling; and file system structure, protection, and network connections. Return to top

CIS 368 Object Oriented Design and Programming (4-0-4). Prerequisite: CIS 265. Course provides in-depth coverage of both design and implementation of O-O programs. Students will gain understanding of the tenets of the O-O paradigm; they will design and create advanced O-O programs using a current object-oriented programming language. They will become familiar with pre-defined classes available for the language, and learn how to use them in their own software. Unified Modeling Language (UML) will be introduced as a graphical mechanism for system design. Students also will become familiar with design patterns. Return to top

CIS 408/508 Internet Programming (4-0-4). Prerequisite: CIS 430. This course introduces website design and web-based applications using several tools and techniques. The course tarts with client-side programming.  The second half of the course is dedicated  server-side development. Topics covered include HTML, DHTML, Cascading Style Sheets, DOM, ASP.NET, Java Script, database connectivity, web parts and web services. Return to top

CIS 424/524 Comparative Programming Languages (4-0-4). Prerequisite: CIS 265. A short history of programming languages and styles precedes the study of a comparison of modern programming languages currently in use. The major programming paradigms are surveyed, including procedural, functional, object-oriented, graphical-user-based, and logic programming. Return to top

CIS 430/530 Data Base Concepts (4-0-4). Prerequisite: CIS 265. The course introduces concepts of  database management systems and database models. . Students are exposed to a detailed study of relational query languages including relational algebra, Structured Query Language (SQL), and Query-by-Example (QBE); coverage of system-wide data abstraction using ER modeling. Normalization theory and its benefits are introduced. . Stduents are expected to complete lab projects using a commercial DBMS and its supporting programming environment. Return to top

CIS 433 Systems Analysis(4-0-4).Prerequisite: CIS 430. Introduction to the tools and techniques of object-oriented analysis based on use of the Unified Modeling Language and the Rational Unified Process. System life cycle through the structured system specifications. Tools and techniques of object-oriented design. Return to top

CIS 434 Software Engineering (3-0-3). Prerequisite: CIS 433. Topics in software engineering and performance engineering, including comparison between structured and object-oriented software development, verification and testing, software design for concurrent and real-time systems, and system reengineering for increased performance. Return to top

CIS 438 Client-Server Computing (3-0-3). Prerequisites: CIS 430 . Topics include concepts and development of client-server and multi-tiered architectures and systems; back-end database connectivity for browser-based systems; middleware, application servers, scripting languages. Variety of client-server systems are discussed. Students will develop client-server applications using LAMP (Linux, Apache, MySQL, PHP) web development platform. Return to top

CIS 443/543 Graphical User Interfaces (3-0-3). Prerequisites: CIS 340, CIS 368; or CIS 459. Graphical User Interfaces for advanced bit-mapped display systems characterized by close interaction with pointing devices. Consideration of both the underlying application programming interfaces as well as the use of a framework of C++ classes. Use of an interactive environment for design and debugging. A specific industry standard system is explored in detail with extensive programming involvement. Return to top

CIS 454/554 Data Communications and Computer Networks (4-0-4). Prerequisites: CIS 345. Data communications: characteristics of physical transmission media, including international standards for data encoding and device interfacing; transmission principles, modems and multiplexors; data link protocols, mechanisms for error detection/correction and flow control; Computer Networks: broad survey of existing networks; network topology; network layers from the ISO OSI reference model; network programming; analytical tools for network analysis and design. Return to top

CIS 457 Computer Graphics (4-0-4). Prerequisite: CIS 265. Fundamentals of two- and three-dimensional computer graphics will be covered in this course. Topics include graphics algorithms, transformational geometry, clipping, shading, rendering, and illumination. Students will be expected to develop graphics programs using standard APIs and graphics hardware. Return to top

CIS 459/559 Object Oriented Programming (3-0-3). Prerequisite: CIS 340. This course teaches the methodology of object-oriented design and programming using the C++ language. The C++ language taught includes built-in data types, pointers, classes, operator overloading, code reusability via simple and multiple inheritance, polymorphism, stream I/O, and the use of class libraries. Return to top

CIS 465 Multimedia (4-0-4). Prerequisite: CIS 368. Topics include multimedia data capture and representation including audio, image and video. Multimedia authoring paradigms and practice using a multimedia authoring tool will be discussed.Other topics include principles of user interface design, use of multimedia on the web, commercial tools for audio, image and video processing. . Return to top

CIS 467 Introduction to Artificial Intelligence (3-0-3). Prerequisite: CIS 265.Provides an elementary introduction to artificial intelligence and an overview of its various domains. Topics studied include search techniques, symbolic algebra, natural language processing, knowledge-based systems, reasoning under uncertainty, machine learning, and some non-symbolic topics such as neural networks and genetic algorithms. Common Lisp, a major symbolic AI language, will also be introduced. Return to top

CIS 480/580 Introduction to Computer Architecture (4-0-4). Prerequisite: CIS 335. The course focuses on the design of modern computer systems. Topics include processor and instruction set design; addressing; control structures and microprogramming; memory management, caches, memory hierarchy; interrupts; I/O structures and buses. Upon successful completion of this course, a student will be able to design and program embedded systems.Return to top

CIS 470 Mobile Application Development (4-0-4):Prerequisite: CIS 345. The course provides an in-depth review of concepts, design strategies, tools and APIs needed to create, test and deploy advanced applications for mobile phones and occasionally connected mobile devices. Topics include: design of mobile user interfaces, application life-cycle, multi-threading, inter-process communication, data persistency, content providers, background services, geo-location and mapping, networking and web services, telephony, messaging, graphics and animation, multimedia, peer-to-peer communication, performance, security. The target computing environment changes overtime; currently the course explores the Android Operating System and its supporting SDK. Return to top

CIS 485 Senior Project (4-0-4): Prerequisites: Senior standing, completion of CIS core.In this course, students will be expected to design and implement a large group project.The project will be based on knowledge and skills acquired throughout the students’ tenure as a CIS or CSC major. Presentations and accompanying reports are required.Upon successful completion of this course, a student will have learned to work effectively on a large project within a group setting and will have gained experience in reporting on the project during its various stages of development.In doing so, the student will also gain understanding, through experience, of the important phases of project development: planning, analysis, design, implementation, and testing. The project will be a substantial addition to the student’s portfolio.Return to top

CIS 490/590 Foundations of Computing (3-0-3). Prerequisites: MTH 182, MTH 220, and CIS 335; Mathematics majors may substitute one mathematics course numbered 280 or above for CIS 335. Sets, relations, regular languages, finite automata, context-free languages, pushdown automata, phrase-structure languages, Turing machines, Church's theory, recursion, computability, decidability, computational complexity. Return to top

CIS 491 Professional Internship (1 to 3 credits). Prerequisite: Junior standing and permission of a CIS Department faculty adviser. Corequisite: CIS 490. Work experience in a professional environment. The work performed must extend the academic curriculum and provide a meaningful learning experience in the student’s area of interest. Term paper required. This course may only be taken once. Return to top

CIS 493 Special Topics in Computer and Information Science (1 to 4 credits). Prerequisite: Varies. Special topics of current interest in computer and information science. Content varies each offering. May be repeated. Return to top

CIS 496 Independent Study (1 to 4 credits). Prerequisites: Senior standing, departmental approval. Special research projects in computer and information science. Arranged between student and adviser and subject to departmental approval prior to registration. Return to top

CIS 499 Honors Thesis in CIS (3 credits). Prerequisite: Restricted to senior CIS honors students. The Honors Thesis requires the honors student to conduct a piece of original research in computer and information science under the supervision of a CIS faculty member. The thesis will be presented orally and submitted as a written report. Return to top

Return to top

 

engaged learning

Mailing Address
Office of Undergraduate Studies
Cleveland State University
2121 Euclid Avenue, MC 107A
Cleveland, OH 44115-2214
This site contains files that require the free Adobe Reader to view.