SENATE DOCUMENT #32 ACADEMIC POLICIES COMMITTEE DOCUMENT # 22 1984-85 The Academic Polices Committee recommends approval of the following changes in the Department of Computer Science: PART I -- Changes in Computer Science Courses Note: All courses will be shown, in order that the committee can visualize the entire Computer Science offering. CSCI 100 Computer System Resources (1) (Delete) Rationale: At present, so little work is being done on the IBM computers at TUCC that student and faculty interest not warrent a continued listing of this course. CSCI 120 Interactive Computing (2) (Delete) Rationale: We now have two other BASIC courses. This course is no longer scheduled. CSCI 122 Applications of Data Base Management (2) (No change) CSCI 124 Today's Computers (3) (New course) Description: The organization, function, capabilities and limitations of modern computer systems. Procedures used to prepare programs with examples coded in a language. Ways in which people and organizations may be affected by present and future computer applications. This course does not count toward the foreign language option for non-science majors. Prerequisite: None Rationale: This course has been offered successfully for the past two years as a special topics course. It is believed that it will serve a need for a non-programming computer offering for those students who desire an understanding of computers and their place in society. CSCI 126 Microcomputers (3) (New course) Description: File management procedures using the Apple II. Sequential and direct access files are created, edited, and updated and reports are written using them. Graphics methods are introduced to construct graphs for commercial applications. Prerequisite: None Rationale: This course has been offered successfully for the past several years as a special topics course. Students are drawn from among regular students and from the community. Students with personal microcomputers other than Apples are encouraged to perform the classwork on their own machine by making the necessary alterations in the design of their programs. CSCI 141 Computer Programming I (BASIC) (3) (Change in catalog description) Add to Description: Credit will not be given for both CSCI 141 and CSCI 161. CSCI 142 Computer Programming I (FORTRAN) (3) (No change) CSCI 143 Computer Programming I (COBOL) (3) (New catalog description) Description: Programming in COBOL, oriented toward fundamental computer concepts and COBOL language features. Credit will not be given for both CSCI 143 and CSCI 241. Prerequisite: MATH 103 or 104 or placement Rationale: A new description is needed to make a clear distinction between this course and CSCI 241. CSCI 154 Introduction to Computer Systems (3) (Change in Prerequisites) Prerequisites: 141 or 161 or 142 or 143 CSCI 161 Accelerated BASIC (3) (Change in catalog description) Add to Description: Credit will not be given for both CSCI 141 and CSCI 161. CSCI 232 Introduction to Computer Organization (3) (No change) CSCI 240 Digital Electronics and Integrated Circuits (PHYS 240) (2) (No change) CSCI 241 Applications Programming I (COBOL) (3) (New course see Part II) CSCI 243 Computer Programming II(PASCAL) (3) (Change in prerequisites) Prerequisites: 141 or 161 or 142 or 143. CSCI 246 Computer Graphics (3) (Proposed change in course number to CSCI 346) (See CSCI 346) CSCI 256 Introduction to File Processing (3) (No change) CSCI 321 'C' Programming (No change) CSCI 331 Operating Systems and Computer Architecture I (3) (Change in prerequisites) Prerequisites: 232, 333, and (256 or 341) CSCI 333 Data Structures and Algorithm Analysis (3) (Change in prerequisites) Prerequisites: 232, and (256 or 341) CSCI 341 Applications Programming II (COBOL) (3) (New course see Part II) CSCI 342 Systems Analysis Methods (3) (New course see Part II) CSCI 344 Numerical Computing (3) (No change) CSCI 346 Computer Graphics (3) (Upgrade in course number from CSCI 246) (New course description) Description: The standard ACM 'graphics core' set of routines are studied and implemented in Pascal. Student programs are designed to use these routines to create two and three dimensional images. Hidden surface and animation methods are included. Prerequisites: 154 and 243. Rationale: Over the years this course has been upgraded many times. The prerequisite has changed from CSCI 141(BASIC) to CSCI 243(Pascal) and an understanding of matrix methods is now expected. The use of the 'graphics core' agrees with Junior-Senior level courses in computer graphics offered at major universities. We believe a 300 catalog number is the correct level and is justified. CSCI 431 Organization of Programming Languages (3) (Change in prerequisites) Prerequisites: 232, 333, and (256 or 341). CSCI 440 Computer Architecture II (New course) Description: This course is designed as a study of the techniques employed by the designers of large computers to exploit parallelism in data processing. The TI-ASC, STARAN, CRAY1, CYBER 205 and others are examined with particular attention given to memory organization, data paths, interconnection structures, and pipelining. Prerequisites: 331 and 333 Rationale: 1. Present a course consistent with the ACM model curriculum course CS-11 and the IEEE Computer Society Task Force on Computer Architecture recommendations*. 2. Offer computer science students an upper level elective. 3. Prepare for graduate study by presenting state of the art models of computer design. 4. Provide a frame of reference against which computer hardware configurations can be evaluated and from which they can be tuned to most effectively meet the demands of users. 5. Equip the student with the knowledge of the advantages and disadvantages of various computer architectural options. * G.E. Rossman, et al.: "A Course of Study in Computer Hardware Architecture." Computer, Vol. 8,No. 12 pp44-63, December 1975. CSCI 442 Structured Systems Analysis and Design (3) (New course see Part II) CSCI 443 Database Program Development (3) (New couse see Part II) CSCI 449 Microcomputer Interfacing (New course) Description: This course includes topics in microcomputer system design. Relationships between the MPU, its peripheral chips, bus structures, memory systems, and timing considerations are studied. Gate arrays, CMOS and NMOS technology, VLSI design methods, chip design, SPICE circuit simulations, and hardware laboratory experiences are included. Prerequisite: 154, 232, and PHYS 112 or 222. Rationale: This course has been offered successfully over the past two years as a special topics course. It provides the student with a full understanding of how small computer systems are designed and manufactured. The student who will go into the field of computer hardware design will put material in this course into immediate use, but the knowledge is also valuable for persons going on to graduate work in Computer Science. CSCI 452 COMPILER DESIGN (New course) Description: Theory of programming language translation, design and construction of compilers. Lexical analysis and automatic generators for lexical analyzers. Parsing techniques, parser generators. Syntax-directed translation, intermediate and machine-code generation, techniques for code optimization. Prerequisite: 431 Rationale: 1. Introduce formal language theory and apply concepts of grammars to lexical analyzers, parsers, and general classes of automatic language translators. 2. Initiate students to problems of programming language design issues: user convenience, efficiency of program translation, semantic specification. 3. Provide a programming project course involving a wide range of software design and development problems, and drawing on numerous techniques from previous courses (data structures, file processing, organization of programming languages). PART II -- A New Program in Computer Science: Information Systems PROPOSAL TO DIVIDE THE COMPUTER SCIENCE MAJOR INTO TWO PROGRAMS The Computer Science major has been in place for a little more than a year. It has attracted about 140 majors into the program. Five students graduated in May, 1984, and two more in the summer of 1984. The members of the Computer Science Department faculty would like to build upon this success by sharpening the focus of the broad spectrum of interests into two more carefully defined areas. We propose dividing the Computer Science major into two programs; a Computer Systems Program, and an Information Systems Program. Both programs would draw from a common core of Computer Science courses but would differ in emphasis in the following way: Computer Systems: a. Emphasis on theoretical approach b. Systems programming and scientific programming c. Software design d. Analysis of hardware with laboratory e. Architecture and design Information Systems: a. Emphasis on applied approach b. Commercial and business programming c. Mathematical statistics and applications d. Communications networks e. Data base management systems f. Systems analysis and design The separation of the major into these two programs would be done in such a way as to keep each program equally challenging. We want the students to make a choice based upon their career goals rather than upon which program may appear academically less difficult. A listing of career opportunities for the programs are as follows: Computer Systems: a. Computer system design b. Scientific systems programming c. Computer network hardware design d. Operations and systems management e. Hardware sales and maintenance Information Systems: a. Systems analysis and design b. Commercial and business application programming c. Network communications d. Data base management and software systems management e. Software sales and maintenance The information stated above is only for purposes of emphasizing the differences in the "tone" of the two programs. The two programs will still be in line with the overall goals of a liberal arts degree in Computer Science. At least 3/4 of the course work in these programs will come from a common core of computer and mathematics courses. Of the two programs, the Computer Systems program would be a closer relative of the present Computer Science degree program than would be the Information Systems program. We believe the division of the present Computer Science major into these two programs is desirable from the standpoint of more carefully refining the needs of the students majoring in this field and better preparing them to meet the personnel needs of Western North Carolina employers. The separation of the Computer Science major into these programs is often found at universities with high quality Computer Science programs so it should not be considered unique to this University. It is expected that this new program will create considerable student interest, comparable to a significant fraction of the 140 students currently declared in Computer Science. One faculty addition has been authorized for 1985-86. It is anticipated that the proposed program can be implemented without further faculty additions. We expect to offer the proposed new courses on a once a year basis, unless student demand indicates a more frequent offering. For guidelines in designing the new Information Systems program, we used the Data Processing Management Association (DPMA) Model Curriculum for Undergraduate Computer Information Systems Education,a document based on extensive research by both computer educators and professionals. In order to ensure compatibility with a liberal arts degree program, we selected 9 of the most fundamental courses from the 28 that were recommended in the model. COMPUTER SCIENCE MAJOR REQUIREMENTS PROGRAM B - INFORMATION SYSTEMS (PROPOSED) Courses in the major (36 hours) Required courses: CSCI 154 - Introduction to Computer Systems CSCI 161 - Accelerated BASIC CSCI 232 - Introduction to Computer Organization ** CSCI 241 - Applications Programming I (COBOL) ** CSCI 341 - Applications Programming II (COBOL) ** CSCI 342 - Systems Analysis Methods ** CSCI 442 - Structured Systems Analysis and Design ** CSCI 443 - Database Program Development Select four optional courses: CSCI 243 - PASCAL Programming CSCI 321 - "C" Programming CSCI 331 - Operating Systems and Computer Architecture I CSCI 333 - Data Structures & Algorithm Analysis CSCI 346 - Computer Graphics - formerly CSCI 246 CSCI 449 - Microcomputer Interfacing General Education science requirement: PHYS 111 and PHYS 112 Correlate mathematics courses (12 hours): MATH 191 - Calculus I MATH 192 - Calculus II STAT 225 - Intermediate Statistics and Data Analysis Additional correlate courses (12 hours): ACCT 215 - Principles of Accounting I ECON 306 - Managerial Finance MGMT 200 - Philosophy and Concepts of Management MGMT 313 - Organizational Theory and Behavior ** Indicates a new course offering. Descriptions follow. Catalog Copy Summarizing Above Proposal PROGRAM B - INFORMATION SYSTEMS I. Required courses in the major - 36 hours: including 154, 161, 232, 241, 341, 342, 442, 443, and twelve additional hours chosen from 243, 321, 331, 333, 346, 449. II. Required courses outside the major - 32 hours: MATH 191, 192; STAT 225; PHYS 111, 112; ACCT 215; ECON 306; MGMT 200, 313. III. Foreign language requirement - Foreign language options for science majors are allowed (see General Education requirements) IV. Other major requirements - Seniors must demonstrate in-depth knowledge in one aspect of Computer Science by completing a faculty-approved project. Design and implementation of hardware or software projects are encouraged. Other types of projects must exhibit good research, design and data gathering techniques. CSCI 241 Applications Programming I (COBOL) (3) (New Course) DESCRIPTION: COBOL Programming with emphasis on business and management applications. File creation, data handling, and table structures. Computer organization and system logic. Credit will not be given for both CSCI 143 and CSCI 241. Prerequisite: Math 163 or equivalent, CSCI 161 RATIONALE: CSCI 143 (Computer Programming I) will remain in the curriculum as an introductory COBOL programming course, suitable for non-majors and the general public. Introducing this course at the 200-level and requiring CSCI 161 (Accelerated BASIC) as a prerequisite will ensure that students entering this course have a fundamental understanding of programming concepts and algorithms and will allow more in-depth coverage of the COBOL language. This course is appropriate for Computer Science Majors and others who plan to progress beyond an introductory level. CSCI 341 Application Programming II (COBOL) (3) (New course) DESCRIPTION: Advanced problem-solving and programming course using the COBOL language. Advanced table-handing, search techniques, advanced file-handling, and efficiency considerations. Emphasis on developing good structured programming techniques. Prerequisite: CSCI 154, CSCI 241 RATIONALE: COBOL is currently the most widely-used programming language in large corporations and financial institutions. This course will build on the knowledge acquired in the first course to cover advanced language features, business applications and complex programming assignments. CSCI 342 Systems Analysis Methods (3) (New course) DESCRIPTION: Overview of the systems development life cycle, including techniques and tools of systems analysis and design. Emphasis on analyzing system requirements and translating the requirements into a well-documented set of system specifications. Prerequisite: CSCI 341 CSCI 442 Structured Systems Analysis and Design (3) DESCRIPTION: Advanced study of structured systems development. Emphasis on strategies, techniques and methodologies of structured systems design and implementation. Prerequisite: CSCI 342 RATIONALE: In terms of software development, the next logical step after learning to program is to learn to analyze and design systems of programs. Understanding of this process will be expected of our graduates in the commercial programming environment. Our students have expressed a great deal of interest in both of these courses. We are presenting "Systems Analysis Methods" as a Special Topics course this semester with 27 students in the class. CSCI 443 Database Program Development (3) (New course) DESCRIPTION: An in-depth study of the development of application programs in a Database environment. Emphasis on gaining awareness of different approaches to data modeling and gaining practice in employing the host language facility of a Data Base Management System. Prerequisite: CSCI 442 RATIONALE: Data Base Management Systems have gained widespread acceptance in the computer field today. Students who expect to be employed in a commercial environment or who plan to further their studies need knowledge and experience in this Part III -- Update to Program A New Catalog Copy PROGRAM A - COMPUTER SYSTEMS I. Required courses in the major - 36 hours: including 161 or 142; 154, 232, 243, 256, 331, 333, 346, 431, and nine additional hours chosen from 142, 161, 240, 241, 321, 341, 342, 344, 440, 449, 452. II. Required courses outside the major - 31 hours: MATH 191, 192, 266; STAT 225; PHYS 221, 222; and six hours chosen from ECON 200, 201; MGMT 200. III. Foreign language requirement - Foreign language options for science majors are allowed (see General Education requirements) IV. Other major requirements - Seniors must demonstrate in-depth knowledge in one aspect of Computer Science by completing a faculty-approved project. Design and implementation of hardware or software projects are encouraged. Other types of projects must exhibit good research, design and data gathering techniques. Rationale: Minor changes have been made to respond to course changes in Part I.