bibrahim/traindata huggingface dataset:
Computer Science at Memorial University of Newfoundland

The following undergraduate programs are available in the Department:
Applied Mathematics and Computer Science Joint Major

Computer Science Honours (B.A., B.Sc.)

Computer Science and Economics Joint Major

Computer Science and Geography Joint Honours

Computer Science and Geography Joint Major

Computer Science and Physics Joint Honours (B.Sc. only)

Computer Science and Physics Joint Major (B.Sc. only)

Computer Science and Pure Mathematics Joint Honours

Computer Science and Pure Mathematics Joint Major

Computer Science and Statistics Joint Honours

Computer Science and Statistics Joint Major

Computer Science (Software Engineering) Honours (B.Sc. only)

Co-operative Internship in Computer Science (CICS)

Major in Computer Science

Major in Computer Science (Data-centric Computing) (B.Sc. only)

Major in Computer Science (Smart Systems) (B.Sc. only)

Major in Computer Science (Visual Computing and Games) (B.Sc. only)

Minor in Computer Science


**Admission to Major Programs in Computer Science:**
-Application Deadline: June 1 for Fall semester
-Eligibility Requirements:
Completion of 24 credit hours, including:
Computer Science 1001, 1002
 Six credit hours in Critical Reading and Writing (CRW) courses, including at least 3 credit hours in English courses
Mathematics 1000 and 1001 (or 1090 and 1000)
Six credit hours in other courses
Selection Criteria: Academic performance, cumulative average, and performance in recent courses

 Admission to Honours Programs in Computer Science
- Application Deadline: June 1 for Fall semester
- Eligibility Requirements:
  - Successful completion of all Computer Science core requirements:
    - Computer Science 1001, 1002, 1003, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
  - Grade of "B" or better, or an average of 75% or higher in these courses
- Selection Criteria: Academic performance in required courses

 Admission to Minor Program in Computer Science
- Application Deadline: June 1 for Fall semester
- Eligibility Requirements:
  - Completion of 9 credit hours:
    - Computer Science 1001, 1002
    - Mathematics 1000
- Selection Criteria: Academic performance, cumulative average, and performance in recent courses
Major in Computer Science
- Course Requirements:
Forty-five credit hours in Computer Science courses:
 Computer Science 1001, 1002, 1003, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
At least 6 additional credit hours in Computer Science at the 4000 level
 Twelve additional credit hours in Computer Science at the 3000 level or beyond
 Additional courses:
 Mathematics 1000, 1001, 2000, 2050
 Statistics 2500 or 2550
Major in Computer Science (Data-centric Computing) (B.Sc. only)
- Course Requirements:
Forty-five credit hours in Computer Science courses:
Computer Science 1001, 1002, 1003, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Computer Science 3202, 3400, 3401, 4304
Six additional credit hours selected from Computer Science 4550, 4734, 4750, 4754, 4820
  - Additional courses:
Mathematics 1000, 1001, 2000, 2050
Statistics 2500 or 2550

Major in Computer Science (Smart Systems) (B.Sc. only)
- Course Requirements:
Forty-five credit hours in Computer Science courses:
Computer Science 1001, 1002, 1003, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Computer Science 3200, 3201, 3202 and one of 3301, 3401, or 3550
Six additional credit hours selected from Computer Science 4301, 4303, 4750, 4766
  - Additional courses:
 Mathematics 1000, 1001, 2000, 2050
 Statistics 2500 or 2550
Major in Computer Science (Visual Computing and Games) (B.Sc. only)
- Course Requirements:
 Forty-five credit hours in Computer Science courses:
  Computer Science 1001, 1002, 1003, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
  Computer Science 3300, 3301, 4300
  Six additional credit hours selected from Computer Science 3200, 4301, 4302, 4303, 4304
  Three additional credit hours selected from those listed above or Computer Science 4766, 4768
  - Additional courses:
Mathematics 1000, 1001, 2000, 2050
 Statistics 2500 or 2550

Honours in Computer Science
- Course Requirements:
Sixty-three credit hours in Computer Science courses, including:
 Computer Science 1001, 1002, 1003, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 499A/B
 Twelve additional credit hours in Computer Science at the 4000 level
Eighteen additional credit hours in Computer Science courses at the 3000 level or beyond
  - Additional courses:
Mathematics 1000, 1001, 2000, 2050
Statistics 2500 or 2550

