Computer Science
Computer Science 101: Digital Literacy
This course serves as an introductory course to digital literacy, both on a theoretical and an experiential level, focusing on general purpose computing, networks and the internet, information and data management and social media. Under the umbrella of Computer Science, students are exposed to the fundamental principles of operating systems, human computer interaction, networking and communication, architecture and organization, computational science, information management, social issues and professional practice and learn to identify and exploit them for everyday organizational tasks. On a practical level, students learn how to use Operating Systems (proprietary and FOSS) and collaborative cloud based office productivity software; how to publish and present their work using computing and mobile / smart devices and the internet; how to use web 2.0 tools for content creation and delivery (collaborative wikis, blogs, newsgroups, social media platforms); how to create and manage their personal digital identity; how to organize and process data; how to search for and critically evaluate information which is available on the world wide web and scientific literature databases; how to plan projects using modern web-based tools. They are also exposed to technical writing, collaborative informatics projects, public speaking and presenting their work within pre-determined time limits. May be taken as Computer Science GER.
Computer Science 105: Introduction to Programming I – Structured Programming
This is an introduction to computing and computer programming using the Java or C language. Students are introduced to the basic elements of computing hardware, information technology and computer programming. Programming is explained, demonstrated and practiced using the Java or C programing language. Ultimately the course aims to advance beyond basic computing skills towards software engineering, instructing students to develop autonomy as sophisticated computer users and programmers. May be taken as Computer Science GER.
Computer Science 106: Introduction to Programming II – Object oriented programming
The course provides a systematic coverage of Object Oriented Modelling and Applications. Topics include Object Models, Object Class Design, Inheritance and Polymorphism, Software Reuse with Classes, Application Modelling, Simulation with Object Classes, and Business Process Modelling with Objects. Object-oriented programming (OOP) is a revolutionary concept that changed the rules in computer program development. OOP is organized around “objects” rather than “actions”, data rather than logic. Historically, a program has been viewed as a logical procedure that takes input data, processes it, and produces output data. The programming challenge was seen as how to write the logic, not how to define the data. Object-oriented programming takes the view that, “what we really care about:”, are the objects we want to manipulate rather than the logic required to manipulate them.
The course expands on the material covered in CS105 with the following aims:
• Further cultivation of algorithmic thinking and refinement of existing procedural programming skills
• Familiarization with the Object Oriented programming methodology
• Exposure to Java classes for building graphical interfaces and other extensions
May be taken as Computer Science GER. Prereq: Computer Science 105
Computer Science 107: Multimedia I - Digital Media Toolkit
This course is an introduction to digital multimedia. All media components (digital images/graphics, text, animation, sound and digital video) are introduced and their parameters defined and studied. Software multimedia development tools necessary for the creation or capture of digital media are presented and students acquire hands-on experience with a package for each media category. Hardware essential for the capture/creation of the media is also presented. Multimedia project design parameters are examined and applied to a student capstone project.
The main software used in this course will be Adobe Bridge, Adobe Photoshop, Adobe Premier Pro, Adobe Camera Raw and/or Lightroom. Other software may be used, which will be announced at the beginning of the course. May be taken as Computer Science GER.
Computer Science 115 - Introduction to Structured Programming with the C++ programming language
This is an introduction to computing and computer programming using the C++ language. The course is designed for students who have no prior experience in programming, just some basic exposure to computers as users. It is a fast-paced, intensive structured programming course, which can also accommodate students who already know how to program in another language and wish to learn C++. Students are introduced to the basic elements of computing hardware, information technology and computer programming. Programming is explained, demonstrated and practiced using the C++ programming language. Ultimately the course aims to advance beyond basic computing skills, instructing students to develop autonomy as sophisticated computer users and programmers.
Computer Science 130: Introduction to electronics and robotics programming
The primary difference between robots and other types of computing devices is their ability to have a physical effect on their environment, rather than to simply gather, process and communicate data. This is particularly apparent in the case of autonomous and semi-autonomous mobile robots: they face the challenge of acquiring data from their surroundings, selecting their own navigation waypoints and dynamically altering their course of action to account for obstacles, power supply restrictions and unexpected events. In this introductory experiential learning course, students will work in teams and be challenged to build both the hardware chassis and software algorithms for such robots, using the Lego Mindstorms robotics kit and additional resources. The course will commence with simple sensor data acquisition, proceed with the use of actuators, basic navigation, obstacle avoidance, sensor data fusion and conclude with several robotic team challenges. Prereq: Basic computing, numerical and analytical skills. Previous exposure to programming code considered an advantage but not necessary.
Computer Science 151: Quantitative Computing
The course aims at deepening student quantitative skills by interrelating mathematical modeling and spreadsheet implementation. Students are presented real-world problems encountered in the modern enterprise, with emphasis on spreadsheet computing and are taught both the mathematical background and the necessary structures for tackling the problem with spreadsheets. Emphasis is placed on mutual translation of mathematical model and spreadsheet implementation. Focus is on Business Planning and topics are drawn from Microeconomics, Finance, Marketing, Managerial and Financial Accounting. Mathematical topics covered include: Real numbers and their computer implementation, polynomial, exponential and logarithmic functions, matrices, linear programming and optimization, recursive models, discrete approximation of the derivative and integral. May be taken as Computer Science GER. Prereq: Computer Science 101 or 105, Math 101
Computer Science 180: Discrete Structures
This course introduces the mathematical structures and methods that form the foundation of computer science. The material will be motivated by applications from computer science and emphasize:
• Techniques: binary and modular arithmetic, set notation, methods of counting, evaluating sums, solving recurrences
• Supporting Theory: basics of probability, proof by induction, growth of functions, and analysis techniques and
• General problem solving techniques with many applications to real problems.
The course material is divided into five modules. Each module starts with a motivating application then goes into techniques related to that application and the theory behind those techniques. Each module ends with one or more fairly deep applications based on the material.
These modules are: Computers and Computing: Numbers, Circuits, and Logic; Cryptography: Integers and Modular Arithmetic; Combinatorics: Sets, Counting, and Probability; Algorithmic Analysis: Searching and Sorting; Networks: Graphs and Trees
Computer Science 201: Business Computing
The course aims at presenting Business majors with the basic computing structures needed to support a company’s management. Students will be exposed to data tables from a variety of business activities as well as the database techniques necessary to model and effectively process these data for the purposes of company assessment and planning. Examples of applications residing in the WWW will be presented, analyzed and subsequently implemented by students with the database medium used in the course. Prereq: Computer Science 151
Computer Science 205: Business Data Management
The purpose of COMP SCI 205 is to introduce the idea of business data management, data modeling, and processing methodologies with the use of standalone design tools and personal databases. It aims at fostering proper data design through the relational methodology and developing all necessary data processing and presentation skills. The aims of this course are to:
• Define the role of Systems Analyst and Database designer.
• Explain System Analysis and interpersonal communication skills that the System Analyst must have
• Explain Project Management and discuss tools that the system analyst must have
• Explain the Methodologies that are used for Systems Analysis and Database Design
• Explain the various tools that certain methodologies use
Provide students the opportunity to work on the most popular database (Oracle), in a project in order to implement the taught methodologies. Prereq: Computer Science 105
Computer Science 206: Web Development
COMP SCI 206 is an introductory course for beginning web designers. We will explore some essential concepts related to the creation of effective web sites. In the last portion of the course we will concentrate on client-side scripting using the programming language JavaScript. This course aims at introducing students the basic web design guidelines, Fundamentals of Hyper Text Markup Language (HTML), and how to use a Simple HTML Editor as well as Web Authoring Tools. Also, one of the main goals of the course will be to understand what scripting languages are and to be able to develop scripts. Prereq. Computer Science 101 or 105
Computer Science 207: Multimedia II
This course is the continuation of CS107. Advanced editing techniques of digital images and digital video will be presented, studied and practiced. Basic animation techniques (using Macromedia Flash) will be presented, studied and practiced. Students will acquire further skills on capture hardware (Photo, Video, Audio). Individual student capstone projects on Video and animation will be assigned at the end of the course. Prereq: Computer Science 107 or permission of instructor
Computer Science 209: 3-D Digital Design I
The focus of this course is the introduction to the 3D workspace, creation tools, and the basics of 3D design. Including modeling 3D geometry, creating material textures and lighting, and rendering output to animation and still image formats. 3D animation techniques will also be presented, studied and practiced. The concepts and interrelationships of developing a story and character from premise to production will be presented, studied and implemented by students on a final capstone project. Students will acquire hands-on experience using 3ds max and will build on their 2D skills with the use of Photoshop as an aid in the creation of texture maps. Prereq: Computer Science 107
Computer Science 215: Data Structures
The purpose of CS215 is to introduce students to the main concepts and implementation principles of object-oriented programming and data structures, using Java as the programming language. This course builds on the knowledge and skills acquired in CS105 – Introduction to Programming I. The course is split in two parts; the first part deals with object-oriented programming using Java, re-enforcing the fundamental concepts learned in CS105. The second part of the course introduces data structures. The data structures examined include arrays, lists, queues, stacks, trees, heaps, hash tables and graphs. Searching, sorting, inserting, deleting and other simple operations on these structures will also be discussed. Prereq: Computer Science 106 or permission by instructor
Computer Science 219: Video Game Design
This course introduces the critical study of computer video games and the professional practice of game design. Through readings, discussions, research, and practical “hands-on” projects, students will better understand the current market for games and simulations and develop the fundamental skills necessary to enter the international computer games industry. Although the commercial video game pipeline will be discussed, the actual production framework for the class will mirror a ‘Indie” game team “prototype game level” development. Students will be expected to fill multiple roles in the production process, and gain hands-on experience in the collaborative processes of game design, project management, scripting, content creation pipeline, in game animation, and play-testing. Prereq: Computer Science 107; CS105 recommended or permission by instructor
Computer Science 222: Cisco Networking Fundamentals and Router Configuration
This course offers an introduction to computer systems and networking fundamentals based on the OSI network model and industry standards. The first part teaches the fundamentals of network design and the installation of cabling. Topics covered are network topologies, IP addressing, including subnet masks, networking components, and basic network design. In the second part of the course, students begin simple router configuration exercises and are introduced to LAN switching. Topics covered are routing theory and router technologies, router configuration, routed and routing protocols. Prereq. Computer Science 101 or 105 or permission by instructor
Computer Science 230: Introductory Systems Programming
The course continues from CS105, Structured Programming, aiming to making students familiar with a variety of fundamental software engineering challenges which can be solved by developing the appropriate software algorithms. The course furthers algorithmic skills with increased emphasis on systems programming. More elaborate data structures are manipulated and the role of libraries accessing Operating System resources (Disk, I/O) is examined. In this manner the course serves as a bridge between the Programming Fundamentals and the Computing Systems programme threads. The course employs a high-level language (C++) and investigates structured programming as follow-up to the introductory course in programming. More elaborate structures are learned and employed, in order to solve a wide range of tasks. Intricacies of the C/C++ languages are investigated and related to computer architecture (pointers, variable addresses, memory allocation). The course, in addition to furthering algorithmic thinking skills, also serves as the introductory course for the Computing Systems programme thread, as the relationship of the high level language with the underlying computer system is investigated and applied to system programming tasks involving I/O with a variety of external devices (user interaction, storage, microcontrollers). Prereq. Computer Science 101 or 105 or permission by instructor
Computer Science 250: E-commerce
This course provides students with a broad understanding of the electronic commerce domain. It introduces aspects of ecommerce, and students gain insight into technical, business, legal and policy issues. On completion of the course business students will be able to understand what e commerce is and how to exploit an e-commerce strategy in an organization. Students will be ready to comprehend the e-commerce domain and apply it technically. Prereq: Computer Science 106 or permission by instructor
Computer Science 300: Mobile Application Programming
This course focuses on the fundamentals of mobile strategy and development, application architecture and design. Students will have the opportunity to learn the benefits and challenges of mobile application planning, design, development and strategy through real world examples and actual project work. Through readings, discussions, research, and practical “hands-on” projects, students will better understand the current market for mobile applications and develop the fundamental skills necessary to enter the mobile application industry. This course aims to teach how to build cross-platform mobile solutions to solve complex problems using iOS and Android phones and tablets. The course will teach students how to develop software for iOS and Android mobile devices through real world examples and strategies. Students will be guided through a complete mobile development lifecycle during the semester, and be given the opportunity to develop a series of applications. Prereq: Computer Science 106 or permission by instructor
Computer Science 304: Introduction to Mobile Device Programming
This course focuses on learning to program small size applications (apps) for Android, the most common open source operating system for smartphone and tablet devices. Students will be introduced to the Android software development kit and learn to write apps that combine sensor readings with user input, deposit and retrieve data from the cloud and publish their creations on the Android app ecosystem. There will be a final app creation competition which will be judged on utility, originality, versatility and coding elegance. Programming experience is recommended for all participants. Prereq: Computer Science 105
Computer Science 305: Programming in C++ and Matlab
This course builds on the algorithmic skills developed by students, and focuses into materializing this knowledge into developing computer programs to tackle real world problems using the programming language C++. Topics include program structure, functions, arrays, pointers. The course also provides an overview of the top-ranked Mathematics software Matlab. A final integrated project addresses the issues involved into combining C++ and Matlab and helps students appreciate problem solving in the real world environment.
Computer Science 306: Advanced Web Development
This course builds upon the skills and knowledge about creating and publishing Web pages and sites taught in CS 206. It also introduces students to advanced web development areas, required for students interested in pursuing a career in web site design. This course aims mainly on client-side scripting using the programming language JavaScript. The objective will be to understand what scripting languages are and to be able to develop scripts. The course will also offer an introduction to jQuery library, Asynchronous JavaScript and XML (AJAX), basically showing the benefits of their use and applying it to certain programming tasks. In the last portion of the course, students will gain a practical knowledge about the currently most used web content management environments. By combining lectures with seminar discussions and extensive hands-on experiences the course will introduce the students both to the applied aspects of content management technologies but also to the theoretical issues involved. Prereq: Computer Science 105 & 206
Computer Science 309: 3-D Digital Design II
This Course will build on the existing cs209 course and serve as a more in-depth study of 3d digital design in practice and theory. This course will continue development from cs209 topics, and the following intermediate to advanced topics which are beyond the scope of CS209, will be presented, studied and practiced. This includes, Nurbs and Patch surface modeling, advanced Material, Mapping and Lighting techniques and more advanced Rendering methods. Advanced character animation tools will also be covered including Character studio and Max’s character animation tools. It will also cover Dynamic simulations using Reactor and introduces max scripting. Prereq: Computer Science 209
Computer Science 310: Hardware & Computer Architecture
This course addresses the structure and function of modern digital computing devices, ranging from the compilation process down to the hardware level. Despite the pace of change and variability in the fields of informatics, electronics and computer engineering, certain fundamental digital design concepts apply consistently throughout. CS310 students will both gain the relevant theoretical understanding and have a chance to apply it in practice designing, simulating, troubleshooting and optimizing their own combinational and sequential logic circuits. The course concludes with a discussion on system level organization and architecture of modern computing devices. This course builds on knowledge and skills acquired in CS105 – Introduction to Programming I. Upon successful completion of the course students be able to:
• Understand and be able to explain the significance and function of fundamental components within a typical modern
computing device (processor, memory, I/O, operating system), their interconnections with each other and the outside world.
• Comprehend and follow the data flow through the internal structure of a digital microprocessor.
• Understand the importance and function of logic gates as primary building components in digital design.
• Analyse combinational digital circuits and optimize them using Karnaugh maps.
• Be able to design, simulate, troubleshoot and optimize their combinational and sequential digital logic circuits.
• Recognize and understand basic Assembly language and Machine Code.
Prereq: Computer Science 105
Computer Science 312: Database Management Systems
The purpose of the course is to offer a systematic coverage of modern Database Computing theory and technology. Topics include: Relational Algebra, Data Modelling, Database Design, Client-Server Database Management Systems, Interface Design, trends in Database Systems, combination of Object Oriented Modelling and Relational Databases. Prereq: Computer Science 205
Computer Science 321: Operating Systems
This course deepens understanding of how contemporary computing systems are structured and, in particular, supported by an Operating System. It is a culmination course within the Computing Systems programme thread. Operating Systems are the brain of any computing system. They handle the body/DNA (hardware) as well as behaviour (usage of system by user). Following rapid to revolutionary technological developments the field of Operating Systems also undergoes tremendous changes, which constantly evolve the conception of an OS and of course the technological challenges involved in its implementation. The course aims at outlining the role of an OS in a diachronic way while comparing and contrasting design choices spanning the evolution of the field. It aims at defining fundamental needs that a von Neumann machine has from the Operating System in order to be functional, optimal and attractive to the user. The course explains Operating Systems architecture and examines trade-offs involved in different, evolving systems. It further examines diachronic as well as contemporary issues involved in Operating System design by comparing and contrasting relevant design and algorithmic choices. The course involves lab work: Communication with the OS at a low level via a Linux shell and programming tasks addressing aspects of Operating System design and implementation. Prereq: Computer Science 215, Computer Science 310, or permission by the Department
Computer Science 322: Network Operating Systems and Administration
This course aims to provide the student with the knowledge of how computer networks are designed, engineered and operated. This includes knowledge of the fundamental algorithms used in the management of both resources and traffic and how these algorithms may interact with application programs. Instruction includes, but is not limited to network terminology and protocols, network standards, LANs, WANs, OSI models, cabling, cabling tools, routers, router programming, star topology, and IP addressing. The student will study and design networks, using Ethernet, TCP/IP Addressing Protocol, and dynamic routing. Particular emphasis is given to the use of decision-making and problem-solving techniques in applying science, mathematics, communication, and social studies concepts to solve networking problems. Prereq: Computer Science 215
Computer Science 323: Java Network Programming
The aims of the course are to provide students with the basic knowledge and understanding of computer networks with Java essentials - how Java language associates with computer networking topics. This ranges from the essential elements of the Java programming language to networking fundamentals and distributed systems’ principles. It will also provide an introduction to the theory, design and implementation of network software. Prereq: Computer Science 105
Computer Science 325: Distributed Applications
The purpose of the course is to examine in detail the software and hardware technologies prevalent in the Internet and provide an introduction to the principles and methods for creating distributed on-line client/server applications that are the basis for electronic commerce as it is conducted over the Internet. Methods and tools such as HTML, the Common Gateway Interface, PHP, database connectivity tools and MySQL are presented. Coverage is also given to emerging standards for information exchange, encryption and validation. Prereq: Computer Science 312
Computer Science 330: Introduction to Mobile Robotics
The primary difference between robots and other types of computing devices is their ability to physically interact with their environment, rather than to simply gather, process, store and communicate data. This is particularly apparent in the case of autonomous and semi autonomous mobile robots: they face the challenge of acquiring data from their surroundings, selecting their own navigation waypoints and dynamically altering their course of action to account for obstacles, power supply restrictions and unexpected events. In this course theoretical instruction is combined with experiential learning and challenge driven software development.
Students participating in this course are challenged individually and in teams to build the hardware chassis and software control algorithms for mobile robots. The course assumes a basic background in structured programming and proceeds with an introduction to both visual and text source code robotic programming (C, RobotC); basic electronics circuit design and troubleshooting; microcontroller programming; sensor data acquisition algorithms; actuator control; robotic navigation and obstacle avoidance; basic sensor data fusion; and concludes with a final robotic design challenge which integrates all aforementioned knowledge and skills. This course builds on structured programming skills developed in CS105: Introduction to Programming. Prereq: CS 105: Introduction to Programming or equivalent
Computer Science 333: Cisco Advanced LAN and WAN Design
In the first part of this course, students learn to configure routers and switches and use network management techniques to find and fix network problems. Topics covered include advanced router configuration, LAN switching theory, and VLANs. There is significant emphasis on project-based learning. In the second part of the course, concepts and methods involved in wide area networking (WAN) design and implementation are introduced. Topics include WAN theory and design, WAN technology, PPP, Frame Relay, and ISDN. Numerous topics and issues are covered through the use of threaded case studies. By the end of this course, students complete advanced projects in network design and management. Successful completion of this course prepares students for the Cisco Certified Networking Associate test (CCNA). Prereq: Computer Science 222
Computer Science 340: Artificial Intelligence
This course is an introduction to the field of AI, including an intensive initial introduction to the Python programming language. Indicative AI topics include knowledge representation, problem solving via search, logical and probabilistic reasoning and machine learning algorithms such as decision trees, neural networks, reinforcement learning and genetic algorithms. Prereq: CSC 215
Computer Science 350: Software Engineering
After successfully finishing this course students are expected to have in-depth knowledge of all phases of the software engineering lifecycle, i.e. requirements engineering and software design, software design, implementation, verification and validation, quality assessment, software re-engineering, and software reverse engineering methods. In addition to that, students are expected to acquire skills related to communication with the customer, teamwork, time management and global software development. Prereq: CSC 450 or permission by instructor
Computer Science 401: Quantitative Operations Management
The aims of the module are to provide students with the required tools and analytical/quantitative skills of Operations Management (OM) and Econometrics, in order to enable them to comprehensively understand, design, model, and critically evaluate business strategies, and policy formulations. Specifically, the course will cover fundamental OM tools and principles, through their applications and cases, such as: Project Management, Forecasting, Supply Chain and Inventory Management, and Financial Management. Prereq: Math 101 - STAT 205 - MAN 101
Computer Science 412: Object Oriented Programming
The course revisits Object Oriented application development methodology at the Senior level, examining its effectiveness in the life cycle of professional applications and software reuse through the adoption of Object Oriented Design Patterns. It presupposes the knowledge earned through the introductory line of the Programming Fundamentals programme thread and follows level 5 modules relating to Data Modelling (CS 312) and Systems Design (CS450) while specialising them within the context of Web Development. Currently CSC 325 (Distributed Systems) is a necessary prerequisite concerning web deployment technologies.
The module mostly emphasizes the employment of OO concepts to Web Development yet it is of general enough nature for a level 6 module as the design patterns examined are applicable to a wide range of technologies and application domains. Prereq: Computer Science C215, CS312, CS325 or permission by the instructor.
Computer Science 421: Computer Systems Security
This course aims at providing both a theoretical and practical background concerning issues of security in modern, networked systems. Cryptography is covered first (essentially discussions of standard algorithms). The remainder of the module focuses on techniques that can be used to safeguard real systems. Topics that are covered include Key management and credentials, Steganography and watermarking, Network security (VPNs, Firewalls, Intrusion Detection) and System Security Policies. Risk assessment and threat models as well as social engineering will be covered. Prereq: Computer Science 321, CS322 or permission by the Instructor.
Computer Science 422: Advanced DBMS
This course focuses on creating and manipulating databases using SQL and PL/SQL programming languages for Oracle databases. Advanced query capabilities and procedural constructs are described using SQL and PL/SQL. The theoretical foundation for using these capabilities is presented. Performance issues are discussed including indexing, key definitions, and data constraints. The role of application development in ease of use, query optimization, and system performance is discussed. The module aims to teach students to use advanced SQL statements and PL/SQL programming features such as IF statements, Loops, Stored Functions/Procedures, Tables, Cursors, Stored Packages, Stored Triggers and creating and maintaining various databases. SmartDraw and Designer of Oracle is used for ERD’s. APEX, SQL Plus and SQL Navigator, SQL Server Management Studio are used as user interface of the databases. Prereq: Computer Science 312
CS 443 – CS 444: Capstone Project
This is a set of linked courses to be taken in sequence over the course of the senior year. The course aims to give students the opportunity to work in a guided but independent fashion to explore a substantial problem in depth, making practical use of principles, techniques and methodologies acquired elsewhere in the program of studies. It also aims to give experience of carrying out a large piece of individual work and in producing a final project report. It has two distinct phases: the preparatory phase focusing on literature review, assessment of Technologies and Project Specification and the implementation phase focusing on project design, development, documentation and presentation.
Computer Science 450: System Analysis and Design
The module introduces the waterfall model for system/application development and the formal tools employed in its various stages. The objectives of the module are to:
• Provide formal tools for functional and non-functional requirements collection and documentation (ERD, UML, DFD,
STD’s)
• Define the role of the systems analyst and designer.
• Build project management and interpersonal communication skills that the system analyst must have.
• Explain the methodologies that are used for systems analysis and design.
• Follow through the waterfall model (and discuss deviations therefrom), presenting the relevant tools at each stage.
• Provide the problem solving background for resolving trade-offs inherent in design.
• Present principles of quality and correctness testing.
• Provide students the opportunity to work as a team of analysts and designers in a project to implement the taught methodologies.
Students develop technical, analytical and business skills that support the pursuit of professional careers and advanced computer science studies. Prereq: Computer Science 201 or 205
Computer Science 499: Advanced Programming Tools
This course is a complete introduction to .NET and object-oriented programming. This course will help students build a solid foundation in .NET, and show how to apply these skills by using numerous examples. Learning .NET introduces fundamentals like Visual Studio .NET, a tool set for building Windows and Web applications. Students learn about the syntax and structure of the Visual Basic .NET language, including operators, classes and interfaces, structures, arrays, threads, console, passing parameters, sessions, cookies and manipulating all type of strings. Students will also be asked to develop various kinds of applications--including those that work with databases (ADO)--and web services (ASPX) and making use of XML. Finally the course focuses on how to build installable applications using the Setup platform of .NET to create .MSI self installed applications. Prereq: Computer Science 412 or Permission of instructor