2006-2007 Undergraduate Bulletin - Click Here to Return to FSC Home
About FSC   |   Admissions   |   Academics   |   Student Life   |   Athletics   |   Graduate & Continuing Education   |   Technology   |   Alumni   |   News & Events


Click to Return to Table of Contents

  Accreditation
  Mission Statement
  Undergraduate Admissions
  Tuition and Fees
  Financial Aid
  Academic Regulations
  Campus Resources
  Academic Programs
  General Education Requirements
  Departments and Courses
  General Information

Computer Science

Chair: Cornelia Breuning

Professor:

Suban Krishnamoorthy

Associate Professor:

Robert Chen

Assistant Professors:

Cornelia Breuning, Jeff Gao, David Keil

 

COMPUTER SCIENCE MAJOR

The Department offers courses leading to a Bachelor of Science in Computer Science with concentrations in Software Engineering and Information Systems, and a minor in Computer Science. The goal of these programs is to train graduates for successful careers in industry and to prepare students for graduate studies. 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 postgraduate employment.

 

The General Education Requirement:

All students must satisfy a general education requirement consisting of twelve (12) courses. See page 60 of this catalog.

 

Course Prerequisites

Courses may have specified conditions for enrollment, such as prior completion of less advanced courses, permission of the instructor, or appropriate placement test scores. Students should refer to course descriptions in the department listings for prerequisite requirements.

 

CONCENTRATION IN SOFTWARE ENGINEERING (CSS)

 

The software engineering concentration prepares students for careers in software development.

Required Computer Science courses (11):

63.152 Computer Science I Using Java

63.252 Computer Science II Using Java

63.258 Introduction to Operating Systems Using UNIX™

63.266 Digital Logic, Organization, and Assembly Language

63.271 Data Structures

63.347 Analysis of Algorithms

63.355 Computer Architecture

63.362 Software Engineering

63.460 Theory of Computing

63.465 Operating Systems Internals

63.477 Computer Networking

 

Two (2) Computer Science electives from the following:

63.265 Computer and Network Security

63.306 Introduction to .NET Using Visual Basic

63.320 Windows Server & Client Management

63.340 UNIX™ System Administration

63.359 Object Oriented Programming Using C++

63.360 Database Management

63.373 Advanced Web Technologies

63.404 Seminar in Computer Science

63.428 Software Quality Assurance

63.455 Human-Computer Interaction Four (4) required Mathematics courses

43.117 Introduction to Statistics (Goal 2)

43.219 Calculus I (Goal 2)

43.220 Calculus II

43.292 Discrete Mathematics I

 

Two (2) science courses. Software Engineering majors must meet a two-semester laboratory science requirement. The following course sequences qualify:

53.211 Principles of Physics I (Goal 6) and

53.212 Principles of Physics II

 

OR

 

33.107 Principles of Chemistry (Goal 6) and

33.108 Principles of Chemistry and Quantitative Analysis (Goal 6)

 

OR

 

73.231 Physical Geology (Goal 6) and

73.232 Historical Geology (Goal 6)

 

OR

 

23.160 Introduction to Organismal Biology and

23.161 Introduction to Cell and Molecular Biology

 

CONCENTRATION IN INFORMATION SYSTEMS (CSI)

 

This concentration trains students for technical careers in information systems such as database administration, network administration, systems analysis and design, and software quality assurance.

Required Computer Science courses (8):

63.108 HTML, JavaScript Programming, and Web Site Development

63.120 Introduction to Information Technology

63.152 Computer Science I Using Java

63.252 Computer Science II Using Java

63.258 Introduction to Operating Systems Using UNIX™

63.360 Database Management

63.373 Advanced Web Technologies

63.376 Networking Technologies

 

Three (3) required Mathematics courses:

43.117 Introduction to Statistics (Goal 2)

43.219 Calculus I (Goal 2)

43.292 Discrete Mathematics I

 

Five (5) required Business Courses:

12.101 Principles of Macroeconomics (Goal 10) or

12.102 Principles of Microeconomics (Goal 9)

12.121 Introduction to Managerial Accounting

12.280 Applied Organizational Theory and Management

12.385 Business Systems Analysis and Design

12.477 Management Issues in Information Technology

 