Honours in Computer Science (Software Engineering) (B.Sc. Only)
- Course Requirements:
  Sixty-three credit hours in Computer Science courses, including:
 Computer Science 1001, 1002, 1003, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 4770, 499A/B
Nine additional credit hours chosen from Computer Science 4302, 4718, 4721, 4723, 4759, 4766, 4768
Six additional credit hours in Computer Science at the 4000 level
Twelve additional credit hours in Computer Science at the 3000 level or beyond
-Additional courses:
Mathematics 1000, 1001, 2000, 2050
Statistics 2500 or 2550

Minor in Computer Science
- Course Requirements:
At least 24 credit hours in Computer Science courses, including:
Computer Science 1001, 1002, 1003, 2001
 At least 6 credit hours selected from Computer Science 2002, 2003, 2004, 2005, 2006, 2007, 2008
Three additional credit hours at the 3000 level or above
Co-operative Internship in Computer Science (CICS)
- Admission Requirements:
  - Declared Computer Science Major
  - Full-time student status at application time
  - Completion of specific courses (Computer Science 1001, 1002, 1003, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, and 6 credit hours at the 3000 level or beyond)
  - At least 15 credit hours remaining after the internship, 3 of which must be in Computer Science
- Co-operative Internship Guidelines:
Management by Academic Staff Member(s) in Co-operative Education (ASM-CE)
 Duration: 8, 12, or 16 consecutive months with a single employer
 Full-time, paid, relevant work
 Registration for Computer Science 3700 every semester during the internship
 Specific conditions for dropping the internship, failing to honor agreements, or misconduct

CICS and Honours Program
- Requirements:
Meeting the requirements of both Honours and CICS programs
Internship project may be submitted as a component of an honours project upon approval

 Faculty Advisors
- Undergraduate Advisor: Available for consultation on academic matters in Computer Science

Undergraduate Handbook
- Resources: Additional information available in the Computer Science Undergraduate Handbook on the Computer Science website

**COMP 1000 Computer Science - An Introduction**
- **Course Information:** Covers algorithms, binary data, Boolean logic, systems software, networking, introductory programming, databases, and Computer Science subfields.
- **CR:** Former COMP 1700. No credit for those who completed/registered for COMP 1003.
- **LH:** 3

**COMP 1001 Introduction to Programming**
- **Course Information:** Fundamental programming concepts and object-oriented programming in Python. Covers data types, data structures, problem-solving, algorithms, and file handling.
- **CR:** Former COMP 1710.
- **LH:** 3

**COMP 1002 Introduction to Logic for Computer Scientists**
- **Course Information:** Reasoning and logic tools in computer science, including propositional and predicate logic, discrete structures, and basic counting.
- **CR:** Former COMP 2742, ECE 4110, former Engineering 4424, Mathematics 2320. No credit if completed/registered for Mathematics 2320.
- **LH:** 3

**COMP 1003 Foundations of Computing Systems**
- **Course Information:** In-depth introduction to algorithms, data structures, computing theory, and machine architecture.
- **CO:** COMP 1002 or Mathematics 2320.
- **LH:** 3
- **PR:** COMP 1001
**COMP 1400 Computing in the 20th Century and Beyond**
- **Course Information:** Overview of the development and impact of computing technologies over the last 75 years, including societal perceptions and impacts.

**COMP 1401 Computing at the Movies**
- **Course Information:** Examines and counters misconceptions about computing by contrasting movie depictions with reality.

**COMP 1510 An Introduction to Programming for Scientific Computing**
- **Course Information:** Basic programming in numerical methods for scientific computing projects.
- **CR:** Former COMP 2602, Mathematics 2120.
- **LH:** 2
- **PR:** Mathematics 1000

**COMP 1600 Basic Computing and Information Technology**
- **Course Information:** Overview of information technology, using spreadsheet, database, and presentation software.
- **CR:** Former Business 2700, COMP 2650, COMP 2801.
- **LH:** 3

**COMP 2000 Collaborative and Emergent Behaviour**
- **Course Information:** Survey of computation in artificial and natural systems, complex behavior from simple rules, and communication in systems.
- **LH:** 3 hours bi-weekly

