Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Computer Science Course: Data Structures, Algorithms, Networking, Security, Graphics, Study notes of Computer Science

Computer GraphicsComputer SecurityData Structures and AlgorithmsComputer Networks

An overview of various computer science courses, including topics on data structures and algorithms, networking, security, and graphics. Students will learn about fundamental concepts in computer science, such as problem solving, algorithm development, and structured programming. They will also explore advanced topics in computer programming, network architecture, network security, and computer graphics. The courses may be repeated for credit with different topics.

What you will learn

  • What topics are covered in the computer science courses mentioned in the document?
  • What programming languages will be used to teach basic programming concepts?
  • What advanced concepts will be covered in the computer programming courses?

Typology: Study notes

2021/2022

Uploaded on 09/12/2022

alberteinstein
alberteinstein 🇬🇧

4.8

(9)

5 documents

1 / 4

Toggle sidebar

Related documents


Partial preview of the text

Download Computer Science Course: Data Structures, Algorithms, Networking, Security, Graphics and more Study notes Computer Science in PDF only on Docsity! Computer Science (CSCI) - 1 Computer Science (CSCI) Courses CSCI 101. Introduction to Computers. 3 Credits. An overview of the fundamental concepts and applications of computer science. Topics include data storage, hardware, operating systems, and programming principles. F,S,SS. CSCI 110. Introduction to Computer Science. 3 Credits. This is an introductory course for prospective computer science majors as well as offering an introduction to computing for non-computer science majors. Students will receive a broad introduction to the discipline of computer science without the immersion into a programming language. Students will learn to write interactive Web-based programs. No previous computing or programming experience is assumed. F,S,SS. CSCI 130. Introduction to Scientific Programming. 4 Credits. An introduction to scientific computing, with problem solving, algorithm development, and structured programming in a high-level language with an engineering and mathematical focus. Emphasis on learning how to design, code, debug, and document programs, using techniques of good programming style. Includes laboratory. F,S,SS. CSCI 160. Computer Science I. 4 Credits. An introduction to computer science, with problem solving, algorithm development, and structured programming in a high-level language. Emphasis on learning how to design, code, debug, and document programs, using techniques of good programming style. Includes laboratory. F,S,SS. CSCI 161. Computer Science II. 4 Credits. A broadening of foundations for computer science with advanced concepts in computer programming. Includes an introduction to data structures, analysis of algorithms, and the theory of computation. Includes laboratory. Prerequisites: CSCI 160 with a grade of C or better or CSCI 130 with a grade of C or better, and MATH 103 or MATH 107; concurrent enrollment in MATH 208 is recommended. F,S. CSCI 199. Topics in Computing. 1-3 Credits. Selected introductory-level topics in computing for students of all majors. Course may be repeated to 6 credits with different topics. Repeatable to 6.00 credits. On demand. CSCI 242. Algorithms and Data Structures. 3 Credits. This course introduces fundamental concepts in data structures and algorithms, and their roles in efficient problem solving in computer science. Topics include basic data structures such as priority queue, heap, hash table, search trees, and graphs; introduction to classic algorithms such as searching, sorting, and selection; theoretical modeling techniques including time and space complexity analysis, classification, upper bounds, lower bounds, exact bounds, and divide- and-conquer approaches. Prerequisites: CSCI 161 with a C or better and MATH 208. F,S. CSCI 260. Advanced Programming Languages. 3 Credits. Programming in a specific high-level language for students who are already proficient at programming in another high-level language. Course may be repeated for different languages. A student may not receive credit for both CSCI 260 and a 100-level programming course in the same language. Prerequisite: CSCI 161 or consent of instructor. Repeatable. F. CSCI 265. Introduction to Programming Languages. 3 Credits. This course will provide an overview of the differences and similarities between several common programming languages. A brief introduction to the history and design goals of each language will be presented. Basic programming concepts, such as data types and expressions, input and output, branching, iteration, and functional decomposition will be addressed concurrently in several programming languages, emphasizing the different approaches used to implement basic programming concepts. The course will compare and contrast interpreted and compiled languages. Prerequisite: CSCI 161 with a grade of C or better. F. CSCI 266. Tools and Techniques of Computing Practice. 3 Credits. An introduction to commonly-used tools for creating, debugging, testing, and running computer programs. The course provides an overview of a variety of tools for scripting, file management, user and group management, compilers, interpreters, package and library management, version control, and collaborative tools including cloud-based document sharing. Virtual Machines (VM) will also be introduced and students will practice creating VM images and running server and development systems within them. Prerequisite: CSCI 265 with a grade of C or better. S. CSCI 270. Programming for Data Science. 3 Credits. The Programming for Data Science course provides students with an introduction to the main tools and ideas in the data scientist's toolbox. The course gives an overview of the data, questions, techniques and tools that data analysts and data scientists work with. This course provides a conceptual introduction to the ideas behind turning data into actionable knowledge and tools that will be used to analyze this data. The course will cover collecting, cleaning and sharing data. Additionally, this course will cover how to communicate results through visualizations. Prerequisite: CSCI 161 with a grade of C or better. S. CSCI 280. Object Oriented Programming. 3 Credits. An introduction to the concept and execution of Object-Oriented programming, using an appropriate language. Includes an introduction to object creations, classes, inheritance, interfaces, exceptions, overloading, and more. Prerequisite: CSCI 265 with a grade of C or better. S. CSCI 289. Social Implications of Computer Technology. 3 Credits. An introduction to the effects of computer technology on society and individuals and to ethical problems faced by computer professionals. Topics covered include privacy, the nature of work, centralization versus decentralization and the need for human factors analysis in the development of a new computer system. F. CSCI 290. Cyber-Security and Information Assurance. 3 Credits. An introduction covering the breadth of essential Cyber-Security and Information Assurance topics. Students will hone skills in observation, deduction, analysis, logical reasoning and critical thinking as they gain experience with non-technical and lightly technical aspects of Cyber-Security and Information Assurance through practical and real-world examples. S. CSCI 297. Experiential Learning. 1-3 Credits. A practical experience in which students offer their proficiency in computing as a resource or service for others. The experience may involve software development, software consulting and assistance, system administration, or instruction. Prerequisite: CSCI 161. Repeatable to 6.00 credits. S/U grading. F. CSCI 299. Topics in Computer Science. 1-3 Credits. Selected intermediate-level topics in computer science for students with some experience or previous courework in computing. Course may be repeated up to 6 credits with different topics. Repeatable to 6.00 credits. On demand. CSCI 327. Data Communications. 3 Credits. This course introduces the fundamentals of data communication networks, their architecture, principles of operations, performance, and an overview of network security. This course aims to help students to establish an integrated picture of the modern data communication networks. Topics on network architecture include the traditional 7-layer OSI reference model and the Internet Protocol Suite (TCP/IP) in modern Internet. Topics on layer-wise operations cover the technologies and protocols deployed at: the physical layer; the link layer; the network layer; the transport layer; and the application layer. Topics on network security make an overview on the security issues and the protections in networks. Prerequisites: CSCI 161 with a grade of C or better or EE 314 with a grade of C or better, MATH 166 and MATH 208. F. CSCI 330. Systems Programming. 3 Credits. Focus on low level programming. Topics covered include pointers, memory management, dynamic memory, code optimization, compiling and linking, and library development. Prerequisite: CSCI 265 with a grade of C or better. F. CSCI 346. Introduction to Data Visualization. 3 Credits. This course covers the principles and application of data visualization techniques. The course topics include the appropriate design of visual representations of data sources, graphic design, image models, layout, and pattern illumination. The course will also cover methods of obtaining data from measurement, simulation, and public sources. Prerequisites: CSCI 363 and CSCI 270, each with a grade of C or above, and MATH 421. S. UND 2022-2023 Academic Catalog Computer Science (CSCI) - 2 CSCI 363. User Interface Design. 3 Credits. A study of the design and implementation of user interfaces for software applications. Students will apply principles of interface design to build applications using a toolkit of graphical interface components. Required coursework includes a team project. Prerequisites: CSCI 280 and CSCI 266, each with a grade of C or better. F. CSCI 364. Concurrent and Distributed Programming. 3 Credits. This course focuses on concurrent object oriented programming and modern distributed/parallel programming models (such as OpenMP, CUDA, OpenCL and Actors). Students will utilize various high performance distributed computing technology. Topics covered will include shared and distributed memory systems, sockets, threads, and message passing. Prerequisites: CSCI 242 and CSCI 266, each with a grade of C or better. S. CSCI 365. Organization of Programming Languages. 3 Credits. Compile and run time requirements of programming languages, parameter passing and value binding techniques. Vector and stack processing. Prerequisites: CSCI 242 and CSCI 265, each with a grade of C or better. F. CSCI 370. Computer Architecture. 4 Credits. Computer structure, machine presentation of numbers and characters, instruction codes and assembly systems. Introduction to hardware methodologies and software extensions to hardware in computers. Some topics on hardware and software selection will be discussed. Prerequisites: CSCI 330 with a grade of C or better, EE 201, and EE 201L. S. CSCI 384. Artificial Intelligence. 3 Credits. A study of algorithms and application of AI. The topics include agent theory, problem-solving with the search, constraint satisfaction problem, game, knowledge-based system, reasoning and machine learning which are widely applicable to design of an intelligent system, data science and mining, information retrieval, pathfinding and classification, etc. Prerequisite: CSCI 242. S. CSCI 387. Secure Software Engineering. 3 Credits. This course provides fundamental knowledge of secure software development methodologies and applied security topics related to compiled programs. In-depth coverage of source code auditing, fuzzing, introduction to reverse engineering, and exploitation will be emphasized. F. CSCI 388. Exploit Analysis and Development. 3 Credits. Provides fundamental knowledge of Malware analysis. Topics include an introduction to both static and dynamic techniques for analyzing suspect binaries. Students will be exposed to advanced malware concepts including malware detection as well as the utilization of industry standard tools to analyze, debug, and reverse engineer suspect binaries. F. CSCI 389. Computer and Network Security. 3 Credits. This course introduces techniques for achieving security in multi-user standalone computer systems and distributed computer systems. Coverage includes host-based security topics (cryptography, intrusion detection, secure operating systems), network-based security topics (authentication and identification schemes, denial-of-service attacks, worms, firewalls), risk assessment and security policies. Prerequisite: CSCI 161. S. CSCI 397. Cooperative Education. 1-2 Credits. A practical work experience with an employer closely associated with the student's academic area. Arranged by mutual agreement among student, department, employer, and the UND Cooperative Education office. Repeatable to 6 credits. Prerequisites: Declared Computer Science major with 15 completed credits in CSCI including CSCI 230 and CSCI 242. Repeatable to 6.00 credits. S/U grading. F,S,SS. CSCI 399. Topics in Computer Science. 1-3 Credits. Selected topics in Computer Science which allow students to study specialized subjects. Repeatable to 12 credits. Prerequisite: Consent of instructor. Repeatable to 12.00 credits. On demand. CSCI 427. Cloud Computing. 3 Credits. This is the undergraduate-level course on cloud computing models, techniques, and architectures. Cloud computing is an important computing model which enables information, software, and other shared resources to be provisioned over the network as services in an on-demand manner. This course introduces the current practices in cloud computing. Topics may include distributed computing models and technologies, Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), Software-as-a-Service (SaaS), virtualization, performance and systems issues, capacity planning, disaster recovery, Cloud OS, federated clouds, challenges in implementing clouds, data centers, hypervisor CPU and memory management, and cloud hosted applications. S, even years. CSCI 435. Formal Languages and Automata. 3 Credits. A study of automata, grammars, and Turing machines as specifications for formal languages. Computation is defined in terms of deciding properties of formal languages, and the fundamental results of computability and decidability are derived. Prerequisites: CSCI 365 with a grade of C or better. F. CSCI 443. Introduction to Machine Learning. 3 Credits. An introduction to the theory and implementation of fundamental machine learning algorithms. Topics include representation, generalization, model selection, linear/additive models, support vector machines, learning problems, over-fitting, clustering, classification, neural networks, and regression. Prerequisite: CSCI 384 with a grade of C or above. F. CSCI 445. Mathematical Modeling and Simulation. 3 Credits. A study of various mathematical applications for digital computers, including the modeling, simulation and interpretation of the solution of complex systems. Prerequisites: CSCI 161 or CSCI 170, and MATH 166 and a statisitcs course. F, even years. CSCI 446. Computer Graphics I. 3 Credits. Introduction to computer graphics. Topics include raster scan graphics, 2D and 3D representations, affine transformations, light and color, texture mapping, image processing, ray-tracing, and computer animation. Team-based weekly homework develops a 4 minute computer animation. Prerequisites: CSCI 242, CSCI 363, and MATH 166. F, odd years. CSCI 448. Computer Graphics II. 3 Credits. A continuation of CSCI 446, topics covered include: history of games, game taxonomies, game design theory, computer game development, physics engines and AI engines. Prerequisite: CSCI 446. S, even years. CSCI 451. Operating Systems I. 3 Credits. Introduction to operating system theory and fundamentals. Topics include: CPU scheduling, memory management, file systems, interprocess communication facilities, security. Weekly homework assignments focus on process synchronization using fork/exe, threads, mutexes, pipes, semaphores, and shared memory. Prerequisites: CSCI 330 with a grade of C or better; recommended prerequisites CSCI 370 and CSCI 455. F. CSCI 452. Operating Systems II. 3 Credits. A study of the implementation of operating systems and parts of operating systems, and development of system software. Prerequisites: CSCI 451. On demand. CSCI 455. Database Management Systems. 3 Credits. Database concepts, database design (ER, UML), database programming languages (SQL), NoSQL Database, Database Concurrency and recovery techniques, and Database security. Prerequisite: CSCI 242 with a grade of C or better. S, even years. CSCI 456. Introduction to Data Mining. 3 Credits. Data Mining is the collection of methods used to identify patterns in data. This course is comprised of a mix of theoretical underpinnings and practical applications based on the concepts of: data pre-processing, data attributes, classification, clustering, association, anomaly detection, dimensionality reduction, and mining of networks. Prerequisites: CSCI 384 with a grade of C or above and MATH 422. F. CSCI 457. Electronic Commerce Systems. 3 Credits. A study of the system architecture, content design and implementation, and data analysis, management, and processing of electronic commerce. Topics include Internet basics, business issues, data management and processing, static and dynamic web programming, e-commerce content design and construction, and databases and host languages with embedded SQL. Prerequisite: CSCI 260 with course topic of Dot Net. S, odd years. CSCI 463. Software Engineering. 3 Credits. This course teaches software engineering principles and techniques used in the specification, design, implementation, verification and maintenance of large-scale software systems. Major software development methodologies are reviewed. As development team members, students participate in a group project involving the production or revision of a complex software product. Prerequisites: CSCI 242 and CSCI 363. S. CSCI 465. Principles of Translation. 3 Credits. Techniques for automatic translation of high-level languages to executable code. Prerequisites: CSCI 365 and CSCI 370. F, odd years. UND 2022-2023 Academic Catalog
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved