2003-2004 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
  Message from President
  Mission Statement
  Undergraduate Admissions
  Tuition and Fees
  Financial Aid
  Academic Regulations
  Campus Resources
  Academic Programs
  General Education Requirements
  Departments and Courses
  General Information
Search FSC
Computer Science

Chair:  David Keil

Professor: Suban Krishnamoorthy
Assistant Professor: Jeff Gao, David Keil
Instructors: Cornelia Breuning, 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 34 of this catalog. 

COMPUTER SCIENCE MAJOR (COS)

Departmental Requirements (16 courses)

Required Courses:

63.152 Computer Science I
63.252 Computer Science II
63.258 Introduction to UNIX
63.259 Object-Oriented Programming Using C++
63.261 Computer Organization and Assembly Language
63.271 Data Structures
63.321 Digital Electronics
63.355 Computer Architecture
63.362 Software Engineering
63.460 Theory of Computing
63.465 Operating Systems
63.467 Data Base Management Systems
63.477 Computer Networking or
63.476 Networking Technologies
43.117 Introduction to Statistics
43.219 Calculus I
43.292 Discrete Mathematics I

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

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
63.252 Computer Science II
63.258 Introduction to UNIX
63.259 Object-Oriented Programming Using C++
63.271 Data Structures

MINOR IN INFORMATION TECHNOLOGY (see page 31 of College catalog)

Computer Science Courses Appropriate for General Education (Gen.Ed.)

Courses

63.108 HTML, JavaScript Programming, and Web Site Development
63.120 Introduction to Computer Science and Information Technology
63.151 Personal Computer Fundamentals and Applications
63.152 Computer Science I
63.205 Introduction to Visual Basic
63.252 Computer Science II
63.259 Object-Oriented Programming Using C++

Goal

16
16
16
16
16
16
16



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, 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 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. Applications of IT in various disciplines are illustrated. Note: Students cannot receive credit for both 63.120 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.

63.151 Personal Computer (PC) Fundamentals and Applications (Gen.Ed. Goal 16)

      An overview of computers and how they are used both in academic and professional environments. Basic to advanced applications of word processing, spreadsheet and presentation software are used for problem solving, data analysis and effective communication. Issues including privacy, piracy, ethics and the impact of current computer trends on Information Technology are also discussed. Note: Students cannot receive credit for both 63.120 Introduction to Computer Science and Information Technology and 63.151.

63.152 Computer Science I (Gen.Ed. Goal 16)

      An introduction to problem solving using the C++ language. The course stresses algorithms, coding, documentation, testing, and debugging (error detection and correction). Topics include hardware basics, number systems, human-computer interaction, social and professional issues relating to computing, ethics, objects, I/O in C and C++, control structures, types, functions, virtual-machine concepts, Internet computing, client-server computing, and general features of programming languages, including C++, C, and Java.

Prerequisite: 43.123 College Algebra or satisfactory score (2) on the math placement examination.

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, or familiarity with a Windows environment and programming experience in any language.

63.252 Computer Science II (Gen.Ed. Goal 16)

      A continuation of 63.152 Computer Science I that emphasizes a development of strong programming skills, modular design, problem-solving and good programming principles including documentation. Topics include simple classes and objects, functions, recusion, scope, arrays, sorting and searching using arrays, structures, file operations in C++ and C, pointers and dynamic memory allocation, string manipulation, string tokening and parsing, bit manipulation, enumerated types, and multiple-source-file programs. The course uses standard C++ and C libraries.

Prerequisite: 43.200 Precalculus (may be taken concurrently) and 63.152 Computer Science.

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 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

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

63.271 Data Structures

      An in-depth presentation of sorting and searching algorithms, recursion, issues of correctness of of algorithms, and fundamental data structures such as collections, linked lists, stacks, queues, priority queues, trees, hash tables, and graphs. Course emphasizes analysis of algorithms throughout, using big-O notation. Programming assignments provide hands on experience with various data structures and algorithms.

Prerequisite: 63.259 Object-Orientated Programming and 43.200 Precalculus

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

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 combinational circuits; decoders; priority encoders; multiplexers; parity circuits; adders, subtractors and ALU's; latches and flipflop; counters; shift registers, and the design and analysis of synchronous state machines. Includes a weekly three-hour laboratory period.

Prerequisite: 63.152 Computer Science I

63.330 JAVA Programming

      A comprehensive study of object-oriented programming using JAVA. Topics covered include objects, core JAVA classes, writing Applets and Applications,Servlets, networking, RMI, thread control, input-output 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.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 63.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 internet-working, 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 internet-working. 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; 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.261 Computer Organization and Assembly Language Programming and 63.271 Data Structures

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: Upperclass standing in computer science with at least a 3.0 average in computer courses or permission of instructor.

  Previous Next     

  © Framingham State College 100 State Street PO Box 9101     Framingham, MA 01701-9101     508-620-1220  

Web site maintained by: Director of Academic Technology
Last Updated: September 26, 2005
fscfeedback@frc.mass.edu
Problems | Site Map