**COMP 2001 Object-Oriented Programming and Human-Computer Interaction**
- **Course Information:** Advanced object-oriented programming, event-driven programming, program correctness, interfaces, and human-computer interaction.
- **CR:** Former COMP 2710.
- **LH:** 3
- **PR:** COMP 1001, COMP 1003

**COMP 2002 Data Structures and Algorithms**
- **Course Information:** Fundamental data structures, algorithms, and design techniques, focusing on computational problem-solving.
- **CR:** Former COMP 2711.
- **LH:** 3
- **PR:** COMP 1001, COMP 1002 or Mathematics 2320, COMP 1003, Mathematics 1000

**COMP 2003 Computer Architecture**
- **Course Information:** Computer architecture at digital logic, instruction set levels, and translation of programming languages into machine instructions.
- **CR:** Former COMP 3724.
- **LH:** 3
- **PR:** COMP 1001, COMP 1002 or Mathematics 2320, COMP 1003

**COMP 2004 Introduction to Operating Systems**
- **Course Information:** Techniques for interfacing between software and hardware, composition of operating systems, and system design.
- **CR:** Former COMP 3725.
- **PR:** COMP 2002, COMP 2003

**COMP 2005 Software Engineering**
- **Course Information:** Software process models, project management, software requirements engineering, systems analysis and design.
- **CR:** Former COMP 3716.
- **PR:** COMP 2001
**COMP 2006 Computer Networking**
- **Course Information:** Programming interfaces for networking, understanding Internet protocols.
- **CH:** 1
- **CO:** COMP 2004, COMP 2007, COMP 2008.
- **CR:** Former COMP 3715.
- **PR:** COMP 2001, COMP 2002

**COMP 2007 Introduction to Information Management**
- **Course Information:** Managing large data volumes, information management, database systems, data security, and privacy.
- **CH:** 1
- **CO:** COMP 2004, COMP 2006, COMP 2008.
- **CR:** Former COMP 3754.
- **PR:** COMP 2001

, COMP 2002

**COMP 2008 Social Issues and Professional Practice**
- **Course Information:** Ethical and social considerations in computing, addressing issues through ethical and technical actions.
- **CH:** 1
- **CO:** COMP 2004, COMP 2006, COMP 2007.
- **CR:** Former COMP 2760.
- **PR:** COMP 2001, COMP 2002

**COMP 2100 Social Web Analysis**
- **Course Information:** Analysis of social network structures, data flow, and extraction of information. Covers security and trust issues.
- **PR:** COMP 1003

**COMP 2300 Introduction to Multimedia Programming**
- **Course Information:** Programming fundamentals with a focus on multimedia application development.
- **CR:** Former COMP 1550.
- **LH:** 3
- **PR:** COMP 1003

**COMP 2500 Data Analysis with Scripting Languages**
- **Course Information:** Using scripting languages for data analysis tasks. Covers control structures, data storage/retrieval, numerical/statistical calculations, and data visualization.
- **PR:** COMP 1510 or former COMP 1700/1710 or COMP 1000/1001 (or equivalent)

**COMP 2510 Programming in C/C++**
- **Course Information:** Comprehensive treatment of C/C++ programming languages, covering fundamentals, object-oriented aspects, and advanced topics.
- **CR:** ECE 3400, former Engineering 3891.
- **LH:** 3
- **PR:** COMP 1001, COMP 1510, former COMP 1710, Engineering 1020 (or equivalent)

**COMP 2718 Development Tools, Work Flows and Concepts**
- **Course Information:** Tools, workflows, and concepts in software development, including text editors, debuggers, scripting tools, source control, and building/testing tools.
- **LH:** 3
- **PR:** COMP 2001, COMP 2500, COMP 2510, or former COMP 2710
**COMP 3100 Web Programming**
- **Course Information:** Web programming from a networking perspective, interactive browser content design, and dynamic server pages.
- **CR:** Former COMP 3715.
- **PR:** COMP 2006, COMP 2007

**COMP 3200 Algorithmic Techniques for Artificial Intelligence**
- **Course Information:** Algorithmic techniques and data structures for basic intelligent behaviors in software systems.
- **CR:** Former COMP 4753.
- **PR:** COMP 2001 or former COMP 2710, COMP 2002 or former COMP 2711, Statistics 2500 or 2550

**COMP 3201 Introduction to Nature-Inspired Computing**
- **Course Information:** Overview of nature-inspired computing methods, applications in optimization, machine learning, robotics, and natural sciences.
- **CR:** Former COMP 4752.
- **PR:** COMP 2001, COMP 2002 or former COMP 2711, Statistics 2500 or 2550

