Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Minor Degree in Computer Science Courses Transferrable from Other UMS Campuses to the University of Maine at Farmington The following chart provides general guidance as to which courses offered at other University of Maine System campuses will be accepted as transferable into the Minor in Computer Science undergraduate degree program at the University of Maine at Farmington. As shown, links to course descriptions for all courses are provided. Additional courses beyond those listed may be acceptable for transfer as assessed by the appropriate course faculty on the campus to which the student is transferring. Courses qualifying to fulfill General Education course requirements are handled on a campuswide basis and are available through a separate information sheet. University of Maine at Farmington Minor Degree in Computer Science (Curriculum drawn from http://catalog.umf.maine.edu/show.php?type=subcategory&id=86&version=2012-2013) Typical Program showing Acceptable Transfer Courses (Course transfer information is drawn from https://peportal.maine.edu and confirmed by involved faculty members.) REQUIRED COURSES Course Course Title Number Intro to Computer Science COS 140 Credits: 4 Course Description Data Structures COS 142 Credits: 4 Course Description Networking TCP/IP COS 280 ELECTIVE Credits: 4 USM COURSES ACCEPTABLE FOR TRANSFER UM UM-A UM-FK UM-M COS 161 COS 225 CIS 210 COS 285 COS 226 CIS 354 COS 460 COS 441 CIS 341 COS 452 COS 460 Course Description COS 355* Computer Graphics ELECTIVE Credits: 4 Course Description COS 364* Alg Design & Analysis ELECTIVE Credits: 4 COS 485 Course Description Prog Lang Concepts COS 360 ELECTIVE Credits: 4 COS 360 COS 301 COS 450 COS 431 COS 457 COS 480 COS 492 Course Description Comp Oper Systems COS 372 ELECTIVE Credits: 4 Course Description COS 455* Database Systems ELECTIVE Credits: 4 CISA 210 CISA 210 UM-PI Course Description Internet Computing COS 120 ELECTIVE Credits: 4 Course Description Computer Organization COS 241 ELECTIVE Credits: 4 COS 335 Course Description COS 341* Fund of Theory Comp ELECTIVE Credits: 4 Course Description Int Topics in Computer COS 377 ELECTIVE Science Course Description Credits: 2 – 4 COS 477* Adv Topics in Computer ELECTIVE Science Course Description Credits: 2 – 4 Note: Three COS electives should be chosen from the list above. * Courses have prerequisites not included in minor University of Maine at Farmington Computer Science Minor Course Descriptions COS 140 - Introduction to Computer Science Using the framework of problem solving and programming in the object-oriented paradigm, this course introduces the fundamental concepts and techniques of Computer Science. Students learn how to develop problem solutions by integrating pre-defined or userdefined data objects and the control algorithms that make use of the objects. Topics include object design and use, algorithmic control structures, interactive and file-based input/output and some basic structured data objects such as strings, arrays, lists and tables. Every year. Credit: 4 COS 142 - Data Structures The focus of this course is deeper study of the concepts of structured data types, in particular their design and specification in an object-oriented framework. Data structures such as lists, stacks, queues and trees will be examined, both in terms of how they can be implemented by a programmer and how they can be used to develop solutions for larger problems. New object-oriented programming concepts such as inheritance, polymorphism and generic classes will be introduced as techniques to aid in the implementation of these structures, and related algorithmic topics such as recursion, searching and sorting will be studied. Prerequisite(s): COS 140 and either MAT 141M or MAT 151M. Every spring. Credit: 4 COS 280 - Networking Using TCP/IP This course provides an extensive study of both the OSI model as well as the TCP/IP protocol suite. Examination of wired and wireless technologies. Topics include IP addressing, routing, ARP, details of the IP and TCP protocols, ICMP, UDP, DHCP, DNS, application protocols such as mail and http. Introduction to the Linux operating system including user/group management, processes, basic bash scripting, permissions, file system design (inode structure). Applications involve setting up (in Linux) a network and providing DHCP and DNS servers for that network, Study of firewalls and setting up a firewall such as Iptables, and use of a packet analyzer to better understand the protocols and diagnose problems. Prerequisites: COS 142. Every spring. Credit: 4 COS 355 - Computer Graphics Mathematical techniques for generating computer graphics of 2- and 3- dimensional objects will be studied. Implementation of these concepts, up to and including perspective projection and 3D transformations, in a higher level language will be involved. At this point, an API (usually OpenGL) will be used to aid in the writing of more sophisticated applications involving lighting and texture mapping. A study and design of the human interaction component, dealing with graphical design interfaces and event-driven programming, occurs throughout the course. Selected additional topics may include game programming, image processing, ray tracing, and designing more complex graphical interfaces. The course has a laboratory component. Prerequisite(s): MAT 141M and COS 142. Every fall. Credit: 4 COS 360 - Programming Language Concepts An examination of issues involved in the design and implementation of high-level computer languages. Starting from a working interpreter for a very simple programming language, we first consider general issues such as syntax grammars, semantic descriptions, and the mechanisms used in translating a high-level language into an equivalent lower-level executable form. Following that we gradually introduce new language features, each requiring further modifications to our language's syntax and interpreter, which provides a basis for studying more advanced programming language features. Prerequisite(s): COS 142. Odd fall. Credit: 4 COS 364 - Algorithm Design and Analysis Examines algorithm design techniques such as divide-and-conquer, dynamic programming, the greedy approach, backtracking, and branch-and-bound. Representative algorithms are studied in each category, with an emphasis on demonstrating an algorithm's correctness and analyzing its efficiency in terms of computing time and storage space requirements. The notion of intractable problems is introduced, along with efficient approaches to these problems, such as approximation algorithms. Prerequisite(s): COS 142 and MAT 151M. Even fall. Credit: 4 COS 372 - Computer Operating Systems An investigation of operating system concepts including processes, threads, CPU scheduling, process synchronization, deadlocks, memory management, caching policies, storage management (file-systems, mass storage structure, I/systems), protection distributed systems. Case study of a particular operating system (usually Linux). Programming projects applied to selected topics. Prerequisite(s): COS 142, and COS 280. Every year. Credit: 4 COS 455 - Database Systems The course studies the fundamentals of database modeling and design, the languages and facilities provided by a database management system, and programmatic interfaces to the database (including web access). Emphasis is on the relational database model. Theoretical topics include: data modeling using the entity-relationship model, schema definition, relational algebra, functional dependencies and normal forms, queries, data storage and physical design, and indexing structures for files. In addition, there is a laboratory component that uses the Oracle database. In the laboratory, the topics include: SQL query language, PL/SQL language, creation of a web interface to the database. The web interface will involve either the Oracle PL/SQL toolkit, other Oracle products, Java and JDBC, C#, or a scripting language. Prerequisite(s): 12 credits of Computer Science including COS 142 and MAT 151M. Every spring. Credit: 4 COS 120 - Internet Computing In this course students will learn about a variety of Internet computing topics including but not limited to web programming, web site design and management, server-side technologies, social networking, Web 2.0, and mobile computing. Specific technologies covered include but are not limited to HTML, CSS, Javascript, XML, database management and querying, Web API's, and Ajax. There will be an emphasis on the meaningful use of current technology to communicate effectively. Every two years. Credit: 4 COS 241 - Computer Organization This course is intended to give students a broad overview of computer organization at a number of different levels. The lowest level is the assembly language level. Students will gain an understanding of instruction set architecture design and tradeoffs. The next level, fundamentals of logic design, provides an understanding of the implementation of a given architecture. Topics include adders, shifters, multipliers, and flip-flops. Higher levels include pipelining and caches. Other topics include storage (along with input/output) and multiprocessors. Laboratory work includes an assembler with which students write assembly language programs and possibly a digital logic design package. Prerequisite(s): COS 140. Every fall. Credit: 4 COS 341 - Fund of Theory Comp Credit: 4 COS 377 - Intermediate Topics in Computer Science Each time this course is offered a Computer Science topic will be chosen which requires a background (at least 12 hours) in college level computing experience. It may be repeated for credit with different topics. The topics offered will be ones which are not covered in the regular course offerings of the division. Prerequisite(s): Minimum 12 credits of Computer Science, including COS 142. Varies. Credit: 4 COS 477 - Advanced Topics in Computer Science Each time COS 477 is offered the content will be determined by the needs of the students and the interests of the faculty. However, the content will deal with the area of databases since this course can satisfy the Computer Science major requirement of COS 455. It may be repeated for credit with different database topics. Prerequisite(s): 12 credits of Computer Science including COS 142. Varies. Credit: 4