|
|
 |
|
Computer Science
|
 |
CSC
10 CTI/ELA ENGLISH PREPARATION
CTI/ELA English Preparation
CSC 200 SURVEY OF COMPUTING An introduction of various careers in the field ofinformation technology are explored. A hands-on component will deal withstate of the art personal computer operating systems, applications, databasesystems, Internet, email, and basic web site construction. The structure ofthe course utilizes both classroom lectures and computer classroom labs.This course is geared towards the non-major and assumes no prior knowledgeor experience in Computer Science.
CSC 202 DISCRETE STRUCTURES FOR COMPUTER SCIENCE This course introduces basic mathematical tools essential for solving problems in computer science. The mathematical topics are presented through their applications in computer science: logic and set theory in the context of relational databases, arithmetic, number theory, and algebra through cryptography; graph theory and discrete structures through puzzles and games. Optional subjects include fractals (recursion and rewriting systems), computer graphics (linear algebra), and Artificial Intelligence (first-order logic). PREREQUISITE(S): NONE
CSC 208 THE COMPUTER AND SOCIAL RESPONSIBILITY This course will research the impact technology has had in various areas of our lives, the new responsibilities technology presents, and our ability to deal with these changes in an ethical manner. Students will employ ethical frameworks, which integrates computer science and ethics, to develop the skills required to examine different sets of assumptions and question them.
CSC 210 INTRODUCTION TO COMPUTING Note: This course is no longer offered. Brief history of computers, binary numbers, data representation, machine architecture concepts, algorithm development in pseudo code and in a high level language, including branching, looping, parameter passing, and arrays. PREREQUISITE(S): MAT101 or Math placement
CSC 211 PROGRAMMING IN JAVA I Introduction to programming in Java and problem solving. Variables, data types, input/output, using objects and methods from the standard classes (such as String and Scanner), control structures, writing methods, arrays. Solving problems with algorithms and implementing algorithms in Java. PREREQUISITE(S): NONE.
CSC 212 PROGRAMMING IN JAVA II Intermediate programming in Java and problem solving. Writing Java programs with multiple classes: constructors, visibility modifiers, static members, accessor and mutator methods, and arrays of objects. Inheritance, polymorphism, and interfaces. Sorting arrays of primitive data and arrays of objects. Exception handling. PREREQUISITE(S): CSC 211.
CSC 223 THE IMPACT OF COMPUTING TECHNOLOGY ON OUR LIVES This course will introduce students to an overview of social analysis techniques and the theories of social change. These tools will be used to explore social impact issues of computing technology. Counts for Liberal Studies SSMW credit.
CSC 224 JAVA FOR PROGRAMMERS Object-oriented programming using Java for students that already know how to program. Students will learn how to design, code and test multi-class Java programs. Topics covered include: Variables, Operators, Arrays, Classes, Inheritance, Abstract classes, Interfaces, Inner classes, Exception Handling, File I/O, User Interfaces, and Event Handling. PREREQUISITE(S): Experience in at least one high-level programming language.
CSC 231 BASIC COMPUTATION FOR BIOLOGY This course is an introduction to the art of computational modeling of biological phenomena. It is primarily concerned with teaching basic skills needed to model a well-defined subset of our Universe. Modeling software like Matlab and spreadsheets will be the primary tools and no programming experience will be needed. (Other specialized software may be introduced and used as is economically feasible.) An important component of this course will be field trips to modern science and computational labs to ground students' knowledge in the phenomena being modeled and the art of modeling. PREREQUISITE(S): One quarter of Calculus or Graduate standing
CSC 233 CODES AND CIPHERS This course is an introduction to the science and history of secret writing (cryptography) and how codes and ciphers can be broken (cryptanalysis). In historical settings we will encounter the main ideas and methods devised to secure communication channels. Possible topics include: substitution ciphers, transposition ciphers, the Vigenere cipher, statistical methods in cryptanalysis, public-key cryptography, and quantum cryptography. PREREQUISTE: ISP 120.
CSC 235 PROBLEM SOLVING How do you solve a problem? In this course we discuss different problem solving techniques and strategies such as modeling, establishing subgoals, and searching and pruning. The techniques will be presented as part of a theoretical framework, but there will be significant emphasis on solving problems in familiar domains such as games, newspaper articles, philosophy, and simple geometry and logic. At the end of the course, students will have built a repertoire of problem solving tools that will allow them to make an informed choice of approach towards new problems.
CSC 239 PERSONAL COMPUTING Students will learn how to develop Excel workbooks for computing elementary statistics and compute simple statistical inference (confidence intervals, hypothesis testing and linear regression models) using the data analysis toolkit. A variety of statistical, mathematical, logical, and text functions in Excel as well as the Excel Chart and Data features will be presented. Further, students will gain an introduction to web publishing, as the world wide web currently offers fast access to a huge audience for the presentation of research results. PREREQUISITE(S): Students are assumed to be familiar with Windows. MAT 130 or equivalent, SI: QUANTITATIVE
CSC 241 INTRODUCTION TO COMPUTER SCIENCE I An introduction to problem solving, algorithms and structured programming using a higher-level programming language. The course will focus on skills for developing algorithms, and for writing and debugging programs. Students will learn how and when to use loops, conditionals, and functional abstractions in the context of problems motivated by real world applications. PREREQUISITE: MAT 130 or Mathematics Diagnostic Test placement into MAT 140.
CSC 242 INTRODUCTION TO COMPUTER SCIENCE II An intermediate course in problem solving, algorithms and programming. Programming skills are further strengthened through more complex and larger programming assignments. The assignments will also be used to introduce different Computer Science areas (e.g. a Client/Server application for the Distributed Systems area). Classes and object oriented programming are motivated and introduced. PREREQUISITE: CSC241
CSC 250 COMPUTERS AND HUMAN INTELLIGENCE Students taking this course will study human problem-solving and its simulation by computers. Artificial intelligence, pattern recognition and learning programs will be discussed. PREREQUISITE(S): Familiarity with basic computer productivity tools and the Web.
CSC 255 INFORMATION STRUCTURES & REPRESENTATIONS Data representation, machine architecture concepts, algorithms, data structures including arrays, stacks, linked lists, trees.
CSC 261 PROGRAMMING IN C++ I This is an introductory course in computer programming covering basic data types, functions and parameter passing, loops and decisions, arrays and pointers, using pointers to pass parameters by reference, strings and the C string library, I/O using the C standard I/O library, user defined data types. Examples in this course will concentrate on basic algorithms for manipulating data and using a simple library of graphics functions to display data and manipulate simple graphical objects interactively. PREREQUISITE(S): MAT 130 or equivalent
CSC 262 PROGRAMMING IN C++ II This course expands on CSC 261 covering issues of memory management, system calls and user defined data types. Topics include making system calls, objects as a way to combine data and methods, encapsulation and dynamic memory allocation. Principles of object oriented design including encapsulation, inheritance and polymorphism. PREREQUISITE(S): CSC 261
CSC 298 INTERNSHIP In cooperation with local employers, this course offers students the opportunity to integrate their academic experience with on-the-job training in computer related work areas. Admission to the program requires consent of internship course instructor. Current work experience plus classroom time is required. Supervisor evaluation will contribute to the final grade. This course satisfies the junior year experiential learning requirement.
CSC 305 GRAPHICAL USER INTERFACE IMPLEMENTATION Interface development with emphasis on GUIs and their implementation. In-depth coverage of the Model-View-Controller architecture, event handling, widget toolkits, layout managers, menus, secondary windows and development of new widgets. System concepts relevant to user interaction including threads and interrupts. Overview of user-centered design. PREREQUISITE(S): CSC 212 or CSC 224.
CSC 306 C# FOR PROGRAMMERS Note: This course is no longer offered. The essentials of C# programming. The .Net platform, CTS, CLR, and assemblies. Procedural programming (basic data types, control flow). Value and reference types. Namespaces, classes and interfaces, inheritance, and polymorphism. Delegate-based event handling. Data structures and collections. Exception handling. Input/output. PREREQUISITE(S): CSC 212 or CSC 224 or CSC 309.
CSC 308 FRAMEWORKS FOR WEB APPLICATION DEVELOPMENT This course introduces concepts, techniques, technologies and APIs for web application development. The main focus of the course is on the Model-View-Controller design pattern employed by modern full-stack web frameworks. Concepts and techniques covered include client/server programming, database abstraction APIs, and asynchronous JavaScript. Examples of full-stack MVC frameworks include Ruby-on-Rails (written in Ruby), Django and TurboGears (written in Python). PREREQUISITE: CSC 374
CSC 309 OBJECT-ORIENTED PROGRAMMING IN C++ The essentials of C and C++ programming, focusing primarily on the topics of memory management and data structures such as linked lists and trees. Recursion, inheritance, virtual functions, overloaded operators, templates. PREREQUISITE(S): CSC 212 or CSC 224.
CSC 319 DATABASE TECHNOLOGY Note: This course is no longer offered. This is an undergraduate course in databases that introduces the principles and issues in database design and implementation. Topics covered include: conceptual database modeling, logical designs using the relational database model, relational algebra, implementation techniques using query languages, functional dependencies and normalization. PREREQUISITE(S): CSC 210 or CSC 211 or CSC 240.
CSC 321 DESIGN AND ANALYSIS OF ALGORITHMS Techniques for designing algorithms including: analyzing algorithms (big-O, recurrence relations) and divide-and-conquer (quicksort, mergesort). Additional topics chosen from: the greedy method, dynamic programming, backtracking, branch-and-bound and string matching. PREREQUISITE(S): (CSC383 or CSC393) and MAT140. MAT141 Recommended.
CSC 324 DATA ANALYSIS & STATISTICAL SOFTWARE II Continuation of IT223. Multiple regression and correlation, residual analysis, analysis of variance, and robustness. PREREQUISITE(S): IT 223 or MAT 351.
CSC 325 TIME SERIES ANALYSIS AND FORECASTING The course introduces students to statistical models for time series analysis and forecasting. The course topics include: autocorrelated data analysis, Box-Jenkins models (autoregressive, moving average, and autoregressive moving average models), analysis of seasonality, volatility models (GARCH-type, GARCH-M type, etc.), forecasting evaluation and diagnostics checking. The course will emphasize applications to financial data, volatility modeling and risk management. Real examples will be used throughout the course. PREREQUISITE(S): (CSC 212 or CSC 262) and (CSC324 or MAT356) or consent of instructor.
CSC 327 PROBLEM SOLVING FOR CONTESTS This course prepares students to compete in programming contests. More broadly, it covers problem solving techniques in an informal, fun, and hands-on setting. This course will improve your analytical and programming skills and is thus recommended for all students and not just the competitors among us. This course can be taken for credit twice. PREREQUISITE(S): CSC383
CSC 328 DATA ANALYSIS FOR EXPERIMENTERS The use of statistical software in conducting an analysis of variance in a variety of settings and the interpretation of generated results. Analysis of variance for completely randomized, randomized block, and Latin square designs; for factorial experiments; for incomplete block designs; with missing data; for fixed-effects, random-effects, and mixed-effects models; and for experiments with repeated measures. The analysis of covariance. PREREQUISITE(S): CSC324 or MAT 353.
CSC 331 SCIENTIFIC COMPUTING This course presents fundamental numerical algorithms for solving problems in scientific computing and computational finance. Areas covered include: error analysis, computer arithmetic, linear algebra, optimization problems, numerical integration (solvers), ordinary differential equations (ODE). The emphasis of the course is on the design of the algorithms, and their analysis. Algorithms will be implemented using mathematical software. PREREQUISITE(S): CSC212 or CSC262, and 2 course calculus sequence or instructor's permission.
CSC 333 CRYPTOLOGY Introduction to the methods of cryptography and cryptanalysis. Topics include classical cryptography (codes, substitution ciphers, transposition ciphers), block and stream ciphers (Feistel networks, DES), and public key cryptography (RSA, Key agreement, signature schemes). Optional topics include zero-knowledge protocols, quantum cryptography, and history. Prerequisites: MAT 140 and CSC 211
CSC 334 ADVANCED DATA ANALYSIS Topics chosen from among multivariate statistical methods, discriminant analysis, principal components, factor analysis, discrete multivariate analysis, time series and non-parametric statistics. PREREQUISITE(S): CSC 324 or consent.
CSC 335 ADVANCED PROGRAMMING This course introduces students to a programming language or technology. Examples include Ruby on Rails, Django, Flash, Shell-scripting, Python, Perl, PHP, UNIX etc. The exact topic for each section will be publicized at registration time. PREREQUISITE(S): CSC212 or CSC 242 or CSC262 or CSC224 or CSC309 or permission of instructor.
CSC 340 TEACHING COMPUTER SCIENCE This course guides students to identify, evaluate and assimilate pedagogical techniques (instruction and assessment) to teach Computer Science (CS), with particular attention to various implementations of cooperative learning strategies. Students develop, evaluate, critique and deliver a learning unit on fundamental aspects of CS. Students learn how to structure, teach and assess an Advanced Placement CS course according to the current guidelines of the College Board. They also learn to identify, locate and evaluate various resources (publications, web resources, dedicated software, and professional societies) that enrich their role as educators. Throughout the course attention is given to the diversity of learning styles and special needs of students within the CS curriculum. N.B. For students enrolled in the Secondary Education CS program offered by the School of Education (SOE), seeking certification for grades 9-12 or 5-12, this course requires 35 clinical hours of type II in a local high school according to the specification of the SOE Student Handbook. PREREQUISITE(S): CSC 383 or CSC 393 or instructor consent.
CSC 343 INTRODUCTION TO OPERATING SYSTEMS An advanced course on operating system design and implementation. Process management and scheduling, memory management, file systems, device drivers, access control, and virtualization will be covered. The emphasis of the course will be on implementing components of a functional operating system. PREREQUISITE: CSC373 and CSC374
CSC 344 AUTOMATA THEORY AND FORMAL GRAMMARS An introduction to the most important abstract models of computation and their applications: finite state machines and pushdown automata. Explores the relationship between regular expressions and formal grammars and automata. PREREQUISITE(S): CSC 383 and MAT 141
CSC 345 COMPUTER ARCHITECTURE Note: This course is no longer offered. Machine languages, addressing modes, digital logic, CPU organization, control structures in the CPU, memory hierarchy, I/O. PREREQUISITE(S): MAT 140 or CSC 415.
CSC 347 CONCEPTS OF PROGRAMMING LANGUAGES Syntax of programming languages: regular expressions, finite automata, context-free grammars, parsing. Scoping, binding, parameter passing, exception handling. Declarative programming languages. Typing, polymorphism. Runtime systems: dynamic loading, byte-code verification, security managers, garbage collection, versioning. PREREQUISITE(S): (CSC 383 or CSC 393) and CSC373 and CSC374.
CSC 348 INTRODUCTION TO COMPILER DESIGN An overview of the design of a compiler for a general purpose programming language; tools for designing the components of the compiler; implementing the compiler; run time environments. PREREQUISITE(S): (CSC 383 or CSC 393) and CSC 373
CSC 351 DATABASE DESIGN Design methodologies. Requirement formulation and analysis, conceptual design, implementation design, physical design. Emphasis will be on data modeling techniques. Class team projects include the design of a complete database structure and implementations of design tools. PREREQUISITE(S): IT240
CSC 352 DATABASE PROGRAMMING Programming in large-scale relational database environment using host languages. Design and implementation of on-line applications. Topics covered in this course include: database programming using open architectures, embedded query languages, dynamic query language, procedural extension of query languages, stored procedures, transaction management, and introduction to extensible markup data definition and retrieval languages. PREREQUISITE(S): (IT240 or CSC391) and (CSC212 or CSC242 or CSC262 or CSC224 or CSC309).
CSC 353 ADVANCED DATABASE CONCEPTS An introduction to advanced selected topics in databases. Possible topics include: object-oriented databases, distributed databases, intelligent and deductive databases, temporal databases, multimedia databases, spatial and geographic databases, fuzzy databases, mobile databases, data mining and data warehousing, as well as emerging issues and concepts in database design, implementation and management. Prerequisites: IT 240.
CSC 355 DATABASE SYSTEMS An introduction to modern database systems; the course covers the traditional concepts and techniques of database systems including the relational model, SQL, indexes and normalization as well as a selection of advanced topics such as constraints and triggers, transactions, database programming, semi-structured data, and recursive SQL. PREREQUISITE(S): (CSC 383 or CSC 393) and CSC 373
CSC 357 EXPERT SYSTEMS A study of the development of expert systems. Students will use commercial packages to develop standalone and embedded expert systems. Topics will include rule-based systems, decision trees, forward and backward chaining, inference, reasoning with uncertainty, and intelligent agents. PREREQUISITE(S): CSC 383 or CSC 393.
CSC 358 SYMBOLIC PROGRAMMING Concepts of symbolic programming as embodied in the language LISP. Basic data and control structures of LISP: symbolic expressions, the interpreter, functions, recursion, iteration. Techniques for prototyping and building conceptually advanced systems in an environment that encourages procedural and data abstraction. Advanced topics may include Prolog, intelligent tutoring systems, intelligent agents, and natural language processing. Assignments will focus on basic AI techniques, but the class is intended for anyone who will need to rapidly develop large complex systems. PREREQUISITE(S): CSC 383 or CSC393.
CSC 367 INTRODUCTION TO DATA MINING The course is an introduction to the Data Mining (DM) stages and its methodologies. The course provides students with an overview of the relationship between data warehousing and DM, and also covers the differences between database query tools and DM. Possible DM methodologies to be covered in the course include: multiple linear regression, clustering, k-nearest neighbor, decision trees, and multidimensional scaling. These methodologies will be augmented with real world examples from different domains such as marketing, e-commerce, and information systems. If time permits, additional topics may include privacy and security issues in data mining. The emphasis of this course is on methodologies and applications, not on their mathematical foundations. Prerequisites: IT 223
CSC 373 COMPUTER SYSTEMS I A course on computer systems topics, focusing on machine-level programming and architecture and their relevance for application programming. Information representations, assembly language and debuggers, processor architecture, program optimization, memory hierarchy and caching. PREREQUISITE: CSC211 or CSC224 or CSC 309 or CSC261 or CSC241
CSC 374 COMPUTER SYSTEMS II A course on computer systems topics, focusing on operating systems components and their relevance for application programming. Linking, processes, virtual memory, dynamic memory allocation, system level I/O, networking and network programming, concurrent servers and web services. PREREQUISITE: CSC373
CSC 375 INTRODUCTION TO ROBOTICS An introduction to the field of Robotics. Topics include history of robotics, kinematics, control theory, and sensor theory. A large portion of class time will be lab based, building and programming robots using the Lego Mindstorms NXT Robotics Kit. The programming will be using a C derivative and knowledge of C and general systems concepts is required. Prerequisites: CSC 373 and CSC 374
CSC 376 DISTRIBUTED SYSTEMS An introduction to distributed systems. Topics may include: architecture of distributed systems; networking; datagram-oriented and stream-oriented protocols; network programming (for example, the sockets API); remote procedure call and remote method invocation; processes and threads; code migration; software agents; naming of non-mobile and mobile entities; cryptography and security. PREREQUISITE(S): (CSC 383 or CSC 393) and CSC 374.
CSC 378 SOFTWARE PROJECTS FOR COMMUNITY CLIENTS This is the first course in a two-quarter sequence (winter/spring) for CTI students that satisfies both the Senior Year Capstone requirement and the Junior Year Experiential Learning requirement. The second quarter will be a special section of CSC 399. You will earn four quarter hours of credit for each quarter for a total of eight quarter hours of credit. You must complete both quarters to receive any credit. We work with a community service organization, chosen with help of the Steans Center for Community-based Service Learning. As a community-based service learning course, students will have the opportunity to assess urban community needs in technology, and use problem-solving methods and strategies to make a substantial difference in an inner-city community group, usually by developing an application or a web site.
CSC 379 TECHNOLOGY PARTNERSHIPS IN URBAN SCHOOLS Students in this course will have the opportunity to assess urban community needs in the technology arena and develop skills in assisting and developing methods for "bridging the digital divide" that exists. As a result, the student will be able to make a substantial difference in an underprivileged academic community group. This course is a CTI-sponsored community-based service learning course. Any student enrolled in this course can also satisfy the junior year experiential learning requirement.
CSC 380 FOUNDATIONS OF ARTIFICIAL INTELLIGENCE An in-depth survey of important concepts, problems, and techniques in artificial intelligence, including search, knowledge representation, logical reasoning, and reasoning with uncertainty. A particular focus and a unifying theme of the course will be the concept of intelligent agents. No prior knowledge of AI is required. The course is particularly suitable for graduate and advanced undergraduate students who want to gain the technical background necessary to build intelligent systems, or who want to prepare for more advanced work in AI. The concepts and techniques learned in this course will be directly applicable to many other areas of computer science including software design, distributed systems, databases, and information management and retrieval. PREREQUISITE(S): CSC 383 or CSC 393.
CSC 381 INTRODUCTION TO DIGITAL IMAGE PROCESSING Components of an image processing system and its applications, elements of visual perception, sampling and quantization, image enhancement by histogram equalization, color spaces and transformations, introduction to segmentation (edge detection algorithms), and morphological image processing. PREREQUISITE(S): Calculus or Linear Algebra
CSC 382 APPLIED IMAGE ANALYSIS The course is meant to provide students with the basic techniques of image analysis and understanding required for the medical domain, military domain, new and emerging domains, and other fields of interest to the students. The topics covered in the course include: imaging modalities, 2D & 3D imaging, 2D & time-sequenced images, archiving, accessing and transmitting large images, optic flow, increased visual discrimination, segmentation, registration, diagnosis, feature extraction, and image visualization. Prerequisites: CSC 381.
CSC 383 DATA STRUCTURES AND ALGORITHMS IN JAVA Design, implementation, application, and analysis of algorithms on a variety of data structures, including stacks, queues, lists, trees, binary heaps, hash tables, and graphs. Algorithmic analysis includes computation of running times and asymptotic analysis. PREREQUISITE: CSC212 or CSC224
CSC 384 INTRODUCTION TO COMPUTER VISION Edge detection. Image representation and description using low-level features. A sample of image segmentation techniques. Perceptual grouping. 2D shape representation and classification. Motion analysis and tracking. Prerequisites: CSC 381.
CSC 385 NUMERICAL ANALYSIS (Cross-listed as MAT/CSC 485) Use of a digital computer for numerical computation. Error analysis, Gaussian elimination and Gauss-Seidel method, solution of nonlinear equations, function evaluation, approximation of integrals and derivatives, Monte Carlo methods. PREREQUISITE(S): MAT 220 and a programming course.
CSC 386 ADVANCED NUMERICAL ANALYSIS Theory and algorithms for efficient computation, including the Fast Fourier Transform. Numerical solution of nonlinear systems of equations. Minimization of functions of several variables. Sparse systems of equations and corresponding eigenvalue problems. PREREQUISITE(S): CSC 385.
CSC 387 OPERATIONS RESEARCH I: LINEAR PROGRAMMING The Linear Programming problem and its dual; the simplex method; transportation and warehouse problems; computer algorithms and applications to various fields. PREREQUISITE(S): MAT 220 and any introductory programming course.
CSC 388 OPERATIONS RESEARCH II: OPTIMIZATION THEORY Integer programming; non-linear programming; dynamic programming; queueing theory; game theory. PREREQUISITE(S): CSC 387.
CSC 389 THEORY OF COMPUTATION Advanced topics in the mathematical foundations of computation. Topics may include random access and Turing machines, recursive functions, algorithms, computability and computational complexity, intractable problems, NP-complete problems. PREREQUISITE(S): CS321 or CS344.
CSC 393 DATA STRUCTURES IN C++ This course covers topics in data structures, algorithms and object oriented programming in C++. Topics include trees, recursion and traversing trees, balancing, graphs, hash tables. Analysis of algorithms. More advanced topics in memory management and allocation such as stacks, heaps and memory pools. Optional topics, as time allows will include: run-time type checking, performance optimization and templates. PREREQUISITE(S): (MAT 140 or MAT 150) and (CSC 262 or CSC 309)
CSC 394 SOFTWARE PROJECTS Students will be provided with experience in team design, implementation and testing of a large software project. (PREREQUISTE(S):CSC 383 or CSC 393 or HCI 360.
CSC 398 INTERNSHIP In cooperation with local employers the computer science program offers students the opportunity to integrate their academic experience with on-the-job training in computer related work areas. Academic credit is variable and admission to the program requires consent of internship advisor. Supervisor evaluation will contribute to the final grade.
CSC 399 INDEPENDENT STUDY Variable credit. PREREQUISITE(S): Consent of dean..
|
|
©2008 | DePaul University | Disclaimer | Webmaster
1 E. Jackson, Chicago, IL 60604 | 312-362-8000
|
|
|