|
Chair:
Jeff Gao
Professor: Suban Krishnamoorthy
Associate Professor: Mohideen Ibramsha
Assistant Professor: Jeff Gao
Instructors: Cornelia Breuning, David Keil, Joseph McCaul
The Department offers courses leading to the Bachelor of Science in Computer
Science and supports a minor in Computer Science. The primary purpose of the
Computer Science major is to prepare students for careers
in computer software development. The department also offers individual
courses in information-technology topics such as networking and web page design.
The industry standard language C++ is emphasized. Languages such as Java,
HTML, Java Script, and Visual Basic are offered as electives. Students are encouraged to do cooperative work with local companies
for up to one year, receiving up to four course credits, job experience, and (normally)
compensation in the process. Such experience is also beneficial in
seeking post-graduate employment.
Computing Facilities:
- Local area network with over sixty personal computers
running Windows operating systems
- Windows servers, UNIX servers, mail server, and web server
- Microsoft Visual Studio with C++ and Visual Basic,
Java, Assembler, MS Access
- Some classrooms equipped with computers and multimedia
systems for teaching
The General Education Requirement:
All students must satisfy a general education requirement consisting of twelve
(12) courses. See page 32 of this catalog.
COMPUTER SCIENCE MAJOR (COS)
Departmental Requirements (16 courses)
Required Courses:
63.152 Computer Science I Using
C
63.252 Computer Science II with
Advanced C
63.258 Introduction to UNIX
63.259 Object-Oriented Programming
Using C++
63.261 Computer Organization and
Assembly Language
63.271 Data Structures
63.355 Computer Architecture
63.362 Software Engineering
63.465 Operating Systems
63.477 Computer Networking or
63.476 Networking
Technologies
43.117 Introduction to Statistics
43.219 Calculus I
43.292 Discrete Mathematics I
53.321 Digital Electronics
Computer Science majors must meet a two semester
laboratory science requirement. The following courses that meet general
education goal 6 are recommended:
33.107
Principles of Chemistry and
33.108 Principles of Chemistry
and Quantitative Analysis
or
73.231 Physical Geology and
73.232 Historical Geology
Computer Science electives:
Computer Science majors must take two (2) courses chosen
from the computer science offerings numbered 300 or above. 63.490
Directed Study and 63.495
and 63.496 (Cooperative Program in
Computer Science) may not be used to satisfy the Computer Science elective
requirement.
Free electives:
Students choose four (4) free elective courses.
Students are strongly encouraged to choose 63.495 and
63.496 (Cooperative
Program in Computer Science) to gain industrial experience, but may choose to
enroll in other computer science courses, courses toward a minor in a related
department, or courses from any department of the College.
MINOR IN COMPUTER SCIENCE (5 courses)
63.152 Computer Science I Using
C
63.252 Computer Science II with
Advanced C
63.258 Introduction to UNIX
63.259 Object-Oriented Programming
Using C++
63.271 Data Structures
MINOR IN INFORMATION TECHNOLOGY (see page 30 in the
College Catalog)
Computer Science Courses Appropriate for General Education
(Gen.Ed.)

63.108 HTML, JavaScript Programming and Web Site Development (Gen.Ed. Goal 16)
     An introduction to the various features of HTML and JavaScript languages such as tags, images, buttons, forms, animation files. Students learn to program using these languages to create interactive web pages. Students create a complete web site using various tools including a browser and imaging editor.
63.120 Introduction to Computer Science and Information Technology (Gen.Ed. Goal 16)
     An overview of computer concepts and Information Technology (IT). Students are introduced to windowed environments, file management, problem-solving tools and a high level of programming language. Aspects of word processing, spreadsheets, and presentation software required for effective communication, analysis, and design are explored.
63.151 Personal Computer (PC) Fundamentals and Applications (Gen.Ed. Goal 16)
     A hands-on introduction to three of the most popular personal computer applications in use today - the word processor, the spreadsheet organizer, and the data base manager. In addition, the course provides exposure to the organization of a personal computer and its peripheral devices, including the interacting roles of hardware and software
63.152 Computer Science I Using C (Gen.Ed. Goal 16)
     An introduction to computer problem-solving using the programming languages C and C++. The course stresses ethics, proper design and testing of programs, as well as program readability. The course emphasizes features of the ANSI standard such as function prototypes. The input/output is covered both in C and C++.
63.205 Introduction to Visual Basic (Gen.Ed. Goal 16)
     An introduction to the visual basic programming environment and the event driven programming model. Topics include forms and controls, code construction, functions and parameter passing, use of lists and combo box controls, creation of menus, program structure, error handling, and debugging of programs.
Prerequisite: 63.152 Computer Science I Using C, or familiarity with a Windows environment and programming experience in any language.
63.252 Computer Science II with Advanced C (Gen.Ed. Goal 16)
     A continuation of problem-solving using the programming languages C and C++. Topics covered include advanced functions, scope, pointers, arrays, structures, enumeration types, typedefs, dynamic memory allocation, bit manipulation, and file operations. There is some elementary discussion of C++ classes and objects. The course uses standard C and C++ libraries.
Prerequisite: 63.152 Computer Science I Using C.
63.258 Introduction to UNIX
     An introduction to the UNIX operating system, emphasizing System V. Topics covered include shells (Bourne/C/Korn) and shell programming, files and processes, UUCP, system administration, text/editors, and formatters. The course includes extensive coverage of UNIX system calls.
Prerequisite: 63.152 Computer Science I Using C or programming experience in C.
63.259 Object-Oriented Programming Using C++ (Gen.Ed. Goal 16)
     A first course in C++ with an emphasis on class construction. Topics covered include operator and function name overloading, inheritance, late binding, templates, and nested classes.