**COMP 3202 Introduction to Machine Learning**
- **Course Information:** Concepts and algorithms in machine learning for regression, classification tasks, and model evaluation.
- **PR:** COMP 3200; or COMP 2001 or former COMP 2710, COMP 2002 or former COMP 2711, Statistics 2500 or 2550, Mathematics 2050

**COMP 3300 Interactive Technologies**
- **Course Information:** Interaction design theory and practice in desktop, mobile, and games contexts.
- **PR:** COMP 2001 or former COMP 2710

**COMP 3301 Visual Computing and Applications**
- **Course Information:** Fundamentals of computer vision, graphics, and visualization, including image synthesis, processing, and analysis.
- **PR:** COMP 2002 or former COMP 2711, Mathematics 2000, Mathematics 2050

**COMP 3400 Data Preparation Techniques**
- **Course Information:** Techniques for pre-processing raw data in small and large datasets, using data mining/machine learning methods.
- **LH:** 3
- **PR:** COMP 2001; Statistics 2500 or 2550

**COMP 3401 Introduction to Data Mining**
- **Course Information:** Basic concepts and techniques for data mining and knowledge discovery.
- **PR:** COMP 2002 or former COMP 2711, COMP 2007 or former COMP 3754, Statistics 2500 or 2550

**COMP 3550 Introduction to Bioinformatics**
- **Course Information:** Development and application of computational methods in biology. Hands-on experience with bioinformatics tools and databases.
- **EQ:** Biology 3951.
- **LH:** 3
- **PR:** Biology 1001; one of COMP 1001, 1002, or 1510; and 6 credit hours in Computer Science or Biology
**Course Title**: COMP 3550 Introduction to Bioinformatics  
**Course Information**: This course deals with the development and application of computational methods to address biological problems. It focuses on the fundamental concepts, ideas, and related biological applications of existing bioinformatics tools. The course provides hands-on experience in applying bioinformatics software tools and online databases to analyze experimental biological data and introduces scripting language tools for automating some biological data analysis tasks.  
**EQ (Equivalent Course)**: Biology 3951  
**LH (Lecture Hours per Week)**: 3  
**PR (Prerequisites)**: Biology 1001; one of COMP 1001, 1002, or 1510; and 6 credit hours in Computer Science or Biology course at the 2000 level or above, excluding Biology 2040, 2041, 2120; or permission of the course instructor

**Course Title**: COMP 3600 Algorithm Design and Analysis  
**Course Information**: This course covers advanced algorithm design techniques, including divide-and-conquer, greedy algorithms, dynamic programming, and network flows. The emphasis is on algorithmic problem-solving and algorithm design and analysis methodologies. It also discusses NP-completeness and methods for dealing with intractability.  
**CR (Cross-Listed Course)**: The former COMP 4740  
**PR**: COMP 2002



**Course Title**: COMP 3602 Introduction to the Theory of Computation  
**Course Information**: Examines various models of computation and their computational power. Discusses several measures of a problem's computational difficulty.  
**CR**: The former COMP 3719  
**PR**: COMP 2002 or the former COMP 2711  

**Course Title**: COMP 3700 Industrial Experience  
**Course Information**: Open only to students in the Co-operative Internship in Computer Science. Provides job experience related to computer science for a duration of 8, 12, or 16 months.  
**CH (Credit Hours)**: 0  
**PR**: Admission to the Co-operative Internship in Computer Science (CICS)  

**Course Title**: COMP 3710 Vocational Languages  
**Course Information**: Studies several programming languages of vocational significance. Illustrates the use of appropriate programming paradigms for significant problems.  
**PR**: COMP 2002 or the former COMP 2711  

**Course Title**: COMP 3718 Programming in the Small  
**Course Information**: Demonstrates tools and techniques in constructing small software systems. Covers software component analysis and design, construction tools, software library use and design, and system integration.  
**PR**: COMP 2002 or the former COMP 2711
**Course Title**: COMP 3731 Introduction to Scientific Computing  
**Course Information**: Focuses on developing algorithms for numerical solution of mathematical problems and their numerical stability. Considers algorithm efficiency in speed and storage. Introduces numerical algorithms for advanced computer architectures.  
**CR**: Mathematics 3132  
**PR**: COMP 1001 or the former COMP 2710, Mathematics 2000, Mathematics 2050  

