| |
Undergraduate Courses in Computer Science
101. TOPICS FROM COMPUTER SCIENCE 3 cr. Computer familiarization course surveying the academic discipline of computer science. Topics include the history and architecture of computers; elementary programming; word processing, spreadsheets, data managers, and graphics packages. Emphasis is on understanding what computers and computer professionals do rather than on learning programming.
128. INTRODUCTION TO SOFTWARE APPLICATION DEVELOPMENT 3 cr. Corequisite: CS 128L. Overview of software development for a variety of application domains: business, internet, and scientific. Introduction to software development covering topics such as graphical user interface, web, spreadsheet and database applications. Overview of the software life cycle: design, implementation, testing and evolution of software applications. CS 128 and CS 128L must be taken together in a single semester.
128L. INTRODUCTION TO SOFTWARE APPLICATION DEVELOPMENT LABORATORY 1 cr. Corequisite: CS 128. Programming laboratory intended to provide hands-on experience in applying the programming concepts learned in CS 128. Experience in learning the process of program development, with emphasis on techniques for testing and debugging. CS 128 and CS 128L must be taken together in a single semester.
201. INTRODUCTION TO COMPUTER SCIENCE I 3 cr. Corequisite or prerequisite: MT 135 or MT 134. Corequisite: CS 201L. Basic programming concepts: variables, assignments, conditionals, loops and parameter passing. Object-oriented programming concepts: objects, methods, constructors, inheritance and message-passing. Program design and documentation, algorithmic problem solving.
201L. INTRODUCTION TO COMPUTER SCIENCE LABORATORY I 1 cr. Corequisite: CS 201. Programming laboratory intended to provide hands-on experience in applying the programming concepts learned in CS 201. Experience in learning the process of program development, with emphasis on techniques for testing and debugging. CS 201 and CS 201L must be taken together in a single semester.
202. INTRODUCTION TO COMPUTER SCIENCE II 3 cr. Prerequisites: CS 201. Continuation of CS 201. More advanced concepts in object-oriented programming and design and their application to data structures and algorithm analysis. Topics include O-O concepts of polymorphism, overloading, overriding, and genericity, as well as linked lists, stacks, queues, trees, recursion and algorithm comparison using order notation.
228. OBJECT-ORIENTED DESIGN AND PROGRAMMING 3 cr. Prerequisites: CS 128. Corequisite: MT118 or MT134 or MT135. Project-based course that demonstrates software engineering benefits of object-oriented languages: modularity, adaptability and extensibility. Object-oriented programming concepts: objects, classes, methods, constructors, message passing, interfaces, inheritance, polymorphism. Graphical User Interface APIs. Standard Data Structures/Collection APIs.
230. WEB DESIGN AND PROGRAMMING 3 cr. Prerequisite: CS 128. Principles of web page design; HTML, DHTML, XHTML; cascading style sheets; XML technologies: XSL, XPath, XQuery, DTDs, XML schemas; Document Object Model. Introduction to client-side and server-side programming: Javascript, AJAX, Database Programming.
280. HOT TOPICS IN COMPUTER SCIENCE 1 cr. Discussion of computer-science issues by faculty and students; ideologies, trends, emerging technologies, and cutting-edge concepts in computer science. Speakers from academia and industry on these topics. Faculty and students select articles for discussion. Students may take Hot Topics courses for credit a maximum of four times.
301. ALTERNATIVE PROGRAMMING 3 cr. Prerequisite: CS 228. Exploration of many of the concepts that predated object-oriented programming including: embedded programming, micro programming, real-time/performance computing, and low-level computing. Specifically the course will focus on when these concepts should be used instead of the mainstream object-oriented approach.
309. WEB DESIGN AND PROGRAMMING I 3 cr. Prerequisite: CS 202. Principles of web page design; HTML, DHTML, XHTML and XML; cascading style sheets; introduction to client-side and server-side programming; Javascript and Perl; integrating Java applets; Java-based XML processing.
310. WEB DESIGN AND PROGRAMMING II 3 cr. Prerequisite: CS 309. Advanced web programming and scripting methods, including Active Server Pages, Python, PHP. Topics selected from web server administration, web agents, security, e-commerce and others.
320. GUI PROGRAMMING 3 cr. Prerequisite: CS 202 (or 201 and permission of department chair). GUI (graphical user interface) allows users to interface with a computational environment using a point and click mechanism and minimal typing in the PC windowing systems. GUIs suitable for an application that includes buttons and menus. Fundamentals of writing Windows applications, event-driven programming and the GUI. Includes dialogues, menus, controls, scope and lifetime of variables, data types, objects and instances, MDI, fonts and graphics, the Clipboard and simple file I/O.
328. DISTRIBUTED APPLICATION DEVELOPMENT 3 cr. Prerequisite: CS 228. Advance object-oriented programming: exceptions, threads, synchronization, serialization; Client/Server model and APIs; Internet APIs: Java.net, Google; Networking protocols; Practical network administration concepts and practices.
330. E-COMMERCE AND ENTERPRISE COMPUTING 3 cr. Prerequisite: CS 230, CS 328. Advanced web programming and design; J2EE architecture: servlets, server pages, database connectivity, XML processing, Enterprise Beans; Enterprise Computing; E-Commerce frameworks and architectures.
333. ROBOTICS 3 cr. Prerequisite: CS 228. Construction of robots to perform specific tasks. Primary focus will be on managing the real-world inexactness that robots must contend with. Multi-robot systems including cooperation, coordination, and redundancy. Conceptual and practical aspects of robotics.
351. DATABASE SYSTEMS 3 cr. Prerequisite: CS 228. Relational databases: structure, operations, SQL, QBE; database design: entity-relationship models, normal forms; properties of storage devices; query processing and optimization; transaction management.
365. GAMING AND GRAPHICS 3 cr. Prerequisite: CS 328. Exploration of computing techniques that create color, animated imagery of objects and realistic and imaginative representations of the world that can be used in photography, motion pictures, and video games.
367. PARTICIPATORY DIGITAL MEDIA 3 cr. Prerequisite: CS 230. Introduction to a variety of "web 2.0" technologies including: blogs, RSS, podcasting, wikis, social bookmarking tools, photo sharing tools, e-communities, mapping tools, audio and video podcasts, and screencasts. The course will examine existing web-based phenomena such as MySpace, FaceBook, SecondLife, and YouTube, and consider the implications for society, journalism, and the economy.
380. SPECIAL TOPICS IN PROGRAMMING 1-3 cr. Prerequisite: dependent on topic. Investigations of emerging programming technologies and paradigms.
401. SOFTWARE SECURITY 3 cr. Prerequisite: CS 301. Study of typical ways in which software fails to be secure and methods and technologies used to develop secure software. A list of possible topics include; Anti Virus, Spyware Removal, Firewall, Internet Security, Pop Up Blocker, Spam Blocker, Backup, Internet Filtering, and Encryption Software.
428. NETWORK PROGRAMMING WITH LINUX 3 cr. Prerequisite: CS 328. Project driven course that will study aspects of the Linux operating system and computer network related to a semester project. Topics may include: management of computer resources such as memory management and file system structure and protection; network topology including routing algorithms; and the use of analytical tools for network analysis and design. Successful projects will create tools to be used in other computer science courses.
430. .NET COMPUTING 3 cr. Prerequisites: CS 228, CS 230. Introduction to the .NET Framework including: Visual J#.NET or Visual C++.NET and Visual Basic.NET; Visual Studio.NET and its lifecycle tools; ASP.NET applications; configure and deploy an application built on the .NET Framework; Interoperate with existing applications and build applications for mobile devices.
431. MULTI-MEDIA PROGRAMMING 3 cr. Prerequisite: CS 328, CS 330. Principles of interactive multimedia design; introduction to multimedia documents and authoring via Dreamweaver, Macromedia, and Flash; introduction to interactive hybrid applications using Flash and HTML, digital media, compression and synchronization.
444. ADAPTIVE AND OPEN SOFTWARE SYSTEMS 3 cr. Prerequisites: CS 328, CS 351. Design and implementation of adaptive software frameworks; component-based models; open-source architectures and methodologies; tool extensions and plugins; meta-level programming and reflection; aspect-oriented programming; language annotation processors.
469. SOFTWARE ENGINEERING TOOLS AND TECHNIQUES 3 cr. Prerequisite: CS 330, CS 351. The skills, tools, and techniques necessary for successful software engineering projects in a hands-on, project-oriented context. Students will work on several separate development efforts during the semester; each will focus on a different set of tools and techniques. Topics include: system design, UML diagrams, unit testing, continuous integration, refactoring, performance and optimization, acceptance testing, and code maintenance.
470. SOFTWARE ENGINEERING PROJECT 3 cr. Prerequisite: CS 469. Simulation of the environment of the professional software developer working in a team on a large software project for a real client. Development teams will make widespread use of the tools and techniques learned in CS469. Student developers will encounter a wide variety of issues that naturally occur in a project of scale using their skills, ingenuity, and research abilities to address all issues and deliver a working, useful system. Use of the Extreme Programming development methodology.
475. TECHNICAL WRITING IN COMPUTER SCIENCE 3 cr. Prerequisite: CS 228. Written communication related to computer science emphasizing clear, concise expression of technical information. Exploration of several types of CS writing, including users’ guides, help pages, tutorials, mainstream articles, and technical papers. Students read and analyze example pieces; write, edit and revise their own and critique other students’ work.
477. DESIGN PATTERNS 3 cr. Prerequisite: CS 228. Object-oriented design skills and techniques. All 23 of the "canonical" design patterns catalogued by Gamma e al., including the creational, structural and behavior classes of patterns. Variations of these patterns, how and where to apply the patterns and using the patterns together to build larger, more maintainable programs.
478. FORMAL LANGUAGES (MT 478) 3 cr. Prerequisites: MT 341 or MT 342 or equivalent. Finite and push-down automata and Turing machines. Regular languages, context-free grammars, recursive and recursively enumerable languages. Other topics chosen from Church's thesis, Gödel numbering, decidability, and recursive functions.
480. SPECIAL TOPICS cr. TBA. Reading, reports on, and investigation of, selected material and topics. |
|