Software Engineering Course Descriptions
CS 110. Understanding Computers. (3)
Operation and use of a computer system, software applications such as word processing, spreadsheets, presentation software, databases, e-mail, and internet. Other topics include fundamental concepts of Information Technology, computer system design, social and ethical issues relating to computer use, and information technology issues, and the utilization of computers to problem-solve and to access current information. This course meets all information and computer literacy competency requirements. This is a Communication Intensive course. FA, SP, SU.
CS 120. Introduction to CS I. (4)
Introduction to the fundamental principles of computer science, with emphasis on problem solving techniques, data and procedural abstraction, and use of algorithmic thinking to understand, decompose and translate problem descriptions into sound, machine-executable solutions. Includes formal lab work. Corequisite: CS 110. FA.
CS 121. Introduction to CS II. (4)
Continues study of principles of computer science, structured programming, object oriented programming, and algorithmic languages. Additional topics include elementary data structures, recursion, software engineering concepts, design, implementation, and maintenance of large programs. Includes formal lab work. Prerequisite: CS 120 or equivalent. SP.
CS 165. Object Oriented Programming in C#. (3)
A programming class using object-oriented design and programming concepts and how they are applied in C#. The emphasis will be towards hands-on program development, testing and debugging of code. The role of the support libraries will be examined along with the Integrated Development Environment (IDE). Prerequisite: CS 120. I Odd.
CS 166. Object Oriented Programming in Java. (3)
A programming class using object-oriented design and programming concepts and how they are applied in Java. The emphasis will be towards hands-on program development, testing and debugging of code. The role of the support libraries will be examined along with various Integrated Development Environments (IDEs). Prerequisite: CS 120. I Even.
CS 170. Web Page Design. (3)
Covers designing and creating a web page. It includes how to create a web page using HTML as well as making the page both eye-catching and functional. Information will also be provided on implementation of the page on the World Wide Web. SP, odd years.
CS 195. Introduction to Software Engineering Careers. (1)
Interview and observe computer professionals in work settings. Report on and discuss what was learned regarding skills, attitudes, and knowledge areas that contribute to the success of a computer professional. Prerequisite: CS 120. SP.
CS 201. Introduction to Software Engineering. (3)
Study of the tools and techniques used in the lifecycle of large software systems. Topics include waterfall, iterative and incremental software development practices; phases of the software lifecycle (e.g. requirements analysis, specifications, design, coding, testing); Unified Modeling Language and other tools for modeling and designing various aspects of software systems; quality assurance and testing. Prerequisite: CS 121. F Odd.
CS 222. Data Structures. (3)
A study of the development and use of Abstract Data Types for storing and retrieving data. Data structures considered include lists, strings, tables, stacks, trees, and graphs. Pointers, templates, and classes are used for implementing data structures. Other topics include searching and sorting algorithms and recursion. Prerequisite: CS 121. FA.
CS 245. Assembly Language. (3)
An introduction of the Assembly Language. The student will work with binary and hexadecimal numbering systems, computer architecture and assembly language instruction sets. The student will write assembly language programs, implementing an assembler and linker using a high-level language. Prerequisite: CS 120. SP, even years
CS 313. Advanced Object Oriented Programming in C#. (3)
Focuses on advanced object-oriented techniques using the C# programming language. A significant part of the course will be devoted to enhancing programming techniques and testing and debugging skills. Prerequisite: CS 165. SP Even.
CS 314. Advanced Object Oriented Programming in Java. (3)
Focuses on advanced object-oriented techniques using the Java programming language. A significant part of the course will be devoted to enhancing programming techniques and testing and debugging skills. Prerequisite: CS 166. SP Even.
CS 315. Operating Systems. (3)
A study of operating system concepts and how those concepts are used in the design and implementation of modern operating systems. Topics include process management, processor scheduling, memory management, virtual memory, I/O, file systems, deadlocks, and concurrency. Prerequisite: CS 222. FA, even years.
CS 319. Web Page Programming. (3)
CS 321. Networking. (3)
Considers a wide range of concepts used in the design and implementation of modern network systems. Course content will be organized according to the TCP/IP and the OSI model. Among topics that will be included are hardware components, protocol suites (especially TCP/IP), network topologies, IEEE 802.3 networks, bridging, and routing. Prerequisite: CS 120. SP, even years.
CS 340. Database Management. (3)
Studies of database management including: concepts and characteristics, planning organization, data structures, semantic data modeling, conceptual design, physical design, administration, and implementation. Students will design a database. Prerequisite: one computer language. FA, odd years.
CS 350. Systems Analysis and Design. (3)
In-depth discussion of the methodologies for designing and implementing computer-based systems. In the context of the systems life cycle the course covers topics such as breaking complex processes into phases and activities with specific products or objectives, preliminary investigation, analysis, design, implementation, and evaluation. Case studies are used to emphasize the points covered. Meets the Communication Intensive course requirements in the major. Prerequisite: six hours of computer programming and CS 201 or consent of instructor. SP, odd years.
CS 365. Program Language Systems. (3)
Description and analysis of key issues in the design, and implementation of programming languages, including syntax and semantic specification, lexical analysis and parsing, names and binding, data types, expressions and assignments, control structures, subprogram calling and parameter passing, data abstraction, and objects. As time allows, concurrency, functional programming, and logical programming will be included. Prerequisite: CS 222, and one of the following: CS 160, CS 165 or CS 245.SP, even years.
CS 495. Internship. (3)
Participatory computer experience working for company or not for profit organization in the area. The choice of organization and type of work is to be determined by the student but must be approved in advance by a Computer Science faculty member who will coordinate the student’s placement. Prerequisite: CS 222 and Senior standing, FA, SP.
CS 499. Computer Science Capstone. (3)
Provides opportunity for students to integrate learning from throughout Computer Science coursework. Students will do major practical or research projects requiring comprehension of complex and scholarly computer science literature. Meets the Capstone course requirement in the major. Prerequisites: CS 222 and Senior standing. FA, SP.