Students pursuing this degree in Computing take required courses in computing, mathematics and general education before specializing in computer systems engineering. The major includes advanced courses which build on analytical skills and deepen knowledge in the subject. The major in computer systems engineering educates computer systems engineers who are able to apply transferable skills to a wide range of computing activities, particularly in an international engineering context. The program has an outstanding record of producing graduates who have moved on to industry or graduate schools all over the world to use their engineering skills.
CSC 107 (3 CREDITS)
Fundamentals of Program Design I
This is the first of a three-semester sequence of courses on program development, focusing on problem-solving, design of algorithms, and their realization as computer programs. The focus is on the solution of mathematical problems ranging from series calculations to applications such as tax and mortgage calculations. Topics covered include simple algorithms, data types, control structures and procedural abstraction, data driven programming and event driven programming.
Prerequisites: MTH 100 (or math placement test exemption) and CSC 121 (or test-based exemption granted by the instructor).
MTH 114 (4 CREDITS)
Calculus with Analytical Geometry I
First of a three-semester sequence of courses in calculus. It covers limits and continuity; elementary differentiation and integration and applications to maxima, minima and problems in kinematics. It also deals with differentiation of trigonometric and inverse trigonometric functions, approximate methods of integration and the co-ordinate geometry of the line, parabola and circle. Only one of the following courses may be taken for credit: MTH 114 or MTH 115.
Prerequisite: MTH 105 or equivalent.
CSC 117 (3 CREDITS)
Fundamentals of Program Design II
This is the second of a three-semester sequence of program development courses, focusing on object-orientation topics to cover classes, polymorphism and inheritance. Data structures are also covered and include linear lists, stacks, queues and hashing tables, in both the sequential and dynamic representation.
Prerequisites: CSC 107 and CSC 200 (possible as a corequisite).
MTH 117 (3 CREDITS)
Discrete Mathematics
Provides an introduction to the important modern subject of discrete mathematics. Topics covered include propositional logic, set theory, number systems, relations on sets and an introduction to algebraic structures.
Prerequisite: MTH 100 or mathematics placement test exemption.
MTH 118 (3 CREDITS)
Probability and Statistics I
An introductory statistics course dealing with descriptive statistics, elementary probability, random variables and probability distributions, mathematical expectation, correlation and regression. Only one of the following courses may be taken for credit: MTH 118, MTH 212, MTH/SCL 219.
Prerequisite: MTH 100 or mathematics placement test exemption.
CSC 121 (3 CREDITS)
Information Systems and Computer Applications I
Examines the nature of information systems and information processing techniques. Topics covered include input and output, primary and secondary storage, data validation and testing, systems and applications software and data security. This course includes a practical element using a disk-operating system, word processing and spreadsheet software. All students successfully completing this course will be at ease using modern computer systems, while those progressing to further computer studies will be well-placed for more advanced work.
Pre- or corequisite: MTH 100 or mathematics placement test exemption.
CSC 131 (3 CREDITS)
Information Systems and Computer Applications II
Building on the knowledge acquired in CSC 121, this course examines further aspects of modern information systems and prepares the student for many of the upper division computer and business courses. The material in this course consists of the basics of information systems, information systems developments, techniques and tools of structured methodologies, data management (database structures), management information systems, and data communications. The course also covers an overview of expert systems and applied artificial intelligence. The course contains a significant practical element.
Prerequisite: CSC 121.
CSC 200 (3 CREDITS)
Systems Specification and Design
This course provides an introduction to techniques used by industry for software specification and design. It introduces the software development cycle, presenting methods and models used in this context. The UML modeling method is introduced, together with a suitable Case tool. Students complete a systems specification and design project.
Prerequisites: CSC 131 and MTH 117.
CSC 207 (3 CREDITS)
Fundamentals of Program Design III
This is the third of a three-semester sequence of courses on program development, investigating in depth problem-solving, design of algorithms and data structures, and their realization as computer programs. Topics include vectors, lists, trees, priority queues, graphs, dictionaries, and complex combinations of these, as well as searching, sorting, and pattern matching.
Prerequisite: CSC 117. Corequisite: CSC 208
CSC 208 (1 CREDIT)
Fundamentals of Program Design III Laboratory
This laboratory course complments CSC 207, the third of a three-semester sequence of courses on program development, investigating in depth problem-solving, design of algorithms and data structures, and their realization as computer programs. Practical topics include vectors, lists, trees, priority queues, graphs, dictionaries, and complex combinations of these, as well as searching, sorting, and pattern matching.
Corequisite: CSC 207.
CSC 212 (3 CREDITS)
Digital Systems Design
Introduces students to the design and implementation of digital systems. It teaches the principles and concepts of good logic design following a hierarchical approach. It evolves from logic gates to the finite and algorithmic state machines leading to the design of computer systems. Students gain an understanding of how complex logic functions are implemented and learn design for reliability.
Prerequisites: CSC 107 and MTH 117. Corequisite: CSC 213.
CSC 213 (1 CREDIT)
Digital Systems Design Laboratory
Extends students’ knowledge on the design and understanding of digital systems. The course provides a complementary understanding to the theory learned in the co-requisite course CSC 212. It concentrates on the practical aspect of digital systems by allowing students to simulate, manipulate, wire and connect chips together.
Corequisite: CSC 212.
CSC/SCL 215 (3 CREDITS)
Social Issues in Computing
Covers diverse aspects of Information and Communication Technology (ICT) and their impact on social, legal and ethical issues in society. Among the topics covered are privacy, data protection, freedom of speech and the digital divide. The course also compares the approaches adopted by different countries in resolving the problems that arise from the introduction of various technologies.
Prequisite: SCL 150 is recommended but not required.
CSC/MTH 300 (4 CREDITS)
Mathematics for Computing
The mathematical foundations essential to advanced areas of computing are investigated. These include recurrence relations, large functions, adjacency matrices, graph traversals, binary trees and computation theory.
Prerequisites: MTH 114, MTH 117, and MTH 118 (or MTH 212)
CSC 301 (3 CREDITS)
Software Engineering
The course builds on and enforces knowledge gained in Systems Specification & Design and includes activities that cover the development phase and beyond in the spectrum of the software development cycle. It covers socio-technical aspects and project management. Reflecting recent developments, it introduces rapid application development and emerging technologies such as component based software engineering and service-oriented software engineering. There is a practical element and students will use the modeling language UML throughout the course. The course also introduces the formal specification language Z.
Prerequisite: CSC 200.
CSC 319 (3 CREDITS)
Algorithms
This course covers the design and analysis of algorithms with particular reference to brute-force, greedy, divide-and-conquer and dynamic programming algorithms. Algorithm types include sorting, searching, graphs, graphics, strings, numbers, operating systems, trees and compression. Proficiency in a suitable programming language is required.
Prerequisite: MTH 117. Pre- or corequisites: CSC 207, CSC 208, and CSC/MTH 300.
CSC 336 (3 CREDITS)
Graphic Applications of Computers
Introduces students to the ways in which computers can be used to assist artists and designers by working with software appropriate to lens media, computer-aided-design and fine art applications. Students will be introduced to computers as a design tool for the manipulation of text and image. They will learn techniques and skills associated with desk top publishing; and will develop a series of projects to do with image manipulation and graphics.
CSC 341 (3 CREDITS)
Data Communications and Computer Networks I
This course investigates the fundamental concepts of data communications, networking, distributed applications, and network management. Students study methods for designing, enhancing, manageing, and costing networks. In general, the course covers critical issues in Local Area Networks, Backbone Networks, Wide Area Nteworks, Internet Technologies, and the use of the Internet, intranets, and extranets to support business objectives/
Prerequisite: CSC 131.
CSC 349 (3 CREDITS)
Simulation and Modeling
Deals with the techniques used in computer simulation and modeling. It covers model construction and algorithm development in the context of several application areas. As a whole, the course treats the important aspects of simulation study, including simulation language, validation, output data analysis and their presentation graphics.
Prerequisites: CSC 207 and CSC/MTH 300.
CSC 479 (3 CREDITS)
Internet Computing
The development of the Internet has created a wealth of opportunities in ecommerce, web software tools, web design and computer network management. This course investigates the most significant developments and the essentials of establishing an on-line company. Setting objectives, creating strategies and implementing programs are all considered. Students are required to complete a group project in an area related to Internet computing.
Prerequisite: CSC 200.
CSC 491 (3 CREDITS)
Senior Project I
Project-based courses concentrating on advanced topics in computing according to the interests of the senior project supervisor. Students must be able to choose, research and carry out a substantial project in a subject of his or her choice. The projects should produce a piece of work that is either commercial or is concerned with research being carried out in the department. The subject must have technical content and demonstrate the ability to find relevant information and apply it productively.
Prerequisites: Senior status and permission of instructor.
CSC 492 (3 CREDITS)
Senior Project II
Project-based courses concentrating on advanced topics in computing according to the interests of the senior project supervisor. Students must be able to choose, research and carry out a substantial project in a subject of his or her choice. The projects should produce a piece of work that is either commercial or is concerned with research being carried out in the department. The subject must have technical content and demonstrate the ability to find relevant information and apply it
Prerequisites: CSC 491.
CSC 302 (3 CREDITS)
Computer Architecture
**
Introductory course for engineer users of realtime computing. It presents the design and limitations of digital computers based on sequential processing, and the motivation for advanced architecture. CPU connections, memory and I/O management, and RISC architectures are covered. Participants are invited to bring their own application problems to the course, around which the exercises will be constructed.
Prerequisites: CSC 121, CSC 207, CSC 212, and CSC 213. Corequisite: CSC 303.
CSC 303 (1 CREDIT)
Computer Architecture Laboratory
**
Extends the student’s knowledge on the understanding and manipulation of microcomputer systems. The course complements the theory learned in the corequisite course CSC 302. It concentrates on the practical aspect of configuring, programming, and interfacing CPUs to their environment.
Corequisite: CSC 302.
CSC 305 (3 CREDITS)
Computer Graphics
Provides an introduction to computer graphics and includes issues associated with graphic applications of computers, desktop publishing, manipulation of predrawn images in a suitable software environment, geometric transformations, color theory and graphics hardware. Group projects provide opportunities for both arts and science students to study advanced topics in computer graphics.
Prerequisites: CSC 131, CSC/MTH 300 or permission of instructor.
CSC 345 (3 CREDITS)
Human-Computer Interaction
Examines efficient design, evaluation, and implementation of humans and machines interactions. Various human-like sensors and motors, with their information structure that reflect human conceptualizations are studied. Fundamental questions that the course addresses are: ‘What are efficient methods of representing objects and automatically creating pictures for viewing? What are effective methods for receiving input or presenting output? How can graphics and other tools be used to understand physical phenomena through information stored in data sets?’
Prerequisites: CSC 131, CSC 200, and CSC/SCL 215.
CSC 420 (3 CREDITS)
Project Management
This course examines the major phases of the project management process: Project selection and definition, planning, organization, control, completion and review. Students will examine key outcomes, documents, and techniques available for successfully managing these phases. Topics include Project selection and scope definition, work breakdown structures and statements of work, risk management, project scheduling, project team selection and management, and analysing project management tools.
Prerequisite: SYS 300.
CSC 427 (3 CREDITS)
Operating Systems
Discusses operating systems issues such as tasking and processes, process co-ordination and synchronization, scheduling and dispatch, physical and virtual memory organization, device management and file systems. Security and protection problems and distributed systems design are discussed.
Prerequisites: CSC 200, CSC 212, CSC 213, and CSC 301.
CSC 431 (3 CREDITS)
Data Communications and Computer Networks II
This course is concerned primarily with the architecture and technology of data flows in networks. The OSI model is examined in detail along with protocols for error and flow control, dynamic routing, and congestion control. Routing, bridging, and service aspects of internetworking are examined. Various applications are reviewed including X.25, frame relay, FDDI, ATM, etc. The principles underlying multimedia services are also investigated.
Prerequisite: CSC 341.
CSC 440-464 (3 CREDITS)
Special Topics in Computing
An advanced course on a topic of current interest or in a faculty member's specialty.
CSC 478 (3 CREDITS)
Speech Processing
The processes involved with the analysis of acoustic signals are investigated. Issues of feature extraction and classification, natural language processing, Fourier transforms, linguistics and commercially available speech recognition systems are also developed. Students are expected to produce a group speech processing project.
Prerequisite: CSC 319.
CSC 483 (3 CREDITS)
Internship in Computing
This program offers upper division students the opportunity to do a full-time internship in London. The experience provides the opportunity to enhance and complement classroom learning and to develop professional skills and competencies. The Internship Program is open to students enrolled in a degree program who have successfully completed 75 credits with a minimum GPA of 2.75.
Prerequisites: Senior status and permission of adviser.
CSC 499 (3 CREDITS)
Independent Study in Computing
Independent study is an individual research project in Computing, taken under the direct supervision of a fulltime faculty member. Independent study requires in-depth academic work on a specialized topic which requires research, reading, writing and where appropriate, experimentation. Students wishing to pursue independent study must be have at least 60 credits, and must have a GPA of 3.0 or higher. Independent study is not available to Study Abroad students.
** this course and associated laboratory count as one course and should normally be chosen