COMPUTER SCIENCE CORE COURSES
Take the following courses:
An introductory study of computer science software development concepts. Python is
used to introduce a disciplined approach to problem solving methods, algorithm development,
software design, coding, debugging, testing, and documentation in the object oriented
paradigm. This is the first course in the study of computer science. 3 CreditsN,CTGES,CTGISRecommended programming experience or IT110 or IT100, IT111 or IM110 or MA103 but
not necessary. CS-110 Computer Science I
CS-220 Computer Organization
An introduction to digital computer systems including a treatment of logic and digital circuits, data representation, device characteristics and register transfer notation covered in a manner that stresses application of basic problem solving techniques to both hardware and software design. Students gain experience programming in an assembly language to reinforce these systems and design concepts.
4 CreditsNPrerequisites: CS110.
CS-240 Computer Science II
A continued study of computer science foundations as begun In Computer Science I. An object-oriented language such as JAVA is used to develop and implement large programs involving various data structures and data abstraction as exemplified by packages and modules. Search, sorting, advanced data structures, programming methodology and analysis are emphasized.
4 CreditsNPrerequisites: CS110 and MA116 or MA210.
CS-255C C++ Programming
The students will prepare a portfolio of computer programs written in the language. The programs are reviewed, critiqued, and then the student has an opportunity to revise them as needed for final inclusion in the portfolio.
2 CreditsNPrerequisites: CS110 and Sophomore standing and permission.
CS-255U Unix Programming
The students will prepare a portfolio of basic Unix programs and scripts. The course covers basic Unix commands, editing techniques, regular expression usage, and script building. The programs are reviewed, critiqued, and the student has an opportunity to revise them as needed for final inclusion in the portfolio.
1 CreditsN,CTGESPrerequisites: CS110.
CS-300 Software Engineering
An introduction to the issues of software design. Topics include software engineering, software project management and development of projects in a modern design environment. The focus of the course is on the process used to develop quality software. The students work in teams to develop, implement and fully document a computer project to apply these concepts.
3 CreditsNPrerequisite: CS240.
CS-315 Algorithms and Analysis
The study and analysis of algorithms, their complexity and supporting data structures. Topics include searching, sorting, mathematical algorithms, tree and graph algorithms, the classes of P and NP, NP-complete and intractable problems, and parallel algorithms.
4 CreditsCW,NPrerequisites: CS240 and MA116.
CS-305 Software Models
A study of current software implementation models. Models of procedural based control for both batch and interactive settings, event driven control, real time control and exception handling are considered within representative interactive development environments such as .NET Design of graphical user interfaces for web-based and windows-based applications are integrated into the team projects.
3 CreditsNPrerequisites: IT240 or CS240.
CS-320 Operating Systems
An introduction to the theory, evaluation, and implementation of computer operating systems. Topics include memory, process and resource management, elementary Queuing and network models, and scheduling.
4 CreditsNPrerequisites: CS220 & CS240.
CS-370 Database Management Systems
Focuses on concepts and structures necessary to design and implement a database management system. Various modern data models, data security and integrity, and concurrency are discussed. An SQL database system is designed and implemented as a group project.
3 CreditsN,CTGISPrerequisites: CS110.
CS-480 Computer Science Seminar I
Discusses current advances in computer science and information technology not otherwise covered in our program such as, but not limited to, networking, artificial intelligence, societal issues. In addition this course allows senior students to plan an individual research project to be completed in CS485. This course, taken by a junior may be repeated as a senior as CS481.
1 CreditsNPrerequisites: Junior or senior standing and CS220 or CS240 or IT210.
IT-210 Information Technology Systems
This course introduces students to three core areas in Information Technology: networks, database and web. The course progresses through two phases during its study of modern IT environments. Initial study includes all the necessary components of today's IT system environment and its use in business. Secondly, students use a server based database development environment to create an IT system.
4 CreditsNPrerequisites: CS110. MA116 strongly recommended.
MA-116 Discrete Structures
Introduces mathematical structures and concepts such as functions, relations, logic, induction, counting, and graph theory. Their application to Computer Science is emphasized.
4 CreditsN, QPre-requisite high school algebra.
MA-130 Calculus I
An introduction to calculus including differentiation and integration of elementary functions of a single variable, limits, tangents, rates of change, maxima and minima, area, volume, and other applications. Integrates the use of computer algebra systems, and graphical, algebraic and numerical thinking.
4 CreditsN, QM
Take one of the following courses:
MA-205 Elementary Statistics
Introduction to traditional statistical concepts including descriptive statistics, binomial and normal probability models, confidence intervals, tests of hypotheses, linear correlation and regression, two-way contingency tables, and one-way analysis of variance.
4 CreditsN, QS, WK-SPPrerequisite: FYC-101 or EN-110 or EN-109
MA-220 Introduction to Probability & Statistics
An introduction to the basic ideas and techniques of probability theory and to selected topics in statistics, such as sampling theory, confidence intervals, and linear regression.
4 CreditsN, QS, CTGESPrerequisite: MA130
Take one of the following courses:
CS-360 Programming Languages
A systematic approach to the study and analysis of computer programming languages.
The underlying concepts of these languages are emphasized.
3 CreditsNPrerequisites: CS-220 and CS-240
CS-362 Languages and Translation
A systematic approach to the study and analysis of computer programming languages.
The procedural, functional, object- oriented and logical language paradigms are examined
through the use ofrepresentative languages. Syntax and semantics issues are emphasized
through the study of translation techniques in formal labs and group projects.
4 CreditsNPrerequisites: CS220 and CS240. Must have Junior or Senior standing.
CS-360 Programming Languages
A systematic approach to the study and analysis of computer programming languages. The underlying concepts of these languages are emphasized.
3 CreditsNPrerequisites: CS-220 and CS-240
CS-362 Languages and Translation
A systematic approach to the study and analysis of computer programming languages. The procedural, functional, object- oriented and logical language paradigms are examined through the use ofrepresentative languages. Syntax and semantics issues are emphasized through the study of translation techniques in formal labs and group projects.
4 CreditsNPrerequisites: CS220 and CS240. Must have Junior or Senior standing.
ELECTIVE COURSES
Complete 6 credits from the following courses:
CS-255A Android Programming
This course will take your existing Java skills learned in Computer Science I and turn them into Android programming experience. Students will learn the skills in order to develop a fully functional application. Programming in the Android Studio environment, activity and fragment lifecycles, basic user interface design, and application distribution are emphasized.
1 CreditsNPrerequisites: CS240 and Instructor Permission.
CS-255B COBOL Programming
The students will prepare a portfolio of computer programs written in the language. The programs are reviewed, critiqued, and then the student has an opportunity to revise them as needed for final inclusion in the portfolio.
2 CreditsNPrerequisites: CS110 and Sophomore standing and permission.
CS-255C C++ Programming
The students will prepare a portfolio of computer programs written in the language. The programs are reviewed, critiqued, and then the student has an opportunity to revise them as needed for final inclusion in the portfolio.
2 CreditsNPrerequisites: CS110 and Sophomore standing and permission.
CS-255F FORTRAN Programming
The students will prepare a portfolio of computer programs written in the FORTRAN language, The programs are reviewed, critiqued, and the student has an opportunity to revise them as needed for final inclusion in the portfolio.
2 CreditsNPrerequisites: CS110 and Sophomore standing and permission of instructor.
CS-255P Perl Programming
The students will prepare a portfolio of computer programs written in the Perl language. The programs are reviewed, critiqued, and then the student has an opportunity to revise them as needed for final inclusion in the portfolio.
2 CreditsN,CTGESPrerequisites: CS110 and Sophomore standing and permission.
CS-255R Ruby Programming
The students will prepare a portfolio of computer programs written in the Ruby language. The programs are reviewed, critiqued, and then the student has an opportunity to revise them as needed for final inclusion in the portfolio.
2 CreditsNPrerequisites: CS110 and Sophomore standing and permission.
CS-255U Unix Programming
The students will prepare a portfolio of basic Unix programs and scripts. The course covers basic Unix commands, editing techniques, regular expression usage, and script building. The programs are reviewed, critiqued, and the student has an opportunity to revise them as needed for final inclusion in the portfolio.
1 CreditsN,CTGESPrerequisites: CS110.
CS-255Y Python Programming
The students will prepare a portfolio of computer programs written in the Python language. The programs are reviewed, critiqued, and then the student has an opportunity to revise them as needed for final inclusion in the portfolio.
2 CreditsN,CTGESPrerequisites: CS110 and Sophomore standing and permission.
CS-330 Computer Graphics
An introduction to both the hardware and software utilized in computer graphics. The emphasis is on a top-down, programming approach, using a standard application programmer's interface. Students will create three-dimensional and interactive applications, in addition to studying several of the classic, low-level, rendering algorithms.
3 CreditsNPrerequisite: CS-240.
CS-341 Scientific Computing
This course begins with an introduction to fundamental concepts in Scientific Computing and concludes with domain-specific projects in areas like Bioinformatics, Data Science, Physical Systems, and Numerical Analysis. The common content will include command-line interfaces (Linux), programming languages (Jupyter/Python), numerical and graphical libraries (NumPy and Matplotlib), version-control (Git/Github), and relational databases (SQL).
3 CreditsNPre-Req: CS-110
CS-390 Computer Science in Germany Seminar
This course will introduce the student to studying Computer Science in Germany. During the spring semester at Juniata, students will prepare for their travel to Germany by: (1) studying the " functional " German required for travel, (2) reading about the culture and history of the country (and the state of North Rhine-Westfalia in particular), and (3) configuring the technology required for that years selected topic in CS or IT (the course content will vary each year, previous topics have included Graphical Programming, Security Engineering, and Compiler Construction). This course culminates with its co-requisite course, CS 391, which is given at the Muenster University of Applied Sciences, for between two and three weeks each May or June. The instructor at MUAS will be a Juniata College faculty member.
1 CreditsIPre-requisites will be CS240 and instructor permission. Co-requisite is CS391. Completion of both CS390 and CS391 will fulfill the I designation. A fee of $1,200 is applied and it cover instructional costs,tuition, and Juniata College credit. Students will need to purchase their own plane and train fares. The host institution will facilitate housing for the students.
CS-391 Computer Science in Germany
This course is given at the Muenster University of Applied Sciences, for between two and three weeks each May or June. The instructor at MUAS will be a Juniata College faculty member. Pre-requisites: CS-240 and instructor permission. A fee of $1,200 is applied that is split between the spring and summer terms and covers instructional costs, tuition, and Juniata College credit. Students will need to purchase their own plane and train fares. The host institution will facilitate housing for the students.
2 CreditsI,SW-GE
CS-485 Computer Science Research
Allows students to carry out the independent computer science research project as designed in CS480 or CS481.
3-5 CreditsN,CWPrerequisite: CS480 or CS481.
DS-110 Intro to Data Science
This course introduces the student to the emerging field of data science through the presentation of basic math and statistics principles, an introduction to the computer tools and software commonly used to perform the data analytics, and a general overview of the machine learning techniques commonly applied to datasets for knowledge discovery. The students will identify a dataset for a final project that will require them to perform preparation, cleaning, simple visualization and analysis of the data with such tools as Excel and R. Understanding the varied nature of data, their acquisition and preliminary analysis provides the requisite skills to succeed in further study and application of the data science field. Prerequisite: comfort with pre-calculus topics and use of computers.
3 CreditsN
DS-210 Data Acquisition
Students will understand how to access various data types and sources, from flat file formats to databases to big storage data architecture. Students will perform transformations, cleaning, and merging of datasets in preparation for data mining and analysis.
3 CreditsNPRE-REQ: CS 110 and DS 110.
DS-352 Machine Learning
This course considers the use of machine learning (ML) and data mining (DM) algorithms for the data scientist to discover information embedded in datasets from the simple tables through complex and big data sets. Topics include ML and DM techniques such as classification, clustering, predictive and statistical modeling using tools such as R, Matlab, Weka and others. Simple visualization and data exploration will be covered in support of the DM. Software techniques implemented the emerging storage and hardware structures are introduced for handling big data.
3 CreditsNPrerequisite: CS-110, DS-110, and an approved statistics course from this list: MA-205, MA-220, BI-305, PY-214, PY-260, PY-366, or EB- 211.
DS-375 Big Data
This course considers the management and processing of large data sets, structured, semi-structured, and unstructured. The course focuses on modern, big data platforms such as Hadoop and NoSQL frameworks. Students will gain experience using a variety of programming tools and paradigms for manipulating big data sets on local servers and cloud platforms.
3 CreditsNPrerequisites: DS 110 Intro to Data Science and CS 370 Database Management Systems
IT-110 Principles of Information Technology
This course provides a context for further study in information technology. Topics include an overview of the fundamentals of information systems, current and emerging technologies, business applications, communications and decision making, and the impact of these systems on business, government, and society. This course will also emphasize the development of both writing and speaking skills through application of the concepts that define the course. Students who have passed IT-111 or IM-110 may not take this course.
3 CreditsS
IT-260 Human Computer Interaction
To users of any system, the interface is what they see and think of as the computer. Interaction with a computer can be better defined in terms of interface, as any part of the computer system that the user comes in contact with, either physically, perceptually, or conceptually. Human interaction with computers can be studied, designed, evaluated, with the goal being to produce usable products from a human-centric perspective.
3 CreditsSPrerequisites: CS110.
IT-325 Network Design & Management.
Focuses on the concept of the foundations of a network in both design and support. The OSI reference model will be examined along with techniques for supporting current technologies that align with each other. Emphasis will be placed on protocols, topologies and traffic analysis.
4 CreditsNPrerequisites: CS240 or IT210.
IT-341 Web Design
A study of modern web design along with an examination of markup and scripting languages (e.g., HTML, JavaScript), page, image and multimedia formats, and the techniques in developing and managing a web site. Page design, graphical user interfaces, interactive techniques and the importance of e-commerce are also emphasized.
2 Credits Prerequisites: CS110 or permission.
IT-342 Web Programming
A study of the modern web programming environment, including introduction to Web 2.0 and Web 3.0, HTML, XHTML, and JavaScript. The class will address client-side scripting as well as server-side technology, and accessing a database. These technologies will be combined to create an active, dynamic web page.
2 Credits Prerequisite: CS-240. Corequisite: IT-341.
IT-350 Security Engineering
This course will focus on the area of computer security. Included will be information on attacks, prevention, as well as protection from non-malicious threats. It will look at network as well as web based security. A focus will be on creating secure computer environments from the ground up, not as an afterthought.
3 CreditsNPrerequisites: IT210 and junior standing or permission of the instructor.
IT-351 Security Engineering Lab
This course is a laboratory course with hands-on activities to supplement the instruction given in the IT350, Security Engineering course. The lab activities will center on digital forensics, hacker exploits and protection techniques, penetration testing and vulnerability analysis.
1 Credits Co-requisite IT350.
IT-380 Innovations for Industry II
See IT308. This course will have appointed class times for projects other than those listed on the schedule. A continuation of IT308.
4 CreditsS,CTGISPrerequisites: IT307 & IT308 and senior standing.
IT-480 Innovations for Industry III
See IT380. This course will have appointed class times for projects other than those listed on the schedule. A continuation of IT380.
4 CreditsS,CTGISPrerequisites: IT380 and senior standing.
IM-242 Info Visualization
This course considers the various aspects of presenting digital information for public consumption visually. Data formats from binary, text, various file types, to relational databases and web sites are covered to understand the framework of information retrieval for use in visualization tools. Visualization and graphical analyses of data are considered in the context of the human visual system for appropriate information presentation. Various open-source and commercial digital tools are considered for development of visualization projects.
3 CreditsN,CTDH,CTGESPrerequisite: IT 110, IT 111, IM 110, DS 110, or CS 110 or permission.
MA-160 Linear Algebra
An introduction to systems of linear equations, matrices, determinants, vector spaces, linear transformations, eigenvalues, and applications.
3 CreditsN, QMPrerequisites: MA130.
MA-210 Foundations of Mathematics
An introduction to the logical and set-theoretic basis of modern mathematics. Topics covered include propositional and predicate logic; induction; naive and axiomatic set theory, binary relations, mappings, infinite sets and cardinality; finite sets and combinatorics; and an introduction to the theory of computability. Students will learn to read and to express mathematical ideas in the set-theoretic idiom.
3 CreditsCWPrerequisites: MA160 or MA116 or PL208 or MA208 or permission of the instructor.
MA-230 Calculus II
Expands the treatment of two-space using polar and parametric equations. Emphasizes multivariable calculus, including vectors in three dimensions, curves and surfaces in space, functions of several variables, partial differentiation, multiple integration, and applications.
4 CreditsN, QMPrerequisite: MA130
MA-233 Integrals Series & Differential Equations
Integration, Taylor and Fourier series, and an introduction to differential equations, with applications and the use of the software package Maple. (Course meets four times per week and concludes at midterm.)
2 CreditsNNote: A student may receive credit for MA233 or MA235, but not for both. Prerequisite: MA130.
MA-235 Calculus III
A continuation of the calculus sequence. Topics include methods of integration by Simpson's Rule, applications, Taylor and Fourier series; introduction to ordinary differential equations; integration in polar, cylindrical, and spherical coordinates; differential and integral vector calculus.
4 CreditsN, QMPrerequisites: MA230.
MA-341 Scientific Computing
This course begins with an introduction to fundamental concepts in Scientific Computing and concludes with domain-specific projects in areas like Bioinformatics, Data Science, Physical Systems, and Numerical Analysis. The common content will include command-line interfaces (Linux), programming languages (Jupyter/Python), numerical and graphical libraries (NumPy and Matplotlib), version-control (Git/Github), and relational databases (SQL).
3 CreditsNPre-Req: CS-110
PC-209 Electronics
An introduction to the theory and application of analog and digital electronics, starting with basic AC and DC circuits. The unit explains the principles of operation of the power supply, amplifier, oscillator, logic circuits, micro controllers, and other basic circuits. An associated laboratory component allows construction of and measurements on the circuits under consideration. Note: a special fee is assessed.
3 CreditsN
CAPSTONE
Take the following courses:
IT-307 Project Management
This course reviews and applies project management processes and techniques such as project life cycle, project selection methods, work breakdown instructions, network diagrams, cost estimates, and more.
3 CreditsS,CW,CS,SW-LEPrerequisites: IT210 and Jr or Sr standing or permission of the instructor. Corequisite: IT308.
IT-308 Innovations for Industry I
This lab will require a team of students to function as a project development team for an IT- related business. The students will be exposed to many aspects of systems analysis, design, development and implementation, as well as project management tools and techniques. Students will be required to learn in a just-in-time mode using on-demand educational resources.
1 CreditsSPrerequisites: IT210 and Jr or Sr standing or by permission of the instructor. Corequisite: IT307. Note: This course will have appointed class times for projects other than the times listed on the schedule.
The Information Technology and Computer Science (ITCS) Department does not permit students to pursue the following dual Programs of Emphases (POEs).
-
-
Information Technology & Computer Science
-
Information Technology & Business Information Technology
-
Computer Science & Business Information Technology
-
Learn the Skills You Need ...
Algorithm design and data management skills
Problem analysis and a systematic approach to problem solving
The operation and organization of computer hardware and software
Essential tools for the analysis and evaluation of algorithms, data structures, languages,
and systems
... For the Future You Want
Graduate studies
Scientific applications
Software design
Graphics and games programming
Rationale:
A program in computer science requires a broad range of skills, some as general as problem analysis and problem solving, others more technical, such as programming and data management. The core of the computer science POE is designed to promote the development of these skills. In addition to emphasizing mathematical techniques appropriate to "number crunching" the mathematics courses, also encourage a systematic approach to problem solving and become essential tools for the analysis and evaluation of algorithms, data structures, languages, and systems. The lower division course reinforce problem solving while also developing algorithm design and data management skills and providing knowledge of the operation and organization of computer hardware and software.
With this foundation, one can then pursue greater specialization, tailoring the program toward scientific applications, software design, systems analysis, or preparation for graduate studies. The requisite skills and relevant courses for these options vary somewhat and should be chosen in consultation with an appropriate advisor.
POE Credit Total = 62-63
Students must complete at least 18 credits at the 300/400-level. Any course exception must be approved by the advisor and/or department chair.