Prerequisite: 63.252 Computer Science II with Advanced C, or programming experience in C. Students with substantial programming experience in languages other than C should obtain consent of the instructor.
63.261 Computer Organization and Assembly Language Programming
     Introduction to computer organization and assembly language programming. Representation of data, addressing modes, CPU instructions, and pseudo-instructions. Discussion of I/O and interrupt programming.
Prerequisite: 63.252 Computer Science II with Advanced C.
63.271 Data Structures
     An introduction to fundamental data structures such as linear lists, stacks, queues, linked lists, trees, and graphs. Dynamic storage management, file structures, and sorting and search algorithms are presented. Programming projects illustrate related concepts with emphasis on analysis of related algorithms.
Prerequisite: 63.252 Computer Science II with Advanced C.
63.320 Windows NT Server & Client Management
     Designed to teach students how to plan, set up, and configure NT server and workstations with TCP/IP enterprise protocol; monitor and control security within the NT systems network; administer user accounts, system disks, file system, mail, print and remote access services; and recover from server failures.
Prerequisite: 63.252 Computer Science II with Advanced C or equivalent computer industry experience.
63.330 JAVA Programming
     A comprehensive study of object-oriented programming using JAVA. Topics covered include objects, core JAVA classes, writing Applets, thread control, input-output streams, JAVA User Interface, Abstract Windowing Toolkit, working with URLs, security, and error handling using exceptions.
Prerequisite: 63.252 Computer Science II with Advanced C or equivalent computer industry experience in C or C++.
63.355 Computer Architecture
     A study of the architecture of computer systems, the relationship between user applications and computer architecture as well as the relationships between operating systems, system software, and computer architecture. Topics covered: computer organization, user-oriented aspects of computer structure, register transfer operations, computer control with strong emphasis on micro-programming, and operating system level of computer architecture. Advanced topics including multi-level computers, program portability, virtual machines, and high level language oriented machines.
Prerequisite: 63.261 Computer Organization and Assembly Language Programming and 53.321 Digital Electronics.
63.362 Software Engineering
     Principles of systematic program design and implementation. Structured programming and top-down segmented program development. Stepwise program development. Chief Programmer Team, HIPO, and other programming techniques. Decision tables. Program correctness and verification. Software reliability.
Prerequisite: 63.271 Data Structures.
63.404 Seminar in Computer Science
     An exploration of an advanced topic in computer science. The particular topic is announced at least one semester in advance.
Prerequisite: Permission of the instructor.
63.465 Operating Systems
     Interrupt mechanism, memory management, concurrency, process synchronization, resource allocation, job scheduling, secondary storage and peripheral device management, file systems, and evaluation. The concepts are presented through lectures and illustrative projects implementing tasks in an operating system to be run on a simulated machine.
Prerequisite: 63.271 Data Structures and 63.355 Computer Architecture.
63.467 Data Base Management Systems
     A study of abstract data structures and data base implementation techniques, including an introduction to sentenial and predicate logic, relational view of data, relational algebra and calculus, normalization, schema and decomposition of relations, and hierarchal and network views of data. Some existing data base systems are also reviewed.
Prerequisite: 63.271 Data Structures and 43.219 Calculus I.
63.476 Networking Technologies
     A detailed study of various networking technologies such as internetwork-ing, fire walls, network management using Simple Network Management Protocol (SNMP), and network security. In the internetworking area, topics such as repeaters, bridges, brouters, routers, gateways, hubs, and MAU are presented in detail. The course also provides a brief introduction to Ethernet, Fast Ethernet, Virtual LAN, Token Ring, and Asynchronous Transfer Mode (ATM).
Prerequisite: 63.271 Data Structures or equivalent computer industry experience.
63.477 Computer Networking
     An introduction to the seven layers of the OSI model. General topics include network topologies; introduction to Local Area Networks, such as Ethernet, Token Ring, and FDDI; and internetworking. Special topics include TCP/IP and FTP protocols, socket interface, Remote Procedure Call (RPC), and client-server architecture.
Prerequisite: 63.271 Data Structures or equivalent computer industry experience including strong programming skills in C or C++.
63.481 Microsoft Windows Programming
     A study of Windows 3.1 programming and application development for experienced C and 80x86 programmers. Topics include: using windows programming models, windows development environments, windows classes, objects, and messages; the windows API; painting and text output; keyboard and mouse input; windows timer and memory management; windows resources, menus and dialogue boxes; elements of graphics device interface. Additional topics are chosen from the following: clipboard usage, dynamic data exchange, object linking and embedding, multiple document interface, printer management, fonts, dynamic link libraries, application framework tools, and client/server applications.
Prerequisite: 63.252 Computer Science II with Advanced C or equivalent experience in C, 63.261 Computer Organization, 63.271 Data Structures. Some C++ experience desirable.
63.490 Directed Study
     Under the direction of a faculty member, the student researches a topic or topics in computer science. Students should make arrangements with the faculty member who is to direct their work one semester in advance of the work.
63.495 Cooperative Program in Computer Science (credit-two courses)
     A cooperative program in which students are placed in computer positions in corporate or government settings. Students are expected to work a minimum of 25 hours per week. These positions are normally compensated. Upon completion of the course, students will provide written documentation concerning their work projects.
Prerequisite: Upperclass standing in computer science with at least a 3.0 average in computer courses or permission of instructor.
63.496 Cooperative Program in Computer Science (credit-two courses)
     A cooperative program in which students are placed in computer positions in corporate or government settings. Students are expected to work a minimum of 25 hours per week. These positions are normally compensated. Upon completion of the course, students will provide written documentation concerning their work projects. Note: This course may not be taken concurrently with 63.495.
Prerequisite: 63.496 Cooperative Program in Computer Science (credit-two courses)
|