Computer Science

 

What is computer science?

Computer Science deals with the theoretical foundations of information and computation, and with practical techniques for their implementation and application.

 

Why study computer science?

Students in every discipline can benefit from exposure to computing concepts and skills. For students who choose computing as a major, software developers are currently among the highest in demand and among the highest paid entry-level positions. Other positions include computational scientists, computer architects, cyber security personnel, game programmers, IT specialists, mobile computing developers, network analysts, robotics programmers, systems analysts/designers and web specialists.

Since computer technology is used in all disciplines, non-computing majors can also benefit from an increased awareness of computing concepts, technology, programming or problem solving by taking one or more computer science courses. Whether students are planning to major in computer science or merely use computers on the job, the graduate with some computing knowledge and skills will have added value in any career.

Introductory courses for majors and non-majors

Students intending to major or minor in computer science can start with Computer Science 1000 or Computer Science 1001.

Computer Science 1000 gives an introduction to various areas of computer science.

Computer Science 1001 gives an introduction to object-oriented programming.

Computer Science 1002 introduces logic tools and their application in computer science.

Computer Science 1400 gives an overview of the development of computing technologies over the last 75 years.

Computer Science 1401 both examines and counters common misconceptions about computing and the computing profession by looking at various movies and documentaries produced over the last 60 years.

Computer Science 1510 is an introductory programming course directed at students majoring in the mathematical sciences, including mathematics, physics and chemistry. The focus is on numerical problem solving and programming skills.

Computer Science 1550 is an introductory course in multimedia programming which would be of interest to both arts and science students. Students can build interactive animations on the web while learning to program.

Computer Science 1600 explores how spreadsheet, database and presentation software are used to manage, analyze and present data.

Computer Science 2000 is intended for non-majors in the Faculty of Humanities and Social Sciences, but is available to all students. Without programming, students explore the behaviour of robots, the human mind, the Internet and other systems, using the ideas of computation in conjunction with simple rules.

Computer Science 2001 discusses advanced object-oriented programming topics.

Computer Science 2500 provides practical examples of using a scripting language to perform data analysis.

Computer Science 2510 gives a comprehensive treatment of the C/C++ programming languages.

Computer Science 2718 provides a concentrated introduction to the tools, workflows and concepts necessary for effective software development. Both computer science majors and non-majors can benefit from this course.

Internship work term program - Paid work term placements are available for students who meet the requirements of the computer industry internship program. Positions are available locally or abroad, for a minimum of eight and a maximum of 16 months in duration. We encourage our students to obtain the most beneficial work experience possible and often place students with major software companies.

Computer science program offerings (major and minor)

The Department of Computer Science offers a number of programs at the St. John’s campus. Bachelor of Science (B.Sc.) or Bachelor of Arts (BA) degrees are available, differing primarily in the student’s choice of advanced level electives. Two stream-based programs are available: Smart Systems, and Visual Computing and Gaming.

Students may pursue an honours degree for more in-depth study and exposure to research activity under the supervision of a faculty member. A specialization in software engineering is available in the B.Sc. honours program.

A computer science minor provides a student in other disciplines the opportunity to develop expertise in a chosen area of computer science. The minor program includes flexibility for a student to choose a few advanced courses, so an interest in computer graphics, software development, scientific computing, computer networking, artificial intelligence, robotics or information systems (for example) can be accommodated if the student plans their course selection carefully.

Courses available in first year

Computer Science 1000
Computer Science – An Introduction
is a gentle introduction to computer science. In a breadth-first overview approach it discusses important aspects of computer science including fundamentals in algorithms, binary data representation, Boolean logic and its implementation, machine architecture, systems software, networking concepts, programming languages, databases, and selected Computer Science subfields.
Lectures: Three hours per week
Laboratory: Three hours per week
Prerequisite: None
Note: Students can receive credit for only one of Computer Science 1000 and 1700.

Computer Science 1001
Introduction to Programming
is an introduction to fundamental programming techniques, primitive data types, and to simple algorithms and their design concepts.
Lectures: Three hours per week
Laboratory: Three hours per week
Prerequisite: None
Note: Students can receive credit for only one of Computer Science 1001 and 1710.

Computer Science 1002
Introduction to Logic for Computer Scientists
introduces methods of reasoning and logic tools that underlie computer science. In particular, this course covers propositional and predicate logic, sets and other discrete structures, as well as modular arithmetic and basic counting, with emphasis on their applications in computer science.
Lectures: Three hours per week
Laboratory: Three hours per week
Prerequisite: None
Notes:

  1. Students can receive credit for only one of Computer Science 2742, Engineering 4424, Mathematics 2320.
  2. Students cannot receive credit for Computer Science 1002 if completed with, or subsequent to, Mathematics 2320.

Computer Science 1400
Computing in the 20th Century and Beyond will give an overview of the development of computing technologies over the last 75 years as well as both the perception of these technologies by, and their impact on, society. The course will be organized chronologically by decade, and within each decade will examine the dominant computing developments, their image in various print and pictorial media, and their social impact. The aim is to give students of all disciplines an appreciation of the abilities and limitations of computer technology and how such technologies interact with society.
Lectures: Three hours per week
Prerequisite: None

Computer Science 1401
Computing at the Movies will both examine and counter common misconceptions about computing and the computing profession. This will be done by contrasting depictions of various aspects of computing in various movies and documentaries produced over the last 60 years with the reality of these aspects as given in selected readings and course lecture notes.
Lectures: Three hours per week
Prerequisite: None

Computer Science 1510
An Introduction to Programming for Scientific Computing introduces students to basic programming in the context of numerical methods with the goal of providing the foundation necessary to handle larger scientific programming projects. Numerical methods to solve selected problems from physics, chemistry and mathematics will be covered.
Lectures: Three hours per week
Laboratory: Two hours per week
Prerequisite: Mathematics 1000
Note: Students can receive credit for only one of Computer Science 1510 and Computer Science 2602.