**Course Title**: COMP 3753 Computational Aspects of Linear Programming  
**Course Information**: An introduction to the Linear Programming Problem (LPP). Emphasizes developing numerically reliable algorithms for LPP solutions and examines their numerical stability.  
**PR**: COMP 1001 or the former COMP 2710, Mathematics 2050  

**Course Title**: COMP 4300 Introduction to Game Programming  
**Course Information**: An introductory course on game programming fundamentals. Topics include vector math, rendering, animation, AI, collision detection, game physics, and user-interfaces. Requires writing a fully functional game.  
**PR**: COMP 2001 or the former COMP 2710, Mathematics 2050, and 6 credit hours in Computer Science courses at the 3000 level or above (COMP 3301 and COMP 3731 are recommended)  

**Course Title**: COMP 4301 Computer Vision  
**Course Information**: Develops methods to enable machine analysis of images. Covers feature detection, geometric vision, structure from X, segmentation, object tracking, and visual recognition.  
**EQ**: Electrical and Computer Engineering 8410, the former Engineering 8814  
**LH**: Six 3-hour sessions per semester  
**PR**: COMP 3301 or Electrical and Computer Engineering 7410 or the former Engineering 7854 or permission of the instructor  

**Course Title**: COMP 4302 3D Computer Graphics  
**Course Information**: Introduces concepts and developments in 3D computer graphics. Covers 3D geometrical transformations, projections, modeling and rendering, graphics languages, and systems. May include photorealistic rendering and image-based techniques.  
**CR**: The former COMP 4751  
**PR**: COMP 3301  

**Course Title**: COMP 4303 Artificial Intelligence in Computer Games  
**Course Information**: Introduces algorithmic techniques and data structures for implementing human-like abilities in computer game agents. Focuses on awareness, memory, rational decision-making, movement, and group co-operation.  
**PR**: COMP 3200
**Course Title**: COMP 4304 Data Visualization  
**Course Information**: Covers interactive representation of data using a modern programming library. Focuses on data selection, analysis, design, and dynamic visualizations. Applicable to various data sources and types.  
**CR**: The former COMP 4767  
**PR**: COMP 2001 or the former COMP 2710, COMP 2002 or the former COMP 2711, Statistics 2500 or Statistics 2550  

**Course Title**: COMP 4550 Bioinformatics: Biological Data Analysis  
**Course Information**: Teaches analysis of a variety of biological data. Focuses on extracting information from high-throughput experimentation data. Introduces an integrated programming environment for biological data analysis.  
**EQ**: Biology 4606  
**LH**: 3  
**PR**: Biology 3951 or COMP 3550, and Statistics 2500 or Statistics 2550, or permission of the course instructor  

**Course Title**: COMP 4711 Structure of Programming Languages  
**Course Information**: Covers programming language design considerations; syntactic and semantic structure; survey of typical

 features and operations; analysis of control and data structuring; language extensibility; execution models; formal specification of programming languages.  
**PR**: COMP 2003 or the former COMP 3724, and COMP 3602 or the former COMP 3719  

**Course Title**: COMP 4712 Compiler Construction  
**Course Information**: Studies properties of formal grammars and languages; syntax-directed parsing and code generation; top-down and bottom-up parsing methods; LL(k) and LR(k) grammars and parsers; Code optimization; compiler writing tools.  
**PR**: COMP 2003 or the former COMP 3724, and 3 credit hours in Computer Science at the 3000-level or above (COMP 3600 is recommended)  

**Course Title**: COMP 4715 and 4717 Special Topics in Programming Languages  
**Course Information**: Topics to be studied will be announced by the Department.  

**Course Title**: COMP 4718 Survey of Software Engineering  
**Course Information**: Surveys major topics in software engineering, including requirements capture, system design, verification and validation, and software development process management.  
**PR**: COMP 2005 or the former COMP 3716  

**Course Title**: COMP 4721 Operating Systems  
**Course Information**: Studies the design and implementation of an operating system’s kernel. Focuses on context switches, process management, memory management, interprocess communication, file systems, and system calls. Also discusses real-time operating systems.  
**CR**: Electrical and Computer Engineering 8400, the former Engineering 8894  
**PR**: COMP 2004 or the former COMP 3725