Course Goals and Objectives

From Computer Science Wiki
Jump to: navigation, search


• To gain an understanding of issues underlying the use of the Internet for communication, resource discovery, research, and dissemination of information in multimedia formats.

• To understand social, legal, and ethical issues related to using the Internet.

• To gain skills in using current Web technologies


• Develop a deeper understanding of the concept of storytelling and the power of narrative;

• To critically examine the digital landscape of communication technologies as emergent narrative forms and genres and increase appreciation of technology use in storytelling

• To develop skill in using the technology as a tool in communication of stories

• To improve communication skills

• Participate in an ongoing and meaningful conversation with your classmates about the ideas, theories, and technologies discussed in this class; and

• Publish online your own exploration of digital storytelling techniques and approaches.


• To develop the algorithmic thinking skills required for structured problem solving.

• To gain proficiency in small scale modeling and simulation.

• Develop skills in algorithmic problem-solving, expressed in modeling and simulation tools.


• Gain a conceptual understanding of computers, computing, and issues with technology through breadth-first topics

• Develop skills in algorithmic problem-solving, expressed in a programming language

• Represent and manipulate information in a program that executes on a computer


1. To equip beginning Computer Science majors with the mathematical and logical skills required for advanced study in the field.

2. To cover selected topics in discrete mathematics from a Computer Science perspective.

3. To examine numerous examples and exercises which relate the mathematical concepts of discrete mathematics to problems in Computer Science.

4. To provide students who do not take advance courses in Computer Science with the conceptual tools that discrete mathematics provides.

5. To expose students to some of the foundations of Computer Science.


•To develop the algorithmic thinking skills required for structured problem solving.

•To gain proficiency in small scale computer programming, using a high-level language (like Java.)

•To become familiar with how digital information is represented, stored, and manipulated.


To become proficient in the following:

• Transition to C++, illustrate major differences between it and Java

• Header files, and compiling multiple source files into a single executable

• Pointers

• Dynamic memory allocation (and de-allocation)

• Pass-by-value vs. pass-by-reference (including C++ reference op)

• C++ template classes

• Singly-linked lists

• Stacks

• Queues

• Trees, including binary search trees

• Graphs

• Sorting, searching, and basic Big-O complexity analysis

• Hashtables


  • To learn the principles of electronics that form the basis of all computing equipment.
  • To obtain a highlevel

understanding of the successive layers that comprise a physical computing system, and how they interact with one another to ultimately provide an application level solution.

  • To gain experience building simple but representative components at each of the fundamental levels: electronic components, digital design, computer organization, machine & assembly language.


• To practice the design and implementation of original software using an environment typically used in a business environment (ex. Visual Basic Programs within the Visual Studio.NET 2010 environment)

• To understand the role of information systems in business

• To understand how to apply information systems to create a competitive advantage

• To understand how information systems can improve decision making and support management of data and knowledge

• To understand how the global marketplace affects the competitive forces of a business

• To understand current computing issues in business (like Cloud Computing, Information Security, and E-commerce)

• To improve oral communication skills through class presentations

• To improve critical thinking and research skills


To gain an understanding of:

•the theoretical machines which are mathematical models for actual physical processes

•Turing machines

•the halting problem

•formal language theory


To provide students with:

• opportunities to design, implement, debug, and document original large scale programs using techniques of good object oriented design

• experience using design techniques for identifying classes and methods

• an introduction to UML including class diagrams, sequence diagrams, and collaboration diagrams

• opportunities to study the role of encapsulation, visibility, inheritance and polymorphism in object oriented design

• an opportunity to develop a program in a collaborative, team environment

• an introduction to the concept of design patterns and the application of common patterns

• the opportunity to improve writing skills needed in computer science


• Introduce general concepts in Web development including: an overview of the Internet, WWW, Web Servers, networks, XHTML, and CSS.

• Introduce technical concepts in Web Services including: PHP, Java Server Pages, JavaScript, databases, and security.

• Simulate real-world team activities and foster constructive attitudes towards teamwork.


  • Understand the big picture about what database systems do and how they can be


  • Acquire data modeling skills and learn how to design a database schema
  • Discover how to write software applications that can programmatically store,

retrieve, and query information in a database

  • Learn how to integrate a backend database with a server-side Web program so

that browser-based applications can interact with the information


•Students develop an understanding of the nature of programming languages including issues of design, implementation, and run-time behavior.

•Students become familiar with at least three paradigms for programming languages, such as functional, object-oriented and logic.

•Students will have thoughtfully considered programming languages and be able to discuss and write about them in a clear manner at appropriate depth.

405 to develop the ability to read (and apply) program specifications and technical documentation.

to develop the ability to meet coding deadlines

to acquire a good understanding of the structure of operating systems including processes threads scheduling process synchronization deadlocks memory management virtual memory file-system interface and other I/O

gain basic core competencies in kernel development. This includes extending a barebones kernel to include executing user processes, paging, and file management.

develop abilities to critically compare operating systems and assess emerging technologies.


• Understand the layers of the Internet and OSI models and the issues handled by each layer

• Understand fundamental network protocols including TCP and IP

• Write network software using sockets

• Understand issues involving network security


To develop an understanding of basic elements of AI such as

• knowledge representation and inference

• search

• machine learning

• planning

• game playing

• information retrieval

• computer vision

• robotics

To gain experience in AI programming


• To understand parallel hardware and software systems.

• To gain experience developing parallel algorithms.

• To write programs in multiple parallel programming environments.

• To be able to evaluate the performance of parallel programs.


• Identify and describe a specific problem requiring a software solution.

• Design an efficient system to solve the problem.

• Use CASE tools to assist in designing and developing a solution.

• Define a timeline for team members and project milestones.

• Present and communicate the current standings of a project.

• Maintain documentation.

• Develop a test plan.


1. Learn fundamental foundations of the field of Game Programming

2. Sharpen programming skills while implementing concepts in the development of gaming applications

3. Sharpen presentation skills by giving formal presentations of individually designed and implemented games

470W Linked Data

• Students taking this course will be given a guided introduction to Linked Data on the World Wide Web, to include standard formats, publication and query mechanisms.

• Addressing of data in accordance with the principles of Representational State Transfer and Uniform Resource Indicators, the Resource Description Framework and its various serialization formats and the SPARQL query language are covered.

• Students will be expected to create, publish and query their own Linked Data on the Web and describe the reasons for doing so. Grading will be based on assignments, culminating in a final project.

470 Animation

• The course will go over the 2D and 3D computer graphics design such the eye and word coordinate systems and application of matrices in rotation and reflection of objects.

• Students will gain an understanding of the principles of animation.

• Students will create semester long designing a short animated movie by creating short movie clips.

• Students will apply Java 2D computer animation or computer games.