-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdecoded.txt
1 lines (1 loc) · 24.9 KB
/
decoded.txt
1
cp103 principles of computer programming introduce non computer science students to basic computer programming techniques. emphasis is on problemsolving and structured program design methodologies. programming projects are implemented in a widely used highlevel language. 3 lecture hours, 2.5 lab hours credit 0.50 exclusion cp104 registration in honours computer science or honours data science programs note cannot be used as credit for the minor in computer science, or any computer science or data science program cp104 introduction to programming an introductory course designed to familiarize the student with modern software development techniques. emphasis is on problemsolving and structured program design methodologies. programming projects are implemented in a widely used highlevel language. 3 lecture hours, 2.5 lab hours credit 0.50 cp164 data structures i introduction to the study of data structures and their applications. recursion, searching, sorting. queues, stacks, heaps. introduction to the analysis of algorithms, big o notation. 3 lecture hours, 2.5 lab hours credit 0.50 prerequisite cp104 exclusion cp114 cp202 website design this course provides an in depth understanding of website design and administration, short of serverside programming. emphasis is on standards, good design practices, accessibility, and tools. by the end of the course students should have the skills to administer a website, deal with security issues, design readable, informative, attractive and accessible web pages that fit current standards, and apply a logical and consistent navigational scheme to an entire website. 3 lecture hours credit 0.50 prerequisite cp102 or cp104 exclusion registration in ba or bsc programs in computer science or data science. cp212 windows application programming this course is designed for students who have a basic understanding of spreadsheets, word processors, and databases as well as introductory programming experience. the course introduces methods to automate repetitive tasks and create userfriendly applications in spreadsheets, word processors, and databases using the powerful macro language, visual basic for applications vba. topics include a review of programming constructs such as data types, looping, conditional statements, and arrays the design of graphical interfaces with the typical look and feel of windows software the design of dialog boxes with controls and eventhandling code that responds to user input automating tasks consolidating data providing userfriendly reports. 3 lecture hours, 1 lab hour credit 0.50 prerequisite cp102 and previous programming experience, or cp104 cp213 introduction to objectoriented programming fundamentals of objectoriented programming, classes, subclasses, inheritance, references, overloading, eventdriven and concurrent programming, using modern application programming interface. the language java will be used. 3 lecture hours, 1 lab hours credit 0.50 prerequisite cp164 or cp114 cp214 discrete structures for computer science finite and discrete algebraic structures relating to computers sets, functions, relations. machineoriented logic. topics include propositional and predicate calculus, boolean algebra, combinatorial counting including pigeonhole principle, permutations and combinations, recurrence equations, applications of recurrence equations in sorting algorithms, relations including equivalence relations, partial orders, algorithms to generate permutations and combinations, induction and recursive programs, correctness proofs for both recursive and iterative program constructions, countable and uncountable sets, cantors theorem, introduction to graph theory and graph algorithms. 3 lecturediscussion hours credit 0.50 prerequisite cp164 cp216 introduction to microprocessors a comprehensive study of a current commercial microprocessor, its architecture and assembly language. emphasis on 1 the relationship between architecture, assembly language and system operation, and 2 the relationship between assembly language, high level languages and operating systems. 3 lecture hours, 1 lab hour credit 0.50 prerequisite cp220pc220 or cp120pc120 and cp164 or cp114 cp220 digital electronics introduction to digital logic logic gates, combinational circuit analysis using boolean algebra and karnaugh maps, number systems and codes, minimization techniques applied to combinational logic systems flipflops, multivibrators, counters and shift registers. 3 lecture hours credit 0.50 prerequisite cp164 and registration in computer science. exclusion cp120pc120 crosslisted pc220 cp221 analog electronics i dc and ac circuit theory, complex impedance, resonance, norton and thevenin theorems, semiconductor diodes, bipolar transistors, the use of transistors for the construction of logic gates. 3 lecture hours, 2 lab hours credit 0.50 prerequisite cp220pc220 recommended pc212 crosslisted pc221 cp264 data structures ii a continuation of the study of data structures and their applications using c. linked lists, binary search trees, balanced search trees. hashing, collisionavoidance strategies. a continuation of basic algorithm analysis. 3 lecture hours, 1 lab hour credit 0.50 prerequisite cp164 or cp114 exclusion cp217 cp310 special topics a detailed examination of a field or topic of interest not covered by the regular program. irregular course. 3 lecture hours credit 0.50 prerequisite permission of the department. cp312 algorithm design and analysis i analysis of the best, average, and worse case behaviors of algorithms. algorithmic strategies brute force algorithms, greedy algorithms, divideandconquer, branch and bound, backtracking. fundamental computing algorithms o n log n sorting, hash table, binary trees, depth and breadthfirst search of graphs. 3 lecture hours credit 0.50 prerequisite cp264 or cp114 and cp213 and cp214 or ma238 cp315 introduction to scientific computation an introduction to scientific computation, with substantial use of scientific software, such as maple and matlab. scientific problems and models from different disciplines are considered. numerical methods introduced in this course include interpolation, curve fitting, solving systems of linear and nonlinear equations, eigenvalue problems, integration and solving ordinary and partial differential equations. 3 lecture hours credit 0.50 prerequisite cp104, ma103, ma122, ma205 exclusion ma307, ma371 crosslisted as pc315 cp316 microprocessor systems interfacing interfacing a microprocessor or microcontroller with external devices for realtime hardware control. microcontroller hardware and software in real time applications serial and parallel io timing generation priority interrupt structures and servicing bus timing. interpretation and use of industry documentation and data sheets. 3 lecture hours, 2.5 lab hours credit 0.50 prerequisite cp216, cp320pc320 or cp300pc300 cp317 software engineering discussion of software development activities, including software process models, analysis, design, implementation, testing, project management and advanced topics. both traditional and objectoriented methods are considered. 3 lecture hours credit 0.50 prerequisite cp213 or cp264 or cp217 cp31nine digital system design logic families and interfacing considerations for logic devices, vhdl implementation techniques for combinational and sequential logic introduction to finite state machines and deuutn methodologies for synchronous and asynchronous sequential circuits hazards, cycles and races operation and interfacing of memory devices. 3 lecture hours credit 0.50 prerequisite cp164 or cp114, cp220pc220 or cp120pc120 crosslisted as pc31nine cp320 physical computing digital interaction with the analog world design and construction of computational systems that interact with the physical world for applications such as home or experiment automation. basics of electrical circuits, reading from analog and digital sensors, controlling analog and digital actuators, single board computers such as arduino or raspberry pi, analog components including diodes, transistors and operational amplifiers. 3 lecture hours, 3 lab hours credit 0.50 prerequisite cp164 or cp114, cp220pc220 or cp120pc120 exclusion cp300pc300 crosslisted pc320 cp321 data visualization this course will provide participants an overview on how to visualize data to present large data sets in a meaningful way. rigorous policy analysis must be based on evidence, but once you have gathered the evidence, it can be overwhelming to figure out how to present data in a meaningful way. this course offers instruction how to distill and interpret large amounts of information to highlight the key information. learn to unlock the power of data through effective data visualization. explains how to select the appropriate data sets for analysis, transform the data sets into usable formats, and verify that the sets are errorfree. review how to choose the right model for the specific type of analysis project, how to analyze the model, and present the results for decision making. show how to solve numerous business problems by applying various tools and techniques. data visualization and visual data mining tools, and realworld success stories using visual data mining. 3 lecture hours credit 0.50 prerequisite cp213 cp322 machine learning with the rise of data science and big data fields, machine learning has gained further recognition as the key driver behind the successful advance of these fields. however, many recent entrants to the field can only utilize the variety of machine learning algorithms as black boxes. this course aims to empower students to effectively use and understand the primary approaches so as to be able to modify them for specific uses. our focus is less on theory and more on practice. students engage in handson implementation of some of the fundamental algorithms such as predictive modeling and clustering applied to real, openended problems. 3 lecture hours credit 0.50 prerequisite cp312 cp340 ecommerce this course deals with the development of the internet and its impacts on business transactions. the course explains key concepts and trends associated with ecommerce and online business. topics include the role of the internet, electronic marketplace, online marketing, web analytics, privacy and security issues and electronic payments. 3 lecture hours credit 0.50 prerequisite cp213 cp351 quantum computing quantum computing offers the possibility of dramatic advances in computational power compared to the best computers we have today. in addition, novel quantum protocols such as teleportation and quantum cryptography have already been demonstrated. this course provides an introduction to this exciting and cuttingedge field. topics include an overview of quantum theory, quantum algorithms, teleportation, secure quantum communication, shors factoring algorithm, grovers search protocol, quantum error correction and the latest stateoftheart experiments. no prior knowledge of quantum mechanics is required. 3 lecturediscussion hours credit 0.50 prerequisite ma122 and registration status year 3 or year 4, majoring in physics, computer science, mathematics or chemistry exclusion cp310apc310a crosslisted pc351 cp363 database i introduction to database systems. topics include data models, query languages, database design, recovery and concurrency, integrity and security. 3 lecture hours credit 0.50 prerequisite cp164 or cp114 cp364 data communications and networks data communication fundamentals, with an emphasis on the physical layer, and telecommunication networks, with an emphasis on the architectures and protocols will be studied. topics include transmission media, digital data transmission, architectures of telecommunication networks. 3 lecture hours, 1.5 lab hours credit 0.50 prerequisite cp320pc320 or cp120pc120 and cp200pc200, pc212 crosslisted as pc364 cp367 introduction to system programming contemporary ideas and techniques in system programming using the c language. introduction to the unix operating system and unix commands. directories and files, device control, signal handling, process intercommunication, shell programming in unix. using and implementing software tools filters, pipelines, sorts, text patterns and others. 3 lecture hours, 1 lab hour credit 0.50 prerequisite cp264 exclusion cp217 cp372 computer networks introduction to computer communication networks. the osi reference model. protocols for error and flow control. medium access protocols. routing and congestion control. internet architecture and protocols. unix network programming. 3 lecture hours credit 0.50 prerequisite cp213, either cp264 or cp386 cp373 ethics and professional practice in computer science introduction to ethics, computer reliability and safety, privacy, computer crime, intellectual property, impact of computers on work and society. assessment includes written assignments and oral presentations. 3 lecture hours credit 0.50 prerequisite cp264 cp374 distributed systems this course teaches the abstractions, design and implementation techniques that enable the building of fast, scalable, faulttolerant distributed systems. topics include synchronization, network programming, consistency, fault tolerance, consensus, security, distributed storage systems, and mapreduce. 3 lecturediscussion hours credit 0.50 prerequisite cp213 corequisite cp372, cp386 cp386 operating systems topics include operating system services, file systems, cpu scheduling, memory management, virtual memory, disk scheduling, deadlocks, concurrent processes, protection and distributed systems. 3 lecture hours credit 0.50 prerequisite cp216 and cp264 or cp217 cp3nine5 directed studies a detailed study of an aspect of computer science or computer electronics not available through the regular program. irregular course. credit 0.50 prerequisite registration status year 3 or 4 of an honours computer science or honours computing computer electronics program and permission of both the department and the instructor. cp400 special topics a detailed examination of a field or topic of interest not covered by the regular program. irregular course 3 lecture hours credit 0.50 prerequisite permission of the department cp411 computer graphics the principles, algorithms, and techniques of computer graphics. topics include introduction to graphics hardware, output primitives, two and threedimensional geometric transformations, threedimensional object representation and viewing, illumination models and surfacerendering methods. graphics software tools will be introduced in this course. 3 lecture hours credit 0.50 prerequisite cp264 or cp114 and cp217 and ma122 cp412 algorithm design and analysis ii a continuation of the study of computer algorithms. amortized analysis, online and offline algorithms, randomized algorithms, dynamic programming. 3 lecture hours credit 0.50 prerequisite cp312 and cp214 or ma238 cp414 foundations of computing deterministic and nondeterministic finite automata dfas and nfas, regular expressions, contextfree grammars, relationship of pushdown automata and contextfree grammars, definintion of the classes p and np, npcompleteness cooks theorem, standard npcomplete problems, reduction techniques, turing machines, the halting problem. 3 lecture hours credit 0.50 prerequisite cp312 and cp214 or ma238 cp421 data mining the course is aimed at an entry level study of information retrieval and data mining techniques. it is about how to find relevant information and subsequently extract meaningful patterns out of it. while the basic theories and mathematical models of information retrieval and data mining are covered, the course is primarily focused on practical algorithms of textual document indexing, relevance ranking, web usage mining, text analytics, as well as their performance evaluations. at the end of the course student are expected to understand the following 1. the common algorithms and techniques for information retrieval document indexing and retrieval, query processing, etc. 2. the quantitative evaluation methods for the ir systems and data mining techniques. 3. the popular probabilistic retrieval methods and ranking principles. 4. the techniques and algorithms existing in practical retrieval and data mining systems such as those in web search engines and recommender systems. 5. the challenges and existing techniques for the emerging topics of mapreduce, portfolio retrieval and online advertising. 3 lecture hours credit 0.50 prerequisite cp312, cp317 cp422 programming for big data the explosion of social media and the computerization of every aspect of social and economic activity resulted in creation of large volumes of mostly unstructured data web logs, videos, speech recordings, photographs, emails, tweets, and similar data. the key objective of this course is to familiarize the students with key information technologies used in manipulating, storing, and analyzing big data. we look at the basic tools for statistical analysis, r and python, and some key methods of machine learning. we review mapreduce techniques for parallel processing, hadoop, an open source framework for running mapreduce on internet scale problems and hdfs, hadoops distributed file system. we teach spark which emerged as the most important big data processing framework. we touch on tools that provide sqllike access to unstructured data like hive. we analyze socalled nosql storage solutions exemplified by cassandra for their critical features speed of reads and writes, and ability to scale to extreme volumes. we examine memory resident databases voltdb, scidb and graph databases ne4j. students gain the ability to initiate and design highly scalable systems that can accept, store, and analyze large volumes of unstructured data in batch mode andor real time. most lectures are presented using java examples. some lectures use python and r. 3 lecturediscussion hours credit 0.50 prerequisite cp317 cp423 text retrieval and search engines recent years have seen a dramatic growth of natural language text data, including web pages, news articles, scientific literature, emails, enterprise documents, and social media such as blog articles, forum posts, product reviews, and tweets. text data are unique in that they are usually generated directly by humans rather than a computer system or sensors, and are thus especially valuable for discovering knowledge about peoples opinions and preferences, in addition to many other kinds of kno40 ute that we encode in text. this course will cover search engine technologies, which play an important role in any data mining applications involving text data for two reasons. first, while the raw data may be large for any particular problem, it is often a relatively small subset of the data that are relevant, and a search engine is an essential tool for quickly discovering a small subset of relevant text data in a large text collection. second, search engines are needed to help analysts interpret any patterns discovered in the data by allowing them to examine the relevant original text data to make sense of any discovered pattern. you will learn the basic concepts, principles, and the major techniques in text retrieval, which is the underlying science of search engines. 3 lecture hours credit 0.50 prerequisite cp317 corequisite cp476 cp431 parallel programming parallel computers, or supercomputers or highperformance clusters are ubiquitous today in science and engineering. parallel programming requires inventing new algorithms and programming techniques. this course will cover the fundamental paradigms of parallel programming, with an emphasis on problem solving and actual applications. the parallel programming concepts and algorithms will be illustrated via implementations in openmp and mpi message passing interface, as well as serial farming. 3 lecture hours credit 0.50 prerequisite cp264 proficiency in c is the only actual prerequisite or cp217 exclusion cp331, cp400n cp460 applied cryptography algorithms and issues in applied cryptography. topics include history of cryptography, block ciphers, stream ciphers, publickey encryption, digital signatures, and key management. also, discussions of current issues in information security. 3 lecture hours credit 0.50 prerequisite ma120 or ma121 or cp214 cp213 or cp264 or cp104 and a 0.5 ma credit at the 200 level and permission of the department cp463 simulation discrete and continuous simulations, queuing theory. 3 lecture hours credit 0.50 prerequisite st230 or ma240 or equivalent, cp213 cp464 selected topics in computer hardware topics may include computer classes and evolution, instruction set design, hardwired sequencer design, microprogramming, memory hierarchies, concurrency, multipleprocessor systems, and faulttolerant systems. students will be required to design and build a computer, including the design of the instruction set and the control unit. 3 lecture hours credit 0.50 prerequisite cp316 and cp31ninepc31nine cp465 database ii this course covers advanced database management system design principles and techniques. possible topics include access methods, query processing and optimization, transaction processing, distributed databases, deductive databases, objectrelational databases, data warehousing, data mining, web and semistructured data, search engines, etc. 3 lecture hours credit 0.50 prerequisite cp363 cp467 image processing pattern recognition introduction to vision systems for image acquisition and display. comprehensive coverage of image enhancement, segmentation, feature extraction and classification. 3 lecture hours credit 0.50 prerequisite cp213, st230 or equivalent cp468 artificial intelligence examination of current concepts and techniques in artificial intelligence and machine learning. topics include knowledge representation, automated reasoning, machine learning and knowledgebased systems. extensive use of case studies and current applications. 3 lecture hours credit 0.50 prerequisite cp213 cp46nine iphone application programming programming applications for the iphone, ipad, and ipod platforms, using the cocoa touch framework on mac osx. introduction to ihe programming language objectivec. interface development for mobile devices and dealing with different input modalities, web services, and memory management for mobile devices. 3 lecture hours credit 0.50 prerequisite cp317 and registration status year 4 of an honours computer science or honours computing and computer electronics program. cp470 android programming how to write applications for the android mobile devices using the android development tools. developing software with the modelviewcontroller paradigm. knowledge of java is required. the course project will be the development of an android app. 3 lecture hours credit 0.50 prerequisite cp213, cp317 exclusion cp400q cp471 introduction to compiling principles and design techniques for compilers. compiler organization, compiler writing tools, scanning, parsing, semantic analysis, runtime storage organization, memory management, code generation and optimization. students implement a substantial portion of a compiler in a project. 3 lecture hours credit 0.50 prerequisite cp213 or cp264, cp216 cp472 programming languages overview of programming languages, virtual machines, history of programming languages, programming language semantics, programming language design, introduction to language translation, declarations and types, abstraction mechanism, functional programming, logic programming, objectoriented programming. 3 lecture hours credit 0.50 prerequisite cp213 or cp264 or cp217 cp476 internet computing the architecture of the internet. clientserver programming, technologies of the web urls, html, http, applets, etc. introduction to building web applications and serverside programming. credit 0.50 prerequisite cp363, and either cp372 corequisite or cp364 corequisite cp372 cp480 wireless communication networks this course introduces fundamental concepts of wireless networks. topics include wireless communication overview, physical layer, wireless concepts and protocols including tcp over wireless cellular standards, wifi wimax, and bluetooth standards applications such as personal area networks and sensor networks other issues such as mobile communication security. 3 lecture hours, 1.5 lab hours credit 0.50 prerequisite cp213, cp372 or cp364pc364. exclusion cp400p. cp4nine3 directed research project i an indepth investigation of a computer science subject under faculty supervision, including the submission of a final report. irregular course. 3 lecture hours credit 0.50 prerequisite registration status year 4 honours computing and computer electronics, or computer science, and permission of the department cp4nine4 directed research project ii an indepth investigation of a computer science subject under faculty supervision, including the submission of a formal report. irregular course. 3 lecture hours credit 0.50 prerequisite cp4nine3 and permission of the department. cp4nine5 directed studies a detailed study of an aspect of computer science or computer electronics not available through the regular program. prerequisite registration status year 4 honours computer science or honours computing computer electronics and permission of both the department and the instructor