Three (3) courses from at least two (2) of the following categories. Network and System Administration:

63.265 Computer and Network Security

63.320 Windows Server and Client Management

63.340 UNIX™ System Administration

 

General Information Systems Electives

63.230 Principles of Information Technology Operations

63.266 Digital Logic, Organization, and Assembly Language

63.306 Introduction to .NET Using Visual Basic

63.404 Seminar in Computer Science

63.428 Software Quality Assurance

63.455 Human-Computer Interaction

63.490 Directed Study in Computer Science

 

Computer Graphics and Technical Writing

21.286 Professional Writing

21.471 Business Writing

21.472 Technical Writing

84.140 Introduction to the Internet, Graphics and Multimedia

 

Students may need to take additional math courses if their math placement score does not qualify them for Calculus. These would be taken as free electives.

 

MAJOR IN BUSINESS AND INFORMATION TECHNOLOGY (ITB) (SEE PAGE 139)

 

MINOR IN COMPUTER SCIENCE (5 COURSES)

 

Required Courses (4):

63.120 Introduction to Information Technology

63.152 Computer Science I Using Java

63.252 Computer Science II Using Java

63.258 Introduction to Operating Systems Using UNIX™

Elective (1): One other course from the Computer Science Department.

 

MINOR IN INFORMATION SYSTEMS (5 COURSES)

 

Required Courses (5) – Select from any courses offered through the Computer Science Department.  This includes 84.140 Introduction to the Internet, Graphics, and Multimedia. At least one (1) of these courses must be at the 200-level or above.

 

MINOR IN INFORMATION TECHNOLOGY (SEE PAGE 53)

COURSE DESCRIPTIONS

 

63.108 HTML, JavaScript Programming, and Web Site Development

 

An introduction to various features of HTML and JavaScript languages such as tags, images, buttons, forms, and 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 image editor.

 

63.120 Introduction to Information Technology

An overview of computer concepts and Information Technology (IT). Applications of IT in various disciplines are illustrated and the role of information technology in contemporary society, including issues of intellectual property, ethics, privacy and security is discussed. Students are introduced to windowed environments, file management, problem-solving tools and a high-level programming language. Advanced concepts of word processing, spreadsheets, and presentation software required for effective communication, analysis, and design are explored. Note: Students cannot receive credit for both this course and 63.151 Personal Computer (PC) Fundamentals and Applications. Students in the IT minor who have taken 63.151 Personal Computer (PC) Fundamentals and Applications should take

63.108 HTML, JavaScript Programming and Web Site Development in lieu of 63.120 Introduction to Information Technology.

 

63.135 Information Technology and Society

An exploration of the impact of computing and information technology (IT) on individuals and society in the United States and the world. The course addresses the impact of IT on areas such as: digital technology at home; personal devices; rapid unregulated spread of (mis)information; political processes of dissemination and polling capabilities; empowering individuals and families with information included in medical and other databases; personal and work place communication; the networked information economy and globalization. Other topics may include the interaction of IT with intellectual property, privacy, ethics, security concerns and freedom of expression.

 

63.152 Computer Science I Using Java

An introduction to problem solving using the Java programming language. The course stresses algorithms, object-oriented programming in graphical environments, documentation, testing, and debugging. Topics include hardware basics and number systems, classes, methods, control structures, types, virtual-machine concepts, Internet and client-server computing, human-computer interaction, social, professional, and ethical issues, and general features of programming languages. Corequisite: 43.123 College Algebra or minimum score of 2 on the math placement examination.

 

63.230 Principles of Information Technology Operations

A study of operations in various information technology areas used at workplaces. Areas covered include managing storage, troubleshooting, printing and faxing, small local networks, connecting to the Internet, protection against viruses, popups, and malware, backup and restore, and email clients. Prerequisite: 63.120 Introduction to Information Technology

 

63.252 Computer Science II Using Java An intermediate programming course that emphasizes debugging, documentation, and modular and object-oriented design with tools such as the Unified Modeling Language. Topics include event-driven programming, string and array manipulation, sorting and searching, file operations, dynamic memory allocation, inheritance, polymorphism, and exception handling. Prerequisites: 43.200 Precalculus (may be taken concurrently) and 63.152 Computer Science I Using Java.

 

63.258 Introduction to Operating Systems Using UNIX™

