Bilgisayar Mühendisliği
Akademik Course Description

Course Description


Course Code Course Name Credit
CSC 104Computers in the Business World (3+0+0) 3
Provides a general introduction to the different uses of computers in business. Includes these topics: computer system concepts, data representation and storage, processor and peripheral hardware, data processing and word processing systems, spreadsheets, report generation, database queries, and management packages.Prerequisite: None.
CSC 105Internet and Web Publishing (3+0+0) 3
Provides a general introduction to cyberspace. Includes these topics: Internet, e-mail, lists, news groups, Gopher, Telnet, FTP, World Wide Web, net browsers, and creating Web home pages using HTML.Prerequisites: CSC 104 or CIS 106 or GEP 150 or equivalent.
CSC 120Introduction to Computer Science (3+0+0) 3
Provides a breadth-first introduction to computer science. Includes these topics: algorithms and their properties; binary, octal and hexadecimal: arithmetic and conversion; representation of integer and real numbers; elementary computer organization, architecture and programming of a simple machine; digital logic; substantial hands-on Java programming: declarations, assignments, expressions, I/O and loops; operating systems and networks; programming languages and paradigms; some applications: database, spreadsheet, etc.; ethical, legal and social issues of computing. Requires extensive programming. Preparation for CSC 203. Closed to students who have successfully completed CSC 203.Prerequisite: MTH 121.
CSC 203Fundamentals of Computer Science I (3+0+2) 4
Covers fundamental computer science concepts and object-oriented program development in Java. Includes these topics: problem solving, algorithm design and implementation; program testing and documentation; primitive data types, data manipulation, selection, loops; classes, methods, parameters, inheritance; arrays, strings, files, introduction to sorting and searching techniques and other basic algorithms. Requires extensive programming and supervised lab sessions.Prerequisites: CSC 120 and MTH 122.
CSC 205Fundamentals of Computer Science II (3+0+2) 4
Provides an introduction to abstract data structures and their implementation. Includes these topics: program development (interpreting specifications, object-oriented and top-down development, information hiding, structured testing), stacks, queues, linked lists, recursion, trees, searching and sorting algorithms, introduction to analysis of algorithms, program verification, event-driven programming with graphical user interfaces. Requires extensive programming and supervised lab sessions. Prerequisites: CSC 203 and MTH 281.
CSC 209UNIX Tools (1+0+1)1
Provides a comprehensive introduction to the UNIX operating system from the programmer's point of view. Includes these topics: basic commands, file system structure, concept of shells, shell features (pipes, redirection, etc.), access control, process control, scripting, UNIX tools (sed, grep, make, etc.). Requires extensive hands-on laboratory exercises and shell-script programming.Prerequisite: CSC 203.
CSC 212Programming in Visual Basic (3+0+0) 3
Provides a general introduction to computer programming and applications for non majors using the VISUAL BASIC language. Includes these topics: computer terminology, programming concepts, language features, and algorithm design. Introduces a survey of computer applications using the following programming techniques: structured design concepts, decisions, loops, functions, subroutines, arrays, and files. Requires extensive programming.Prerequisites: CSC 120 and MTH 122.
CSC 295Topics in Computer Science (3+0+0)3
Addresses current topics in the field at an introductory level. Each offering of the course is motivated by the expertise of the instructor and by students' interests. Descriptions and prerequisites are published prior to the registration period for the course. Example topic: Windows NT.Prerequisite: Published prior to registration each semester.
CSC 303Digital Logic and Computer Design (3+0+0) 3
Provides an introduction to digital logic and design of computers. Includes these topics: number systems, Boolean algebra and logic gates, simplification of Boolean functions, combinational and sequential logic design, registers, counters, memory units, and ALU. Includes hands-on experience with hardware circuit components.Prerequisite: MTH 281.
CSC 311Computer Organization and Software Interface (3+0+2)4
Covers basic hardware organization of digital computers and software interface at the assembly and C programming levels. Includes these topics: processor and memory organization, fetch-execute-decode cycle, data representation of integer and floating point numbers, computer arithmetic, assembly language programming (instruction encoding, addressing modes, control flow logic, subroutines, linking and loading), C programming (program development, modularization, I/O concepts, library function calls, programming environment). Requires extensive programming and supervised laboratory sessions. CSC 205 and CSC 209.
CSC 401Theory of Programming Languages (3+0+0) 3
Studies concepts of programming languages. Includes these topics: history; design principles; formal syntax and semantics; implementation: compilation, interpretation; comparative study of features in various languages: binding, scope, type conversion, data abstraction, parameter passing techniques, exceptions, I/O, etc; paradigms in programming: procedural, object-oriented, functional, logic, scripting. Requires extensive programming.Prerequisite: CSC 311.
CSC 406Algorithms and Data Structures (3+0+0) 3
Covers design and analysis of data structures and associated algorithms using object-oriented methods. Includes these topics: complexity measures, pre-and post-conditions, programming to interfaces, union-find sets, hashing, trees (AVL, splay, B-Trees), graphs, recursion, algorithm design strategies and NP-completeness. Extensive programming. Prerequisites: CSC 205 and MTH 481.
CSC 411Computer Architecture (3+0+0) 3
Studies the design and organization of digital computers. Includes these topics: digital logic and circuit design, data representation, computer history, performance evaluation, CISC/RISC architectures, registers, memories and memory management, CPU and ALU architectures, instruction sets, busses and I/O systems, interrupt structure, microprogramming and control unit design. Covers additional topics such as virtual machines, parallelism and pipelining.Prerequisites: CSC 303 and CSC 311.
CSC 412Operating Systems (3+0+0) 3
Recommended: CSC 319 or knowledge of C and UNIX. Covers basic principles of operating systems. Includes these topics: file systems, CPU scheduling and context switching, memory management and virtual memory, disk scheduling, deadlock, concurrent processes and programming, protection mechanisms, design principles, and attempts at standardization. Includes an in-depth study of the UNIX operating system. Requires extensive programming. Prerequisite: CSC 311
CSC 419Computer Networks (3+0+0) 3
Provides a comprehensive study of the field of computer communications, local area networks, and internetworking. Includes these topics: the ISO and TCP/IP models, protocols, topologies, data communication issues, error detection and correction, local area networks, network hardware, Ethernet and wireless technologies, WAN, packet-switching, routing, datagrams, Internet addressing, home networking and security. Includes hands-on experience with network components.Prerequisites: CSC 303 and CSC 311.
CSC 421Computer and Network Security (3+0+0) 3
Studies concepts, techniques and tools in computer and network security. Includes these topics: security, privacy, information assurance, threats, user authentication and access control; UNIX and Windows NT/2000 examples; logs and intrusion detection; cryptopgraphy, public-key systems, kerberos authentication; IP security, firewalls; Web and database access control and security issues; ethical issues.Prerequisites: CSC 205 and CSC 209.
CSC 422Relational Data Base Design (3+0+0) 3
Provides a study of the theory and practice of the relational approach to database design. Includes these topics: DBMS vs. a traditional file processing, relational algebra, normalization, lossless and/or dependency preserving decomposition, query languages such as SQL and a language that is available on the system, query optimization, integrity and security, and database project design. Requires extensive programming.Prerequisite: CSC 205.
CSC 427Software Systems Engineering (3+0+0) 3
Provides an introduction to software engineering and programming-in-the-large. Includes these topics: life-cycle models, development standards, project organization, requirements engineering, configuration management, quality assurance, cost and manpower estimates, specification techniques, design methods and representations, human factors, structured programming, object-oriented programming, testing and integration, validation, maintenance, and documentation. Requires the class to work as a project team developing a system for an actual customer. Communication and writing skills are essential. Requires extensive programming.Prerequisite: CSC 311.
CSC 429Object-oriented Programming (3+0+0) 3
Provides an introduction to basic concepts in object-oriented programming (OOP) and how to apply OOP techniques using an appropriate OOP language such as Java or C++. Includes these topics: the OOP programming paradigm including analysis and design; a survey of related languages; data hiding and encapsulation; inheritance; and polymorphism. Requires implementation of these concepts using appropriate programming language constructs and extensive programming.Prerequisite: CSC 205.
CSC 434Artificial Intelligence (3+0+0) 3
Provides an introduction to artificial intelligence and its languages. Includes these topics: history and state of the art in AI; programming techniques in the languages LISP and PROLOG; fundamental methods in AI including heuristic search, knowledge representation using predicate logic, and production systems; classic basic problems involving games, graphs, theorem-proving, symbolic algebra, expert systems, natural language, etc. Requires extensive programming.Prerequisite: CSC 205.
CSC 442Electronic Commerce Technology (3+0+0) 3
Surveys electronic commerce technologies and realities. Studies defining tools of e-business to understand the manner in which users, tools, needs and opportunities interact. Includes these topics: the infrastructure of e-commerce and the design and imple- mentation of e-business portals using network and database technologies, data/WEB mining and security/encryption techniques for finding and negotiating with trading partners to execute electronic transactions.Prerequisites: CSC 205 and CSC 209.
CSC 444Introduction to Parallel Computing (3+0+0) 3
Deals with design and analysis of parallel algorithms. Includes these topics: parallel models of computation, measures of complexity, parallel algorithms for selection, searching, sorting, merging, matrix algorithms, transitive closure, connected components, shortest path, minimum spanning tree and routing algorithms. Provides hands-on experience in a parallel programming environment.Prerequisites: CSC 406 and MTH 481.
CSC 483Theory of Computation (3+0+0) 3
Provides a study of formal languages and theory of automata with an emphasis on Church's thesis and the "algorithm = machine" point of view. Includes these topics: regular expressions and context-free languages, finite and pushdown automata, Turing machines, computability, undecidability, and complexity of problems.Prerequisites: CSC 203 and MTH 481.
CSC 486Junior/Senior Seminar (3+0+0) 3
Provides an overall view of the professional field of computing, emphasizing development of communication skills for the profession. Includes these topics: detailed history of computing technology, social effects of computing, ethics in the field, professional literature, organizations and related activities, current industrial, social, legal governmental and technical developments, and career opportunities. Requires extensive reading and writing, both technical and non-technical, as well as library research, and prepared group discussions and oral presentations.Prerequisite: CSC 205; junior or senior status and computer science majors only.
CSC 492Computer Science Internship (3+0+0) 3
Provides an opportunity to apply knowledge from the classroom by working in a professional setting. Also provides a valuable and challenging experience for students who have never worked in such a situation, as well as for professionals furthering their education. Teaches the successful intern how effective professional performance requires integrating substantive knowledge with behavioral skills and proficiency in oral and written communication. Each student is supervised on campus by a computer science faculty member, and at the work site by qualified management personnel. Past projects have involved software engineering, graphics, database design, data communications, and process control. Prerequisites: Junior status, 3.0 or better average in computer science courses, appropriate course work, at least 18 credits towards the major completed prior to starting the internship, and instructor's permission.
CSC 493Senior Thesis(0+0+9) 3
Provides students with an opportunity to apply knowledge from the classroom by working in an independent research or development project in an academic setting, which is a valuable and challenging experience for students who are contemplating graduate studies in computer science, to test out their potential for independent study and advanced research. May involve substantial software or hardware development, structuring available commercial software/hardware for specific applications, or theoretical analysis of computational schemes. By developing a successful thesis, permits students to enrich their knowledge of computer applications, theory, hardware or software, to develop skills in analyzing problems involving current computing technologies, and to make effective oral and written presentations of their accomplishments. Each student is supervised by a Department of Computer Science faculty member. For details, see "The Computer Science Thesis Option" in the Handbook.Prerequisites: Junior status, 3.0 or better average in computer science courses, appropriate course work, at least 18 credits towards the major completed prior to starting the thesis, and instructor's permission.
CSC 495Topics in Computer Science (3+0+0) 3
As an advanced course, addresses current topics in the field. Each offering is motivated by the expertise of the instructor and students' interests. Requires students to complete a major research, design, or development project. Descriptions and prerequisites are published prior to the registration period for the course. Past topics include: networking, human factors, computational linguistics, advanced architecture, software engineering, logic programming, and program validation, object-oriented programming and parallel algorithms.Prerequisite: Published prior to registration each semester.
CSC 499Independent Study in Computer Science (0+0+9) 3
ÖArranged in consultation with the instructor-sponsor and in accordance with the procedures of the Office of Academic Advisement prior to registration.Prerequisite: Instructor's permission.