Computer Science 1550
Introduction to Multimedia Application Development is an introduction to programming and computer science with an emphasis on the development of multimedia applications. The course introduces the fundamental principles of programming, including object-oriented and event driven programming, how to use and create classes and methods and combine them with multimedia libraries to produce animations, handle input from keyboard and mouse, and import sounds and videos to produce multimedia applications which can be directly deployed on the Internet.
Lectures: Three hours per week
Laboratory: Three hours per week
Prerequisite: None

Computer Science 1600
Basic Computing and Information Technology offers an overview of information technology. It provides students with an understanding of basic concepts and necessary skills required to use spreadsheet, database and presentation software to manage, analyze and present data.
Lectures: Three hours per week
Laboratory: Three hours per week
Prerequisite: None 

Computer Science 2000
Collaborative and Emergent Behaviour is a survey of computation as a means of understanding, modelling and describing artificial and natural systems. The emergence of complex behaviour from the interaction of simple rules governing individual components is illustrated and discussed, as well as the role of communication between system components. Selected systems to be studied will be drawn from different topic areas which may include the World Wide Web, the mind (cognitive science), formal logic, autonomous robotics, chaos and fractals and bioinformatics. Each topic will incorporate an associated laboratory experience.
Lectures: Three hours per week
Laboratory: Three hours bi-weekly
Prerequisite: None

Computer Science 2001
Object-Oriented Programming and Human-Computer Interaction
advances from Introduction to Programming and studies object-oriented programming. Additional topics include event-driven programming, program correctness and simple refactoring, as well as interfaces and human-computer interaction. A brief overview of programming languages is also provided.
Lectures: Three hours per week
Laboratory: Three hours per week
Prerequisite: Computer Science 1001 and Mathematics 1000
Students can receive credit for only one of Computer Science 2001 and 2710

Computer Science 2500
Data Analysis with Scripting Languages introduces the use of scripting languages to solve common data analysis tasks. The control structures and expressions of the language are first discussed. Script solution to storing/retrieving data sets, searching data sets, and performing numeric and statistical calculation are covered. Plotting and visualization for data sets are also presented.
Lectures: Three hours per week
Prerequisite: Computer Science 1000 or 1001 or 1510 or 1700 or 1710

Computer Science 2510
Programming in C/C++ is a comprehensive treatment of the C/C++ programming languages. It is intended for students with some first programming experience. This course starts with a discussion of fundamentals of C and C++, moves on to the object-oriented aspects of C++, and introduces some advanced topics. It is an essential course for mastering the power of this rich programming language.
Lectures: Three hours per week
Prerequisite: Computer Science 1000 or 1001 or 1510 or 1550 or 1700 or 1710 or Engineering 1020, or equivalent

Computer Science 2718
Development Tools, Work Flows and Concepts covers tools, work flows and concepts used in software development in a concentrated introductory set of topics. The essential work flows (with their underlying concepts) used to edit, build, test, combine with existing software and find existing software are introduced. The tools covered include text editors, programming language translators, file management tools, debuggers, scripting tools, source control tools, and building, testing and deployment tools. The architecture and use of an Integrated Development Environment are discussed.
Lectures: Three hours per week
Laboratory: Three hours per week
Prerequisites: Computer Science 2500 or 2510 or 2710

 

Sample program

For students completing a Bachelor of Arts (BA) with a major in computer science

Students pursuing a Bachelor of Arts with a major in computer science will normally take the following courses in their first year:

 

Sample program

Fall SemesterWinter Semester
English 1090critical reading & writing course 
language study course (LS)language study course (LS)
Mathematics 1090 or 1000*Mathematics 1000* or 1001
Computer Science 1000Computer Science 1001
elective course (breadth encouraged)elective course (breadth encouraged)

 


* Students completing Mathematics 1090/1000 will be required to complete Mathematics 1001 as well.

 

For assistance with course selection, students should contact:
Academic Advising Centre, advice@mun.ca

 

For students completing a Bachelor of Science (B.Sc.) with a major in computer science

Students pursuing a Bachelor of Science with a major in computer science will normally take the following courses in their first year:

 

Sample program A

Fall SemesterWinter Semester
Mathematics 1090 or 1000*Mathematics 1000 * or 1001
Computer Science 1000Computer Science 1001
science electivescience elective
English 1090English 1191, 1192, 1193 or 1110
electiveelective

 


* Students completing Mathematics 1090/1000 will be required to complete Mathematics 1001 as well.

 

 

Sample program B

Fall SemesterWinter Semester
Mathematics 1000*Mathematics 1001
Computer Science 1000Computer Science 1002
Computer Science 1001Computer Science 2001*
English 1090English 1191, 1192, 1193 or 1110
science electivescience elective

 


* Mathematics 1000 and Computer Science 1001 are prerequisites for Computer Science 2001.

Note:

  1. To be admitted to the computer science major program, students must complete 30 credit hours which must include:
    • six credit hours in English
    • six credit hours in mathematics
    • six credit hours in computer science
    • six credit hours in a second science subject, other than mathematics and computer science

Students should contact the Department of Computer Science upon completion of these courses to declare their major program.

For assistance with course selection, students should contact:
Academic Advising Centre, advice@mun.ca

 

Contact information

For additional information please contact:
Donna Batten, Undergraduate Advisor
cs-ugradadv@mun.ca
www.mun.ca/computerscience

 

 

Contact

Guide to First Year

230 Elizabeth Ave

St. John's, NL A1B 3X9 CANADA

Tel: (709) 864-2530

Fax: (709) 864-2552

becomestudent@mun.ca