An introduction to the basics of networking and operating systems. Topics include the evolution and overview of operating systems, operating system principles, interfaces (GUI, command line, and API), command processors and utilities, file systems, access control, processes, programming and scripting, user accounts and authentication, OSI model, Internet Protocol, networking utilities, net computing, client-server model, FTP, and network file systems. The UNIX™ operating system is used as a primary reference for illustration and hands-on experience. Prerequisite: 63.120 Introduction to Information Technology or 63.152 Computer Science I Using Java

 

63.259 Object-Oriented Programming Using C++

A presentation of advanced features of programming with an emphasis on class construction and object-oriented design and programming. Topics covered include namespaces, encapsulation, function and operator overloading, templates, collection classes, containers, iterators, inheritance, polymorphism, and exception handling. Course touches on Standard Template Libraries (STL). Prerequisite: 63.252 Computer Science II Using Java.

 

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

 

63.265 Computer & Network Security

A detailed study of the concepts and principles of computer and network security. Topics may include: physical and organizational security, cryptography, public key infrastructure, system and services security, networking fundamentals and protocols, worms and viruses, attacks, prevention, detection and recovery, law, ethics, and privacy. The Windows and UNIX operating systems are used for illustrations.

 

63.266 Digital Logic, Organization, and Assembly Language

An introduction to digital logic components and their organization in computer systems. Topics include the realization of logic components such as decoders, ALUs, registers and how they are combined to form CPUs and controllers. The course discusses the software interface, including machine instructions, the interrupt system, and sample I/O interfaces. The course also covers assembly language and the organization of lowlevel software to control the computer, including representation of data, addressing modes, CPU instructions, and pseudo-instructions. Note: Students who have taken both 63.261 Computer Organization and Assembly Language Programming and 63.321 Digital Electronics cannot receive credit for 63.266 Digital Logic, Organization, and Assembly Language. Prerequisite: 63.252 Computer Science II Using Java

 

63.271 Data Structures An in-depth presentation of recursion, collections and iterators, fundamental techniques in graphics, and threading. Students implement linked lists, stacks, queues, trees, heaps, graphs, hash tables and related algorithms. Students implement a significant programming project. Prerequisites: 43.200 Precalculus and 63.252 Computer Science II Using Java.

 

63.306 Introduction to .NET using Visual Basic

An introduction to the .NET programming environment and the object oriented programming model using the Visual Basic .NET programming language. Topics include object-oriented programming, Visual Basic .NET objects such as forms and controls, code construction, functions and subroutines, parameter passing, looping and other programming structures, persistence of data using text files and database tables, error handling, and debugging of programs. Note: Students cannot receive credit for both 63.306 Introduction to .NET using Visual Basic and 63.205 Introduction to .NET using Visual Basic. Prerequisite: 63.252 Computer Science II using Java.

 

63.320 Windows Server & Client Management

Designed to teach students how to plan, set up, and configure Windows server and client workstations with TCP/IP enterprise protocol; monitor and control security within the 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 Using Java.
 

63.321 Digital Electronics

An introduction to the techniques of designing and constructing digital circuits with emphasis on understanding the logic circuits of a digital computer. Topics discussed include: application of Boolean algebra to logic design; operation of diodes and transistors; construction of IC logic gates; characteristics of TTL, ECL and CMOS logic families; using Karnaugh Maps to design combinatorial circuits; decoders; priority encoders; multiplexers; parity circuits; adders, subtracters and ALU’s; latches and flipflops; counters; shift registers, and the design and analysis of synchronous state machines. Includes a weekly threehour laboratory period. Prerequisite: 63.152 Computer Science I Using Java.

 

63.330 Java Programming

A comprehensive study of object-oriented programming using Java. Topics include objects, core Java classes, writing Applets and Applications, Servlets, thread control, networking, RMI, inputoutput streams, Java User Interface, Abstract Windows Toolkit, working with URLs, security, and error handling using exceptions. Prerequisite: 63.259 Object-Oriented Programming Using C++.

 

63.340 UNIX™ System Administration

A comprehensive coverage of UNIX™ system administration and management. Topics include system setup, booting and shutdown, management of user accounts, file systems, disk management and serial device management, backup and restore, print and network configuration, security, system logs, performance monitoring, and maintenance. Prerequisite: 63.258 Introduction to Operating Systems Using UNIX™.

 

63.347 Analysis of Algorithms

A presentation of asymptotic time and space complexity of sequential and parallel algorithms, using big-O and related notation. Complexity classes P and NP (tractable and intractable problems) and verification of algorithms by formal methods are also discussed. Prerequisites: 63.271 Data Structures and 43.292 Discrete Mathematics I.

 

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 multilevel computers, program portability, virtual machines, and high level language-oriented machines. Prerequisites: 63.266 Digital Logic, Organization and Assembly Language and 63.271 Data Structures.

 

63.360 Database Management

A comprehensive coverage of database concepts, design, and implementation. Topics include systems analysis, data modeling, relational databases, logical design, normalization, user interfaces, query processing including SQL, database administration, security, backup and restore, and performance evaluation. Popular databases are referenced. Note: Students cannot receive credit for both 63.360 Database Management and 63.467 Data Base Management Systems. Prerequisite: 63.258 Introduction to Operating Systems Using UNIX™.

 

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.373 Advanced Web Technologies

An introduction to dynamic database-driven Web site development. Students learn about clientand-server-side scripting, maintaining persistent information on the Web, and user-interface design concepts. Prerequisites: 63.108 HTML, Java-Script Programming, and Web Site Development,  63.152 Computer Science I Using Java and 63.360 Database Management.

 

63.376 Networking Technologies

An introduction to net-centric computing, communication and networking, network security, network management, client-server computing, wireless and mobile computing, and network applications. Various LAN and WAN networking technologies such as Ethernet, Token Ring, wireless network, virtual private network, personal area network, Storage Area Network, Internet, ATM, telecommunication networks, multimedia data technologies, and internetworking are covered. Business aspects of computer networks are also covered. Note: Students cannot receive credit for both 63.376 Networking Technologies and 63.476 Networking Technologies. Prerequisite: 63.258 Introduction to Operating Systems Using UNIX
 

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.428 Software Quality Assurance

A study of software quality assurance processes and test tools. Topics include requirements analysis, test specifications, test schedule development, installation and test tools, standalone product testing, systems integration testing, interoperability, problem reporting and tracking, product development and quality assurance processes, QA management, product life cycle, software metrics for quality, and product release. Prerequisite: 63.258 Introduction to Operating Systems Using UNIX.

 

63.455 Human-Computer Interaction

A survey of the field of Human-Computer Interaction (HCI). Emphasis is placed on design strategies for creating and refining an effective user interface throughout the software product life cycle. Task analysis, approaches to user interface design, modeling, and user interface standards are covered as student groups develop a user interface for a software product. Prerequisites: 63.152 Computer Science I Using Java and 63.360 Database Management.

 

63.460 Theory of Computing

An introduction to theoretical computer science and some key applications. Course examines models of computation, including finite automata, transducers, pushdown automata, and Turing machines. Concepts of formal language theory are applied to lexical analyzer and compiler construction in programming-language translation. The course will include an introduction to the notions of computability and computational complexity, concepts used in parallel computation, and some aspects of artificial intelligence. Prerequisites: 43.292 Discrete Mathematics I and

63.271 Data Structures.

 

63.465 Operating Systems Internals

An in-depth coverage of operating system principles and internals such as processes, threads, CPU scheduling, concurrency and process synchronization, deadlock, inter-process communication, memory management, virtual memory, file systems, I/O systems, distributed systems, and protection and security. Several of the concepts are implemented through a programming project. Prerequisites: 63.258 Introduction to Operating Systems Using UNIX™, 63.271 Data Structures, and 63.355 Computer Architecture.

 

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 programming and application development for experienced C++ 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; and 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. Prerequisites: 63.261 Computer Organization and Assembly Language Programming and 63.271 Data Structures.

 

63.490 Directed Study in Computer Science

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. Prerequisite: Upperclass standing in Computer Science with at least a 3.0 average in computer courses or permission of instructor.  This course may not be taken concurrently with 63.495.

 

 

  Previous Next     

  © Framingham State College 100 State Street PO Box 9101     Framingham, MA 01701-9101     508-620-1220  
fscfeedback@frc.mass.edu
Problems | Site Map